QUOTE:原帖由 jackleehong 于 2006-7-14 10:08 发表
我现在有两个ISP提供的上网,现在内网可以实现访问所有电信的网络,走默认的路由表,访问所有网通的网络走网通线路。
现在我的需求是:我要让所有访问网页和上QQ的员工都通过网通路由出去,我应改怎么样设置我的 ...
把所有 dport为 80(http),443(https),udp 8000(qq的有点麻烦,真正使用的时候用到了好几个port的,具体好像是4000-40004左右吧)的外出访问打mark ,然后ip 路由里设置一个表,表里设置 ip route add default via 网通 ,接着设置被mark的数据包 ip rule add 到这个表 里。
关键的命令大概是这么几条
关于iptables的
QUOTE:iptables -t mangle -I PREROUTING -p tcp --dport 80 -j MARK --set-mark mark编号
iptables -t mangle -I PREROUTING -p tcp --dport 443 --j MARK --set-mark mark编号
iptables -t mangle -I PREROUTING -p udp --dport 8000 -j MARK --set-mark mark编号
iptables -t mangle -I PREROUTING -p udp --sport 4000 -j MARK --set-mark mark编号
iptables -t mangle -I PREROUTING -p udp --sport 4001 -j MARK --set-mark mark编号
iptables -t mangle -I PREROUTING -p udp --sport 4002 -j MARK --set-mark mark编号
iptables -t mangle -I PREROUTING -p udp --sport 4003 -j MARK --set-mark mark编号
关于ip里设置的
QUOTE:#在/etc/iproute2/rt_tables里添加一个表名,比如 (89 T1)
ip route add 内网网络段 dev 内网网卡(比如eth0) table T1
ip route add default via 网通网关ip地址 dev 连接网通的那块网卡(比如eth2) table T1
ip rule add fwmark mark编号 table T1
#刷新route
ip route flush cache
用打mark的方式,理论上可以做到对所有的数据包进行标注,然后对应不同的route table 来决定其路由,其他还有一些做法,在当年johnbull讲课的录音中有。
[ 本帖最后由 skylove 于 2006-7-24 13:54 编辑 ]