VXLAN 环境中基于组的策略
概述
将基于组的策略 (GBP) 与虚拟可扩展 LAN (VXLAN) 架构相集成,有助于在网络环境中实现高级微分段。此功能使您能够实施基于标记的策略,其中策略由以业务为中心的标记驱动,而非传统网络拓扑约束。
通过配置源标记和目标标记匹配选项,您可以对网络访问进行精细控制,从而实现复杂的流量管理。系统利用 VXLAN 标头中的保留字段跨网段应用策略,确保灵活的流量隔离和通过端点组 (EPG) 增强访问控制。您可以使用各种标识符(如 MAC 地址、VLAN、RADIUS 服务器分配或控制器)管理组标记,从而提供适应性强的标记管理。
SRX 系列支持在安全策略中使用基于标记的匹配条件,以实施微分段。SRX 系列防火墙不支持 GBP 标记分配。
瞻博网络交换机一直支持基于组的策略模型( EVPN-VXLAN 基于组的策略)和微分段,现在 SRX 系列防火墙通过将 GBP 纳入其安全策略来扩展此功能。在继续学习本主题之前,建议您先阅读 在 VXLAN 中使用基于组的策略进行微分段和宏分段 。
有关受支持功能和平台的完整列表,请参阅功能浏览器中基于 EVPN-VXLAN 组的策略。
主要功能
-
端点分组:无论设备和用户在 VXLAN 交换矩阵中的物理位置如何,设备和用户都会根据其角色、功能或安全性要求进行逻辑组分类。
-
策略定义:在这些组之间定义安全性策略,指定允许的交互,然后在 VXLAN 叠加中强制执行这些交互。
-
一致的策略应用:无论设备在网络中的物理位置如何,都可以一致地应用策略,这是 VXLAN 位置无关架构的一个关键优势。
-
可扩展性:将新设备添加到组中时,它们会自动继承组的安全策略,这与 VXLAN 跨大型数据中心网络的扩展能力非常吻合
将 GBP 与 VXLAN 集成的优势
-
允许您跨企业网域实施一致的安全策略,简化配置过程,从而提高运营效率。
-
允许基于以业务为中心的标签对访问进行精细控制,从而增强网络安全性,降低与未经授权的访问相关的风险。
-
通过启用微分段来隔离网段并控制不同 EPG 之间的交互,从而促进高效的流量管理。
-
支持动态策略调整,无需重新设计网络拓扑,即可轻松适应不断变化的业务需求。
-
通过各种标识符提供标签管理的灵活性,从而允许与现有基础设施无缝集成并简化策略的实施。
简介
在 EVPN VXLAN 环境中,特别是在实施微分段时,以下术语对于理解流量如何在整个网络中分类、控制和分段至关重要。
- 端点组 (EPG) 是共享共同策略要求的端点(如虚拟机、容器或裸机主机)的逻辑分组。这些组用于定义哪些端点可以相互通信。基于 IP 子网、VLAN、VXLAN VNID 或标记等属性。这些组用于跨动态工作负载应用一致的安全策略。
- 基于组的策略 (GBP) 是一种策略模型,用于定义流量如何在不同 EPG 之间流动。这些策略可以根据身份(而不仅仅是 IP 或端口)控制端点组之间的通信。
- 可扩展组标记 (SGT) 是分配给端点(例如虚拟机、容器或主机)的 16 位元数据标识符,用于指示其组成员身份。GBP 标记一词是对使用这些标识符在整个网络中实施基于组的策略的更广泛的引用。在本文档中,我们使用术语 GBP 标记 来指代这些标识符
GBP 微分段是什么?
微分段将用户、服务器、虚拟机和设备分配给端点组,并在端点组之间定义基于组的策略,以管理端点之间的流量控制。
下图显示了 VXLAN 拓扑的一部分。
的微分段
在此图中,位于主干层的 SRX 防火墙起到了集中式安全和策略实施的作用。连接到接入交换机的四台主机(Host1、Host2、Host3、Host4)。这四台主机属于同一个 VLAN/子网。例如,假设要求如下:
- Host1 和 Host4 可以通信,
- Host2 和 Host3 可以通信。
- Host1 和 Host4 不得与 Host2 和 Host3 通信。
为了满足此要求,主机按端点组(EPG1和EPG2)分组,如下所示:
- Host1(在交换机1上)和Host4(在交换机2上)将添加到端点组1(EPG1)。
- Host2(在交换机 1 上)和 Host3(在交换机 2 上)将添加到端点组 2 (EPG2)。
对端点进行分组后,可以定义组内访问和隔离或组间访问或隔离。也就是说,两台接入交换机都配置了这样一个策略,如果源组是 EPG1,目标组是 EPG2,则拒绝流量,反之亦然。同样,还会创建另一组策略,如果源组和目标组相同,则允许流量。最终:
- 允许Host2和Host3之间的通信,因为两者都是EPG2的一部分。
- 允许Host1和Host4之间的通信,因为两者都是EPG1的一部分。
- 不允许Host1和Host2/Host 4之间通信,因为主机位于不同的EPG中。
- 不允许Host3和Host4/Host 2之间进行通信,因为主机位于不同的EPG中。
组标记分配
GBP 使用标记来标记流量并实施策略。分配过程涉及根据其业务功能将每个端点映射到特定标签,然后在策略查找过程中利用该标签来实施所需的通信模式。在园区网络中,可通过以下方法之一将标记分配给端点。
-
GBP 标记 — 基于入口接口上各种匹配的标记,包括:
- MAC 地址
- 端口
- VLAN
- 端口、VLAN
- 子网/IP 地址
- RADIUS 服务器分配标记 — 使用 RADIUS 服务器进行网络访问控制的网络环境。根据端点类型或用户授权和设备指纹,将端点放置在 VLAN 中。RADIUS 服务器在瞻博网络 VSA 中发送组标记。入口接入交换机可以将 RADIUS 服务器发送的组标记与该 MAC 地址生成的所有流量相关联。
- 控制器分配的标记 — 由控制器(如 Juniper Apstra 交换矩阵 Conductor)管理的网络环境,标记被分配给交换机端口或连接到交换机端口的端点。交换机可以将标记与来自这些端点的所有流量相关联。
GBP 标签的工作原理
- 每个端点(例如虚拟机、容器或主机)都会根据其角色或功能(例如,Web 服务器、数据库服务器、管理工作站)动态分配一个 GBP 标记。
- GBP 标记与流量一起传播,可以嵌入到 VXLAN 标头中,也可以作为元数据传输,确保组身份随数据包一起传输。
- SRX 系列防火墙或其他策略实施点会检查 GBP 标记,以确定应如何根据定义的基于组的策略处理流量。
- 通过匹配源 GBP 标记和目标 GBP 标记来应用安全性策略,从而允许根据组关系(而非 IP 地址或网络拓扑)做出实施决策
这种方法使组织能够实施反映业务逻辑和组织结构的策略,而不是受 VLAN 或子网等静态网络结构的约束。
用于 GBP 的 VXLAN 报头
VXLAN-GBP 利用 VXLAN 标头中的保留字段来携带分配给帧的 GBP 标记。下图是 16 位组策略 ID 字段的示例。
的 VXLAN 报头
实施挑战
在源 VTEP 封装数据包时,它会在 VXLAN 标头中包含源端点的 GBP 标记。这使得下游设备能够知道谁发送了流量。目标端点的 GBP 标记通常不包含在 VXLAN 标头中。只有在目的地VTEP知道它所服务的端点。
如果防火墙或策略引擎(如 SRX)位于交换矩阵中间,则可能只能看到源标记,而看不到目标标记,从而很难应用依赖于两者的 GBP 规则。在这种情况下,要同时实施基于源和目标 GBP 标记的策略,最佳部署是出口 VTEP,即知道目标端点及其组标记的交换机。这样可以确保准确执行策略。
要在入口设备或网关设备上启用基于标记的过滤,网络必须支持一种机制,以便为整个交换矩阵的所有端点共享组标记信息。示例: EVPN Type 5 路由(IP 前缀路由)可以承载包含 GBP 标记元数据的 BGP 社区。此设置允许叠加中的每台设备(包括 SRX 防火墙)学习所有端点的 GBP 标记,而不仅仅是本地连接的端点。
VXLAN 间网络中的组标记传输
在 VXLAN(虚拟可扩展 LAN)环境中,不同 VXLAN(通常称为 VNI 或虚拟网络标识符)之间的流量需要特殊处理,因为 VXLAN 旨在跨第 3 层基础架构扩展第 2 层网络。在这种情况下,必须在 VXLAN 隧道中保留源组 ID,以确保在整个流量流中维护与该组相关的任何策略或安全措施。
下图显示了使用可处理 VXLAN 封装流量的第 3 层网关在不同 VXLAN 分段 (VNI) 之间路由流量所涉及的过程。
中的组标记传输
场景概述:
- 需要在主机 1 和主机 4 之间建立通信。
- 主机 1 位于由 VNI 1000 标识的 VXLAN 中。
- 主机 4 位于由 VNI 2000 标识的不同 VXLAN 中。
- Host1 和 Host4 属于同一端点组 (EPG2)。
用于源组标记保留的流量和 VXLAN 间路由:
- Host1 发送发往 Host4 的数据包。与 Host1 的 VNI (1000) 关联的 VTEP1(VXLAN 隧道端点 1)接收此数据包。由于主机 4 位于不同的 VXLAN (VNI 2000) 中,因此 VTEP1 会将数据包转发到 VNI 1000 的默认网关,即第 3 层网关(此例中为 SRX 系列防火墙)。在这里,SRX 系列防火墙可以作为 VTEP 设备来执行封装和解封装。
注意:虽然 SRX 系列设备可以终止和重发 VXLAN 隧道,但它们不会插入 GBP 源标记。GBP 标记插入仅由叶设备执行。SRX 设备可以读取和评估策略中的 GBP 标记,但无法生成或分配这些标记,并且 SRX 不支持插入 GBP 标记所需的微分段过滤器。因此,虽然 SRX 可以参与 GBP 处理,但它不能作为 GBP 标记分配的叶设备运行。
- VTEP1 使用 VXLAN 标头封装数据包,其中包括 EPG1(端点组)组 ID,这是用于策略实施的元数据标识符。封装的数据包被发送到第 3 层网关。
- 第 3 层网关接收 VXLAN 封装的数据包。它对数据包进行解封装以检查内部有效负载和源组 ID。网关负责在不同 VNI 之间路由数据包,在本例中为 VNI 1000 到 VNI 2000。
- 第 3 层网关使用 VXLAN 标头重新封装数据包,以便转发至 VTEP2(与 Host4 的 VNI 关联,2000)。它可确保在此重新封装过程中将原始源组 ID (EPG1) 保留在 VXLAN 标头中。
- VTEP2 从第 3 层网关接收封装的数据包。它对数据包进行解封装,并将其发送至 VNI 2000 中的 Host4。
为了通过保留组标记有效管理 VXLAN 间流量,您必须配置网关路由器来处理跨 VXLAN 隧道端点 (VTEP) 的封装和解封装过程。为了在传输过程中保留源组标记,以便跨不同网段实施一致的策略,需要此配置。
站点间或外部通信
下图显示了用于两个数据中心之间通信的主干和分叶 EVPN-VXLAN 拓扑。
在此拓扑中,SRX 系列防火墙充当第 3 层网关,用于 VXLAN 分段之间(即不同子网或 VNI 之间)流量。它可为 DC 间流量建立 IPsec 隧道,确保站点或外部网络之间的加密通信。
当主机流量遍历主干-分叶拓扑时,系统会先使用 VXLAN 标头对数据包进行封装。然后,它确定是否需要额外的封装(如 IPSec)。如果是这样,SRX 将为下一阶段的隧道准备数据包,确保安全且符合策略的交付。
有关 GBP 的更多信息,请参阅在 VXLAN 中使用基于组的策略进行微分段和宏分段。有关 EVPN-VXLAN 中 SRX 系列防火墙的配置,请参阅 SRX 系列设备对 EVPN-VXLAN 进行隧道检测。
配置基于组的策略
要有效实施基于 VXLAN 组的策略,请了解配置顺序和选项的过程。本节提供与 EVPN-VXLAN 部署中基于组的策略相关的配置顺序和示例。确保 EVPN-VXLAN 基准(包括底层和叠加配置)已正确设置且可运行。
配置顺序
要有效实施 GBP,您必须:
- 定义 GBP 标记:
将 GBP 标记(数字标识符)分配给端点,以便将其分类到逻辑安全组中。这些标记有助于在整个网络中实施基于身份的策略。
- 静态分配:直接在交换机端口上配置 GBP 标记。
- 动态分配:在交换机上使用 RADIUS 和 802.1X 身份验证,在登录过程中根据用户/设备身份分配 GBP 标记。请参阅在 VXLAN 中使用基于组的策略在微分段和宏分段中使用 802.1X 分配 SGT。
可以为源和目标配置的最大 GBP 标记数为 128。
- 创建 GBP 标记分配过滤器: 在交换机上设置过滤器,以便为传入流量分配 GBP 标记。这些过滤器可以基于接口(端口)、MAC 地址或用户身份验证结果(例如,RADIUS 属性)。这可确保使用其组标识正确标记进入 VXLAN 交换矩阵的流量,以便下游实施策略。
配置 GBP 策略实施过滤器: 制定策略,根据分配的 GBP 标记对流量实施安全措施,控制允许或阻止哪些流量以实现分段。
启用 VXLAN-GBP 封装: 配置 VXLAN 以将 GBP 标记合并到 VXLAN 标头的组策略 ID 字段中,以促进标记在 VXLAN 交换矩阵中的传播。
在实施点应用 GBP 策略: 默认情况下,实施发生在源和目标 GBP 标记都可用的出换机上。瞻博网络还支持可选的入口实施,要求将目标标记传播到入口点。
验证和监控: 利用作命令确保 GBP 标记分配、策略实施和 VXLAN 封装正常运行,确保策略按预期应用。
配置示例
GBP 配置会有所不同,具体取决于您是在集中路由和桥接 (CRB) 叠加网络上运行,还是在 Edge 路由和桥接覆盖网络上运行。有关详细信息,请参阅在 VXLAN 中使用基于组的策略进行微分段和宏分段。
在接入交换机或聚合交换机上
配置名为“TEST-1”的防火墙过滤器,具有微分段功能。在过滤器中指定术语“t1”的条件。它分别匹配源自子网 20.20.20.0/24 和 2000::/64 的 IPv4 流量和 IPv6 流量。接下来,定义与术语“t1”中指定的条件匹配的流量的作。在这种情况下,将值为 200 的“gbp-tag”(基于组的策略标记)应用于匹配的流量。
[edit] user@host# set firewall family any filter TEST-1 micro-segmentation user@host# set firewall family any filter TEST-1 term t1 from ip-version ipv4 address 20.20.20.0/24 user@host# set firewall family any filter TEST-1 term t1 from ip-version ipv6 address 2000::/64 user@host# set firewall family any filter TEST-1 term t1 then gbp-tag 200
配置 GBP 策略实施。GBP 源标记为 100 和 GBP 目标标记为 200 的数据包将在术语 t100-200 上匹配并被接受。GBP 源标记为 100 和 GBP 目标标记为 300 的数据包将在术语 t100-300 上匹配并被丢弃。
[edit] user@host# set firewall family any filter gbp-policy term t100-200 from gbp-src-tag 100 user@host# set firewall family any filter gbp-policy term t100-200 from gbp-dst-tag 200 user@host# set firewall family any filter gbp-policy term t100-200 then accept user@host# set firewall family any filter gbp-policy term t100-300 from gbp-src-tag 100 user@host# set firewall family any filter gbp-policy term t100-300 from gbp-dst-tag 300 user@host# set firewall family any filter gbp-policy term t100-300 then discard
- 启用以下语句可在入口节点上执行策略实施。
[edit] user@host# set forwarding-options evpn-vxlan gbp ingress-enforcement
入口实施会在入口处丢弃原本会在出口处丢弃的标记数据包,从而节省网络带宽。为了支持在入口处或更接近入口处实施策略,我们使用 EVPN 2 类和 5 类路由中的扩展 BGP 社区在网络中传播基于 MAC 和 IP-MAC 的标记。有关更多详细信息,请参阅在 VXLAN 中使用基于组的策略进行微分段和宏分段中的入口和标记传播部分中的策略实施。
将 GBP 过滤器与路由实例相关联。在路由实例中,配置 EVPN-VXLAN GBP 入口源标记以使用
TEST-1过滤器。[edit] user@host# set routing-instances R1 forwarding-options evpn-vxlan gbp ingress-src-tag filter TEST-1
在接口
ge-0/0/1单元 0 上,应用过滤器链TEST-1,以确保将源 GBP 标记推送到数据包标头中。[edit] user@host# set interfaces ge-0/0/1 unit 0 filter chain TEST-1
在 SRX 系列防火墙上
从区域到
untrust区域之间trust建立安全策略zone-pol1。该策略匹配具有许多条件的流量,包括源 GBP 标记:
200。如果流量符合所有这些条件,则策略允许该流:[edit] user@host# set security policies from-zone trust to-zone untrust policy zone-pol1 match source-address any user@host# set security policies from-zone trust to-zone untrust policy zone-pol1 match destination-address any user@host# set security policies from-zone trust to-zone untrust policy zone-pol1 match application any user@host# set security policies from-zone trust to-zone untrust policy zone-pol1 match dynamic-application any user@host# set security policies from-zone trust to-zone untrust policy zone-pol1 match gbp-src-tag 200 user@host# set security policies from-zone trust to-zone untrust policy zone-pol1 match gbp-dst-tag 400 user@host# set security policies from-zone trust to-zone untrust policy zone-pol1then permit
- 验证防火墙上的策略详细信息:
usr@hhost# show security policiesDefault policy: permit-all Default policy log Profile ID: 0 Pre ID default policy: permit-all Default HTTP Mux policy: permit-all From zone: trust, To zone: untrust Policy: zone-pol1, State: enabled, Index: 4, Scope Policy: 0, Sequence number: 1, Log Profile ID: 0 Source vrf group: any Destination vrf group: any Source addresses: any Destination addresses: any Applications: any Dynamic Applications: any Source identity feeds: any Destination identity feeds: any Gbp source tags: 200 Gbp destination tag: 400 Action: permit, log