- 论坛徽章:
- 1
|
本帖最后由 dbsrv 于 2013-08-05 20:42 编辑
http://www.sunjianhe.com/?p=1095
找到篇文章,摘抄并修改一下,把他的eth1电信换成了eth1.202,联通eth2换成了eth1.201。
不过没解决,用tcpdump看,反倒是两个方向的访问数据包都在一个子接口进出里了。
rt_tables和ip rule部分略
#对通过联通IP进来的数据在链接跟踪记录上打标记100,通过电信IP进来的数据在链接跟踪记录上打上标记200
iptables -t mangle -A PREROUTING -i eth1.201 -m conntrack –-ctstate NEW -j CONNMARK –set-mark 0x100
iptables -t mangle -A PREROUTING -i eth1.202 -m conntrack –-ctstate NEW -j CONNMARK –set-mark 0x200
#转发出去的数据打上标记,同上
iptables -t mangle -A POSTROUTING -o eth1.201 -m conntrack --ctstate NEW -j CONNMARK –set-mark 0x100
iptables -t mangle -A POSTROUTING -o eth1.202 -m conntrack --ctstate NEW -j CONNMARK –set-mark 0x200
#转发到内网的数据包从链接跟踪记录还原标记到数据包中的mark字段
iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
#本地出去的数据包从链接跟踪记录还原标记到数据包中的mark字段
iptables -t mangle -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
#关键,策略路由发现标识为200的数据包走电信网关,标识为100的数据包走联通网关
ip rule add fwmark 0×100 table 201
ip rule add fwmark 0×200 table 202
4,端口映射
iptables -t nat -A PREROUTING -p udp --dport 20000 -j DNAT –to $SRV
iptables -t nat -A POSTROUTING -s $NET_LAN -o eth1.201 -j SNAT --to $IP_UNICOM
iptables -t nat -A POSTROUTING -s $NET_LAN -o eth1.202 -j SNAT --to $IP_TELECOM |
|