Multiple Interfaces on Same Ethernet Broadcast Network
------------------------------------------------------
Due to the default ARP behavior on Linux, it is not possible to have
one system on two IP networks in the same Ethernet broadcast domain
(non-partitioned switch) behave as expected. All Ethernet interfaces
will respond to IP traffic for any IP address assigned to the system.
This results in unbalanced receive traffic.
If you have multiple interfaces in a server, either turn on ARP
filtering by entering:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
(this only works if your kernel's version is higher than 2.4.5),
NOTE: This setting is not saved across reboots. The configuration
change can be made permanent by adding the line:
net.ipv4.conf.all.arp_filter = 1
to the file /etc/sysctl.conf
or,
install the interfaces in separate broadcast domains (either in
different switches or in a switch partitioned to VLANs).
vi /etc/rc.local
也可尝试以下方法(本人测试, 不能很好解决)
增加以下内容:
route add -net 0.0.0.0 netmask 0.0.0.0 gw 0.1.52.1 dev eth0
route add -net 0.0.0.0 netmask 0.0.0.0 gw 0.1.52.1 dev eth2
ip route add to 0.0.0.0/0 via 10.1.52.1 dev eth0 table 10
ip route add to 0.0.0.0/0 via 10.1.52.1 dev eth2 table 20
ip rule add from 10.1.52.226/32 table 10
ip rule add from 10.1.52.228/32 table 20