我们在客户处安装了数十个嵌入式设备,所有这些设备都可以使用我们的 OpenVPN 服务。一般情况下这很好,但我们的一些客户有严重的路径 MTU 问题。我们对客户修复网络的影响是有限的,因此我们需要 OpenVPN 来处理它。简而言之,我的问题是:
我如何在每个客户端的基础上减轻某些客户端的低路径 MTU,即不使用全局设置来适应所有客户端的最坏情况
请注意,我们的最坏情况非常糟糕:路径 MTU 576,丢弃所有碎片,不对自身进行碎片化,不尊重 DF 位。你明白为什么我不想在全球范围内解决这个问题。
该OpenVPN的联机帮助提供了许多MTU的相关选项,最显着的--link-mtu, --tun-mtu, --fragment and --mssfix。但它也说
--link-mtu [...] 除非您知道自己在做什么,否则最好不要设置此参数。
--tun-mtu [...] 最好使用 --fragment 和/或 --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?笔记:
如果只考虑 Windows 环境,引入 OpenVPN 作为公司 VPN 服务而不是 Windows 内置协议有什么好处?特别是新的 SSTP 协议已经克服了 PPTP 的弱点之一,它可能不会越过防火墙/NAT。
我想知道有什么理由不使用 Windows 集成解决方案。安全强度可能是一个问题,但我不确定它们有多大不同(我知道 MS VPN 很容易受到攻击,但它仍然存在吗?)
谢谢。