ping 外网,网关设备转内网的问题

2014-05-21 11:05:31 +08:00
 ryanking8215
网关在转内网ip包时,会将ip包的src addr改成自己的外网ip addr.
比如
网关内网ip段为192.168.16.x,内网下有192.168.16.100;192.168.16.101 2台主机,分别简称N100,N101。
网关外网地址是192.168.1.2,外网有主机192.168.1.22,简称W22

比如 N100 ping W22, 发送端iphdr的src addr为192.168.16.100,dst addr为192.168.1.22
W22接收端收到的iphdr的src addr为192.168.1.2,被网关更改过了。W22的icmp reply也是发给192.168.1.2的,由网关再转去对应的内网。


那如果有2台内网主机同时ping呢?对W22接收端的src都是192.168.1.2,网关设备如何判断转给哪个内网呢?是依靠icmp的id吗?

如果是依靠ip的payload内容来判断的话,是不是自定义的ip protocol的packet就无法做到穿透网关了?


比较罗嗦,希望大家能看完,但我感觉写的很清楚了额。谢谢各位
3094 次点击
所在节点    程序员
7 条回复
Gothack
2014-05-21 11:10:28 +08:00
你可以具体看看NAT的过程。。。。
ryanking8215
2014-05-21 11:20:50 +08:00
NAT大多说的是TCP,UDP的,网关出去时会映射port,可以根据ip:port来确定内网。之前做过p2p,学习过4类NAT。

有讲NAT的书,我记得哪里看到过蛮详细的,现在翻翻都不知道在哪本书上,请大伙指条明路
riaqn
2014-05-21 11:41:35 +08:00
wuwuyun
2014-05-21 16:50:40 +08:00
NAPT啊或者叫PAT 每个网关IP可以有6w多个端口给内网做映射了 谷歌一下不难吧
http://www.lmgtfy.com/?q=nat+icmp LS+1
ryanking8215
2014-05-21 17:08:04 +08:00
谢楼上2位,本意是想了解,没有五元组的ip包如何穿透NAT。
看来是具体情况具体分析,如icmp包,NAT会使用icmp里的type和id作为port,组成一个五元组。
另外一些如ESP等,只能在上面封一个ip+udp的头。
bravluna
2014-05-21 23:53:24 +08:00
内网到外网要经过 NAT 即网络地址转换,NAT 不是个协议,其实就是内网 ip:port 到 外网 ip:port 的映射,用软件就可以实现,虽说简单,大量节省 ip 地址呀。
另外 192.168 是专用网地址段,根本就不会出现在外网上,题主如何在外网上还有 192.168 的 ip?
ryanking8215
2014-07-22 22:49:40 +08:00
@bravluna 可能表述不正确,本意是内网->NAT->另一个内网,没有外网(internet)之说,只不过是为了区分2个内网,所以这么说了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/113537

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX