Ethernet

為什麼虛擬網卡之一稱為bond0?

  • April 16, 2019

我剛剛接手了一個很老的網路集群(沒有留下任何文件和手冊),所以我不得不自己想像配置的含義。一些伺服器的 IP 配置如下(當我發出 ifconfig 時)

bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>
       inet 10.1.237.11  netmask 255.255.255.192  broadcast 10.1.237.63
       ether 6c:90:af:68:5a:28  txqueuelen 0  (Ethernet)

bond0.901: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
       inet 147.146.67.13  netmask 255.255.255.240  broadcast 147.146.67.15
       ether 6c:90:af:68:5a:28  txqueuelen 0  (Ethernet)

bond0.901:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
       inet 147.185.211.5  netmask 255.255.255.0  broadcast 147.185.211.255
       ether 6c:90:af:68:5a:28  txqueuelen 0  (Ethernet)

eth2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>
       ether 6c:90:af:68:5a:28  txqueuelen 1000  (Ethernet)

eth3: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>
       ether 6c:90:af:68:5a:28  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
       inet 127.0.0.1  netmask 255.0.0.0
       loop  txqueuelen 0  (Local Loopback)

從同一個mac地址,我可以看到只有一個網卡。有人告訴我,bond0 用於內部 IP,bond0.901 用於 Internet IP,bond0.901:1 用於 Anycast IP。所以我的問題是,eth2 和 eth3 是做什麼用的,為什麼其中一個虛擬 NIC 稱為bond0,有什麼需要綁定在一起的嗎?

當我發出命令:lspci|grep Ether 時,我得到以下資訊:

01:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
01:00.2 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
01:00.3 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
04:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
04:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
07:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
09:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
09:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

以上是否意味著我有 10 個物理網卡?

我懷疑eth2, 和eth3是構成設備的物理設備bond0。查看主/從標誌。但是您的系統可能有 2 個物理介面,這些介面在某種容錯或鏈路聚合設置中組合在一起。嘗試查看這些查詢物理硬體的工具的輸出lspci | grep Ether,或者lshw -class network。您可能會看到至少 2 個介面。

bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>
eth2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>
eth3: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>

該文件的內容/proc/net/bonding/bond0會告訴你更多。

bond0.901是一個允許在bond0 上標記vlan 901 的虛擬設備。

bond0.901:1只是bond0.901VLAN 901 介面的輔助 IP 地址。這不是一個真實的界面,甚至不是一個虛擬的界面。這個“界面”只是 ifconfig 向您顯示第二個地址的一種方式。但它是一個已棄用的工具,可能會給您帶來像這樣令人困惑的輸出。使用ip addr, 或ip link代替。

引用自:https://serverfault.com/questions/963188