我们有数十个嵌入式设备安装在客户,都打电话回家,我们的OpenVPN服务。总的来说,这很好,但是我们的一些客户有严重的路径MTU问题。我们对客户修复网络的影响是有限的,所以我们需要OpenVPN来处理。简而言之,我的问题是:
的最坏情况。
注意,我们最坏的情况是非常糟糕:路径MTU 576,删除所有片段,不分割自身,不遵守DF-bit。你知道为什么我不愿意在全球范围内解决这个问题。
OpenVPN手册提供了许多与MTU相关的选项,最显著的是--link-mtu, --tun-mtu, --fragment and --mssfix
。但它也说
-链接-mtu ...,最好不要设置这个参数,除非你知道你在做什么。-tun- MTU ...最好使用--片段和/或-mssfix选项来处理MTU大小问题。
因此,我开始尝试--fragment
和--mssfix
,但很快就意识到,至少必须设置前者,不仅要设置客户端,还要设置也是服务器端。然后,我通过--client-config-dir
查看了服务器端的每个客户端配置,但它说:
以下选项在特定于客户端的上下文中是合法的:--push、-push-reset、-iroute、-ifconfig-push和-config。
没有提到MTU的选择!
以下是我更具体的问题:
link-mtu
和tun-mtu
不受欢迎?这些选择的潜在问题是什么?请注意,我是相当舒适的低水平的IP头咀嚼。link-mtu tun-mtu fragment mssfix
?link-mtu tun-mtu fragment mssfix
中哪些选项可以在client-config-dir
中使用?client-config-dir
中使用:是否有任何替代方案来对抗每个客户端的低路径MTU?备注:
我感谢任何有益的建议。
发布于 2014-12-20 22:54:47
通过将选项mssfix 1300
添加到配置文件中,解决了客户端的问题。
从openvpn手册页面:
--mssfix max
Announce to TCP sessions running over the tunnel that they should limit their send packet sizes such that after OpenVPN has encapsulated them, the resulting UDP packet size that OpenVPN sends to its peer will not exceed max bytes.
我的解决方案的最初想法来自于personalvpn.org
https://serverfault.com/questions/628267
复制相似问题