配置里列出了八种转换算法,有人读到最强的那一个,就把吞吐量数字归到它头上。隧道很可能并没有选那个转换算法,也没有跑任何人想象中的那种负载。真正协商出来的是那份列表里的一条,带着一个包大小、一个方向、一个构建版本。测一测它,关于算法的争论通常还没开始就结束了。

症状:数字低于配置所承诺的水平

一长串转换算法描述的是可能性,而每种可能性都在纸面上评分,不是在这台硬件上。协商结果是一个双方都接受的唯一组合,它可能是任何一方为了兼容性仍然允许的最弱组合。这个组合能达到什么,取决于卸载状态、包大小和队列行为,所以两台策略文件完全相同的设备可能相差很远。列表是菜单;关联才是真正回来的那张订单。

读列表只能告诉你可能选了什么。读关联才能告诉你到底是什么在承载传输,而吞吐量数字描述的只是它。任何从列表出发的调优步骤,都是附带额外文书工作的猜测。

记录承载这次传输的关联

在 ASA 上 show crypto ipsec sa 会列出活动关联及其转换算法和每个方向的计数器,而 命令参考 记录了该输出。选定真正重要的对端和方向,并注意重新协商密钥会替换关联并重置计数器,这会悄悄作废你仍然信赖的基线。把输出和测试笔记存在一起,下一次运行才有可比对的东西。关联标识符如果在多次运行之间漂移,之后的所有比较都会失去意义。

What to recordWhere to read itWhat it rules out
Negotiated transform and SA identifiersshow crypto ipsec sa for that peer and direction"the configuration picked the wrong algorithm"
Offload or accelerator state for that buildplatform show commands and interface statistics"the crypto engine is the ceiling"
Payload size and offered ratethe test tool's own settings and summary"packets per second versus bytes per second"
Delivered rate and loss at the receiverthe receiving endpoint, not the sender's counters"the sender transmitted, so it arrived"
Access-link load and dropsunderlay interface counters along the path"the bottleneck lives inside the tunnel"

五行就足以让一次测量可复现,而每一行在缺失时都排除一种具体解释。它们都不是提案列表里的一项,因为列表说不出此刻是什么在保护你的字节。把表填一次,下一次事故就会从数据开始,而不是从新的算法争论开始。

接入链路那一行是人们最常忽略的,而它恰恰最常解释看起来像加密问题的差距。饱和的底层网络或路径上的限速器,会制造出和慢速引擎一样形状的症状。

用受控负载测量单个方向

从代表应用的局域网端点发起测试,而不是从网关本身发起,因为网关生成的探测可能遵循不同的本地策略。在加入第二条流之前先测一个方向,并记录提供的速率与接收方实际收到的量。限速 UDP 运行能把提供的负载与 TCP 的拥塞响应分开,而不限速的 UDP 发送端并不是中立的诊断。还要记录载荷长度,因为更大的数据报会同时改变包速率和封装开销。

show crypto ipsec sa peer 203.0.113.9
iperf3 -c 10.20.0.10 -u -b 200M -l 1200 -t 30

用相同的载荷长度和时长把同一个测试跑两遍,因为单次运行无法把上限和糟糕的一分钟区分开。如果接收方报告的包数少于发送方发出的包数,丢包就是你的发现,而加密引擎只是几个候选之一。

在调任何东西之前先解释差距

把转发策略、队列丢弃、接口错误和资源限制与加密路径一起检查,因为单靠速率缺口永远无法定位 CPU。账目层次也要写清楚:外层隧道字节包含封装,重传会改变内层与外层计数的关系。把不相干的计数器逐字节对比,只会造出从未存在过的差异。

包大小值得单独做一次受控对比,而不是从旧例子里抄一个数字。TCP MSS 调整的是 TCP,对任意 UDP 数据报毫无影响,所以从旧文档里搬来的固定 1350 什么都测不出来。有意改变载荷长度,观察接收方报告什么。

只改一个变量并保持工作负载

当基线在窄带内重复之后,改一个受支持的变量,并重跑原来的应用任务。正是这一步把数字变成原因,也只有它才值得去动配置。重复同样的负载,而不是更友好的那种。

不要为了把合成数字做大而撤掉提案、削弱认证或关闭保护。那些动作改变的是安全姿态,随后测到的是这次改变的结果,而不是隧道的能力。

相关文章