流分配和数据包排序
本主题介绍 SRX5000 Line 设备上的负载分配和数据包排序。
了解SRX5000系列设备中的负载分布
SRX5800、SRX5600和SRX5400设备上支持的负载分配算法根据会话容量和处理能力进行调整。(实际平台支持取决于安装中的 Junos OS 版本。)
基于哈希的会话分发使用哈希表。SPU 会话权重表用于为会话分配哈希表中的每个哈希索引分配 SPU ID。这样,使用基于哈希的分配在每个 SPU 上创建的会话数与 SPU 会话权重表中的 SPU 权重成正比。每个 NPU 还保留相同的 SPU 会话权重表和会话分配哈希表,用于选择 SPU 以转发与 NPU 会话不匹配的数据包。
如果发生 SPU 故障,路由引擎将重置数据平面上的所有卡,包括 IOC 和 NPC,以保持会话分配的哈希表一致性。
在基于哈希的会话分配中,权重基于会话容量。当需要高会话容量时,我们建议使用哈希会话分发模式。
SRX5000系列设备上的负载分配始终基于哈希。
插入和卸下 SPC 会导致在中心点初始化时重新计算 SPU 会话权重表,因为机箱必须在插入后重新启动。
从 Junos OS 版本 15.1X49-D30 开始,中心点架构得到增强,可为SRX5000系列设备处理更高的并发会话数和每秒连接数 (cps)。
中央点架构增强功能通过将流量管理卸载到 SPU 来防止数据包通过中心点。随着中心点上的会话限制被移除,系统会话容量得到扩展。
计算 SPU ID
配备 SRX3K-SPC-1-10-40、SRX5K-SPC-2-10-40 或 SRX5K-SPC3 服务处理卡 (SPC) 的设备的 SPU ID 计算如下:
SPU ID = (FPC ID X 4) + PIC ID
SRX3K-SPC-1-10-40、SRX5K-SPC-2-10-40 和 SRX5K-SPC3 分别包含每卡两个 PIC、每个卡四个 PIC (FPC) 和两个 PIC。例如,设备在插槽 1(FPC ID 0)和插槽 2(FPC ID 1)中包含 2 个卡,所需的 SPU ID 如下:
对于 SPC1:(0、1) 和 (4、5),2 个卡中总共有 4 个 SPU。
对于 SPC2:(0、1、2、3) 和 (4、5、6、7),2 个卡中总共有 8 个 SPU。
对于 SPC3:(0、1) 和 (4、5),2 个卡中总共有 4 个 SPU。
对于 FPC1(第二个卡)和 PIC1(卡中的第二个 PIC),SPU ID 的计算公式为:
SPU ID = (FPC ID X 4) + PIC ID = (1 X 4) + 1 = 4 + 1 = 5
在为 CLI 和 SNMP 引用 SPU ID 时使用此约定。
SRX5K-MPC、SRX5K-MPC3-40G10G (IOC3) 和 SRX5K-MPC3-100G10G (IOC3) 上的基于哈希的转发
在这些 SRX 系列防火墙上,数据包在从入口到出口处理的过程中会经历一系列涉及不同组件的事件。借助数据路径数据包转发功能,您可以通过 SRX 5000 系列设备快速传输 I/O 流量。
SRX5K-MPC、SRX5K-MPC3-40G10G (IOC3) 和 SRX5K-MPC3-100G10G (IOC3) 是SRX5400、SRX5600和SRX5800设备支持的接口卡。模块化端口集中器 (MPC) 使用基于哈希的转发方法为服务处理单元 (SPU) 提供负载平衡服务。
在基于哈希的转发中,MPC 可能会将数据包转发到选定的 SPU (DCP),而不是中心点。此方法增强了会话扩展并防止中心点过载。
哈希值计算涉及以下步骤:
对于 IPv4 数据包,基于哈希的转发模块会根据第 3 层和第 4 层信息生成哈希值,具体取决于不同的第 4 层协议类型。
对于流控制传输协议 (SCTP)、TCP、UDP、认证头 (AH)、边缘服务提供商 (ESP) 和互联网控制消息协议 (ICMP) 协议,散列模块利用第 4 层信息生成散列值。对于任何其他协议,哈希生成中仅使用第 3 层信息。
对于 IPv4 分段数据包,哈希值仅使用第 3 层信息计算。这也适用于数据包的第一个片段。
对于非 IP 数据包,基于哈希的转发模块使用第 2 层信息来计算哈希值。
根据数据包的第 2 层、第 3 层或第 4 层信息计算哈希值后,将为会话分布哈希表中的每个哈希索引分配一个 SPU ID。
SRX5K-MPC (IOC2)、SRX5K-MPC3-40G10G (IOC3) 和 SRX5K-MPC3-100G10G (IOC3) 只能在配置为基于哈希的会话分发的SRX5400、SRX5600和SRX5800设备上使用。
启用基于哈希的会话分发模式后,当设备上安装了 SRX5K-MPC、SRX5K-MPC3-40G10G (IOC3) 和 SRX5K-MPC3-100G10G (IOC3) 时,系统的行为将更改为基于高会话容量的模式。
在安装了 SRX5K-MPC、SRX5K-MPC3-40G10G (IOC3) 或 SRX5K-MPC3-100G10G (IOC3) SRX5000系列设备上,在系统或 SPU 重新启动期间,如果启用了基于哈希的会话分配模式,则仅当重新启动后所有 SPU 都启动时,流量才会通过。
IOC3 上的 MPC 通过执行基于哈希的数据路径数据包转发,与所有现有 IOC 和 SPC 互连,为 SPU 提供负载平衡服务。
IOC3 处理入口和出口数据包。IOC3 解析入口数据包并将其发送到 SPU 进行进一步的安全处理,包括流会话查找、区域和策略检查、VPN、ALG 等。
IOC3 管理数据包数据存储和结构队列,以实现数据包查找和封装功能。
从 Junos OS 15.1X49-D10 版和 Junos OS 17.3R1 版开始,基于哈希的会话分发是SRX5400、SRX5600和SRX5800设备的默认模式。哈希键的选择取决于应用程序协议。
从 Junos OS 17.4R1 版开始,IOC 根据基于哈希的会话分配算法对流量进行哈希处理并分发到不同的 SPU。此增强功能通过使用较大的固定长度哈希表在所有 SPU 之间提供均匀的哈希分布。在早期的 Junos OS 版本中,由于哈希表长度固定,所有 SPU 之间的流量分布不均匀。
IOC3 设置安全流表(IPv4 和 IPv6),其中包括密钥、结果表和数据包内存。
流表提供了以下功能:
流查找
流插入和删除
安全流程老化
安全流统计信息
了解SRX5000线路设备上的数据包排序功能
SRX5400、SRX5600 和 SRX5800、设备和 vSRX 虚拟防火墙支持数据包排序功能,通过激活应用程序中心点上 XLP 处理器上数据包排序引擎的内置数据包排序功能,提高了设备的性能。
支持两种类型的数据包排序模式:硬件和软件。
如果数据包排序功能设置为 硬件,则负载平衡线程 (LBT) 和数据包排序线程 (POT) 将卸载到数据包排序引擎,并释放资源以执行数据包处理。如果数据包排序功能设置为 软件,则负载均衡线程 (LBT) 和数据包排序线程 (POT) 将在 SPU 上运行。默认情况下,设备上启用了使用数据包排序引擎(硬件)的数据包排序模式。您可以通过需要重新启动的配置更改来禁用它。
流线程接收数据包,处理数据包,然后发送或丢弃数据包。对于不需要排序的数据包,流线程会通知网络加速引擎 (NAE) 出口发送或丢弃数据包。对于需要排序的数据包,流线程通知数据包排序引擎将数据包从排序列表中取消排队,并按顺序发送或丢弃数据包。
更改 SRX5000 系列设备上的数据包排序模式
具有新一代 SPC 的 SRX5400、SRX5800 和SRX5600设备支持使用数据包排序引擎的数据包排序功能。 (平台支持取决于安装中的 Junos OS 版本。)默认情况下,启用使用数据包排序引擎的数据包排序模式。要使用数据包排序引擎禁用数据包排序功能,必须更新设备上的数据包排序模式。
支持以下数据包排序模式:
软件 — 使用数据包排序引擎禁用数据包排序模式。
硬件 — 使用数据包排序引擎启用数据包排序模式。这是默认选项。
要使用数据包排序引擎禁用数据包排序模式:
在 CLI 配置提示符处输入以下命令以指定数据包排序模式。
[edit] user@host# set security forwarding-process application-services packet-ordering-mode software
使用命令查看
show security forwarding-process
您的配置。[edit] user@host# show security forwarding-process application-services{ packet-ordering-mode software; }
在提交之前检查对配置所做的更改。
[edit] user@host# commit check
warning: System packet ordering mode changed, reboot is required to take effect. If you have deployed a cluster, be sure to reboot all nodes. configuration check succeeds
提交配置。
[edit] user@host# commit
warning: System packet ordering mode changed, reboot is required to take effect. If you have deployed a cluster, be sure to reboot all nodes. commit complete
在适当的时间重新启动设备。
使用
show security flow status
命令验证数据包排序模式。user@host> show security flow status
Flow forwarding mode: Inet forwarding mode: flow based Inet6 forwarding mode: drop MPLS forwarding mode: drop ISO forwarding mode: drop Flow trace status Flow tracing status: off Flow session distribution Distribution mode: RR-based Flow packet orderingOrdering mode: Software (reboot needed to change to Software)
了解自适应模式下 SRX5000 系列设备上的会话分布
从 Junos OS 15.1X49-D30 版和 Junos OS 17.3R1 版开始,自适应模式会话分发被中心点架构的增强功能所取代。
自适应模式会话分配在以 Junos OS 15.1X49-D30 版和 Junos OS 17.1R1 版之前的混合模式下运行的 SRX5000 系列设备上实施。自适应模式会话分配会考虑服务处理单元 (SPU) 的容量及其可用资源,从而最大程度地利用系统资源。仅在以 XLR/XLP 混合模式运行的SRX5000系列设备上启用,即在机箱部署中,不同类型的 SPU 以不同的组合使用。如果 SRX5800、SRX5600 或 SRX5400 设备混合包含新一代服务处理卡 (SPC) 和现有 SPC,则假定自适应模式会话分配为默认值。对于不在混合模式下运行的SRX5000系列设备,基于哈希的负载平衡是默认设置。
服务处理卡 (SPC) 包含一个或多个 SPU,每个 SPU 根据为中央点 (CP) 分发给它的会话配置的安全功能和其他服务来处理流的数据包。SPU 的 CPU 负载会不时更改。为了充分利用不断变化的可用容量并相应地调整会话分配,在自适应模式下,系统会动态为所有 SPU 分配权重。SPU 的权重决定了会话分配。
每个 SPU 定期将其 CPU 使用情况信息发送到中央点 (CP)。中心点检查这些值,每 1 秒计算一次权重,并以最大化整体系统性能的方式分配会话。换言之,在自适应模式下,会话分配基于实时计算的 动态 加权分配系统,允许所有 SPU 的 CPU 充分利用全部容量,无论其类型如何。
正是权重的动态计算将自适应模式会话分布与加权轮询 (WRR) 会话分布区分开来。虽然 WRR 通过计算权重并将其分配给不同类型的 SPU 来区分 SPU 及其 CPU 容量,但计算和分配是静态的,也就是说,在初始化时仅执行一次。自适应模式改进了 WRR 的固定比率会话分配过程。WRR 会导致系统资源利用不足,因为会话处理限制仅根据 SPU 类型及其 CPU 容量设置,而不考虑其可用处理能力。
对于自适应模式会话分配,以下公式用于计算分配给 SPU 的权重:
Wi = 总和(W1-n)*Ci*Si/Sum(C1-n*S1-n)
哪里:
Wi
— 分配给 SPU 的权重。Sum(W1-n)
— 系统总重量。此值是恒定的。n
— SPU 总数。Ci
- SPU 的可用 CPU 计算能力。Si
— SPU 的可用会话容量。
在自适应模式下,当一个 SPU 上的 CPU 使用率较高时,分配给该 SPU 的会话会减少。以下示例说明了计算。
考虑具有两个 SPU 的设备。每个 SPU 的会话容量为 100 万。
在一段时间内:
当 SPU1 上有 500,000 个会话时,其 CPU 使用率为 10%:
SPU1 (C1) 的可用 CPU 容量 = 1-10% = 90(百分比)。
SPU1 (S1) 的可用会话容量 = 1-500,000/1M = 50(百分比)。
当 SPU2 上有 400,000 个会话时,其 CPU 使用率为 20%:
SPU2 的可用容量 (C2) = 1-20% = 80(百分比)。
SPU2 (S2) 的可用会话容量 = 1-400,000/1M = 60(百分比)。
如果整个系统的权重为 100,则每个 SPU 的单独权重值为:
SPU1 重量 (W1) = 100*90*50/(50*90+80*60) = 48
SPU2 重量 (W2) = 100*80*60/(50*90+80*60) = 52
对于传入会话,48% 的会话分配给 SPU1,而 52% 的数据包分配给 SPU2。
在中心点检查运行时使用情况信息并将权重调整为新值之前,加权数字可能会在短时间内对系统生效。
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。