免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3757 | 回复: 12
打印 上一主题 下一主题

[系统管理] iptables 操作nat表的OUTPUT链,这样不行吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-08 23:12 |只看该作者 |倒序浏览
nat表中有三条chain,可为什么我对OUTPUT做nat会失效了?

实验场景如下:
A主机:192.168.101.17
B主机:192.168.101.27
C主机:192.168.101.254

在B主机上添加规则如下:
iptables -t nat -A OUTPUT -p icmp --icmp-type 0 -j DNAT --to-destination 192.168.101.254

在A主机上ping B主机:ping 192.168.101.27

对于回应包,按照设置的规则,应该会把回应包的目的IP改成192.168.101.254,这样A ping B必然是不通的。

但实验结果相反,是能通的,这是为什么了?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2015-09-09 08:17 |只看该作者
DNAT应该在PREROUTING里面做,SNAT在POSTROUTING里面做

论坛徽章:
0
3 [报告]
发表于 2015-09-09 09:00 |只看该作者
回复 2# chenyx

是的,我只是好奇,想验证一下,因为man手册里面指明,做nat可以在三个地方,除了PREROUTING、POSTROUTING还有OUPUT,
我想知道OUTPUT能否做nat,如果能做,那为什么按照实验那样做,会不行了?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
4 [报告]
发表于 2015-09-09 09:03 |只看该作者
一般在INPUT、OPUPUT、forward里面做过滤

论坛徽章:
0
5 [报告]
发表于 2015-09-09 09:38 |只看该作者
chenyx 发表于 2015-09-09 09:03
一般在INPUT、OPUPUT、forward里面做过滤

嗯,filter表有这三条链,但我不是做过滤,我只是想在OUTPUT做nat,将icmp回应包的目的ip改了,虽然没什么实际意义,但我只是想知道为什么OUTPUT不能做nat,因为手册里说了,可以在OUTPUT做nat的,所以我想验证一下为什么和手册说的不一样

论坛徽章:
17
巨蟹座
日期:2014-11-20 23:04:5215-16赛季CBA联赛之北控
日期:2018-08-01 16:08:4015-16赛季CBA联赛之浙江
日期:2017-12-08 11:25:2415-16赛季CBA联赛之四川
日期:2016-11-21 00:16:50操作系统版块每日发帖之星
日期:2016-07-28 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-25 15:36:04操作系统版块每日发帖之星
日期:2016-02-12 06:20:002015亚冠之西悉尼流浪者
日期:2015-08-28 14:48:322015亚冠之平阳省
日期:2015-08-19 14:54:162015亚冠之武里南联
日期:2015-07-07 10:49:112015亚冠之城南
日期:2015-06-22 10:15:002015亚冠之山东鲁能
日期:2015-06-18 18:03:44
6 [报告]
发表于 2015-09-09 14:07 |只看该作者
ping是基于icmp协议的,就不适用的tcp,你设定这个是不可能生效的

论坛徽章:
0
7 [报告]
发表于 2015-09-09 14:15 |只看该作者
回复 6# yyu0378

不是的,我在B主机如果添加这样一条规则:
iptables -t nat -A OUTPUT -p icmp --icmp-type 8 -j DNAT --to-destination 192.168.101.254

将所有B主机的icmp请求的目的ip变成192.168.101.254

这就好玩儿了,在B主机ping 任何一个ip地址都能通,因为它在OUTPUT链的时候已经把目的ip换成192.168.101.254了,用tcpdump就可以看出来。

下面是我任意ping ip的结果   

[root@localhost protocol]# ping 192.168.1
PING 192.168.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.508 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.510 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=0.388 ms

[root@localhost protocol]# ping 1.1.1.7
PING 1.1.1.7 (1.1.1.7) 56(84) bytes of data.
64 bytes from 1.1.1.7: icmp_seq=1 ttl=64 time=0.484 ms
64 bytes from 1.1.1.7: icmp_seq=2 ttl=64 time=0.397 ms
64 bytes from 1.1.1.7: icmp_seq=3 ttl=64 time=0.396 ms

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
8 [报告]
发表于 2015-09-09 15:25 |只看该作者
这个不就是你原来需要的结果吗

论坛徽章:
0
9 [报告]
发表于 2015-09-09 15:30 |只看该作者
回复 8# chenyx

这个是在B主机主动发ping,能在OUTPUT将目的ip改了。
如果B主机是进行ping回应,在OUTPUT就不能将目的ip改了。

难道ping回应不走OUTPUT吗,对于icmp回应包,应该也算是机器自己发出的,为什么就不能在OUTPUT给修改了?

正因为出现了这两种结果,所以我才会有疑惑

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
10 [报告]
发表于 2015-09-09 15:32 |只看该作者
回应数据包应该走的是filter里面的output吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP