Ip

多個 VLAN 子介面的情況下,伺服器如何辨識幀?

  • March 18, 2015

當我在 Linux 中創建 VLAN 子介面時,它會獲得與其父介面相同的 MAC 地址。例如,使用ip link add link eth0 name eth0.333 type vlan id 333命令,eth0.333獲取與eth0. 我是否更正了伺服器根據 VLAN 標籤辨識接收到的幀,或者如果 VLAN 標籤失去,那麼來自交換機的幀是給eth0自己的?

vlan id預設行為是添加一個介面,該介面僅接受 802.1q 欄位與此給定介面相同的數據包。

以一種非常簡單的方式,Mac 地址將與父地址相同,因此數據包被傳遞到 phy 介面,並由核心處理,在源 mac 地址欄位之後搜尋 802.1q 標記欄位。該欄位將使用0x8100 EtherType標識。最後 12 位定義 vlan id。

在此處輸入圖像描述

此乙太網幀將刪除標籤並傳送到 vlan 介面。您可以在兩個介面上使用 tcpdump 並 ping 一個eth0.333. 您只能在以下位置看到輸出eth0

# tcpdump -ni eth0 vlan 333
# tcpdump -ni eth0.333 vlan 333

反向流量方向的預設行為將是標記和傳遞(可以配置)。

如果要創建具有與父級不同的 Mac 地址的虛擬介面,則必須使用macvlaniputils2 選項。請記住,您的交換機可能有一些與 mac 相關的限制,並阻止來自這個新創建的介面的流量。

是的,你是對的。如果沒有標籤,流量將被傳遞到您的物理介面。您的配置將定義數據包是否被接受。

引用自:https://unix.stackexchange.com/questions/191023