我正在通过与我的虚拟主机提供商的连接来解决MTU问题。 问题是我在MTU大小设置为1492的ppoe后面,防止我使用“scp”。 一旦将MTU从1492改为1500,scp可以正常工作,但是大多数其他连接不能。 networking托pipe服务提供商和互联网提供商都不确认ICMPstream量的阻塞。 有什么办法来检查谁(在路上的IP)阻止ICMP? 谢谢
在“作品”和“不行”方面,MTU是一个链接本地的问题。 如果两端的机器configuration为使用适合其特定链路的MTU,则中间的路由器应适当分段数据包以获取数据。 性能会受到影响,但是即使ICMP在中间被阻塞,您也应该获得stream量。
当然,如果路由器之间有一个或多个链路configuration错误的MTU,则不会发生这种情况,但是现在有人可能会注意到这一点。
至于检查ICMP被阻塞的位置,我build议traceroute。 如果您使用的是Linux,Ubuntu中的最新版本提供了对ICMP阻塞相关问题的适度详细的描述,并且应该给您提供块的来源。 既然你有双方的访问权限,你应该能够在每个方向进行validation。
您可以在networking上使用确认MTU大于等于1500(不仅在本地链路上)的networking上的主机,而且发送较大的ping请求或其他设置了DF标志的数据包。 在主机上使用Wireshark这样的嗅探器时,您应该为每个发送的数据包都看到“需要传入的ICMP碎片”数据包。
我的DSL服务提供商和一些networking服务提供商遇到了一些问题,但事实certificate,当我的提供商发送ICMP数据包时,显然他们被networking服务器或防火墙过滤掉了。 amazon web services和一些大的CDN显然是很常见的 。
确定它的唯一真正方法是查看两端的networkingstream量,或者至less查看您端点的stream量。 你有没有首先证实你不是通过在你的最后看networking忽略他们?
您需要的工具是在Windows或者在* nix上的tracepath上运行。 使用这两种工具都可以find两台主机之间的pathMTU,并查看瓶颈位置。 但是,如果问题是给定的跳跃有ICMP阻塞,打破pathMTU发现,您需要深入一点,以找出问题所在。
那么当然你必须说服责任方修复他们的networking设备configuration。