今天遇到个囧事,使用两个网卡配置同一网段的不同IP地址,结果发现,和Windows下的状况不太一样。Linux默认情况下,只有一个默认网关,路由走一个设备出局。因此,非默认路由的设备将没有流量,也就是不通。。。

 

解决方法,添加非默认路由表

 

route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.1.254 dev eth0
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.1.254 dev eth1
#添加两个设备的默认路由,其中有一条是默认存在的,执行时会提示
ip route add via 172.16.1.254 dev eth0 table 10
ip route add via 172.16.1.254 dev eth1 table 20
#添加路由表10和20,指定路由分别从eth0和eth1出,均使用172.16.1.254网关
ip rule add from 172.16.1.11/32 table 10
ip rule add from 172.16.1.12/32 table 20
#添加路由规则,指定172.16.1.11的数据流量使用table 10路由表;
#指定172.16.1.12的数据流量使用table 20路由表

 

最后,将

route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.1.254 dev eth0
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.1.254 dev eth1
ip route add via 172.16.1.254 dev eth0 table 10
ip route add via 172.16.1.254 dev eth1 table 20

添加到/etc/init.d/network中start项中,使network 在start和restart的时候自动加载该路由条目。