V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ryanking8215
V2EX  ›  程序员

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

  •  
  •   ryanking8215 ·
    ryanking8215 · 2014-05-21 11:05:31 +08:00 · 3210 次点击
    这是一个创建于 3831 天前的主题,其中的信息可能已经有所发展或是发生改变。
    网关在转内网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就无法做到穿透网关了?


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

    有讲NAT的书,我记得哪里看到过蛮详细的,现在翻翻都不知道在哪本书上,请大伙指条明路
    riaqn
        3
    riaqn  
       2014-05-21 11:41:35 +08:00
    wuwuyun
        4
    wuwuyun  
       2014-05-21 16:50:40 +08:00
    NAPT啊或者叫PAT 每个网关IP可以有6w多个端口给内网做映射了 谷歌一下不难吧
    http://www.lmgtfy.com/?q=nat+icmp LS+1
    ryanking8215
        5
    ryanking8215  
    OP
       2014-05-21 17:08:04 +08:00
    谢楼上2位,本意是想了解,没有五元组的ip包如何穿透NAT。
    看来是具体情况具体分析,如icmp包,NAT会使用icmp里的type和id作为port,组成一个五元组。
    另外一些如ESP等,只能在上面封一个ip+udp的头。
    bravluna
        6
    bravluna  
       2014-05-21 23:53:24 +08:00
    内网到外网要经过 NAT 即网络地址转换,NAT 不是个协议,其实就是内网 ip:port 到 外网 ip:port 的映射,用软件就可以实现,虽说简单,大量节省 ip 地址呀。
    另外 192.168 是专用网地址段,根本就不会出现在外网上,题主如何在外网上还有 192.168 的 ip?
    ryanking8215
        7
    ryanking8215  
    OP
       2014-07-22 22:49:40 +08:00
    @bravluna 可能表述不正确,本意是内网->NAT->另一个内网,没有外网(internet)之说,只不过是为了区分2个内网,所以这么说了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5487 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:57 · PVG 14:57 · LAX 22:57 · JFK 01:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.