SRX 系列防火墙上的流量处理概述
适用于安全设备的 Junos OS 集成了瞻博网络的网络安全和路由功能。进出设备的数据包要同时进行基于数据包和基于流的处理。
了解安全性设备上的流量处理
适用于安全设备的 Junos OS 集成了瞻博网络世界一流的网络安全和路由功能。Junos OS 包括各种基于数据包的过滤、服务等级 (CoS) 分类器和流量整形功能,以及丰富而广泛的基于流的安全功能,包括策略、筛选、网络地址转换 (NAT) 和其他基于流的服务。
进出安全设备的流量将根据您配置的功能(如数据包过滤器、安全策略和筛选)进行处理。例如,软件可以确定:
是否允许数据包进入设备
要应用于数据包的防火墙筛选
数据包到达目的地所采用的路径
要应用于数据包的 CoS(如果有)
是否应用 NAT 来转换数据包的 IP 地址
数据包是否需要应用层网关 (ALG)
进出设备的数据包要同时进行基于数据包和基于流的处理:
基于流的数据包处理以相同的方式处理相关数据包或数据包流。数据包处理取决于为数据包流的第一个数据包建立的特征,该特征称为流。
对于服务网关的分布式处理架构,所有基于流的处理都在 SPU 上进行,并且采样具有多线程感知能力。对采样的数据包进行数据包排序。
基于数据包或无状态的数据包处理离散处理数据包。每个包都经过单独评估以进行治疗。
对于服务网关的分布式处理架构,NPU 上会进行一些基于数据包的处理,如流量整形。SPU 上会进行一些基于数据包的处理,例如对数据包应用分类器。
本主题包含以下部分:
了解基于流的处理
在对数据包进行基于数据包的过滤并应用了一些筛选之后,将进行基于流的处理。单个流的所有基于流的处理都发生在单个服务处理单元 (SPU) 上。SPU 根据为会话配置的安全功能和其他服务处理流的数据包。
图 1 显示了基于流的流量处理如何在服务网关上进行的概念视图。
的流量
流是满足相同匹配标准且具有相同特征的相关数据包流。Junos OS 以相同的方式处理属于同一流的数据包。
对于流的第一个数据包,评估确定数据包命运的配置设置(例如,适用于该数据包的安全策略、是否需要应用层网关 (ALG)、是否应用 NAT 来转换数据包的源和/或目标 IP 地址)。
为了确定数据包是否存在流,NPU 会根据以下匹配标准尝试将数据包的信息与现有会话的信息进行匹配:
源地址
目标地址
源端口
目标端口
协议
给定区域和虚拟路由器的唯一会话令牌号
区域和策略
要用于流的第一个数据包的安全策略缓存在流表中,以便用于同一流和密切相关的流。安全性策略与区域相关联。区域是定义安全边界的接口集合。数据包的传入区域(由到达的接口确定)和传出区域(由转发查找确定)共同决定了流的数据包使用哪种策略。
流程和会话
基于流的数据包处理是有状态的,需要创建会话。系统将为流的第一个数据包创建会话,以实现以下目的:
用于存储要应用于流数据包的大部分安全措施。
缓存有关流状态的信息。
例如,流的日志记录和计数信息缓存在其会话中。(某些有状态防火墙屏幕依赖于与单个会话或所有会话相关的阈值。)
为 NAT 等功能的流分配所需的资源。
为 ALG 和防火墙功能等功能提供框架。
大多数数据包处理发生在流环境中,包括:
管理策略、NAT、区域和大多数筛选。
ALG 和身份验证的管理。
了解基于数据包的处理
当数据包从其输入接口上的队列中移除时,以及在将其添加到其输出接口上的队列之前,将进行基于数据包的处理。
基于数据包的处理会对离散数据包应用无状态防火墙过滤器、CoS 功能和某些筛选。
当数据包到达某个接口时,系统会对其应用健全性检查、基于数据包的过滤器、一些 CoS 功能和一些筛选。
在数据包离开设备之前,任何基于数据包的过滤器、一些 CoS 功能以及与接口关联的某些屏幕都会应用于数据包。
过滤器和 CoS 功能通常与一个或多个接口相关联,以影响允许哪些数据包通过系统,并根据需要对数据包应用特殊操作。
以下主题介绍可配置和应用于传输流量的基于数据包的功能类型。
无状态防火墙过滤器
无状态防火墙过滤器也称为访问控制列表 (ACL),用于控制访问并限制流量速率。它们静态评估从源传输到目标的数据包,或来自路由引擎或向发送的数据包的内容。无状态 防火墙过滤器 会评估每个数据包,包括分段数据包。
您可以将无状态防火墙过滤器应用于输入或输出接口,或同时应用于两者。筛选器包含一个或多个术语,每个术语由两个组件组成:匹配条件和操作。默认情况下,与防火墙过滤器不匹配的数据包将被丢弃。
您可以规划和设计无状态防火墙过滤器,用于各种目的,例如,将流量限制到特定协议、IP 源或目标地址或数据速率。在 NPU 上执行无状态防火墙过滤器。
服务等级功能
CoS 功能允许您对流量进行分类和整形。CoS 功能在 NPU 上执行。
行为聚合 (BA) 分类器 — 这些分类器在数据包进入设备时对其进行操作。设备使用行为聚合分类器将不同类型的流量聚合到单个转发类中,以接收相同的转发处理。BA 分类器允许您根据差异服务 (DiffServ) 值设置数据包的转发类和丢失优先级。
流量整形 — 您可以通过为由特定流量流提供服务的特定应用分配具有不同延迟、 抖动和数据包丢失特征的服务级别来整形流量。流量整形对于实时应用(如语音和视频传输)尤其有用。
筛选
某些筛选,例如拒绝服务 (DoS) 筛选,会应用于流进程之外的数据包。它们在网络处理单元 (NPU) 上执行。
了解 IPv4 流量的默认处理行为
安全功能(如区域、屏幕和防火墙策略)需要基于流的处理模式才能正常运行。对于丢弃模式处理,流量将直接丢弃,不会转发。它不同于数据包模式处理,在数据包模式处理中,只处理流量,但不应用任何安全进程。
使用 功能资源管理器 确认平台和版本对特定功能的支持。
查看 了解 IPv4 流量的默认处理行为 部分,了解与您的平台相关的注意事项。
Configuring an SRX Series Device as a Border Router
当任何类型的 SRX 系列防火墙启用基于流的处理或丢弃模式时,要将设备配置为边界路由器,必须将 MPLS 模式更改为基于数据包的处理。在这种情况下,要将 SRX 系列防火墙配置为 MPLS 的数据包模式,请使用 set security forwarding-options family mpls mode packet-based 该语句。
特定于平台的 IPv4 流量行为
使用 功能资源管理器 确认平台和版本对特定功能的支持。
使用下表查看平台的特定于平台的行为:
| 平台 |
差异 |
|---|---|
| SRX 系列防火墙 |
|
了解 SRX320 设备上的流量处理
本主题介绍 SRX320 服务网关在为属于通过设备的流的数据包建立会话时所执行的过程。SRX320 设备的流服务是单线程和非分布式的。尽管它们在这方面与其他 SRX 系列防火墙不同,但遵循相同的流量模型并实施相同的命令行界面 (CLI)。
为了说明会话建立和数据包“遍历”,包括将服务应用于流的数据包的点,以下部分中描述的示例使用了单播会话的简单情况:
了解流处理和会话管理
本主题介绍如何设置会话来处理组成流的数据包。在以下主题中,SPU 指的是 SRX320 防火墙的数据平面线程。
一开始,数据平面线程将获取数据包并对其执行基本的健全性检查。然后,它会处理无状态过滤器和 CoS 分类器的数据包,并应用一些筛选。
了解第一个数据包处理
为了确定数据包是否属于现有流,设备会根据以下六个匹配标准尝试将数据包的信息与现有会话的信息进行匹配:
源地址
目标地址
源端口
目标端口
协议
来自给定区域和虚拟路由器的唯一令牌
SPU 检查其会话表,以查找数据包的现有会话。如果未找到存在的会话,SPU 将为流设置会话。如果找到会话匹配项,则会话已创建,因此 SPU 将对数据包执行快速路径处理。
了解会话创建
在设置会话时,SPU 将为数据包执行以下服务:
筛选
路由查找
策略查找
服务查找
NAT(如果需要)
会话设置完成后,将用于属于该流的所有数据包。根据其会话的参数处理流的数据包。对于数据包处理所需的其余步骤,请继续执行“快速路径处理”中的步骤 1。所有数据包都经过快速路径处理。
了解快速路径处理
如果数据包与会话匹配,Junos OS 将执行快速路径处理,如以下步骤所述。为流中的第一个数据包设置会话之后,还会进行快速路径处理。所有数据包都经过快速路径处理。
SPU 将基于流的安全功能应用于数据包。
将应用配置的屏幕。
将执行 TCP 检查。
如果需要,将应用流服务,例如 NAT、ALG 和 IPsec。
SPU 准备要转发的数据包并将其传输。
将应用路由数据包过滤器。
将应用流量整形。
将应用流量优先级。
将应用流量调度。
数据包将被传输。
了解 SRX4600 设备上的流量处理
瞻博网络 SRX4600 防火墙集成了基于流的安全和路由服务,包括高级安全和威胁缓解以及传统的有状态防火墙安全性。Junos OS 基于流的基础架构为第 4 层到第 7 层基于应用的服务提供了基础和框架。SRX4600 防火墙设计为集成防火墙部署在大型企业数据中心边缘和数据中心核心以及园区边缘。它还可以部署为 LTE 安全网关和 Gi/SGi 防火墙。
本主题包含以下内容:
了解 SRX4600 防火墙的部署方案及其功能
SRX4600 防火墙可以部署在许多区域,以保护您的环境及其资源。它通常通过以下方式用于保护数据中心边缘和核心:
-
将 SRX4600 防火墙部署为数据中心边缘防火墙
您可以在数据中心边缘部署 SRX4600 防火墙,为其托管的应用和服务提供最佳保护。每个数据中心都有一个入口点,允许客户端访问数据中心的服务,但恶意攻击者可以利用该入口点对这些服务发动攻击。进入数据中心的大量流量就是入口互联网流量。仅出于这个原因,在数据中心边缘部署强大的多层安全就至关重要。SRX4600 防火墙可以有效且可靠地阻止攻击,并且允许您对系统进行配置以阻止特定类型的攻击。SRX4600 防火墙支持瞻博网络的软件定义安全网络 (SDSN) 框架,包括瞻博网络高级威胁防御云 (ATP 云),该云围绕自动化且可操作的情报而构建,可快速共享这些情报,用于识别并缓解威胁。 图 2 显示了在数据中心边缘与 MX480 路由器和 EX 系列交换机一起部署的 SRX4600 防火墙。
图 2:在数据中心边缘部署 SRX4600 防火墙
-
在数据中心核心部署 SRX4600 防火墙
您可以在数据中心核心部署 SRX4600 防火墙,以增强安全性并确保满足合规性要求。数据中心处理变得越来越动态,需要明确的网络定义和合规性要求的实施。为确保合规性,您可以使用 SRX4600 防火墙将整个网络分段为单独的服务器网络,并保护服务器网络中的流量。SRX4600 防火墙提供高可用性和自动化,其高性能的第 3 层和第 4 层服务可满足数据中心核心的安全要求。 图 3 显示了在数据中心核心部署为多层防火墙的 SRX4600 防火墙。
图 3:在数据中心核心部署 SRX4600 防火墙
除了高级反恶意软件功能外,SRX4600 防火墙还支持以下功能:
-
有状态防火墙
-
应用安全套件
-
内容安全性(Sophos AV、Web 过滤、反垃圾邮件)
-
IDP
-
高可用性(机箱群集)
-
双高可用性控制端口 (10G)
-
对高可用性端口的 MACsec 支持
-
-
通过 QSFP28(100G/40G/4x10G 模式)、QSFP+(40G/4x10G 模式)和 SFP+(10G 模式)的以太网接口
-
IPsec VPN,包括 AutoVPN 和组 VPNv2
-
QoS 和网络服务
-
J-Web
-
使用组播的路由策略
基于流的处理和会话基础知识
要了解 SRX4600 防火墙上的流处理,了解流的基础知识非常重要。
流是满足相同匹配标准且具有相同特征的相关数据包流。Junos OS 以相同的方式处理属于同一流的数据包。SRX 系列服务网关的架构及其处理数据包流的方式紧密耦合。因此,在某种程度上,由于架构上的差异,SRX 系列防火墙之间的流量实现方式有所不同。
基于流的数据包处理是有状态的,需要创建 会话。系统会根据路由和其他流量分类信息创建会话,以存储信息并为流量分配资源。会话缓存有关流状态的信息,并存储要应用于流数据包的大部分安全措施。由于不同设备的架构差异,不同设备对会话的管理方式也不同。
无论存在这些差异如何,从概念上讲,所有服务网关的流过程都是相同的,会话服务于相同的目的和功能。
跨 SRX 系列防火墙实施的流和会话底层组件
SRX 系列防火墙使用相同的基础架构组件来支持流量和管理会话,但并非所有设备都实施所有组件。
要理解流量,必须了解以下组件及其使用方式:
-
服务处理单元 (SPU)
SPU 管理数据包流的会话。它将安全功能和其他服务应用于数据包。它还对数据包应用基于数据包的无状态防火墙过滤器、分类器和流量整形器。
-
中心点 (CP)
中心点是系统用于在 SPU 之间分配资源和分配会话管理的 SPU。处理流的第一个数据包时,中心点将确定要用于该数据包会话的 SPU。SRX4600 防火墙未实施中心点。
-
网络处理单元 (NPU) 和网络处理会话
NPU 是在 I/O 卡 (IOC) 上运行并离散处理数据包的处理器。创建流时,流的后续数据包将与 NPU 上的会话进行匹配。NPU 负责处理其他处理,例如 TCP 序列检查、生存时间 (TTL) 处理和第 2 层标头转换。NPU 可提高性能,避免在会话 SPU 和散列 SPU 之间进行额外的数据包转发。SRX4600 防火墙会实施 NPU。
SRX4600 防火墙流架构已得到改进,可以优化 SRX4600 设备高级多核至强™处理器的使用。SRX4600 防火墙实现使用专用会话线程来规避流中无序数据包管理等问题。它利用网络处理会话来确保将数据包转发到正确的专用线程。数据包根据基于散列的会话分发模型分发到不同的线程。
了解 SRX5000 线路上的流量处理
SRX5000设备上的Junos OS是一个分布式、并行处理、高吞吐量和高性能的系统。SRX5000 系列服务网关的分布式并行处理架构包括多个处理器,用于管理会话以及运行安全和其他服务处理。此架构提供了更大的灵活性,并允许高吞吐量和快速性能。
在 SRX1400、SRX3400、SRX3600、SRX5400、SRX5600 和 SRX5800 设备中,如果IKE对等方位于NAT设备后面,而设备将在协商期间更改IKE数据包的源 IP 地址,则涉及NAT遍历的IKE协商将失效。例如,如果 NAT 设备配置了 DIP,它将更改源 IP,因为 IKE 协议会将 UDP 端口从 500 切换到 4500。
SRX5000 系列设备上的 I/O 卡 (IOC) 和服务处理卡 (SPC) 包含处理单元,用于在数据包遍历设备时对其进行处理。IOC 具有一个或多个网络处理单元 (NPU),SPC 具有一个或多个服务处理单元 (SPU)。
这些处理单元有不同的职责。数据包的所有基于流的服务都在单个 SPU 上执行。这些 NPU 的职责对于在其上运行的其他类型的服务没有明确描述。.)
例如:
-
NPU 离散处理数据包。它会执行健全性检查,并将为接口配置的某些屏幕(如拒绝服务 (DoS) 屏幕)应用于数据包。
-
SPU 管理数据包流的会话,并向数据包应用安全功能和其他服务。它还对数据包应用基于数据包的无状态防火墙过滤器、分类器和流量整形器。
-
NPU 使用散列算法将数据包转发到 SPU。但是,对于 ALG 等某些应用,系统需要查询应用中心点,以确定应在哪个 SPU 上处理数据包。
系统的这些离散、协同的部分(包括中心点)分别存储信息,用于识别数据包流中是否存在会话的信息,以及数据包与之匹配的信息,以确定数据包是否属于现有会话。
此架构允许设备跨多个 SPU 分配所有会话的处理。它还允许 NPU 确定数据包是否存在会话、检查数据包以及对数据包应用筛选。数据包的处理方式取决于该数据包是否为流中的第一个数据包。
以下部分介绍以 SRX5400、SRX5600 和 SRX5800 设备为例的处理架构:
了解第一个数据包处理
图 4 展示了流量中的第一个数据包进入设备时的路径 — NPU 确定数据包不存在会话,然后 NPU 将数据包发送到分布式中心点以建立分布式中心点会话。然后,分布式中心点向应用中心点发送一条消息,以选择 SPU 来为数据包设置会话并处理数据包。然后,分布式中心点将数据包发送至该 SPU。SPU 处理数据包并将其发送至 NPU,以便从设备进行传输。(本简要说明不涉及功能对数据包的应用。)
在流量中的第一个数据包遍历系统并为其建立会话之后,将进行快速路径处理。
流中的后续数据包也会经过快速路径处理;在这种情况下,当每个数据包进入会话且 NPU 在其会话表中找到与其匹配项后,NPU 会将数据包转发到管理其会话的 SPU。
图 5 展示了快速路径处理。这是当数据包已为其相关数据包建立流量时所采用的路径。(这也是流量中第一个数据包在设置所发起的数据流的会话之后所采用的路径。)数据包进入设备后,NPU 在其会话表中找到与该数据包匹配的对象,并将该数据包转发至管理数据包会话的 SPU。请注意,数据包会绕过与中心点的交互。
了解快速路径处理
以下部分将介绍如何创建会话,以及数据包在通过设备传输时所经历的过程。
下面概述了在数据包通过 SRX5400、SRX5600 和 SRX5800 设备时,为数据包设置会话以及作为流的一部分处理数据包所涉及的主要组件。
-
网络处理单元 (NPU) — NPU 驻留在 IOC 上。他们处理数据包完整性检查和某些屏幕的应用。NPU 维护会话表,用于确定传入数据包或反向流量的会话是否存在。
如果之前通过接口进入设备并由此 NPU 处理的数据包的会话是在 SPU 上建立会话,则 NPU 会话表包含会话条目。SPU 在创建会话时,会在 NPU 表中安装会话。
NPU 通过对照数据包的会话表检查数据包信息,确定数据包是否存在会话。如果数据包与现有会话匹配,NPU 会将数据包及其元数据发送至 SPU。如果没有会话,NPU 会将数据包发送到一个 SPU,该 SPU 使用散列算法计算得出。
-
服务处理单元 (SPU) — SRX5400、SRX5600 和 SRX5800 设备的主处理器驻留在 SPC 上。SPU 建立和管理流量,并在数据包通过设备传输时对数据包执行大部分数据包处理。每个 SPU 都有一个散列表,用于快速会话查找。SPU 对流量应用无状态防火墙过滤器、分类器和流量整形器。SPU 对数据包执行所有基于流的处理,以及大多数基于数据包的处理。每个多核 SPU 独立处理数据包,相同或不同 SPC 上的 SPU 之间的交互极少。属于同一流的所有数据包都由同一 SPU 处理。
SPU 维护一个会话表,其中包含它建立的所有会话以及它处理这些会话的数据包的条目。当 SPU 从 NPU 收到数据包时,它会检查其会话表,以确保数据包属于它。它还会在从分布式中心点收到数据包时检查其会话表,并发送消息以建立该数据包的会话,以验证数据包是否存在现有会话。
-
中心点 - 中心点架构分为应用中心点和分布式中心点两个模块。应用中心点负责全局资源管理和负载均衡,分布式中心点负责流量识别(全局会话匹配)。应用中心点功能在专用中心点 SPU 上运行,而分布式中心点功能则分布到其余的 SPU。现在,中心点会话不再位于专用中心点 SPU 上,而是位于其他流 SPU 上的分布式中心点上。
-
路由引擎 — 路由引擎运行控制平面。
了解单播会话的数据路径
本节介绍如何为属于通过设备的流的数据包建立会话的过程。
为了说明会话建立和数据包“遍历”(包括将服务应用于流中数据包的点),此示例使用单播会话的简单案例。
此数据包“遍历”将 Junos OS 对数据包执行的基于数据包的处理和基于流的处理结合在一起。
会话查找和数据包匹配标准
为了确定数据包是否属于现有流,设备会根据以下六个匹配标准尝试将数据包的信息与现有会话的信息进行匹配:
-
源地址
-
目标地址
-
源端口
-
目标端口
-
协议
-
来自给定区域和虚拟路由器的唯一令牌
了解会话创建: 第一个数据包处理
本节介绍如何设置会话来处理组成流的数据包。为了说明该过程,本节使用一个带有源“a”和目标“b”的示例。流数据包从源到目标的方向称为 (a ->b)。从目标到源的方向称为 (b->a)。
步骤 1.数据包到达设备上的某个接口,NPU 对其进行处理。
本节介绍数据包到达 SRX 系列防火墙入口 IOC 时如何处理。
-
数据包到达设备的 IOC,并由 IOC 上的 NPU 进行处理。
-
NPU 对数据包执行基本的完整性检查,并将为接口配置的一些屏幕应用于数据包。
-
NPU 检查其会话表中是否有数据包的现有会话。(它将数据包的元组与其会话表中现有会话的数据包的元组进行检查。
-
如果未找到现有会话,NPU 会将数据包转发至散列 SPU。
-
如果找到会话匹配项,则会话已在分配给它的 SPU 上创建,因此 NPU 会将数据包与会话 ID 一起转发给 SPU 进行处理。
-
Example: 数据包 (a ->b) 到达 NPU1。NPU1 执行健全性检查并将 DoS 筛选应用于数据包。NPU1 检查其会话表是否有元组匹配,并且未找到现有会话。NPU1 将数据包转发至 SPU。
步骤 2.分布式中心点创建处于“挂起”状态的会话。
当 NPU 收到数据包时,NPU 会根据散列算法将其发送到分布式中心点。然后,分布式中心点会查找分布式中心点会话表,并在需要时创建一个条目。
此过程需要以下部分:
-
分布式中心点检查其会话表,以确定从 NPU 接收的数据包是否存在会话。(NPU 会将数据包转发到分布式中心点,因为它找不到该数据包的现有会话)
-
如果没有与分布式中心点会话表中的数据包匹配的条目,则分布式中心点将为会话创建一个挂起翼。然后,分布式中心点向应用中心点发送一条查询消息,以选择要用于会话的 SPU。
-
收到查询消息后,应用程序中心点会检查其门表,以确定数据包是否存在门。如果门匹配或触发了其他会话分配算法,应用中心点将选择另一个 SPU 来处理数据包;否则,将选择 SPU(即分布式中心点 SPU)。最后,应用程序中心点向分布式中心点发送查询响应。
-
收到查询响应后,分布式中心点会在消息中将流中的第一个数据包转发至所选 SPU,指示 SPU 在本地设置用于数据包流的会话。例如,分布式中心点为会话创建一个挂起的翼 (a ->b)。应用中心点选择要用于它的 SPU1。分布式中心点向 SPU1 发送 (a->b) 数据包以及一条消息,以便为分布式中心点创建会话。
Example: 分布式中心点为会话创建一个挂起的翼 (a ->b)。它会选择要用于它的 SPU1。它向 SPU1 发送 (a->b) 数据包以及一条消息,以便为其创建会话。
步骤 3.SPU 将设置会话。
每个 SPU 也有一个会话表,其中包含有关其会话的信息。当 SPU 收到来自分布式中心点以设置会话的消息时,它会检查其会话表,以确保数据包的会话尚不存在。
-
如果数据包没有现有会话,SPU 将在本地设置会话。
-
SPU 向分布式中心点发送一条消息,指示其安装会话。
注意:在第一个数据包处理期间,如果启用了 NAT,SPU 会为 NAT 分配 IP 地址资源。在这种情况下,会话的第一个数据包处理将暂停,直到 NAT 分配过程完成。
在安装会话之前,SPU 会将其可能接收的流的任何其他数据包添加到队列中。
Example: SPU1 为 (a ->b) 创建会话,并向分布式中心点发送一条消息,指示其安装挂起的会话。
步骤 4.分布式中心点安装会话。
分布式中心点从 SPU 接收安装消息。
-
分布式中心点将会话的挂起翼的状态设置为活动状态。
-
分布式中心点将会话的反向翼安装为活动翼。
注意:在某些情况下,例如 NAT,反向翼可能安装在与 init 翼分布式中心点不同的分布式中心点上。
-
它向 SPU 发送确认 (ACK) 消息,指示会话已安装。
Example: 分布式中心点从 SPU1 接收一条消息,用于安装 (a->b) 翼的会话。它将 (a->b) wing 的会话状态设置为活动状态。它为会话安装反向翼 (b->a) 并使其处于活动状态;这允许从流的相反方向传送数据包:目的地 (B) 传送到源 (A)。
步骤 5.SPU 在入口和出口 NPU 上建立会话。
NPU 维护有关数据包转发和传递的会话的信息。会话信息在出口和入口 NPU(有时相同)上设置,以便数据包可以直接发送到管理其流量的 SPU,而不是分布式中心点进行重定向。
了解快速路径处理
所有数据包都经过快速路径处理。但是,如果数据包存在会话,则该数据包将进行快速路径处理并绕过第一个数据包进程。当数据包流已存在会话时,数据包不会通过中心点。
快速路径处理的工作原理如下: 出口和入口接口的 NPU 包含会话表,其中包括管理数据包流的 SPU 标识。由于 NPU 具有此会话信息,因此该流的所有流量(包括反向流量)都将直接发送至该 SPU 进行处理。
为了说明快速路径过程,本部分使用一个包含源“a”和目标“b”的示例。流数据包从源到目标的方向称为 (a->b)。从目标到源的方向称为 (b->a)。
步骤 1.一个数据包到达设备,NPU 对其进行处理。
本节介绍数据包到达服务网关的 IOC 时如何处理。
-
数据包到达设备的 IOC,并由卡上的 NPU 进行处理。
NPU 会执行健全性检查,并将某些屏幕(例如拒绝服务 (DoS) 屏幕)应用于数据包。
-
NPU 在其会话表中标识与数据包匹配的现有会话的条目。
-
NPU 将数据包及其会话表中的元数据(包括会话 ID 和数据包元组信息)转发到管理流会话的 SPU,对其数据包应用无状态防火墙过滤器和 CoS 功能,并处理数据包的流处理以及安全和其他功能的应用。
Example: 数据包 (a ->b) 到达 NPU1。NPU1 对数据包执行健全性检查,对其应用 DoS 筛选,并检查其会话表是否匹配元组。它会查找匹配项,并且 SPU1 上的数据包存在会话。NPU1 将数据包转发至 SPU1 进行处理。
步骤 2.会话的 SPU 处理数据包。
数据包的大部分处理工作发生在为其会话分配到的 SPU 上。数据包将被处理为基于数据包的功能,如无状态防火墙过滤器、流量整形器和分类器(如果适用)。配置的基于流的安全性和相关服务(如防火墙功能、NAT、ALG 等)将应用于数据包。(有关如何确定会话安全服务的信息。
-
在处理数据包之前,SPU 会检查其会话表,以验证数据包是否属于其中一个会话。
-
SPU 处理数据包以获取适用的功能和服务。
Example: SPU1 接收来自 NPU1 的数据包 (a->b)。SPU1 检查其会话表,以验证数据包是否属于其某个会话。然后,它根据应用于其输入接口的输入过滤器和CoS功能处理数据包 (a ->b)。SPU 根据数据包的区域和策略,向其应用为数据包流配置的安全功能和服务。如果配置了任何配置,它将输出过滤器、流量整形器和其他筛选应用于数据包。
步骤 3.SPU 将数据包转发至 NPU。
-
SPU 将数据包转发至 NPU。
-
NPU 将与接口关联的任何适用筛选应用于数据包。
Example: SPU1 将数据包 (a ->b) 转发至 NPU2,NPU2 应用DoS筛选。
步骤 4.接口从设备传输数据包。
Example: 接口从设备传输数据包 (a->b)。
步骤 5.反向流量数据包到达出口接口,NPU 对其进行处理。
此步骤与步骤 1 完全相反。有关详细信息,请参阅本部分中的步骤 1。
Example: 数据包 (b->a) 到达 NPU2。NPU2 检查其会话表是否匹配元组。它会查找匹配项,并且 SPU1 上的数据包存在会话。NPU2 将数据包转发至 SPU1 进行处理。
步骤 6.会话的 SPU 处理反向流量数据包。
此步骤与步骤 2 相同,不同之处在于它适用于反向流量。有关详细信息,请参阅本部分中的步骤 2。
Example: SPU1 接收来自 NPU2 的数据包 (b->a)。它检查其会话表,以验证数据包是否属于 NPU2 标识的会话。然后,它将为 NPU1 接口配置的基于数据包的功能应用到数据包。它根据为其流配置的安全功能和其他服务以及其区域和策略来处理数据包 (b->a)。
步骤 7.SPU 将反向流量数据包转发至 NPU。
此步骤与步骤 3 相同,不同之处在于它适用于反向流量。有关详细信息,请参阅本部分中的步骤 3。
Example: SPU1 将数据包 (b->a) 转发至 NPU1。NPU1 处理为接口配置的所有屏幕。
8. 接口从设备传输数据包。
此步骤与步骤 4 相同,不同之处在于它适用于反向流量。有关详细信息,请参阅本部分中的步骤 4。
示例: 接口从设备传输数据包 (b->a)。
图 7 说明了数据包到达设备且数据包所属流量存在会话时所经历的过程。
的数据包遍历
了解服务处理单元
对于给定的物理接口,SPU 从与物理接口关联的网络处理器捆绑包中的所有网络处理器接收入口数据包。SPU 从物理接口提取网络处理器束信息,并使用相同的五元组散列算法将流映射到网络处理器索引。为了确定网络处理器,SPU 会查找网络处理器捆绑包中的网络处理器索引。SPU 将出口数据包发送到物理接口的本地物理接口模块 (PIM),以便传出流量。
网络处理器和 SPU 使用相同的五元组散列算法来获取数据包的散列值。
了解调度器特征
对于 SRX5400、SRX5600 和 SRX5800 设备,IOC 支持以下分层调度器特征:
-
IFL – 网络处理器包的配置存储在物理接口数据结构中。例如,SRX5400、SRX5600 和 SRX5800 设备最多有 48 个 PIM。物理接口可以使用 48 位位掩码来指示 PIM,或者来自此物理接口的网络处理器流量除了分布在物理接口的主网络处理器之外。
在 SRX5000 系列设备上, reth 等聚合接口不支持 iflset 功能。
-
IFD — 与网络处理器捆绑包的物理接口相关联的 逻辑接口 将传递给网络处理器捆绑包中具有 PIM 的所有 IOC。
了解网络处理器捆绑
网络处理器捆绑功能在 SRX5000 系列设备上可用。此功能允许将数据流量从一个接口分发到多个网络处理器,以便进行数据包处理。系统会为接收入口流量并将数据包分发到其他几个辅助网络处理器的接口分配一个主网络处理器。单个网络处理器可以充当主网络处理器,也可充当多个接口的辅助网络处理器。单个网络处理器只能加入一个网络处理器包。
网络处理器捆绑限制
网络处理器捆绑功能具有以下限制:
-
网络处理器捆绑每个捆绑包总共支持 16 个 PIM,以及 8 个不同的网络处理器捆绑系统。
-
您需要重新启动设备才能对捆绑包应用配置更改。
-
网络处理器捆绑位于整体架构中的 reth 接口下方。您可以从网络处理器包中选择一个或两个接口来形成 reth 接口。
-
如果从网络处理器捆绑包中移除 IOC,则转发到该 IOC 上 PIM 的数据包将丢失。
-
启用网络处理器捆绑包后,ICMP、UDP 和 TCP 同步泛洪阈值不再应用于某个接口。数据包被分发到多个网络处理器进行处理。这些阈值适用于网络处理器包中的每个网络处理器。
-
第 2 层模式下不支持网络处理器捆绑。
-
由于网络处理器上的内存限制,每个 PIM 支持的网络处理器捆绑端口数有限。在网络处理器包中,每个端口都需要有一个全局端口索引。全球端口指数使用以下公式计算:
Global_port_index = (global_pic * 16) + port_offset
-
机箱群集实施中的链路聚合组 (LAG) 和冗余以太网接口 LAG 可以与网络处理器捆绑共存。但是,LAG 和冗余以太网接口 LAG 都不能与网络处理器束重叠或共享物理链路。
了解会话缓存
概述
SRX5400、SRX5600 和 SRX5800 设备上的 SRX5K-MPC (IOC2)、SRX5K-MPC3-100G10G (IOC3) 和 SRX5K-MPC3-40G10G (IOC3) 支持会话缓存和会话缓存的选择性安装。
会话缓存用于缓存 IOC 上的网络处理器 (NP) 与 SPU 之间的对话。对话可以是会话、GTP-U 隧道流量、IPsec VPN 隧道流量等。会话有两个会话缓存条目,一个用于传入流量,另一个用于反向流量。根据流量入口和出口端口的位置,两个条目可能驻留在同一网络处理器或不同的网络处理器中。IOC 支持 IPv6 会话的会话缓存。
会话缓存条目也称为 会话翼。
IOC 上的会话缓存利用 Express Path(以前称为 服务卸载)功能,帮助防止高延迟和 IPsec 性能下降等问题。
会话缓存条目记录:
转换流量应转发到哪个 SPU
转换流量应在 Express Path 模式下转发到哪个出口端口
要对出口流量执行哪些处理,例如,Express Path 模式中的 NAT 转换
其他流量会根据其 5 元组密钥信息对 SPU 进行散列处理。VPN 流量采用锚定 SPU 的概念,该概念不一定与流 SPU 的功能一致。网络处理器只能根据五元组散列将数据包转发到流 SPU。然后,流 SPU 将数据包转发至锚定的 SPU。这会为 VPN 流量产生额外的跃点,浪费交换矩阵带宽,并将 VPN 吞吐量降低了大约一半。出现这种性能下降是因为流量在锚定的 SPU 上进行处理后仍必须返回流 SPU。
会话缓存表现在在 IOC 上得到了扩展,以支持 NP 会话。Express Path 流量和 NP 流量在 IOC 上共享相同的会话缓存表。Express Path 流量由 IOC 本身在本地转发或转发至其他 IOC,因为流量不需要 SPU 提供的任何服务。NP 流量将被转发到会话缓存中指定的 SPU,以便进行进一步处理。Express Path 会话流量和 NP 流量均共享所有会话缓存条目。
要在 IOC 上启用会话缓存,您需要运行命令 set chassis fpc <fpc-slot> np-cache 。
IOC2 和 IOC3 利用延迟会话删除机制。删除然后立即重新安装的相同会话(具有相同五元组的会话)不会缓存在 IOC 上。
选择性会话缓存安装
为了避免高延迟、提高 IPSec 性能并更好地利用宝贵的资源,流模块和 IOC 都应用了某些优先级机制。
IOC 维护并监控会话缓存使用阈值级别。IOC 还会将会话缓存使用情况发送给 SPU,因此,当达到特定的会话缓存使用阈值时,SPU 仅针对选择性高优先级流量会话发送会话缓存安装请求。
像 IDP、ALG 这样的应用需要按顺序处理数据包。一个SPU有多个流线程来处理属于一个会话的数据包,负载平衡线程(LBT)和数据包排序线程(POT)数据包顺序可以保证流量按顺序通过防火墙,不能保证应用按顺序处理属于同一会话的数据包。流序列化提供了一次只有一个 SPU 流线程处理数据包属于同一会话的方法,因此应用程序可以按顺序接收、处理和发送数据包。其他流线程可以同时为其他会话执行流序列化处理。
以下四个优先级级别用于确定哪种类型的流量可以在 IOC 上安装会话缓存:
Priority 1 (P1)— IPSec 和 Express Path 合格流量
Priority 2 (P2)— 分段排序
Priority 3 (P3)— NAT/SZ(会话序列化)流量
Priority 4(P3)— 所有其他类型的流量
IOC 维护和监控会话缓存使用情况的阈值级别,并将当前会话缓存使用情况更新到 SPU。SPU 请求 IOC 为某些高优先级流量会话安装会话缓存。表中定义了高优先级流量会话的会话缓存使用情况:
流量类型 |
0% <利用率< 25% |
25% <利用率< 50% |
50% <利用率< 75% |
75% <利用率< 100% |
|---|---|---|---|---|
IPsec 和 Express Path 流量 |
是 |
是 |
是 |
是 |
分片 对流量进行排序 |
是 |
是 |
是 |
否 |
NAT/SZ 流量 |
是 |
是 |
否 |
否 |
其他流量 |
是 |
否 |
否 |
否 |
为了保留 IOC 上的会话条目,流模块会有选择地在 IOC 上安装会话。为了便于会话安装选择,IOC 会维护相应的阈值,以便向流模块提供指示(有关 IOC 上会话缓存表的满数)。元标头中添加了两位以指示当前缓存表利用状态。进入 SPU 的所有数据包都将携带这两个状态位,以通知流模块 IOC 上缓存表的使用情况。
IPsec VPN 使用会话缓存增强会话亲和性
SRX 系列防火墙是完全分布式的系统,系统会将 IPsec 隧道分配并锚定到特定的 SPU。属于 IPsec 隧道的所有流量均在其隧道锚定 SPU 上进行加密和解密。为了实现更好的 IPsec 性能,IOC 改进了流模块,以便在其隧道锚定的 SPU 上为基于 IPsec 隧道的流量创建会话(加密前和解密后),并为会话安装会话缓存,以便 IOC 可以将数据包直接重定向到同一 SPU,从而将数据包转发开销降至最低。Express Path 流量和 NP 流量在 IOC 上共享相同的会话缓存表。
您需要在 IOC 上启用会话缓存并设置安全策略,以确定会话是否适用于所选灵活 PIC 集中器 (FPC) 上的 Express Path(以前称为 服务卸载)模式。
要启用 IPsec VPN 关联性,请使用命令。set security flow load-distribution session-affinity ipsec
要启用 IPsec VPN 关联性,还必须使用命令 set chassis fpc <fpc-slot> np-cache 在 IOC 上启用会话缓存。
使用 NP 会话缓存的分片数据包排序
会话可能由普通数据包和分段数据包组成。通过基于散列的分布,五元组和三元组密钥可分别将正常数据包和分段数据包分发到不同的 SPU。在 SRX 系列防火墙上,会话的所有数据包都会转发到正在处理的 SPU。由于转发和处理延迟,处理 SPU 可能无法保证会话的数据包排序。
IOC 上的会话缓存可确保对包含分段数据包的会话中的数据包进行排序。会话缓存条目为会话的正常数据包分配,三元组密钥用于查找分段数据包。在收到会话的第一个分段数据包时,流模块允许 IOC 更新会话缓存条目,以记住 SPU 的分段数据包。之后,IOC 将会话的所有后续数据包转发到 SPU,以确保包含分段数据包的会话数据包的排序。
配置 IOC 到 NPC 的映射
输入/输出卡 (IOC) 到网络处理卡 (NPC) 的映射要求您将一个 IOC 映射到一个 NPC。但是,您可以将多个 IOC 映射到单个 NPC。为了平衡 SRX3400 和 SRX3600 服务网关上 NPC 的处理能力,机箱进程(守护程序)运行执行映射的算法。它将 IOC 映射到映射到它的 IOC 数量最少的 NPC。您还可以使用命令行界面 (CLI) 将特定 IOC 分配给特定 NPC。配置映射时,机箱进程将首先使用您的配置,然后对其余 IOC 应用最小数 NPC 算法。
平台支持取决于设备安装的 Junos OS 版本。
要配置 IOC 到 NPC 的映射:
[edit]
set chassis ioc-npc-connectivity {
ioc slot-number npc (none | slot-number);
}
提交 set chassis ioc-npc-connectivity 命令后,必须重新启动机箱控制。
了解 SRX5K-SPC3 设备上的流处理
引入服务处理卡 SRX5K-SPC3 是为了提高SRX5000安全服务网关上的安全服务性能。SPC3 卡支持更高的吞吐量,在保留机箱群集功能和服务处理可扩展性的同时保持其可靠性。
SPC3 卡支持以下安全功能:
-
应用层网关 (ALG)。[参见 ALG 概述]
-
高级反恶意软件(瞻博网络 ATP 云)。[请参阅 瞻博网络 Sky Advanced Threat Prevention 管理]
-
应用安全套件。[请参阅 安全性设备的应用安全性用户指南]
-
基于流的数据包处理实施
-
GPRS 隧道协议 (GTP) 和流控制传输协议 (SCTP)。[请参阅 安全性设备的通用分组无线业务用户指南]
-
高可用性(机箱群集)。[请参阅 SRX 系列设备的机箱群集用户指南]
-
入侵检测和防御 (IDP)。[参见 入侵检测和防御概述]
-
网络地址转换 (NAT)。[请参阅 安全性设备的网络地址转换用户指南]
-
有状态防火墙
-
SSL 代理。[请参阅 SSL 代理]
-
防火墙用户身份验证。[请参阅 安全性设备的身份验证和集成用户防火墙用户指南]
-
内容安全性(防病毒、Web 过滤、内容过滤和反垃圾邮件)。[请参阅 UTM安全性设备用户指南]
安全流得到增强,可支持 SPC3 卡以及 SPC2 卡上支持的所有现有安全功能。
以下限制适用于 Junos OS 18.2R1-S1 版中的 SPC3 卡:
-
不支持 SPC3 卡和 SPC2 卡的互操作性。
-
SPC3 卡不支持 IPsec VPN 功能。
在 SRX5000 系列设备上,SPC3 卡可与 I/O 卡(IOC2、IOC3)、交换机控制板(SCB2、SCB3)、路由引擎和 SPC2 卡进行互操作。
从 Junos OS 18.4R1 版开始,SRX5000 系列设备支持 SPC3 和 SPC2 卡的组合。
如果要在 SRX5000 系列设备上添加 SPC3 卡,则必须将新的 SPC3 卡安装在任何 SPC 的最低编号插槽中。SPC3 卡安装在原始最低编号插槽中,在混合模式下提供中心点 (CP) 功能。 例如,如果服务网关混合包含 SPC2 和 SPC3 卡,则 SPC3 必须占用机箱中所有 SPC 中编号最低的插槽。此配置可确保混合模式下的中心点 (CP) 功能由 SPC3 卡执行。
在混合模式下运行的 SRX5000 系列设备上,流处理在 SPC3 和 SPC2 卡之间共享。中心点处理在安装了 SPC3 卡的编号最低的 SPC 插槽上进行。
当 SRX 系列防火墙在机箱群集模式下运行时,SPC3 和 SPC2 卡必须安装在每个机箱上的相同插槽位置。
- 了解 SPC3 软件架构
- 了解负载分布
- 了解 NP 会话和服务卸载 (SOF)
- 了解 SPC3 上的 J 流支持
- 了解数据路径调试 SPU 支持 (E2E)
- 了解分片处理、ISSU 和 ISHU 支持
了解 SPC3 软件架构
SPC3 流架构与 CP-Lite 架构相同。SPC3 物理上有两个服务处理单元 (SPU),每个 SPU 都有两个 CPU。
安装一个或两个 SPC3 时,流量处理会占用第一个 SPC 的 75%。安装三个或更多 SPC3 时,流量处理将占用第一个 SPC 的 50%。
IOC 为处理流而对数据包进行散列处理的方式发生了变化。图显示了采用 SPC3 SRX 系列防火墙的数据包流。
上的数据包流
在 SPC3 上,数据包从 IOC 直接分发到每个内核。由于 IOC 直接将数据包散列到流动的 RT 线程,因此原始 LBT 线程将被删除。数据包现在被传递到流动线程,而不是 SPU。如果安全流安装的是 NP 会话,而不是 SPU ID,则 IOC 使用会话线程 ID 将数据包转发到与会话关联的正确线程。
的数据包流
了解负载分布
通过收入端口的所有数据包将根据散列算法分发到不同的 SPU,这与现有基于 CP-Lite 架构的 SRX5000 Line 设备散列相同。散列方法因流量类型而异。下表列出了哈希方法。
| 协议 |
端口 |
散列方法 |
|
|---|---|---|---|
| TCP |
L4 SRC 端口和 DST 端口 |
由 5 元组哈希 |
|
| UDP |
正常 |
L4 SRC 端口和 DST 端口 |
由 5 元组哈希 |
| GTP |
L4 SRC 端口和 DST 端口 |
由 5 元组哈希 |
|
| IKE |
L4 SRC 端口和 DST 端口 |
按 IP 对散列 |
|
| ICMP |
|
ICMP 信息由 5 元组哈希; ICMP 错误由 3 元组散列(无端口信息) |
|
| SCTP |
L4 SRC 端口和 DST 端口 |
由 5 元组哈希 |
|
| ESP |
SPI |
按 IP 对散列 |
|
| AH |
SPI |
按 IP 对散列 |
|
| GRE |
如果启用了 PPTP alg,则 sport = call id;端口 = 0 默认情况下,端口为 0x00010001 |
由 3 元组哈希 |
|
| PIM |
默认情况下,PIM 端口0x00010001 |
由 3 元组哈希 |
|
| 片段 |
第一个片段,具有正常端口 无第一个分段,没有端口 |
由 3 元组哈希 |
|
| 其他 IP 数据包 |
端口0x00010001 |
由 3 元组哈希 |
|
| 无 IP |
不适用 |
按 MAC 地址和以太网类型 (VLAN ID) 散列 |
|
了解 NP 会话和服务卸载 (SOF)
网络处理器 (NP) 会话是基于 IOC 的会话,允许并建立 SPU 会话。通过 NP 会话的数据包具有以下优点:
-
避免对 SPU 进行会话查找,从而获得更好的性能。
-
避免在会话 SPU 和散列 SPU 之间进行额外的数据包转发。
服务卸载是一种特殊类型的 NP 会话,可为需要基本防火墙服务的会话提供低延迟功能。在 IOC 上命中 SOF 会话的数据包会绕过 SPU 上的数据包处理,并由 IOC 直接转发。以量类型支持服务卸载:
-
基本防火墙(无插件和分片)、IPv4 和 IPv6 TCP、UDP 流量
-
IPv4 NAT
-
1扇入和1扇出组播
-
ALG,例如 FTP 数据会话
了解 SPC3 上的 J 流支持
J-Flow 是行业标准流量监控机制的瞻博网络版本。它提供了将网络流量统计信息的快照导出到远程服务器以进行网络监控和进一步数据处理的功能。J-Flow 支持 v5、v8 和 v9 格式。SPC3 支持所有这三个版本。
了解数据路径调试 SPU 支持 (E2E)
数据路径调试在SRX5000线设备上提供基于过滤器的端到端 (E2E) 数据包调试功能。它跟踪数据包路径并转储数据包内容。
在 SPC3 上,JEXEC 是唯一受支持的 E2E 事件类型,并且支持以下 E2E 操作类型:
-
计数
-
转储
-
追踪
-
跟踪摘要
了解分片处理、ISSU 和 ISHU 支持
在 SPC3 上,分段数据包会根据其标头元组值转发到特定 PFE 中的“分片核心”。收到分段数据包后,Flow 会执行碎片整理,并将数据包转发到其会话核心。流逻辑不会更改并且保持不变。
执行 ISSU 时,虚拟 SPU 将同步到相关的虚拟 SPU ID。ISHU 支持基于 CP-Lite 架构。基本上,支持两种 ISHU 操作:
-
将新的 SPC 插入辅助节点。
-
更换辅助节点上的 SPC,SPC 数量应与主节点相同。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。
