Express Path 概述
Express Path(以前称为 服务卸载)是一种在网络处理器(而非服务处理单元 (SPU)中处理快速路径数据包的机制。Express Path 将特定流量从 SPU 卸载到网络处理器,从而提高了性能。
在网络处理器上创建 Express Path 会话时,流的后续数据包将与网络处理器上的会话匹配。然后,网络处理器处理并转发该数据包。您无法在节点之间配置非对称路由,因为 Express Path 不支持节点之间会话的高可用性转发。
网络处理器还管理其他处理,例如 TCP 序列检查、生存时间 (TTL) 处理、网络地址转换 (NAT) 和第 2 层标头转换。IOC3 上的流表由流模块的 SPU 管理。SPU 根据策略匹配结果在流表中插入和删除流条目。Express Path 支持 IPv6。
图显示了 Express Path 中的数据包流。
Express Path 的优势
-
显著提高了单流和机箱级性能。
-
降低 SPU 利用率和延迟。
Express Path 限制
Express Path 不支持:
-
特征
-
透明模式
-
具有多个扇出的组播会话
-
分段数据包
-
IPsec VPN
-
不同的 MTU 大小值
-
J 流
-
灵活的 VLAN 标记
-
-
应用层网关 (ALG) 数据流量:
-
DNS
-
IKE 和 ESP
-
PPTP
-
SQL-NET
-
-
IPv6
-
NAT
-
透明模式
-
不同的 MTU 大小值
-
出口接口上的服务等级 (CoS)
-
当您使用防火墙过滤器将流量引导至虚拟路由器时,Express Path 和数据包卸载不起作用,
如果在机箱群集模式下运行的设备上启用 Express Path:
-
无法配置非对称 I/O 卡 (IOC)。
-
如果来自启用了 LACP 的 reth 接口的子链路中断,则此链路上的所有流量都将分发到该接口的其他活动子链路。如果子链路启动并重新加入 reth 接口,则现有流量或会话不会通过此新重新加入的活动子链路进行重新分配。新会话将通过此链路遍历。
-
如果将新的子链路添加到启用了 LACP 的 reth 接口,则不会通过此新的子链路重新分配现有流量或会话。新会话将遍历此链路。
自动化 Express Path
默认情况下,从 Junos OS 21.2R1 版开始启用自动快速通道。升级到 Junos 21.2R1 或更高版本后,即可免费获得无与伦比的新一代防火墙性能,无需任何额外配置或硬件投资。默认情况下,启用自动 Express Path。
在 Junos OS 21.2R1 版中,要按规则禁用 Express Path,请使用 set security policies from-zone [untrust] to-zone ptrust] policy [services-offload-pol1] then permit no-services-offload 命令。
要通过按规则启用服务卸载来恢复到以前的行为,请使用命令 set security forwarding-options services-offload disable 。
Automated Express Path 支持以下功能:
-
有状态防火墙
-
网络地址转换 (NAT)
-
统一策略(带动态应用程序和 URL 类别)
-
用户防火墙
-
安全性情报
-
入侵检测和防御 (IDP)
-
增强型 Web 筛选
-
应用层网关 (ALG)
-
筛选(防 DDoS)
Express Path 如何处理流量?
当第一个数据包到达某个接口时,网络处理器会将其转发至中心点 (CP)。而中心点又将数据包转发至 SPU。然后,SPU 会在网络处理器上创建一个会话,并验证流量是否符合 Express Path 会话或正常会话的条件。
如果流量符合 Express Path 处理条件,则会在 SPU 中为流量创建 Express Path 会话。Express Path 会话在网络处理器中处理快速路径数据包,数据包从网络处理器退出。
如果流量不符合 Express Path 处理条件,SPU 将创建正常会话。正常会话将数据包从网络处理器转发到 SPU,以进行快速路径处理,
Express Path 网络处理器
在配备网络处理器的 SRX 防火墙上,当包括数据包插件和流插件在内的所有插件都忽略某个会话时,我们会对该会话进行服务卸载,然后在网络处理器上安装该会话。当数据包插件忽略会话时,我们标记忽略标志。当流插件忽略会话时,我们标记忽略标志并短路 TCP-T 和 TCP-I。然后,我们在网络处理器上安装会话以卸载会话。
I/O 卡 (IOC) 网络处理器处理快速路径数据包,而无需通过交换机结构或 SPU。这减少了数据包处理延迟。
每个流条目在 Express Path 网络处理器中都有一个 per-wing 计数器。计数器捕获网络处理器通过机翼发送的字节数。
网络处理器在不同场景下的行为如下:
-
第一路径流 — 第一路径流与当前网络处理器流进程相同。当第一个数据包到达网络处理器时,网络处理器会解析 TCP 或 UDP 数据包以提取一个 5 元组密钥,然后在流表中执行会话查找。然后,网络处理器将第一个数据包转发到中心点。中心点此时找不到匹配项,因为这是第一个数据包。中心点和 SPU 创建一个会话,并将其与用户配置的策略进行匹配,以确定该会话是正常会话还是服务卸载会话。
如果指定要使用 Express Path 管理的会话,则 SPU 将在网络处理器流表中创建一个会话条目。这会在会话条目表中启用 Express Path 标志;否则,SPU 将在网络处理器中创建一个不带 Express Path 标志的正常会话条目。
-
快速路径流 — 在网络处理器中创建会话条目后,会话的后续数据包将与会话条目表匹配。
-
如果未设置 Express Path 标志,则网络处理器会将数据包转发到会话条目表中指定的 SPU。数据包会经历正常的流进程。
-
如果网络处理器在会话条目表中找到 services-offload 标志,它将在本地处理数据包并直接发送数据包。
-
网络处理器上的快进功能支持单扇出组播会话。会话中的出口端口还必须与与入口端口相同的网络处理器相关联。所有其他组播案例都需要作为正常会话进行管理。
-
-
NAT 进程 — SPU 负责内部 IP 地址或端口与外部 IP 地址或端口之间的映射。当会话的第一个数据包到达时,SPU 分配 IP 地址或端口映射,并将信息存储在网络处理器会话条目中。如果设置了 NAT 标志,网络处理器将修改数据包。
-
会话过期 — 为了提高服务卸载会话的流量吞吐量,系统会在每个预定义的时间段内向 SPU 发送一份数据包副本,以减少 SPU 上的数据包处理需求。为了限制发送到 SPU 的数据包副本数,需要为每个服务卸载会话实施时间戳。网络处理器计算自上次会话匹配以来经过的时间。如果经过的时间大于预定义的时间段,则网络处理器会向 SPU 发送数据包的副本并更新会话时间戳。
-
会话终止和删除 — 如果网络处理器收到带有 FI(已完成数据)或 RST(重置连接)标志的 IP 数据包,则会将该数据包转发至 SPU。然后,SPU 会删除网络处理器上的会话缓存。在状态转换期间,网络处理器将继续接收任何数据包并将其转发到 SPU。
机翼统计计数器
在 Express Path 中,网络处理器为每个流条目提供选项,以保留一个每翼的字节计数器。计数器捕获网络处理器通过机翼发送的字节数。
启用计数器后,网络处理器将搜索其流条目(会话翼)以获取每个入口数据包。如果数据包属于已建立的流条目,网络处理器将增加数据包中流条目的字节计数器。网络处理器会定期将每个流条目的数据包(复制数据包)复制到其关联的 SPU,以便 SPU 维持会话。网络处理器在复制数据包的标头中发送流字节计数器值。SPU 累积并保留每个翼的统计计数器。
在实时会话的生命周期中,您无法更改统计信息配置。当会话在网络处理器上处于活动状态时,禁用或启用每翼统计信息配置会使当前会话上的会话统计信息失效。新的会话统计信息只有在执行配置更改后才有效。无法清除网络处理器每翼计数器。
每个联队的会话数统计数据
网络处理器具有更大的静态 RAM (SRAM) 来容纳会话资源,从而为每个 PIC 托管更多会话。 #concept_gkc_1ry_4sb__per-wing-sessions 显示会话翼的总数,包括 Express Path 和非 Express Path。
使用 功能资源管理器 确认平台和版本对特定功能的支持。可能支持其他平台。
有关详细信息,请参阅 #concept_gkc_1ry_4sb__section_azn_4yk_khc 部分。
其他平台信息
| 机翼总数 |
Express Path UDP 翼数量 |
Express Path TCP 翼数 |
|||
|---|---|---|---|---|---|
| 卡和 SRX 系列防火墙 | 非 Express Path 模式会话 | 没有统计信息 | 使用统计信息 | 没有统计信息 | 使用统计信息 |
| SRX5000 系列设备 SRX5K-MPC (IOC2) |
180 万 |
180 万 |
180 万 |
180 万 |
180 万 |
| SRX5000 系列设备 SRX5K-MPC3 (IOC3) |
2000 万 |
2000 万 |
2000 万 |
2000 万 |
2000 万 |
| SRX5000 系列设备 SRX5K IOC4 |
1000 万 |
1000 万 |
1000 万 |
1000 万 |
1000 万 |
| SRX4600 |
2000 万 |
2000 万 |
2000 万 |
2000 万 |
2000 万 |
IOC 卡上的 Express Path 数据包处理
IOC 卡上的 Express Path 基于通过网络处理器芯片组(而非在 SPU 中)处理快速路径数据包,从而将一些基本的防火墙功能分载到 IOC 卡。
如果启用了 Express Path 功能,则 IOC 卡可提供更低的延迟,并通过消除 SPU 上的过载来支持更高的吞吐量。IOC 卡支持卡内流量和卡间流量。为了获得最佳延迟结果,流量流的入口端口和出口端口需要位于 IOC 卡的同一 XM 芯片上。
IOC 卡支持 240Gbps FPC,并使用第三代网络处理 (NP) 系列芯片组。这款最新的查找和排队芯片针对更高容量进行了优化。IOC 卡与 SCB2 和 SCB3 兼容,不支持较早的 SCB。
由于电源和热限制,您无法同时打开 IOC 卡中的所有四个 PIC 的电源。按偶数或奇数顺序打开最多两个 PIC。您可以使用命令 set chassis fpc <slot> pic <pic> power off 选择要开机的 PIC。
系统日志消息包括:
-
XMCHIP_CMERROR_DDRIF_INT_REG_CHKSUM_ERR_MINOR
-
XMCHIP_CMERROR_DDRIF_INT_REG_CHKSUM_ERR_MAJOR
错误消息表示,灵活 PIC 集中器 (FPC) 上的 XM 芯片检测到校验和错误,导致数据包丢弃。以下错误阈值将错误分类为主要错误或次要错误:
-
小错误 —每秒 > 5 个错误
-
主要错误 —每秒 > 255 个错误(最大计数)
在数据平面中,IOC 卡解析数据包并在流表中查找这些数据包。如果 IOC 卡在流表中找到匹配项,则会根据流表中给出的指令转发数据包。IOC 卡可以执行 NAT,封装第 2 层 (L2) 标头,并将数据包转发出出口接口。出口接口可以位于同一个 IOC 卡(卡内外壳)或另一个 IOC 卡(卡间外壳)上。
当 IOC 卡收到第一个数据包时,它与任何现有的快进会话都不匹配。执行默认的基于散列的转发以将第一个数据包发送到 SPU。然后,SPU 将创建安全会话。如果 SPU 发现流量符合快转条件,且相关 IOC 卡支持快转,则会向 IOC 卡安装快进会话。如果无法对流量应用快速转发,则不会发送任何会话消息,并且 IOC 卡将使用默认的基于散列的转发将数据包转发到 SPU。
在快进 IOC 卡处理中,如果匹配快进会话,则可以根据会话流结果直接转发数据包。IOC 卡可执行所有必要的作,例如,转发数据包、TTL 检查和减少 NAT 转换以及第 2 层标头封装。
此外,XL 芯片会在预定义的时间向 SPU 发送转发数据包的一个副本。此副本用于刷新 SPU 会话、检测当前 XL 芯片状态等。SPU 会使用此数据包,但不会转发,因为实际数据包已经过处理和传输。