20Mbps WAN 限制为 10Mbps 通过 IPSec 隧道

Mar*_*son 11 windows wide-area-network ipsec

我们最近将远程站点从 10/10Mbps 光纤升级为 20/20Mbps 光纤链路(光纤到地下室,然后 VDSL 从地下室到办公室,大约 30 米)。该站点和中央站点之间有定期的大型(多演出)文件副本,因此理论上将链接增加到 20/20 应该将传输时间大致减半。

对于用于复制文件的传输(例如,用于robocopy向任一方向复制文件,或 Veeam Backup and Recovery 的复制),它们的上限为 10Mbps。

升级前:

在此处输入图片说明

升级后(robocopy):

在此处输入图片说明

几乎相同(忽略传输时间长度的差异)。

传输是通过 Cisco ASA5520 和Mikrotik RB2011UiAS-RM之间的 IPSec 隧道完成的。

第一个想法:

  • QoS - 不。有 QoS 规则,但不会影响此流。我禁用了所有规则几分钟以进行检查,但没有任何变化
  • 软件定义的限制。大部分流量是 Veeam Backup and Recovery 异地传送,但其中没有定义限制。此外,我只是做了一个直线robocopy并看到了完全相同的统计数据。
  • 硬件不行。嗯,5520 公布的性能数据是 225Mbps 的 3DES 数据,而 Mikrotik 没有公布数字,但它会远远超过 10Mbps。在进行这些传输测试时,Mikrotik 的 CPU 使用率约为 25%-33%。(此外,通过 IPSec 隧道进行 HTTP 传输的速度接近 20Mbps)
  • 延迟与 TCP 窗口大小相结合?好吧,站点之间的延迟为 1532*0.015毫秒,因此即使是最坏的 32 KB 窗口大小,也最多 2.1 MB/秒。此外,多个并发传输仍然只能达到 10Mbps,这不支持该理论
  • 也许源和目的地都是狗屎?好吧,源可以推动 1.6GB/秒的持续顺序读取,所以不是这样。目的地可以进行 200MB/秒的持续顺序写入,所以也不是那样。

这是一个非常奇怪的情况。我以前从未见过任何以这种方式表现出来的东西。

我还能在哪里看?


在进一步调查中,我有信心指出 IPSec 隧道是问题所在。我做了一个人为的例子,直接在站点上的两个公共 IP 地址之间进行了一些测试,然后使用内部 IP 地址进行了完全相同的测试,我能够在未加密的互联网上复制 20Mbps,而在 IPSec 上仅复制 10Mbps边。


以前的版本有关于 HTTP 的红鲱鱼。忘记这一点,这是一个错误的测试机制。

根据至强的建议和我的 ISP 在我要求他们提供支持时的回应,我设置了一个 mangle 规则,将 IPSec 数据的 MSS 降至 1422 -基于此计算

 1422   +  20 + 4 +  4 +   16  +   0     +      1    +     1     +   12
PAYLOAD  IPSEC SPI ESP  ESP-AES ESP (Pad)  Pad Length Next Header ESP-SHA
Run Code Online (Sandbox Code Playgroud)

适合 ISP 的 1480 MTU。但遗憾的是,这并没有产生有效的影响。


在比较了wireshark 捕获之后,TCP 会话现在在两端协商了一个 1380 的 MSS(在调整了一些东西并添加了一个缓冲区以防我的数学很糟糕。提示:它可能确实如此)。无论如何,1380 也是 ASA 的默认 MSS,因此它可能一直在协商这个问题。


在 Mikrotik 内的工具中看到了一些奇怪的数据,我一直在使用这些数据来测量流量。可能什么都不是。我之前在使用过滤查询时没有注意到这一点,只有在删除过滤器时才看到这一点。

Mar*_*son 3

尽管 CPU 是我检查的第三件事,但我写了这样的内容:

在进行这些传输测试时,Mikrotik 的 CPU 使用率约为 25%-33%

CPU 图证实了这一点

在此输入图像描述

我已经通过外部资源(即一堆其他支持论坛和博客)确认,大多数 Mikrotik 路由器无法使用 3DES 或 AES 加密推送超过 11Mbps 的 IPSec 流量,除非您获得具有硬件加密卸载功能的型号。

所以看起来这只是一个硬件限制。我应该早点发现它,但由于某种原因,Mikrotik 没有向我表明它受到 CPU 限制。

下班后我就去购物了。