- 论坛徽章:
- 2
|
有如下脚本
#!/bin/sh
ip route del default via 192.168.1.1 dev eth2
ip route add 193.254.18.0/24 dev eth1 src 193.254.18.51 table T1
ip route add default via 193.254.18.1 table T1
ip route add 192.168.1.0/24 dev eth2 src 192.168.1.52 table T2
ip route add default via 192.168.1.1 table T2
ip route add 193.254.18.0/24 dev eth1 src 193.254.18.51
ip route add 192.168.1.0/24 dev eth2 src 192.168.1.52
ip route add default scope global nexthop via 193.254.18.1 dev eth1 weight 1 nex
thop via 192.168.1.1 dev eth2 weight 1
ip rule add from 193.254.18.51 table T1
ip rule add from 192.168.1.52 table T2
ip route flush cache
route add -net 192.168.18.0 netmask 255.255.255.0 gw 172.16.8.1 eth0
route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.8.1 eth0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -s 172.16.8.0/22 -j SNAT --to-source 193.254.18.51
iptables -t nat -A POSTROUTING -o eth2 -s 172.16.8.0/22 -j SNAT --to-source 192.168.1.52
这个脚本用来实现流出数据的负载均衡,通常情况下,运行很正常,但有一个问题如下:
如果我ifdown eth2,然后再ifup eth2,这个时候,ping www.baidu.com -I eth1就不通,ping www.baidu.com -I eth2就通.
如果我ifdown eth1,然后再ifup eth1,这个时候,ping www.baidu.com -I eth2就不通,ping www.baidu.com -I eth1就通.
在这种情况下,如果我重新启动机器,用eth1和eth2 ping 百度,全都是通的.
这是为什么呢? |
|