V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
publicid999
V2EX  ›  问与答

请教一个一直不明白的问题:为什么 tracert 的时候会有两个 192.168.1.1

  •  
  •   publicid999 · 2015-08-06 15:59:51 +08:00 · 2537 次点击
    这是一个创建于 3404 天前的主题,其中的信息可能已经有所发展或是发生改变。

    双层NAT,外层是192.168.1.0/24,内层是172.16.0.0/16,tracert的时候会出来两个192.168.1.1,不明白为什么第一个也是192.168.1.1:

    C:\Users\user>tracert 8.8.8.8

    Tracing route to google-public-dns-a.google.com [8.8.8.8]
    over a maximum of 30 hops:

    1 1 ms 1 ms 1 ms 192.168.1.1
    2 1 ms 1 ms 2 ms 192.168.1.1
    3 15 ms 4 ms 7 ms (我的公网IP)

    试图tracert两个路由器的结果:
    C:\Users\user>tracert 172.16.1.1
    Tracing route to 172.16.1.1 over a maximum of 30 hops
    1 1 ms 1 ms 1 ms 172.16.1.1
    Trace complete.

    C:\Users\user>tracert 192.168.1.1
    Tracing route to 192.168.1.1 over a maximum of 30 hops
    1 1 ms 1 ms 1 ms 192.168.1.1
    Trace complete.

    1 条回复    2015-08-07 01:13:46 +08:00
    qybei
        1
    qybei  
       2015-08-07 01:13:46 +08:00   ❤️ 1
    因为TTL=0或者TTL=1的时候都会回复ICMP不可达消息。出现两次192.168.1.1说明你跟192.168.1.1之间有一台路由器,他收到TTL=1的报文,理论上他应该丢弃并给你回个消息,但实际上他把TTL改成了0并继续转发出去,到了192.168.1.1才给你回的消息;第二次PC发出TTL=2的ICMP时,到192.168.1.1时TTL=1,所以他又给你回了一个消息。

    要确认是不是这样,可以抓个包,看看第一个ICMP回复中的原始报文的TTL是否为0。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2701 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:30 · PVG 15:30 · LAX 23:30 · JFK 02:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.