Ip
多個 VLAN 子介面的情況下,伺服器如何辨識幀?
當我在 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 地址的虛擬介面,則必須使用
macvlan
iputils2 選項。請記住,您的交換機可能有一些與 mac 相關的限制,並阻止來自這個新創建的介面的流量。是的,你是對的。如果沒有標籤,流量將被傳遞到您的物理介面。您的配置將定義數據包是否被接受。