首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么traceroute要为每一跳打印目标ip而不是路由器ip?

为什么traceroute要为每一跳打印目标ip而不是路由器ip?
EN

Server Fault用户
提问于 2020-07-30 16:26:16
回答 1查看 175关注 0票数 0
代码语言:javascript
运行
复制
$ traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  8.8.8.8  3.158 ms  4.246 ms  5.054 ms
 2  * * *
 3  8.8.8.8  9.121 ms  10.245 ms  9.327 ms
 4  8.8.8.8  12.134 ms  13.160 ms  13.144 ms
 5  8.8.8.8  9.727 ms  10.938 ms  9.899 ms
 6  * * *
 7  8.8.8.8  8.138 ms  12.061 ms  11.841 ms

$ traceroute -n --icmp 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  8.8.8.8  2.046 ms  1.976 ms  1.962 ms
 2  8.8.8.8  9.557 ms  9.547 ms  9.536 ms

$ traceroute -n --udp 8.8.8.8

这是默认模式的正确跳数(上面的第一次调用),有正确的时间,但是每跳路由器的IP在哪里?

traceroute 2.1.0

清除了iptable:iptables -F && iptables -F -t nat在路由表中没有什么特殊的内容:

代码语言:javascript
运行
复制
$ ip route
default via 192.168.0.1 dev eth0 proto static 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.9

UPDATE:主机之间的区别在于主机的IP分配是通过来自路由器的DHCP (traceroute工作)还是在客户端配置中静态分配(traceroute中断)。

EN

回答 1

Server Fault用户

发布于 2020-07-31 02:19:35

解决这个问题的方法是让NATing路由器通过DHCP将IP分配给客户端,而不是在客户机中设置静态IP配置。

据推测,路由器中的NAT配置在注册到路由器的DHCP服务器的客户端与仅显示在交换机子网上的客户端之间存在某种微妙的差异。我尽力了,但没有找到路由器配置的确切内容,除非客户端使用DHCP,否则不会发生这种情况。我试着通过web接口在路由器的数据库中注册静态客户端,但是没有什么区别。还查看了telnet接口,但是shell中没有iptables,可以在命令和转储中找到任何相关的内容。路由器拥有专有固件。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1027345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档