雙網卡設置同一網段IP地址的問題
by mlsx
問題:
我在兩個網卡上面設置同樣網段的兩個IP(比如10.1.0.1和10.1.0.2),這時是可以正常工作的,但是如果我把第一快網卡(eth0)上的網 線拔掉之后,網絡就不通了,按照我的設想,當eth0不通時系統應該可以從eth1走,所以網絡應該還是通的,因為我設的是同一個網段的IP。而且,如果 我運行命令ifdown eth0之后,網就通了,也就是可以從eth1走了。
解答:
這樣配置是有問題的,當eth0的網線被拔掉時,系統並不能按您設想的改從eth1走,因為系統里面有一個路由表,當您設置IP的時候就會同時設置 路由表,當需要訪問外面的時候,系統會去路由表里面查詢,當查詢到第一個匹配的項目時就應用這個項目,也就是從這條路徑走了,當你拔掉eth0的網線的時 候,路由表並沒有同時改變,所以系統仍然會試圖從eth0走,並不會自動改成從eth1走。
但是,如果你運行命令ifdown eth0之后,系統就會把eth0這條路由刪除掉,之后就可以從eth1走了,網也就通了。
您可以使用命令route來查看系統路由表:
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref
Use Iface
10.0.0.0 * 255.0.0.0 U 0 0 0 eth0
10.0.0.0 * 255.0.0.0 U 0 0 0 eth1
像您設想的,您如果希望兩塊網卡能夠像熱備一樣工作,也就是一塊不通時可以從另外一塊走,那么您可以使用網卡綁定,在核心里面提供了網卡綁定的支持:
#insmod bonding mode=1
#ifconfig eth0 down
#ifconfig eth1 down
#ifconfig bond0 ipaddress
#ifenslave bond0 eth0
#ifenslave bond0 eth1
這樣設置之后,eth0和eth1就被綁定成了一個新的設備:bond0,這個設備可以工作在熱備(mode= 1)和負載均衡(mode=0)兩種方式下,任何一種工作方式下都可以實現您的設想,也就是任意拔掉一根網線,網絡仍然可以正常工作,只是負載均衡方式需 要兩個網卡同時工作,要求交換機上的對應網口也要做綁定,這個就需要查看交換機的使用說面了,如果您不清楚可以使用熱備的方式,它是一塊網卡工作,另外一 塊網卡做備份,如果工作的網卡出現問題,比如網絡段了,那么會馬上切換到另外一塊網卡上,保證網絡通暢,這種方式不要求交換機做特殊設置。