多年来一直不解 iptables -j MARK --set-mark 谁能指导一下如何使用

etracer 2012-05-08 01:54:13
比如 iptables -t mangle -A PREROUTING -s 192.168.1.3 -j MARK --set-mark 60
我加了标记,怎么用啊?怎么拿到mark 60 的 数据啊?
如果可以的话,希望举一个完整简单的例子,先谢谢
...全文
879 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bugs2k 2012-05-08
  • 打赏
  • 举报
回复
公司的NAT有两个出口,一个广电的,一个电信的,最近在玩irc,发现从电信的口无法访问国外的一些irc服务器,从广电的可以走,于是考虑将irc从广电的出口走。

考虑种种,决定用iptables来做MARK,然后使用iproute来做策略。
iptables -A PREROUTING -i eth1 -p tcp -m tcp --dport 6667 -j MARK --set-mark 1
在/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的接口,因为广电的出口设置在这里了)

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧