iptables 打mark 标记
一台网关3块网卡,2块接外网(eth0,eth1),一块接内网(eth2), 内网ip段为192.168.0.0/24
eth0: 10.11.12.13
eth1: 20.21.22.23
eth2: 192.168.0.1
此网关默认路由是10.11.12.13
有2个路由表main和adsl
main表的默认路由是10.11.12.13
adsl表的默认路由是20.21.22.23
我现在想控制内网的某台机器192.168.0.5不走10.11.12.13路由,而走20.21.22.23路由
于是在iptables中添加 iptables -t mangle -A PREROUTING -i eth2 -s 192.168.0.5 -j MARK --set-mark 0x1
并且执行ip rule add fwmark 0x1 table adsl
发现192。168。0。5不能上网
但是如果我不添加ip rule add fwmark 0x1 table adsl 规则
而改为添加ip rule add from 192.168.0.5 table adsl,此时192.168.0.5能上网
困惑: 为什么同样是走adsl表,打了标签后,却不能上网了,难道是我的模块没有加载?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当连接210.21.218.67 的80端口
查看了ip_conntrack,
tcp 6 58 SYN_RECV src=192.168.0.5 dst=210.21.218.67 sport=3913 dport=80 src=210.21.218.67 dst=10.11.12.13 sport=80 dport=3913 use=1
出现syn_recv说明,tcp3次握手已完成两次了,但就是不能established
困惑:
一台网关2块网卡,1块接外网(eth0),一块接内网(eth1), 内网ip段为192.168.0.0/24
eth0: 10.11.12.13
eth1: 192.168.0.1
也只有main一个主路由表
正常情况下,内部任何机器都可以上网,没有做任何标记。但是,当我随便给某台机器打上标记,他就上不了网了
iptables -t mangle -A PREROUTING -i eth1 -s 192.168.0.5 -j MARK --set-mark 0x1
ip rule add fwmark 0x1 table main
依然还是不能上网。
192.168.0.5依然是走的main表
困惑:为什么打了标签网络就不通畅了?
换种方式说: