iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0

延續上個章節,進行相關的 LAB 實作。

運作方式與關鍵設定

  1. 啟用 VLAN 感知模式:

    • 必須在主要的橋接器(例如 br_default)上明確啟用此模式。
    • 指令範例: nv set interface br_default bridge domain vlan-aware
    • 啟用後,這個橋接器就能夠處理 VLAN 標籤了。
  2. 在埠 (Port) 上定義 VLAN:

    • 設定的重點從「橋接器」轉移到「埠」本身。需要告訴每個埠(例如 swp1, swp2)它屬於哪個 VLAN。
  3. PVID vs. VID (重要觀念):

    • PVID (Port VLAN ID):
      • 這代表原生 VLAN (Native VLAN)
      • 當一個 未帶標籤 (untagged) 的封包進入這個埠時,系統會自動幫它貼上 PVID 所指定的 VLAN 標籤。
      • 這通常用於設定「Access Port」(存取埠)。
      • 指令範例: nv set interface swp1 bridge domain br_default access 10 (代表 swp1 的 Access Port 在 VLAN 10)。
    • VID (VLAN ID):
      • 這代表允許的標籤 VLAN (Tagged VLANs)
      • 這用於設定Trunk Port
      • 埠會允許 已經帶有 這些 VID 標籤的封包通過。
      • 指令範例: nv set bridge domain br_default vlan 10, 20
  4. 在橋接器上宣告 VLAN:

    • 最後,必須告訴橋接器本身br_default)有哪些 VLAN 在這個橋接網域中是「有效」的。
    • 指令範例: nv set interface br_default vlan 10 20 30 (告訴橋接器要處理 VLAN 10, 20, 30)。

本實驗配置

  1. Configure a VLAN-aware Bridge

    NVUE YAML:

    - set:
        bridge:
        domain:
            br_default:
            vlan:
                '10': {}
                '20': {}
    

    以下配置是由 NVUE 系統產生。

    auto br_default
    iface br_default
        bridge-ports swp1 swp3 swp4
        hwaddress ce:36:78:fb:56:e2
        bridge-vlan-aware yes
        bridge-vids 10 20
        bridge-pvid 1
    

    bridge-pvid 預設為 1,不必為網橋(Bridge)或端口指定 bridge-pvid。儘管這不會影響配置,但它有助於其他用戶的可讀性。

    如果在網橋(bridge)層級指定 bridge-vidsbridge-pvid,則網橋中的所有連接埠都會繼承這些設定。但是,為特定連接埠指定任何這些設定都會覆蓋網橋中的設定。

  2. Access Ports and Tagged Packets

    下面 swp3 允許未標記流量(untagged traffic) 進入 VLAN 10。swp4 則為 30。

    NVUE YAML

    - set:
        bridge:
        domain:
            br_default:
            vlan:
                '10': {}
                '20': {}
        interface:
        ...
        swp1:
            type: swp
            bridge:
            domain:
                br_default: {} # VLAN 10、20 流量都可通過
        swp2:
            type: swp
        swp3:
            type: swp
            bridge:
            domain:
                br_default:
                access: 10
        swp4:
            type: swp
            bridge:
            domain:
                br_default:
                access: 30
    

    以下配置是由 NVUE 系統產生。

    $ cat /etc/network/interfaces
    ...
    auto swp3
    iface swp3
        bridge-access 10
    
    auto swp4
    iface swp4
        bridge-access 30
    
    auto br_default
    iface br_default
        bridge-ports swp1 swp3 swp4
        hwaddress 9e:e8:2a:e8:85:8c
        bridge-vlan-aware yes
        bridge-vids 10 20
        bridge-pvid 1
    
  3. VLAN Bridge Binding Mode

    Cumulus Linux 中 SVI (VLAN 介面) 狀態 (Up/Down) 如何判定的重要觀念 ?

    Cumulus Linux 會將 VLAN 設備 (SVI) 的鏈路狀態 (link state) 從其底層設備(即 Bridge)繼承而來。

    因此,只要橋接器 (bridge) 本身處於管理上的『Up』狀態,並且至少有一個橋接器埠口 (port) 是 Up 的,那麼這個 VLAN 設備(SVI)的鏈路狀態就會是 Up - 無論那個 Up 的 Port 是不是這個 VLAN 的成員

    如果需要 VLAN 設備(SVI)的鏈路狀態追蹤 (track) 那些同時也是該 VLAN 成員 的 Port 子集 (subset) 的狀態,而不是追蹤所有 Port,那麼你可以設定 VLAN 橋接器綁定模式 (VLAN bridge binding mode)。

    在 VLAN 橋接器綁定模式中,Cumulus Linux 不會自動從底層設備繼承鏈路狀態,而是會根據 屬於該 VLAN 的橋接器埠口 來決定(SVI 的)鏈路狀態。

    這段在講 SVI (L3 介面 vlan10) 的 Up/Down 狀態是怎麼決定的,這會直接影響到依賴這個 SVI 的路由協定 (如 OSPF, BGP) 或 HSRP/VRR。

1. 預設行為 (Default Mode)
  • 規則vlan10 (SVI) 的狀態 = br_default (Bridge) 的狀態。
  • br_default 如何決定狀態?:只要 Bridge 底下任何一個 Port (swp1~swp50) 是 Up 的,br_default 就是 Up。
  • 問題點 (The Problem)
    • 假設你的 vlan10 介面只在 swp1swp2 上運行 (Access Port)。
    • 你的 vlan20 介面在 swp3 上運行。
    • 這時,如果 swp1swp2 都斷線了 (vlan10 實際上已經孤立),但只要 swp3 還是 Up 的,br_default 就會是 Up。
    • 結果:vlan10 這個 SVI 介面仍然會顯示為『Up』,路由協定繼續通告這條路徑,導致流量被送到一個「黑洞」。
2. 解決方案 (Binding Mode)
  • 模式名稱VLAN bridge binding mode
  • 規則vlan10 (SVI) 的狀態是只看那些屬於 vlan10 的 Port (e.g., swp1, swp2) 的狀態。
  • 運作方式
    • 承上個例子:swp1swp2 (vlan10) 斷線了。
    • 雖然 swp3 (vlan20) 還是 Up 的。
    • 但系統在判斷 vlan10 的狀態時,只會去看 swp1swp2
    • 結果vlan10 這個 SVI 介面會正確地轉為Down,路由協定會撤銷 (withdraw) 相關路由,流量會改走備援路徑。

預設情況下,SVI (VLAN 介面) 只要有任何一個 Port 活著就會是 Up。如果希望 SVI 只關心自己 VLAN 內的 Port 是否活著,必須手動啟用 VLAN bridge binding 模式,這樣狀態連動才會準確。預設的行為 vlan-bridge-binding 是關閉

驗證拓譜

分別在 spine01 和 spine02 配置 Vlan 和橋接介面的配置。在 spine01 和 spine02 之間,只有允許 VLAN 10 和 20 的標記流量。因此從 server01 的 10.1.20.101 去存取 server02 的 10.1.20.102 時可以成功,但針對存取 10.1.30.103 或 10.1.30.104 會因為 spine01 和 spine02 之間的 swp1 介面 VLAN 不允許 VLAN 30 而存取不到。


上一篇
NVUE - Bridge Part01
下一篇
NVUE - VXLAN
系列文
ToR 的復仇-頂架也能跑馬拉松10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言