Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

流分配和数据包排序

本主题介绍 SRX5000 系列设备上的负载分布和数据包顺序。

了解 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 计算如下:

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 的计算方式如下:

在为 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 版本。)默认情况下,使用数据包排序引擎的数据包排序模式处于启用状态。要使用数据包排序引擎禁用数据包排序功能,必须更新设备上的数据包排序模式。

支持以下数据包排序模式:

  • 软件 — 使用数据包排序引擎禁用数据包排序模式。

  • 硬件 — 使用数据包排序引擎启用数据包排序模式。这是默认选项。

要使用数据包排序引擎禁用数据包排序模式:

  1. 在 CLI 配置提示下输入以下命令,以指定数据包排序模式。

  2. 使用 show security forwarding-process 命令查看您的配置。

  3. 在提交之前,请检查您对配置所做的更改。

  4. 提交配置。

  5. 在适当时间重新启动设备。

  6. show security flow status使用命令验证数据包订购模式。

了解自适应模式下 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 及其 CPU 容量,但计算和分配是静态的,也就是说,在初始化时仅执行一次。自适应模式改进了 WRR 的固定比例会话分配过程。WRR 导致系统资源利用率不足,因为会话处理限制仅基于 SPU 的类型及其 CPU 容量设置,而未考虑其可用的处理能力。

对于自适应模式会话分配,使用以下公式计算分配给 SPU 的权重:

Wi = Sum(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%:

    • 可用 CPU 容量,SPU1 (C1) = 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。

在中心点检查运行时使用信息并将权重调整为新值之前,加权数字可能会在短时间内对系统生效。

版本历史记录表
释放
描述
17.4R1
从 Junos OS 17.4R1 版开始,IOC 会根据基于哈希的会话分配算法对流量进行散列处理并分发到不同的 SPU。此增强功能通过使用更大的固定长度散列表在所有 SPU 之间提供均匀的哈希分布。在早期的 Junos OS 版本中,由于哈希表长度固定,所有 SPU 之间的流量分布不均衡。
15.1X49-D30
从 Junos OS 15.1X49-D30 版开始,中心点架构得到增强,可处理 SRX5000 系列设备的每秒并发会话和连接数 (cps) 较高的数量。
15.1X49-D30
从 Junos OS 15.1X49-D30 版和 Junos OS 17.3R1 版开始,自适应模式会话分配被中央点架构的增强功能所取代。
15.1X49-D10
从 Junos OS 15.1X49-D10 版和 Junos OS 17.3R1 版开始,SRX5400、SRX5600 和 SRX5800 设备的默认模式是基于哈希的会话分配。哈希密钥的选择取决于应用程序协议。