首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解traceroute会话中的路由器行为

理解traceroute会话中的路由器行为
EN

Stack Overflow用户
提问于 2021-01-03 09:20:11
回答 1查看 130关注 0票数 0

我试图了解路由器对UDP和TCP数据包的行为。

我选择了一个网站,并使用traceroute使用UDP和TCP。

UDP的产出如下:

代码语言:javascript
运行
复制
yilmazali@udemy:~$ traceroute -v -m 15 metu.edu.tr
traceroute to metu.edu.tr (144.122.145.153), 15 hops max, 52 byte packets
 1  csp3.zte.com.cn (192.168.1.1) 60 bytes to 192.168.1.4  16.534 ms  1.281 ms  1.136 ms
 2  host-212-57-0-245.reverse.superonline.net (212.57.0.245) 60 bytes to 192.168.1.4  9.552 ms  9.559 ms  10.065 ms
 3  10.40.22.237 (10.40.22.237) 76 bytes to 192.168.1.4  6.070 ms  10.966 ms  6.093 ms
 4  10.34.255.157 (10.34.255.157) 36 bytes to 192.168.1.4  7.869 ms  9.842 ms  6.538 ms
 5  10.34.255.250 (10.34.255.250) 76 bytes to 192.168.1.4  7.474 ms  7.732 ms  11.364 ms
 6  10.38.207.137 (10.38.207.137) 148 bytes to 192.168.1.4  8.746 ms  7.645 ms  5.906 ms
 7  10.40.145.85 (10.40.145.85) 36 bytes to 192.168.1.4  7.223 ms  8.806 ms  8.685 ms
 8  * * *
 9  144.122.1.18 (144.122.1.18) 60 bytes to 192.168.1.4  20.426 ms  13.984 ms  15.184 ms
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *

使用TCP traceroute,我可以在12跳内到达主机目的地:

代码语言:javascript
运行
复制
yilmazali@udemy:~$ sudo tcptraceroute -p 80 metu.edu.tr
Selected device en0, address 192.168.1.4, port 80 for outgoing packets
Tracing the path to metu.edu.tr (144.122.145.153) on TCP port 80 (http), 30 hops max
 1  192.168.1.1  1.215 ms  1.080 ms  1.316 ms
 2  host-212-57-0-245.reverse.superonline.net (212.57.0.245)  4.183 ms  9.425 ms  10.032 ms
 3  10.40.22.237  7.459 ms  7.782 ms  7.361 ms
 4  10.34.255.157  6.455 ms  5.887 ms  14.849 ms
 5  10.34.255.250  6.110 ms  10.768 ms  7.230 ms
 6  10.38.207.137  7.604 ms  6.761 ms  9.247 ms
 7  10.40.145.85  8.526 ms  8.942 ms  10.607 ms
 8  * * *
 9  144.122.1.18  15.320 ms  16.699 ms  14.010 ms
10  dng03.general.services.metu.edu.tr (144.122.145.153) [open]  17.520 ms  14.696 ms *

Q1我无法理解在traceroute第8步中路由器是如何工作的。我有一个疯狂的猜测:路由器收到了带有TTL=1的数据包,并看到它应该返回响应"TTL过期“。但是它没有(为什么它不回报我?)防火墙规则?)。在下一次迭代中,我的计算机用TTL=9发送相同的数据包,这次我从144.122.1.18那里得到一个"ttl过期“答案。这是否意味着Step8的路由器实际上转发了我的包,因为它是TTL=2 (并且在转发时也会减少TTL )?在第8次迭代中,路由器丢弃了我的数据包并没有返回给我,但是在第9次迭代中,路由器将我的包转发到下一个路由器。如果我的数据包在第8次迭代中被定义为可下垂的东西,为什么路由器要在第9次迭代中转发它?

我认为路由器中的防火墙配置可以做两件事:

  • B1拒绝响应主机(拒绝发送过期的to消息),
  • B2也会丢弃数据包在网络中传播到下一个主机。

我不确定这两件事是否在实践中完成。

Q2,我的第二个问题是:在traceroute中,我们看到metu.edu.tr可以在10跳内到达。

假设B2是假的,即考虑路由器使用TTL>1转发数据包,如果metu.edu.tr可以在10跳内到达,那么为什么我在第一次traceroute会话中的UDP数据包不能在15次迭代中到达主机(即使使用TTL=15)。我期望路由器将它转发到下一个路由器,直到我到达dng03.general.services.metu.edu.tr,希望它返回给我ICMP port unused错误或类似的东西。

谢谢你的时间!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-03 09:45:05

如果我的包在第8次迭代中被定义为可下垂的东西,为什么路由器要在第9次迭代中转发它?

这不是同一个包。丢弃的数据包TTL为8,因此无法转发。未丢弃的包的TTL为9。

...同时也减少了转发时的TTL值。

是的,路由器在转发时会减少TTL。这首先是TTL的重点:在转发时减少TTL,当TTL达到零时下降。

为什么不把我还给我呢?防火墙规则?

可能是防火墙规则,路由器配置,每次ICMP消息的限制。

如果metu.edu.tr可以在10跳内到达,为什么我在第一次traceroute会话中的UDP数据包不能在15次迭代中到达主机(即使使用TTL=15 )

显示的traceroute的输出并不意味着主机在10跳内无法到达。这意味着10跳的主机对数据包没有响应,即没有超过ICMP,但也没有其他任何东西(比如无法到达的ICMP端口)。它可能是,服务器实际上是在10跳到达,但它只是丢弃您的UDP包,没有任何进一步的反应。这发生在所有UDP探针到达服务器时,即不管是否原始TTL 10、11、12、.。

这就像敲门,却没有得到任何回应。可能是有人不在里面,但也可能是敲门被忽略了。因此,它不能从“没有反应”中得出,没有人在里面。

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

https://stackoverflow.com/questions/65548237

复制
相关文章

相似问题

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