我在
http://www.diegolima.org/wordpress/?p=36发现了关于负载平衡的非常好的文章..
我无法实现它,因为我的要求与纯负载平衡略有不同.
我无法实现它,因为我的要求与纯负载平衡略有不同.
我们有两个ISP连接.我已将这两台路由器分别连接到eth0(公共IP 121.XXX.XX.XXX)和eth1(192.168.129.XXX)上的Linux服务器,我们的内部网络位于eth2(192.168.1.XXX)上.
我已经决定我们的FTP应该使用eth1接口,Squid应该使用eth0,Sendmail应该使用eth0,一些用户应该使用eth0,而其他一些用户应该使用eth1.
任何人都可以告诉我是否有可能,如何使用iptables和iproute2实现这一目标?
一步一步的帮助非常感谢.
提前致谢.
解决方法
配置IPROUTE2
echo "4 sendmail" >> /etc/iproute2/rt_tables ip route add 121.XXX.XX.XXX/MASK dev eth0 src 121.XXX.XX.XXX table sendmail ip route add 192.168.1.XXX/24 dev eth2 table sendmail ip route add default via GATEWAY1 table sendmail ip ru add from 121.XXX.XX.XXX lookup sendmail ip ru add fwmark 2 table sendmail ip route flush cache
配置IPTABLES
iptables -t mangle -I OUTPUT -p tcp --dport 25 -j MARK --set-mark 0x2 iptables -t mangle -I PREROUTING -i eth2 -p tcp --dport 25 -j MARK --set-mark 0x2 iptables -t nat -I POSTROUTING -s 192.168.1.XXX/24 -o eth0 -j SNAT --to-source 121.XXX.XX.XXX