关于iptables的转发的疑惑

发布于 2022-09-18 02:39:50 字数 866 浏览 16 评论 0

本人新学Iptables,看到网上很多用两个网卡,分别接内网和外网的时候写forward规则,例如下面这个:

iptables -A PREROUTING -i eth0 -d 202.110.123.100 -j DNAT --to 192.168.1.100

iptables -A PREROUTING -i eth0 -d 202.110.123.200 -j DNAT --to 192.168.1.200

其次,对防火墙接收到的源ip地址为192.168.1.100和192.168.1.200的数据包进行源NAT(SNAT):

iptables -A POSTROUTING -o eth0 -s 192.168.1.100 -j SNAT --to 202.110.123.100

iptables -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT --to 202.110.123.200

这样,所有目的ip为202.110.123.100和202.110.123.200的数据包都将分别被转发给192.168.1.100和192.168.1.200;而所有来自192.168.1.100和192.168.1.200的数据包都将分 别被伪装成由202.110.123.100和202.110.123.200,从而也就实现了ip映射。

那么系统将地址映射完成后,是如何知道数据应该从哪个网卡发出去呢?
是不是如果用nat表,数据从一个网卡进,系统必然会用另一个网卡作为出?要是这样的话那机器有两个以上的网卡怎么办?谢谢

[ 本帖最后由 juffun 于 2009-8-29 14:48 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

瞳孔里扚悲伤 2022-09-25 02:39:50

-o eth0 不就是出口吗

寂寞清仓 2022-09-25 02:39:50

iptables -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT --to 202.110.123.200

这个语句的意思是说:从eth0发出的源地址是192.168.1.200的映射为202.110.123.200呢?还是说源地址为192.168.1.200的数据从eth0发出并把其映射为202.110.123.200?

谢谢啦

夜光 2022-09-25 02:39:50

源地址为192.168.1.200的数据从eth0出去,把其映射为202.110.123.200

何其悲哀 2022-09-25 02:39:50

有个NAT映射表

你在看孤独的风景 2022-09-25 02:39:50

这个你配置都是错误的

iptables -A PREROUTING -i eth0 -d 202.110.123.100 -j DNAT --to 192.168.1.100

iptables -A PREROUTING -i eth0 -d 202.110.123.200 -j DNAT --to 192.168.1.200

只需要上述配置就行了,在linux kernel内部建立一个nat表,当数据包回来的时候,自动转化地址
不需要再转化源地规则

如果再转化!!!

[ 本帖最后由 hejin_some 于 2009-11-2 10:33 编辑 ]

夏雨凉 2022-09-25 02:39:50

6楼正确,只需要指定一次的语句就可行

淡淡離愁欲言轉身 2022-09-25 02:39:50

数据包从哪个网卡进,哪个网卡出不是iptables来决定,而是走路由表里的路由。
iptables NAT只是地址的转换,并有一个转换的映射表。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文