Linux
當另一個也出現故障時,網卡也會出現故障
我有帶兩個網卡的 debian 8,
eth0
和eth1
.
eth0
是 192.168.3.43 和eth1
192.168.3.44。兩者都由 dhcp 配置:
auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet dhcp
這是路由表:
Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.3.1 0.0.0.0 UG 0 0 0 eth0 192.168.3.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0 192.168.3.0 0.0.0.0 255.255.255.128 U 0 0 0 eth1
問題是如果我從 eth0 上拔下電纜,即使從同一 192.168.3.x 網段中的機器上,我也無法 ping eth1。
如果其中一個在不同的網段中,我會理解的,因為路由表顯示預設網關位於 eth0 上,但當這種情況發生在我的主機所在的網段上時,我不會。
我需要什麼才能使兩張卡彼此獨立工作?
你正在以錯誤的方式解決這個問題。您要做的是將兩個介面通道綁定到一個虛擬介面中
bond0
,並將您的所有IP 地址提供給bond0
. 如果bonding配置為最簡單的模式active-backup,則不需要對交換機進行特殊配置;兩個物理介面之一將用於所有流量,除非並且直到鏈路消失,此時核心將切換到使用另一個介面。如果我理解正確,這就是你想要的。使用您正確配置的更智能的交換機,您可以為綁定配置更複雜的模式,這具有使用兩個NIC 並根據各種算法在它們之間共享流量的效果。
bond0
如果您需要係統具有多個不同子網的地址,則應在;之上使用 VLANning 再次,將需要轉換的縱容。在 debian 上配置通道綁定有很多指南;Debian wiki也有一個關於這個主題的頁面。
我認為路由表說明了這個問題:即使拔掉了電纜,電腦仍然更喜歡通過 eth0 的已死路由,而不是通過 eth1 的路由。如果沒有 NetworkManager 或類似的東西,Linux 在重新路由方面並不健壯。即使您 ping eth1 的 IP 地址,電腦也不一定使用該介面返回數據包;而是構造一個對 ping 的源 IP 的回复並發送,它將使用路由表來決定如何返回。