在 Windows 下,有一个注册表设置可以启用“黑洞路由器检测”,当路径中存在配置错误的路由器/防火墙阻止 ICMP 碎片所需消息时,可以使路径 MTU 发现发挥作用。
http://technet.microsoft.com/en-us/library/cc958871.aspx
是否有可以在 Linux 上启用的等效功能?
我正在运行 Ubuntu 9.10 Kernel 2.6.31-14-generic,并且对任何用于启用/监控此行为的命令或任何指向文章/操作指南的链接(解释如何实现)非常感兴趣。
答案1
是的你可以。
引自Linux 内核邮件列表在2008:
发件人:John Heffner
<johnwheffner@...>
主题:回复:PMTU 发现 - 它能正常工作吗?
日期:2008 年 5 月 22 日星期四 - 下午 1:19
消息 ID:<[email protected]>
[...]
这是一个众所周知的问题(RFC 2923),也是开发 MTU 探测(RFC 4821)的动机,并通过 实现
tcp_mtu_probing
。
John Heffner 于 2007 年对 Linux 内核进行了修改。
所以要打开tcp_mtu_probing
# echo 2 > /proc/sys/net/ipv4/tcp_mtu_probing
可能值
0: disabled
1: enabled when black hole detected
2: always enabled
答案2
- RFC2923 - 路径 MTU 发现的 TCP 问题,2000 年 9 月
- RFC4821 - 分组层路径 MTU,2007 年 3 月(考虑 ICMP 黑洞)
我认为对 ICMP 黑洞恢复的支持(如 RFC4821 中所示,但完整的 RFC“未实现?”)已添加到 Linux 内核 2.6.17。它可以通过 启用tcp_mtu_probing option
。
更多信息:http://staff.psc.edu/mathis/MTU/
到目前为止我还没有找到更多更新的信息(欢迎提供更多信息)。
答案3
我所知道的最后信息是 Linux 不支持 PMTU 黑洞路由器发现。
这是因为 Linux 不符合 RFC 2923。