文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>iptables中的MARK在iproute中的使用

iptables中的MARK在iproute中的使用

时间:2004-12-16  来源:NetDC

公司的NAT有两个出口,一个广电的,一个电信的,最近在玩irc,发现从电信的口无法访问国外的一些irc服务器,从广电的可以走,于是考虑将irc从广电的出口走。

考虑种种,决定用iptables来做MARK,然后使用iproute来做策略。
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m tcp --dport 6667 -j MARK --set-mark 1(原先的文档漏了-t mangle)
在/etc/iproute2/rt_tables中添加一个irc的路由表,
echo "200 irc" >> /etc/iproute2/rt_tables
然后,做策略
ip ru add fwmark 1 table irc(将MARK为1的包丢到irc这个路由表中)
ip ro add default *.*.*.* dev eth0 src *.*.*.* table irc(设置irc这个路由表的默认路由)
到这里,基本的已经做完了,
有两个注意点:
1.这些执行完后需要再执行ip ro flush cache 来使路由立即生效;
2.将reverse path filtering关闭,
echo "0" > /proc/sys/net/ipv4/conf/eth0/rp_filter(这里设置的是eth0的接口,因为广电的出口设置在这里了)
这个如果打开,那么因为回来的数据包不会过irc的路由表,就会被系统丢掉(系统找不到这个包出去时的路由!!!)

如果有网友看到我的这篇文章,并参考这个来做一些策略路由的话,我假定你对iptables和iproute都有一定的了解。在我这里,原先NAT已经是正常工作的了,而且两个出口都做了SNAT。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载