我有一個紅帽企業 Linux 6.3 虛擬機器 (VMware vsphere)。
我從兩個介面建立了一個綁定,它可以工作,但僅在eth0
處於活動狀態時有效。當我使用ifdown eth0
或echo -eth0 > /sys/class/net/bond0/bonding/slaves
失去與綁定的網路連線時。
我可以在 cat 上看到/proc/net/bond0
兩個介面處於綁定狀態,並且當eth1
處於活動狀態時它不起作用。
如果我eth0
再次添加回來,它仍然不起作用,因為 eth1 是活動的。只有當我刪除並重新添加eth1
到它才有效的債券時(使其處於eth0
活動狀態)
當然,該債券處於容錯模式。
奇怪的是,如果我eth1
從綁定中刪除並將其定義為一個簡單的接口,它就可以正常工作!
我嘗試重新啟動(多次),但在網路上找不到任何幫助。我什至嘗試刪除該介面(從 VMware 端)並添加一個新介面,但這並沒有幫助。有人有主意嗎?
有些指令可能不準確,因為我是用手機記憶寫的,但我想你知道我的意思,只是不要暗示問題是拼字錯誤或文法錯誤。
先致謝
答案1
我解決了。 Linux 端一切正常。
問題出在VMware方面:連接埠群組的安全設定是拒絕MAC位址更改,一旦我將其更改為接受它就可以了。
此設定一旦設定為拒絕,將不允許虛擬機器使用與 vSphere 提供的 MAC 位址不同的 MAC 位址。
使用 bond 時,即使其他 NIC 發生故障,MAC 也保持不變。因此,在我的例子中,綁定 MAC 設定為 eth0,一旦故障轉移到 eth1,MAC 保持不變 - 這與 eth1 的「實體」MAC 不同,因此被 vswitch 拒絕。