是否有实用程序或方法可以快速获取远程系统的 PMTU/MTU?

是否有实用程序或方法可以快速获取远程系统的 PMTU/MTU?

是否有内置实用程序或 Linux 可以快速获取远程系统的 PMTU/MTU(最好少于 1 秒)?如果有,它是什么?它需要什么语法?

今天,Google 搜索对我没什么帮助,我找到的唯一解决方案是全面的跟踪路由,这可能需要 30 秒以上。

答案1

经过大量搜索,我找到了解决方案。在此向关心的人提供链接:

https://github.com/ValdikSS/p0f-mtu

它有一个 API,您可以调用它并支持完整的套接字。因此,虽然从技术上讲它是一个守护进程,但它确实可以解决问题。

答案2

我会尝试的事情:

  • 尝试这个 nmap 脚本,用于nmap执行 PMTUD。我还没有尝试过,不知道它有多快。

  • 编写一个小程序,打开启用 PMTUD 的 TCP 连接,并从内核读取值。这可能非常快。我对如何做到这一点了解不多,无法告诉您更多信息,但我在评论中链接的问题有一些细节,应该可以帮助您朝着正确的方向前进。

  • 如果您仅限于现有的 shell 命令,请尝试并行发送不同大小的 ping。 ping -M do -s 1472 remote-host将发送一个 1500 字节的数据包(1472 个数据字节 + ICMP 和 IP 标头)。 -M do告诉它明确执行 PMTUD。 http://muzso.hu/2009/05/17/how-to-determine-the-proper-mtu-size-with-icmp-pings

  • 你提到traceroute——如果你想弄清楚在哪里 MTU 有限,但想要比 traceroute 更快的方法,可以尝试地铁;它并行发送一堆具有不同超时的数据包,而不是像 traceroute 那样按顺序发送。

不幸的是,我无法立即访问任何具有不同 MTU 的系统,因此我的实验能力受到限制。

相关内容