论坛风格切换切换到宽版
  • 774阅读
  • 8回复

[问题求助]Iptables奇怪的问题 [复制链接]

上一主题 下一主题
离线canko.
 
发帖
1960
C币
-199371
威望
333
贡献值
1
银元
-1
铜钱
4286
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
Linux se.rver. 192.168.1.113上面执行.
iptables -t nat -A POSTROUTING -p tcp  -j SNAT --to 192.168...1.233.

它连接其它Server都不通了(telnet 192.1.68.1.111 22)--正常,但是其它Server连它的时.候都正常的。tcpdump.发现它连其它Server的时候,SNAT.发生作用,源地址被改变了,但是其它Server连它的时候,SNAT怎么不起作用???服务器

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线wbkjiang.
发帖
2041
C币
-60548
威望
372
贡献值
1
银元
-1
铜钱
4538
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13


QUOTE:它连接其它Server都不通了(telnet 192.168.1.111 22)--正常,但是其它Server连它的时候都正常的

没明白你这句话的逻辑
不知道你要实现什么,也许你应该详细理解一下 SNAT 与 DNAT 的作用和区别

离线fff000.
发帖
2145
C币
-60561
威望
396
贡献值
1
银元
-1
铜钱
4779
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
有两台机器192.168.1.113,192.168.1.111 ,地址192.168.1.233不存在
113上面做了iptables -t nat -A POSTROUTING -p tcp  -j SNAT --to 192.168.1.233后

113上面执行telnet 192.168.1.111 22 不通了
但是 112上面执行telnet 192.168.1.113 22 还是通的?

离线pre8.
发帖
2069
C币
-60870
威望
354
贡献值
1
银元
-2
铜钱
4484
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13


QUOTE:113上面执行telnet 192.168.1.111 22 不通了
但是 112上面执行telnet 192.168.1.113 22 还是通的?

111 上抓包看到的是来自 233 的地址吧?这是由于 SNAT 的作用
至于 112 telnet 113 没问题,是由于你没设置 DNAT

你应该先清楚自己要做什么,然后好好看看 SNAT 与 DNAT 的功能作用与区别,再考虑如何去做
而不是一上来就做,然后再问为什么不行

离线森帝.
发帖
1943
C币
-61022
威望
362
贡献值
1
银元
-2
铜钱
4367
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
对网络不是很了解,但是具体到这个问题,我比较疑惑的是,112 telnet 113 的时候,113返回112的数据包为什么SNAT起作用,如果起作用了telnet也就不成功了。
我理解的是,112 telnet 113时候,113返回112的数据包, 跟113 telnet 112 ,113发出的数据包走的是一个路径,SNAT也应该起作用才对。 不知道我哪里理解错了?

离线喜多多.
发帖
2009
C币
-235365
威望
366
贡献值
1
银元
-5
铜钱
4496
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
说实话,我还真没看懂搂主在说什麽。SNAT只对服务器内网地址主动发出的数据包作地址转换,DNAT在服务器外网进入内网地址进行转换。一个是从内向外,一个是外到内。希望有所帮助。

发帖
2032
C币
-60525
威望
390
贡献值
1
银元
-5
铜钱
4497
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
LZ的实验我重新做了,和LZ的结果一样。
原因我猜想如下:
因为IPTABLES是有状态机制的,从外网的访问显然没有触发状态机制。
所谓的DNAT 和SNAT,都是地址装换,DNAT标志这触发状态机制的流量是来自外部或经过自身进入的,SNAT表示触发的流量是来自内部或经过自身出去的。所谓的源和目的更精确的理解应该是触发NAT的方向。

如果按照这个理解的话,上面的结果就很明显了。而这种NAT的思路恰恰也是CISCO的NAT的思路,可以说完全一致。

离线kaobo.
发帖
2065
C币
-60356
威望
403
贡献值
1
银元
-2
铜钱
4722
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13


QUOTE:LZ的实验我重新做了,和LZ的结果一样。
原因我猜想如下:
因为IPTABLES是有状态机制的,从外网的访问显然没有触发状态机制。
所谓的DNAT 和SNAT,都是地址装换,DNAT标志这触发状态机制的流量是来自外部或经过自身进入的,SNAT表示触发的流量是来自内部或经过自身出去的。所谓的源和目的更精确的理解应该是触发NAT的方向。

如果按照这个理解的话,上面的结果就很明显了。而这种NAT的思路恰恰也是CISCO的NAT的思路,可以说完全一致。


prerouting ---------------->forward----------------------->postrouting
                            |                                    |
                            |                                    |
                            |                                    |
                            |                                    |
                         INPUT                            OUTPUT
                            |                                    |
                            |                                    |
                            |-------LOCALHOST----->|

"SNAT表示触发的流量是来自内部或经过自身出去的" 斑竹的意思  prerouting->forward-->postrouting 走这个路径的包SNAT触发;
113 telnet 112主动发出的包走路径localhost->output->postrouting ,但是112 telnet 113的TCP应答包也应该走路径localhost->output->postrouting ???(这里理解有没有问题?),如果走这个路径SNAT不触发的原因?Iptables有状态信息,应答包不触发SNAT.

离线bakkey.
发帖
2046
C币
-235861
威望
424
贡献值
1
银元
-6
铜钱
4679
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13


QUOTE:原帖由 hmf888888 于 2007-9-2 18:43 发表


prerouting ---------------->forward----------------------->postrouting
                            |                                    |
                            |                       ...





我基本上也就这个意思。D还是S指的是先由那个方向的流量触发的。后续的包使用状态机,而不会触发动作。
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个