快捷搜索:   nginx

linux 双线-自动选择指定出口-(策略Route和iptable)

机器接了双线,电信和网通线路,代理下面的客户端上网,根据客户端访问的请求自动选择对应的线路出去,如,客户端访问网通,就从网通出去。

一个根据路由,一个根据table中的一个标记功能实现。由于自己现没有此环境,所以没有在实践去使用,但是还是将自己的理解记录下来,做为自己学习的笔记和以后工作中的需要。

第一方法:

实现方式是这样,三块网卡,eth0 为LAN口,eth1 为第一个WAN口,接电信线路,eth2为第二个WAN口,接网通线路。我这里都是按照固定IP方式配置的,如果是要PPPOE则自己配置PPPOE部分,我这里主要是给大家提供策略部分。
将从两个WAN口出去的数据包MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

然后,给系统增加一个标示为100的路由表,增加一个默认网关,这个默认网关是网通提供的网关。 ip route add 0/0 via 218.59.*.* table 100
然后给系统主路由表配置网关,这个网关是电信的网关
ip route add 0/0 via 219.146.*.*
然后添加路由规则,让所有通向网通的数据查询标示为100的路由表:
ip rule add to 60.0.0.0/13 table 100
ip rule add to 60.8.0.0/15 table 100
ip rule add to 60.10.0.0/16 table 100
这个例子,默认使用的电信网关,也就是默认都使用电信线路,而对于符全ip rule中规则的使用table 100表中定义的路由,也就是网通。

第二方法:

# echo "200 DIANXIN" >;>; /etc/iproute2/rt_table(这个是添加到文件,执行一次即可)
# ip route replace default via 222.168.1.2 table DIANXIN
# ip rule add fwmark 1 table DIANXIN(这个注意顺序,用ip rule可以查看)
# iptables -t nat -F
# iptables -t mangle -F
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1
# iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $接网通线路网卡的地址
# ip route flush cache

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论