双网卡设置同一网段IP地址的问题(2)
双网卡设置同一网段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)两种方式下,任何一种工作方式下都可以实现您的设想,也就是任意拔掉一根网线,网络仍然可以正常工作,只是负载均衡方式需 要两个网卡同时工作,要求交换机上的对应网口也要做绑定,这个就需要查看交换机的使用说面了,如果您不清楚可以使用热备的方式,它是一块网卡工作,另外一 块网卡做备份,如果工作的网卡出现问题,比如网络段了,那么会马上切换到另外一块网卡上,保证网络通畅,这种方式不要求交换机做特殊设置。