linux – 基于策略的路由

前端之家收集整理的这篇文章主要介绍了linux – 基于策略的路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 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

猜你在找的Linux相关文章