通过IPSec隧道将20M​​bps WAN限制为10Mbps


11

我们最近将一个远程站点从10 / 10Mbps光纤升级到20 / 20Mbps光纤链路(从光纤到地下室,然后从VDSL从地下室到办公室,大约30米)。在此站点和中心站点之间有规则的大文件副本(多gig),因此从理论上讲,将链接增加到20/20应该可以使传输时间缩短一半。

对于用于复制文件的传输(例如robocopy用于双向复制文件或Veeam Backup and Recovery的复制),传输速度上限为10Mbps。

升级前:

在此处输入图片说明

升级后(robocopy):

在此处输入图片说明

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

传输通过Cisco ASA5520和Mikrotik RB2011UiAS-RM之间的IPSec隧道进行。

首先的想法:

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

这是一个非常奇怪的情况。我以前从未见过如此明显的表现。

我还能去哪里?


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


以前的版本在HTTP方面有一些麻烦。忘了这个,这是一个错误的测试机制。

根据Xeon的建议,并在我要求ISP支持时由我的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

放入ISP的1480 MTU中。但是可惜的是,这并没有带来任何有效的改变。


比较了wireshark捕获之后,TCP会话现在在两端协商了1380的MSS(在进行了一些调整并添加了缓冲区以防我的数学崩溃的情况下。提示:可能会这样)。无论如何,1380还是ASA的默认MSS,因此无论如何它一直都在进行谈判。


在Mikrotik内部的工具中看到一些奇怪的数据,这些数据一直用于衡量流量。可能什么都没有。我之前使用过滤查询时没有注意到这一点,并且只有在删除过滤器后才看到此消息。


MTU是什么样的?
至强

好点子。在任一端的两个交换机上均为9000,在服务器和客户端本身上均为1500,在链路的VDSL部分上为1480。那是我控制的链接的唯一部分。
马克·亨德森

ping -t -f -l 1500(失败后减少20)目的地,一旦您确定是1300,我敢打赌它会起作用,这表明您需要在ASA / Mikrotik IPsec隧道上调整MTU,或者您可以设置它因此它不会将碎片掉落到很大。
至强2015年

1394是我能够通过的最大MTU。
马克·亨德森

您的数据是零散的,因此将隧道的MTU降低到1350-1380应该有助于增加吞吐量。IPsec开销约为84个字节(取决于您的封装等),因此1480-84 = 1396,接近于您看到的最大值。
至强2015年

Answers:


3

即使CPU是我检查过的第三件事,我也这样写:

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

由CPU图形确认

在此处输入图片说明

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

因此,这似乎只是硬件限制。我早就应该抓到它,但是由于某些原因,Mikrotik并没有向我表明它是受CPU限制的。

逛街我去。


我想知道对IPSec流量施加此上限的特定限制。您是否有任何外部来源对此进行了更深入的解释?
blacklight

不幸的是没有。我在Mikrotik论坛上发现了一些线程,该线程以11Mbps作为该路由器的最大速率(似乎我已经在这里确认了这一点)。我链接到该人的博客进行了测试,并获得了大约1Mbps的流量,但使用的功率却低得多。我的功能应该比现在高6到10倍,而我似乎正在获得IPSec流量的6到10倍,而这一切都是相匹配的。它看起来不像是CPU约束问题,IRQ约束问题或内存约束问题。我不知道这里到底发生了什么。
马克·亨德森

2

我可以确认罪魁祸首是CPU。 在这里,我对Mikrotik RB750GL进行了基准测试,并使用AES-128流量测量了12 Mb / s(使用3DES时仅测量了6.0 Mb / s)。

您的结果似乎与我的记录完全一致。


看起来750和2011之间的额外200Mhz速度对IPSec速度没有任何影响。我希望Mikrotik将这些数字发布到某个地方。
Mark Henderson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.