防火墙中使用虚拟路由和转发的流量管理

SD-WAN 部署中的虚拟路由和转发实例

需要虚拟路由和转发 (VRF) 实例将每个租户的路由与其他租户的路由以及其他网络流量分隔开。防火墙使用 VRF 实例对网络进行分段,以提高 SD-WAN 部署的安全性和可管理性。例如,您可以创建称为租户的不同路由域来对大型企业网络进行分段,对流量进行分段,以支持多个客户网络。每个租户都有自己的路由表,可以支持重叠的 IP 子网。VRF 可用于管理路由,并根据 VRF 中特定租户的独立转发表转发流量。

在 SD-WAN 部署中,提供商边缘 (PE) 路由器既可以是中枢设备,也可以是接收和转发 MPLS 流量的分支设备。客户边缘(客户边缘)路由器是一种防火墙,可与 PE 路由器交互,使用 VRF 路由实例传输 VPN 流量。VRF 实例会转发每个客户 VPN 流量,每个 VRF 实例包含一个标签,用于表示流经该 VRF 的所有客户流量。

连接到防火墙分支端的不同站点可以属于同一租户或同一个 VRF 路由实例。这些站点发送旨在到达公共互联网或远程租户站点的 IP 流量。

当流量到达防火墙的分支端时,设备会从连接到这些站点的 LAN 接口识别 VRF 实例。对此流量进行安全处理后,流量将在该 VRF 路由表中找到到达目标的路由。如果目的是基于下一跃点的通用路由封装 (GRE) 上的 MPLS,则防火墙会添加相应的 MPLS 标签,并将数据包转发至中枢端设备。

在中枢端设备,在接收 MPLS over GRE 隧道流量后,防火墙会关联 MPLS 标签以识别相应的 VRF 路由实例。完成流量安全处理后,设备将识别目标位于公共互联网上还是可通过 MPLS 下一跃点到达。

如果目标是公共互联网,NAT 会将 VRF 专用 IP 地址转换为公共 IP 地址并建立会话。如果目标是一种 MPLS 下一跃点,则会添加相应的 MPLS 标签,并使用 GRE 叠加隧道将数据包转发到远程分支。

在远程分支端,设备通过 GRE 隧道接收到 MPLS 流量后,会使用 MPLS 标签识别对应的 VRF 路由实例。防火墙利用该 VRF 路由实例,在该 VRF 中找到正确的目标 LAN 接口,以便将数据包转发到目标。

SD-WAN 部署中的组播支持

从 Junos OS 21.2R1 版开始,我们为SD-WAN 部署的提供商边缘 (PE) 中的 SRX 系列防火墙添加了对组播流量的支持。当安全设备在层次结构中set security forwarding-options family mpls mode将转发选项设置为基于流的情况下运行时,就可以支持组播流量。请参阅转发选项(安全性)。

限制

  • 当设备在转发选项设置为 的情况下 packet-based运行时,不支持组播流量。
  • 支持组播流量,仅适用于使用 IP-over-MPLS-over-GRE 和 IP-over-MPLS-over-GRE-over-IPsec 的中心辐射型拓扑
  • 对组播流量的支持不会引入任何更改,也不会解决与组播 VPN (MVPN) 数据转发功能相关的任何限制。请参阅 限制要由 MVPN VRF 实例播发的路由。

使用 VRF 路由实例的流管理

防火墙流基于五元组数据(源 IP 地址、目标 IP 地址、源端口号、目标端口号和协议号)以及流量输入接口和输出接口的接口令牌创建会话。例如,路由实例 VRF-1 和路由实例 VRF-2 具有相同的 5 元组流量,可通过同一物理 GRE 隧道进出。当同一隧道中的这些重叠 IP 地址进入或退出防火墙时,由于会话信息冲突,防火墙流无法在数据库中安装多个会话。在安装过程中,防火墙需要提供其他信息来区分会话。

防火墙可以使用会话密钥中带有 MPLS 标记数据包的 VRF 信息来区分会话。为了区分来自不同 VRF 实例的会话,流使用现有会话密钥的 VRF 标识号来识别每个 VRF 实例。此会话密钥用作会话查找期间的匹配条件之一。

您可以使用以下匹配标准以及安全策略中现有的五元组匹配条件,来允许或拒绝基于给定 VRF 的流量:

  • 源 VRF — 与数据包的传入接口关联的 VRF 路由实例。当包含标签的传入 MPLS 数据包到达防火墙时,设备会对标签进行解码,并将标签映射到传入接口。

  • 目标 VRF — 与到达目标的最终路由相关联的 VRF 路由实例。在新会话的第一个数据包处理期间,流需要一个目标路由,以便将数据包路由到下一跃点设备或接口。Flow 从传入接口或单独的 RTT 表搜索初始路由表,直到找到最终下一跳设备或接口。找到最终路由条目后,如果该路由指向 MPLS 下一跃点设备,则目标 VRF 会分配给找到最终路由的路由实例。

使用虚拟路由和转发组的流处理

了解虚拟路由和转发组

SD-WAN企业网由多个L3VPN网络组成,如下图所示。

图 1:多个 L3VPN Cloud-based network diagram showing an on-premise site linked to a cloud site via an edge device. The cloud site connects to a data center site with hubs and edges. Multiple VPNs with customer edge devices connect to the network, illustrating a hybrid cloud network architecture with VPN connectivity.

L3VPN 网络在站点(CPE 设备)上被识别为一组 VRF 实例。站点上属于 L3VPN 网络的站点上的 VRF 实例用于基于应用策略的转发。防火墙流量会话处理功能得到增强,可支持基于应用的转向策略在这些 VRF 实例之间进行中游流量切换。VRF 实例在逻辑上属于给定 L3VPN 网络的一部分,可配置为 VRF 组。现有防火墙、NAT 配置命令已得到增强,可支持对 VRF 组的操作。

下图说明了如何根据 APBR 策略在多个 VRF 之间在 L3VPN 中进行流量引导。

图 2:跨多个 VRF Network diagram showing routing between two firewalls with APBR rules, BGP connections, routing paths, and RIB groups. 的 L3VPN

使用 VRF 实例配置 VRF 组时,将生成一个 VRF 组 ID。以下 VRF 组用于以下模块中以控制 SD-WAN L3VPN:

  • Security Policy - 用于策略控制。

  • Flow - 基于 VRF 组名称以及源或目标区域、源或目标 IP 地址和协议搜索策略。因此,使用 VRF 组作为区分因素之一创建会话。

  • NAT - 支持基于 VRF 组名的 NAT 规则。

  • ALG - 使用 VRF 组作为差异化因素之一创建 ALG 会话。

VRF 组的功能包括:

  • 它允许会话在两个 MPLS VRF 之间切换。

  • 当 VRF 实例属于同一 VRF 组时,安全功能(如流、策略、NAT 或 ALG 模块)以类似方式处理 VRF 实例。

  • 使用 VRF 实例配置 VRF 组时,将生成一个 VRF 组 ID。此组 ID 存储在会话中,用于识别特定 VRF 实例的 VRF 组。

引入 VRF 组是为了支持 SD-WAN 网络中基于 L3VPN MPLS 的会话。当 MPLS L3VPN 网络中存在重叠或没有重叠的 IP 网络地址时,用于控制策略、流、NAT 和 ALG 模块中的 MPLS L3VPN 流量。

如果流量在非 MPLS L3VPN 网络之间传递,则不会配置 VRF 组。未配置 VRF 组时,VRF 组 ID 将为零,或者策略将使用 VRF 组选项 any 。

VRF 组的用途是:

  • 区分 MPLS L3VPN 网络之间的 L3VPN 会话。

  • 在 MPLS L3VPN 网络之间进行策略和 NAT 控制。

VRF 组的类型

L3VPN 网络中有两个重要的 VRF 组:

  • 源 VRF 组

  • 目标 VRF 组

要了解可以将哪些 VRF 实例组合在一起用于源 VRF 组或目标 VRF 组,请使用以下信息:

  • Source-VRF instances— 将不同 MPLS 路径协商到同一入站目标的 VRF 实例列表。

  • Destination-VRF instances— 包含给定 L3VPN 流量的目标路由的 VRF 实例列表。

注意:

如果流量以相反方向启动,VRF 会根据流量方向切换角色。

VRF 运动

从 图 3 可以看出,会话建立的初始流量是从左到右。流量进入 GRE-Zone1,然后进入源 VRF 组 (A) 并先通过目标 VRF 组 (A'),然后再通过 GRE_Zone2 退出。

同样,使用源 VRF 组 (A) 和目标 VRF 组 (A) 作为会话中的附加键值,启动策略搜索 GRE_Zone1->Source-VRF group(A)->Destination-VRF group->(A’)->GRE_Zone2 并设置流会话。使用 VRF 组完成流会话时,流量可从组内的一个 VRF 切换(重新路由)到另一个 VRF。

图 3: VRF 组 MPLS traffic flow through firewall with VRF and GRE zones; green arrows show flow, red symbol indicates blocked traffic.内的 VRF 移动

VRF 组 ID

为了存储 VRF 组 ID,会话密钥数据结构中使用 16 位数字。

配置 VRF 组

要配置 VRF 组,请使用以下步骤:

  • 列出需要分组的 VRF 实例。

  • 为 VRF 组分配名称。

  • 在 CLI 命令set security l3vpn vrf-group group-name vrf vrf1 vrf vrf2 中应用 VRF 实例和 VRF 组名称

源和目标 VRF 组根据不同的上下文单独配置。

  • Source VRF group— 路由实例的源 VRF 组与 MPLS 数据包相关联。设备收到 MPLS 数据包时,数据包将被解码并映射到 LSI 接口。LSI 接口包含有助于识别 VRF 组详细信息的路由表信息。

  • Destination VRF group— 在对新会话的数据包进行第一路径流处理期间,需要提供目标路由信息才能将数据包路由到下一跃点或接口。Flow 搜索路由表以获取路由信息。当收到的路由信息指向 MPLS 作为下一跃点时,此路由的 VRF 将用于识别目标 VRF 组。

注意:

在某些情况下,当您希望控制 L3VPN 网络中的所有相关 VRF 时,源 VRF 组和目标 VRF 组是相同的。

VRF 组 运维

配置 VRF 组时,将创建一个组 ID,该组 ID 对于不同的 VRF 组都是唯一的。您可以执行不同的操作,例如向 VRF 组添加、删除或修改 VRF。

将 VRF 添加到 VRF 组

将 VRF 添加到 VRF 组时,相应的 VRF 组 ID 将分配给 VRF。将 VRF 添加到 VRF 组时,请记住以下几点:

  • 一个 VRF 只能添加到一个 VRF 组。它不能是多个 VRF 组的一部分。

  • 一个 VRF 组中最多可配置 32 个 VRF。

  • 添加 VRF 时,它会影响现有会话,并会根据策略创建新会话。

  • 将新 VRF 添加到 VRF 组后创建新会话时,会话将使用新 VRF 的新 VRF 组 ID。

从 VRF 组中移除 VRF

从 VRF 组中移除 VRF 时,该 VRF 组的 VRF 组 ID 将变为零,但 VRF 在设备中仍可用。从 VRF 组中移除 VRF 时,将以两种方式影响现有会话:

  • Impacting existing sessions— 从 VRF 组中移除 VRF 时,将移除现有会话,并根据策略创建新会话

  • Match Traffic— 当从 VRF 组中移除 VRF 时,该 VRF 的 VRF 组 ID 将更改为零,因此将与会话不匹配。数据包将被丢弃,然后根据策略创建一个新会话。

从 VRF 组中移除 VRF 后,使用受影响的 VRF 处理的新会话将安装新的 VRF 组 ID。此 VRF 组 ID 将为零,或者如果将 VRF 添加到新的 VRF 组,则会创建新的组 ID

修改 VRF 组

修改 VRF 组涉及以下操作:

  • Changing VRF group name:更改 VRF 组名称时,策略模块将扫描现有会话,以验证新的 VRF 组名称是否与现有规则匹配。

  • Adding VRF to VRF group:将VRF添加到VRF组时,将相应的VRF组ID分配给VRF。

  • Removing VRF from VRF group:从 VRF 组中移除 VRF 时,该 VRF 的 VRF 组 ID 将更改为零,并且 VRF 仍将在设备中可用。

移除 VRF 组

使用 CLI 移除 VRF 组时,将对现有会话执行会话扫描,以匹配移除的 VRF 组。如果会话与已移除的 VRF 组匹配,则通过设置无效超时将该会话从设备中移除。对于与已移除的 VRP 组 ID 不匹配的会话,不受影响。

使用 VRF 组的第一条路径处理

要处理数据包,第一个路径处理将执行以下操作:

  • MPLS Decoder— 当流收到 MPLS 或非 MPLS 数据包时,将处理数据包以检索传入数据包、接口和传入接口的路由实例的详细信息。

  • FBF configuration— 当您配置 FBF 规则以将传入数据包重定向到不同的路由实例时,FBF 规则将查找路由实例信息并传递 FBF 路由实例信息,而不是数据包传入接口路由实例。此 FBF VRF 应是 VRF 组的一部分,以控制 L3VPN 网络。

  • Initialize Routing-Table— 当数据流收到数据包时,将创建数据包的初始路由表。如果 FBF 配置与防火墙过滤器匹配,则来自 FBF 的路由实例信息将用于路由查找。否则,流使用传入接口路由实例信息进行路由查找。

  • Finding Source VRF group— 如果传入数据包来自 MPLS 网络,则数据包将映射到源 VRF 组的 VRF 实例。如果传入数据包不是 MPLS 数据包,则源 VRF 组 ID 为零。

  • Destination NAT using VRF group— 流检查目标 IP 是否需要 NAT 转换。目标 NAT 支持两种类型的 VRF 匹配标准:

    • 使用 VRF 路由组进行 NAT 规则搜索。

    • 使用 VRF 路由实例和 NAT 信息的 NAT 规则结果。

  • Destination Route— 在初始路由表中完成的路由查找用于识别传出接口和目标VRF信息。此信息用于策略搜索和会话安装。

  • Final next-hop—查找目标路由的第一步是查找指向路由的最终下一跃点。使用此下一跃点,流将检查下一跃点是否指向 MPLS 网络。如果目标 VRF 组未指向 MPLS 网络,则目标 VRF 组将为零。

  • Destination VRF group— 识别目标VRF后,将初始化目标VRF组ID。如果目标 VRF 未分配给任何组,则将其设置为零。

  • First Path Policy Search— 流会执行策略搜索,以检查是否需要允许或拒绝数据包。Flow 收集 5 元组策略密钥信息和 VRF 信息,策略搜索模块将使用此信息来查找相应的 VRF 策略。

  • Source NAT using VRF group— 流会话使用源 VRF 组 NAT 规则搜索执行源 NAT。源 NAT 支持两种类型的 NAT 搜索条件。

    • 使用 VRF 组进行源 NAT 规则搜索。

    • 使用 VRF 组或 VRF 实例的静态 NAT 规则搜索。

  • Static NAT using VRF group or VRF instance— 静态 NAT 支持规则集中的路由组和具有 VRF 类型的规则中的路由实例。

    • 当静态 NAT 与给定 IP 数据包的目标 NAT 转换匹配时,VRF 路由组将是匹配标准之一,并且 VRF 路由实例将用作目标路由表。

    • 当静态 NAT 与给定 IP 数据包的源 NAT 转换匹配时,VRF 路由实例将是匹配条件之一。

  • Session Installation using VRF group— 在会话安装过程中,源 VRF 组 ID 存储在前向翼中,指示该翼指向 MPLS 网络。通过路由查找找到的目标 VRF 组 ID 存储在反向翼中,指示翼指向 MPLS 网络。

  • Re-routing using VRF group— 使用 VRF 组信息建立会话后,如果接口已关闭或初始路由不可用,将启动重新路由。这些更改的路由应属于同一 VRF 组(源 VRF 组/目标 VRF 组),会话最初在其中一端建立。否则,流量将与会话不匹配,并且会话的未来流量可能会被丢弃或根据策略创建新会话。

使用 VRF 组的快速路径处理

快速路径处理执行以下步骤来处理数据包。

  • MPLS Decoder— 收到数据包 MPLS 或非 MPLS 数据包时,数据包将进行 MPLS 处理。处理完成后,流将接收传入数据包、接口和传入接口的路由实例的详细信息。

  • FBF configuration— 当您配置 FBF 规则以将传入数据包重定向到不同的路由实例时,FBF 规则将查找路由实例信息并传递 FBF 路由实例信息,而不是数据包传入接口路由实例。此 FBF VRF 应是 VRF 组的一部分,以控制 L3VPN 网络。

  • Session look-up using VRF Group-ID— 在会话查找过程中,流检查是否要在会话密钥中传递VRF Group-ID进行查找。如果传入接口是 MPLS,则流会将映射的 VRF 路由实例的 VRF 组 ID 信息与其他密钥元组信息一起传递到会话密钥。如果传入接口不是 MPLS,则 VRF 组 ID 将为零。

  • Session Route change— 如果路由在中途更改会话,则流会检查属于此路由的新 VRF。如果新的 VRF 组 ID 与会话的 VRF 组 ID 不同,则不会处理路由,并且将来的数据包将被丢弃。因此,为了重新路由,新路由应属于属于会话VRF组的VRF。

  • VRF Group policy change— 当 VRF 组会话策略由于策略属性(如区域/接口/IP/源 VRF 组/目标 VRF 组)而更改时,将通过提供策略 5 元组以及源 VRF 组和目标 VRF 组值来检查策略是否有效,从而为同一会话重新匹配策略。重新匹配时,如果策略与会话信息不匹配,则会话终止。

  • VRF session display— 源 VRF 组和目标 VRF 组显示在会话输出显示中,以区分同一元组的不同 VRF 组。

  • High Availability— 当其他 VRF 组 ID 信息同步到 HA 对等节点以区分会话中的高可用性对等节点时,支持高可用性且行为不会改变

使用 VRF 感知区域进行流处理

在会话管理中,我们现在将区域 ID 集成到会话元组中。虚拟路由和转发 (VRF) 组 ID 由区域 ID 取代,流会话缓存并向下传递该 ID 以供进一步处理。

基于区域的会话管理通过准确地将会话与正确的接口和叠加区域相关联,保持与网络配置的一致性。当区域配置发生变化(如接口或叠加区域发生更改)时,系统会自动终止链接到受影响区域的会话,从而在整个会话管理框架中保持一致性和可靠性。只有与修改过的区域关联的会话才会终止,而链接到未受影响区域的会话将继续无缝运行。