示例:在 VXLAN 中使用基于组策略的微分段和宏观分段
总结 VXLAN-GBP
概述
您可以使用基于组策略 (GBP) 的 VXLAN 架构中实现微分段和宏观分段,例如保护数据和资产。GBP 利用底层 VXLAN 技术提供与位置无关的端点访问控制。通过 GBP,您可以在整个企业网域中实施一致的安全策略。您可以使用 GBP 简化网络配置,而无需在所有交换机上配置大量防火墙过滤器。无论端点或用户位于什么位置,GBP 都通过在整个网络中一致应用安全组策略来阻止横向威胁。VXLAN-GBP 的工作原理是利用 VXLAN 标头中的保留字段,用作可扩展组标记 (SGT)。您可以将 SGT 用作防火墙过滤器规则中的匹配条件。使用 SGT 比使用端口或 MAC 地址实现类似结果更稳健。SGT 可以静态分配(基于每个端口或每个 MAC 配置交换机),也可以在 RADIUS 服务器上进行配置,并在用户经过身份验证时通过 802.1X 推送至交换机。
由 VXLAN-GBP 启用的分段在园区 VXLAN 环境中特别有用,因为它为您提供了创建独立于底层网络拓扑的网络访问策略的实用方法。它简化了开发网络应用和端点设备安全策略的设计和实施阶段。
您可以在 IEEE RFC I-D.draft-smith-vxlan-group-policy 中找到有关 VXLAN-GBP 标准的更多详细信息。就此示例而言,VXLAN-GBP 利用 VXLAN 标头中的保留字段作为可扩展组标记,如图所示。

下表 1 提供了基于 Junos 版本提供支持 VXLAN-GBP 的交换机的详细信息。
Junos 版本 | VXLAN-GBP 支持的交换机 |
---|---|
从 Junos OS 21.1R1 版开始 |
EX4400-24P、EX4400-24T、EX4400-48F、EX4400-48P 和 EX4400-48T |
从 Junos OS 21.4R1 版开始 |
|
从 Junos OS 22.4R1 版开始 |
|
从 Junos OS 23.2R1 版开始 |
|
从 Junos OS 22.4R1 版开始,之后的 GBP 配置实施已发生变化。
表 2 显示了这两种实施方式之间的差异。
Junos OS 21.1R1 和 Junos OS | 22.4R1 及更高版本中的 GBP |
---|---|
GBP 标记语句: set firewall family ethernet-switching filter filter-name term term name from match-conditions set firewall family ethernet-switching filter filter-name term term name then gbp-src-tag/gbp-des-tag tag |
GBP 标记语句: set firewall family any filter filter-name micro-segmentation set firewall family any filter filter-name term term name from match-conditions set firewall family any filter filter-name term term name then gbp-tag tag
注意:
|
支持的 GBP 匹配条件:
|
支持的 GBP 匹配条件:
|
策略实施 set firewall family ethernet-switching filter filter-name term term name from gbp-dst-tag gbp tag set firewall family ethernet-switching filter filter-name term term name from gbp-src-tag gbp tag set firewall family ethernet-switching filter filter-name term term name then discard
注意:
仅在出口端点上支持策略实施。启用 GBP 的 CLI 语句: set chassis forwarding-options vxlan-gbp-profile |
策略实施 set firewall family any filter filter-name term term name from gbp-dst-tag gbp tag set firewall family any filter filter-name term term name from gbp-src-tag gbp tag set firewall family any filter filter-name term term name then discard
注意:
家族名称 “any” 取代了家族名称 “ethernet-switching”
注意:
入口端点和出口端点均支持策略实施。默认情况下,出口节点上支持策略实施。
Junos OS 23.2R1 及更高版本:
|
Junos OS 22.4R1 及更高版本中的 GBP
从 Junos OS 22.4R1 版开始,GBP 功能具有一些增强功能。您可以对入口端点执行策略,并对这些增强的匹配条件执行 GBP 标记。
表 3 显示了支持的 GBP 标记匹配条件:
匹配条件 | 说明 |
---|---|
|
匹配 IPv4 或 IPv6 源或目标地址或前缀列表。 |
|
匹配源或目标 MAC 地址。 |
VLAN ID <vlan id> |
匹配 VLAN 标识符和端口的组合。
注意:
EX4100 交换机不支持 |
|
匹配 VLAN 标识符。
注意:
EX4100 交换机不支持 |
|
匹配接口名称。 |
Junos OS 23.2R1 及更高版本支持 vxlan-gbp-l2-profile 和 vxlan-gbp-l3-profile。请参阅 表 4。
配置文件 | 支持的交换机 |
---|---|
vxlan-gbp-profile |
|
vxlan-gbp-l2-profile 和 vxlan-gbp-l3-profile |
|
GBP 策略过滤器使用 GBP 源和/或 GBP 目标标记作为允许或丢弃流量的匹配项。从 Junos OS 23.2R1 版开始,EX4100、EX4400、EX4650、QFX5120-32C 和 QFX5120-48Y 交换机支持新的 GBP 策略过滤器(IPv4 和 IPv6)L4 匹配。这些匹配可帮助您保留仅有助于阻止应用程序流量的特定规则,请参阅 表 5。
MAC 和 IP GBP 标记数据包的策略实施匹配 | 说明 |
---|---|
ip-version ipv4 destination-port dst_port |
匹配 TCP/UDP 目标端口。 |
ip-version ipv4 source-port src_port |
匹配 TCP/UDP 源端口。 |
ip-version ipv4 ip-protocol ip-protocol |
匹配 IP 协议类型。 |
ip-version ipv4 is-fragment |
匹配数据包是否为分片。 |
ip-version ipv4 fragment-flags flags |
匹配分片标志(符号或十四合一格式)。 |
ip-version ipv4 ttl value |
匹配 MPLS/IP TTL 值。 |
ip-version ipv4 tcp-flags flags |
匹配 TCP 标志(符号或十四方格式)-(仅限入口)。 |
ip-version ipv4 tcp-initial |
匹配 TCP 连接的初始数据包 -(仅限入口)。 |
ip-version ipv4 tcp-established |
匹配已建立 TCP 连接的数据包。 |
ip-version ipv6 destination-port dst_port |
匹配 TCP/UDP 目标端口。 |
ip-version ipv6 source-port src_port |
匹配 TCP/UDP 源端口。 |
ip-version ipv6 next-header protocol |
匹配下一个报头协议类型。 |
ip-version ipv6 tcp-flags flags |
匹配 TCP 标志(符号或十四合一格式)仅入口。 |
ip-version ipv6 tcp-initial |
匹配 TCP 连接的初始数据包。 |
ip-version ipv6 tcp-established |
匹配已建立 TCP 连接的数据包。 |
EX9204、EX9208 和 EX9214 交换机不支持这些 L4 匹配项。
分配 SGT
在此示例中,我们在 RADIUS 服务器上配置 SGT,然后在 EX4400 上使用 802.1X 访问控制来接收 SG。RADIUS 服务器通常用于园区环境中的接入控制,例如用于管理 VLAN 的分配。
-
如果使用多个请求方模式配置 802.1X 身份验证,则 GBP 标记基于 MAC,如果使用单请求方模式配置 802.1X 身份验证,则 GBP 标记基于端口。
-
802.1X 不支持 IP 地址、vlan-ID 和 VLAN-id+端口匹配。
为了适应在 RADIUS 服务器上使用 SGP,我们需要利用 AAA 服务框架支持的供应商特定属性 (VSA)(这些 VSA 作为标准 RADIUS 请求回复消息的一部分携带,并提供内置扩展来处理特定于实施的信息,例如我们的 SGP)。RADIUS 服务器上的确切语法因身份验证方案是基于 MAC 还是基于 EAP 而有所不同。对于基于 MAC 的客户端,配置如下所示:
001094001199 Cleartext-Password := "001094001199" Juniper-Switching-Filter = "apply action gbp-tag 100"
对于基于 EAP 的客户端,SGT 在身份验证时从 RADIUS 服务器推送。配置如下所示:
PermEmp01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 100"
基于 GBP 的过滤器用作 GBP 标记的分类器。这些过滤器对传入流进行分类并分配 GBP 标记。
您可以在以下代码示例中了解其工作原理。GBP 防火墙策略基于源和目标 GBP 标记进行帧。源标记是传入数据包中 VXLAN 报头中的 16 位字段,从地址(IP/MAC/端口等)查找派生,而目标标记根据配置的标记分配在出口隧道或入口端点处派生。
比方说,我们在入口端点和出口端点上都有此配置(如下所示)。我们建议在整个系统内使用相同的 GBP 标记分配配置。来自源 MAC 地址 00:01:02:03:04:10:10
的数据包被分配为标记 100,来自源 MAC 地址的 00:01:02:03:04:20:20
数据包被分配为 200。
set firewall family any filter assign_tag micro-segmentation set firewall family any filter assign_tag term tag100 from mac-address 00:01:02:03:04:10:10 set firewall family any filter assign_tag term tag100 then gbp-tag 100 set firewall family any filter assign_tag term tag200 from mac-address 00:01:02:03:04:20:20 set firewall family any filter assign_tag term tag200 then gbp-tag 200
对于具有 GBP 标记 100 且目标 MAC 地址为的 00:01:02:03:04:10:10
数据包,目标组标记 (gbp-dst-tag) 为 100,且在术语 t10-100上匹配。同样,对于具有 GBP 标记 100 且目标 MAC 地址为的 00:01:02:03:04:20:20
数据包,目标组标记为 200,并且匹配术语 t10-200。
set firewall family any filter gbp-policy term t10-100 from gbp-src-tag 100 set firewall family any filter gbp-policy term t10-100 from gbp-dst-tag 100 set firewall family any filter gbp-policy term t10-100 then accept set firewall family any filter gbp-policy term t10-200 from gbp-src-tag 100 set firewall family any filter gbp-policy term t10-200 from gbp-dst-tag 200 set firewall family any filter gbp-policy term t10-200 then discard
用于将源 MAC 地址映射到源标记的相同标记分配也用于将目标 MAC 地址映射到目标标记。基于端口的分配也是如此。
在 Junos OS 23.2R1 及更高版本中,EX4100、EX4400、EX4650、QFX5120-32C 和 QFX5120-48Y 交换机支持 MAC 和基于 IP 的 GBP 过滤器的 GBP 策略过滤器的其他 L4 匹配。请参阅 表 5。配置 L4 过滤器可以降低支持的 GBP 规模。默认情况下,这些匹配受支持,但在 EX4650 系列、QFX5120-32C 和 QFX5120-48Y 交换机上,您可以使用仅 set forwarding-options evpn-vxlan gbp tag-only-policy
允许 gbp 源和目标标记作为 GBP 策略中的匹配项。
让我们看一下另一个示例代码,这次使用 GBP 源标记 300,其中使用了来自 IPv4 地址 172.16.1.0/24
的数据包。正如您在下面看到的,GBP 源标记 300 是在出口方向分配的,而 300 也是 GBP 目标组标记。
set firewall family any filter f1 micro-segmentation set firewall family any filter assign_tag term tag300 from ip-version ipv4 172.16.1.0/24 set firewall family any filter assign_tag term tag300 then gbp-tag 300
GBP 标记的优先级如下所示,IP 版本为最高优先级:
-
ip-version ipv4
<ip address> | <prefix-list> -
ip-version ipv6
<ip address> | <prefix-list> -
mac-address
<mac address> -
interface
<interface_name> VLAN ID <vlan id> -
vlan-id
<vlan id> -
interface
<interface_name>
请注意,默认情况下,策略实施在出口端点上。如果要对入口叶执行策略,请参阅以下部分。
您可以从最能满足网络需求的三个配置文件之一中选择一个来启用 VXLAN-GBP。对于每种地址类型,每个 UFT 配置文件都使用不同的最大值配置。请参阅 了解 GPB 配置文件 ,了解有关何时使用这些配置文件的更多信息。请参阅 vxlan-gbp-profile、 vxlan-gbp-l2-profile 和 vxlan-gbp-l3-profile ,查看这些配置文件支持的规模。
-
set chassis forwarding-options vxlan-gbp-profile
-
set chassis forwarding-options vxlan-gbp-l2-profile
-
set chassis forwarding-options vxlan-gbp-l3-profile
入口端点上的策略实施概述
从 Junos 22.4R1 版开始,您还可以对入口端点执行策略实施。入口实施可优化网络带宽。为了支持对入口实施策略,我们有一种机制,可以使用 2 类和 5 类路由在整个网络中传播基于 MAC 和 IP-MAC 的标记。有关更多信息 ,请参阅 EVPN Type 2 和 Type 5 路由 。这样,基于 GBP 的目标策略将实施在靠近 MAC 入口的节点中,以便针对基于 IP 的 GBP 匹配。标记传播始终在 MAC 和基于 IP 的 GBP 环境中进行。对于 VLAN,端口和端口+VLAN 匹配则不适用。
如果主机路由安装的 2 类路由带有 GBP 标记,则会在第 5 类路由中添加 GBP 标记。支持 2 类到 5 类 GBP 标记传播,但不支持 5 类路由到 2 类路由 GBP 标记传播。
对于多宿主拓扑,请保持各多宿主成员的配置相同。
您必须启用以下语句才能在入口节点执行策略实施。启用或禁用入口实施后,数据包转发引擎 (PFE) 将重新启动。
set fowarding-options evpn-vxlan gbp ingress-enforcement
主机源数据包
当数据包通过虚拟隧道端点 (VTEP) 从集成路由和桥接 (IRB) 接口出口时,内核会在 VXLAN 标头中插入一个源 GBP 标记并发送数据包。源 GBP 标记值配置使用以下语句:
set forwarding-options evpn-vxlan host-originated-packets gbp-src-tag gbp-src-tag
在创建任何规则之前,通过为所有端点(用户和设备)和分配的 SGT 值创建一个表来组织方案会很有帮助。下表可用于进一步简化逻辑并阐明您的规则。
端点 |
分配的 SGT 值 |
---|---|
永久员工 (PE) |
100 |
承包商 (CON) |
200 |
安全人员 (SS) |
300 |
安全凸轮 (CAM) |
400 |
工程服务器 (ES) |
500 |
RADIUS 服务器与 SGTS、EX4400 和 VXLAN 数据包标头以及用于管理访问策略的中央防火墙过滤器之间的关系使矩阵成为组织这些值的便捷方式。在下表中,我们在第一行中列出了用户角色,并在第一行中列出设备类型,以创建访问矩阵。系统为每个用户角色和设备类型分配一个 SGT,并且 RADIUS 配置已更新为信息。
此示例使用三种类型的员工:永久员工 (PE)、承包商 (CON) 和安全人员 (SS)。它还使用两种类型的资源:Eng 服务器 (ES) 和安全摄像机 (CAM)。我们使用 Y 表示允许访问,在访问被阻止时显示 N 。该表可作为在策略中创建各种防火墙规则的有用资源,使访问映射变得简单明了。
ES (SGT 500) | CAM (SGT 400) | PE (SGT 100) | CON (SGT 200) | SS (SGT 300) | |
---|---|---|---|---|---|
PE (SGT 100) | Y | N | Y | Y | N |
CON (SGT 200) | N | N | Y | N | N |
SS (SGT 300) | N | Y | N | N | Y |
拓扑
为简单起见,此示例中的所有配置均在运行 Junos OS 22.4.1R1 版的单个瞻博网络 EX4400 系列交换机上完成。交换机已连接到 RADIUS 服务器,实现 AAA。在此示例中,此交换机用作出口。请记住,对于 SGT,您必须在出口交换机上定义防火墙,而通常要在接入层的入口 VXLAN 网关上定义防火墙。

要求
以下交换机上的 Junos OS 22.4R1 支持增强型 GBP:EX4100、EX4400、EX4650、QFX5120-32C 和 QFX5120-48Y。
配置
基于 VXLAN-GBP 的分段:
- 用户登录到网络并由 RADIUS 服务器(为其所有端点配置 SG)进行身份验证。
- 通过使用防火墙过滤器,EX4400 根据 802.1X 身份验证或 MAC 地址选择流量,然后将组标记分配给匹配的帧。(对于经过 dot1x 身份验证的客户端,不需要静态防火墙配置)。这一机制是使用防火墙来执行的,如下所示:
set firewall family any filter name micro-segmentation set firewall family any filter name term name from source-mac-address MAC-Addr
set firewall family any filter name term name then gbp-tag PE-GRP
- 此外,还使用防火墙过滤器的机制,根据 SGT 值评估通过 EX4400 的标记流量。
-
首先在设备上启用
chassis forwarding-options vxlan-gbp-profile
。 gbp-dst-tag
使用和/或gbp-src-tag
匹配条件编写防火墙规则,并将它们包含在用于 GBP 微分段的出口交换机上的路由策略中。从 Junos OS 23.2R1 版开始,除了源和目标标记外,还支持新的 GBP 策略过滤器 IPv4 和 IPv6 L4 匹配,如协议、源端口、目标端口、tcp 标志和其他匹配项。请参阅表 5。-
如果您希望在入口端点实施策略,则需要启用选项
set fowarding-options evpn gbp ingress-enforcement
。
-
为 VXLAN-GBP 配置独立瞻博网络 EX4400 交换机
使用以下命令在沙盒环境中配置 VXLAN-GBP 分段。通常,您需要在交换机上创建防火墙过滤器规则,作为接入层的(出口)VXLAN 网关,但为了简单起见,我们为防火墙过滤器规则和 RADIUS 服务器(EAP,此处)使用相同的独立 EX4400。我们在此示例中使用的值取自之前的表格。
以下命令包括配置文件名称和 IP 地址等变量,因此必须对它们进行调整,以适合您的测试环境。
- 配置 radius 服务器:
set groups dot1xgbp access radius-server 10.204.96.102 port 1812 set groups dot1xgbp access radius-server 10.204.96.102 secret “secret key" set groups dot1xgbp access profile radius_profile_dev12 authentication-order radius set groups dot1xgbp access profile radius_profile_dev12 radius authentication-server 10.204.96.102 set groups dot1xgbp access profile radius_profile_dev12 radius accounting-server 10.204.96.102 set groups dot1xgbp access profile radius_profile_dev12 accounting order radius
- 配置物理端口以支持 RADIUS 身份验证:
set groups dot1xgbp protocols dot1x authenticator authentication-profile-name radius_profile_dev12 set groups dot1xgbp protocols dot1x authenticator interface xe-0/0/46.0 supplicant multiple set groups dot1xgbp protocols dot1x authenticator interface xe-0/0/46.0 mac-radius
- 在 RADIUS 服务器上设置 SGT 标记:
Contractor01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 100" Contractor01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 200" SecurityStaff01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 300" SecurityCam01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 400" EngServer01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 500"
- 在交换机上启用 VXLAN-GBP:
set chassis forwarding-options vxlan-gbp-profile
- 创建利用 SG 的防火墙过滤器规则(使用在矩阵中组织的值):
set groups gbp-policy firewall family any filter gbp-policy term pe-to-pe from gbp-src-tag 100 set groups gbp-policy firewall family any filter gbp-policy term pe-to-pe from gbp-dst-tag 100 set groups gbp-policy firewall family any filter gbp-policy term pe-to-pe then accept set groups gbp-policy firewall family any filter gbp-policy term pe-to-pe then count PE-PE set groups gbp-policy firewall family any filter gbp-policy term pe-to-es from gbp-src-tag 100 set groups gbp-policy firewall family any filter gbp-policy term pe-to-es from gbp-dst-tag 500 set groups gbp-policy firewall family any filter gbp-policy term pe-to-es then accept set groups gbp-policy firewall family any filter gbp-policy term pe-to-es then count PE-ES set groups gbp-policy firewall family any filter gbp-policy term pe-to-cam from gbp-src-tag 100 set groups gbp-policy firewall family any filter gbp-policy term pe-to-cam from gbp-dst-tag 400 set groups gbp-policy firewall family any filter gbp-policy term pe-to-cam then discard set groups gbp-policy firewall family any filter gbp-policy term pe-to-cam then count PE-CAM set groups gbp-policy firewall family any filter gbp-policy term con-to-cam from gbp-src-tag 200 set groups gbp-policy firewall family any filter gbp-policy term con-to-cam from gbp-dst-tag 400 set groups gbp-policy firewall family any filter gbp-policy term con-to-cam then discard set groups gbp-policy firewall family any filter gbp-policy term con-to-cam then count CON-CAM set groups gbp-policy firewall family any filter gbp-policy term con-to-es from gbp-src-tag 200 set groups gbp-policy firewall family any filter gbp-policy term con-to-es from gbp-dst-tag 500 set groups gbp-policy firewall family any filter gbp-policy term con-to-es then discard set groups gbp-policy firewall family any filter gbp-policy term con-to-es then count CON-ES set groups gbp-policy firewall family any filter gbp-policy term ss-to-cam from gbp-src-tag 300 set groups gbp-policy firewall family any filter gbp-policy term ss-to-cam from gbp-dst-tag 400 set groups gbp-policy firewall family any filter gbp-policy term ss-to-cam then accept set groups gbp-policy firewall family any filter gbp-policy term ss-to-cam then count SS-CAM set groups gbp-policy firewall family any filter gbp-policy term ss-to-es from gbp-src-tag 300 set groups gbp-policy firewall family any filter gbp-policy term ss-to-es from gbp-dst-tag 500 set groups gbp-policy firewall family any filter gbp-policy term ss-to-es then discard set groups gbp-policy firewall family any filter gbp-policy term ss-to-es then count SS-ES set apply-groups gbp-policy
- 在 Junos 中运行提交检查,以验证使用的命令和变量是否有效。对您的配置满意时,提交候选配置,使其在设备上处于活动状态。这些命令如下所示。您也可以通过键入
run show configuration
查看配置。commit check configuration check succeeds commit commit complete
EX 交换机和 QFX 交换机的限制:
-
EX9204、EX9208 和 EX9214 交换机:对于通过 EVPN-VXLAN Type 2 隧道传输的传输流量,只有在不影响 VxLAN 报头中的入口 PE 上的源 GBP 标记时,在出口 PE 实施基于 GBP 标记的策略才有效。
-
EX9204、EX9208 和 EX9214 交换机不支持通过 RADIUS/802.1X 配置的 SGT。
-
EX9204、EX9208 和 EX9214 交换机不支持对入口端点的标记传播和策略实施。
-
EX9204、EX9208 和 EX9214 交换机不支持 GBP UFT 配置文件。
-
EX4400 和 QFX5120 平台的唯一标记数量限制为 1K。
-
interface
EX4100 交换机不支持和VLAN
GBP 匹配项。 -
不支持基于 IP 的组播 GBP 标记。
-
基于 IP 的 GBP 不应用于第 2 层交换流,基于 MAC 的 GBP 不适用于接入到接入第 3 层路由流。
-
配置基于端口 (
interface
) GBP 的 IPACL 时不受支持。 -
仅基于 MAC 和基于 IP 的 GBP 策略条目支持监管和计数操作。
-
服务提供商风格的逻辑接口不支持基于 VLAN 的 GBP。
-
ARP 数据包不受 GBP 策略的约束。但是,主机之间的后续数据包会受到 GBP 监管。
GBP Junos OS 21.1R1 及更高版本
使用 RADIUS 服务器分配 SGT
在此示例中,我们在 RADIUS 服务器上配置 SGT,然后在 EX4400 上使用 802.1X 访问控制来接收 SG。RADIUS 服务器通常用于园区环境中的接入控制,例如用于管理 VLAN 的分配。
为了适应在 RADIUS 服务器上使用 SGP,我们需要利用 AAA 服务框架支持的供应商特定属性 (VSA)(这些 VSA 作为标准 RADIUS 请求回复消息的一部分携带,并提供内置扩展来处理特定于实施的信息,例如我们的 SGP)。RADIUS 服务器上的确切语法因身份验证方案是基于 MAC 还是基于 EAP 而有所不同。对于基于 MAC 的客户端,配置如下所示:
001094001199 Cleartext-Password := "001094001199" Juniper-Switching-Filter = "apply action gbp-tag 100"
对于基于 EAP 的客户端,SGT 在身份验证时从 RADIUS 服务器推送。配置如下所示:
PermEmp01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 100"
从 Junos 21.1R1 版开始,EX4400 交换机引入与 VXLAN-GBP 配合使用的新匹配条件,允许防火墙识别由 RADIUS 服务器传递并插入 VXLAN 报头的 SGT 标记。
您可以在以下代码示例中了解其工作原理。GBP 防火墙策略基于源和目标 GBP 标记进行帧。源标记是传入数据包中 VXLAN 标头中的 16 位字段,而目标标记根据配置的标记分配在出口隧道端点处派生。
假设我们有一个出口端点,配置如下所示。来自源 MAC 地址 00:01:02:03:04:10:10
的数据包被分配为标记 100,来自源 MAC 地址的 00:01:02:03:04:20:20
数据包被分配为 200。
set firewall family ethernet-switching filter assign_tag term tag100 from source-mac-address 00:01:02:03:04:10:10 set firewall family ethernet-switching filter assign_tag term tag100 then gbp-src-tag 100 set firewall family ethernet-switching filter assign_tag term tag200 from source-mac-address 00:01:02:03:04:20:20 set firewall family ethernet-switching filter assign_tag term tag200 then gbp-src-tag 200
对于具有 GBP 标记 100 且目标 MAC 地址为的 00:01:02:03:04:10:10
数据包,目标组标记 (gbp-dst-tag) 为 100,且在术语 t10-100上匹配。同样,对于具有 GBP 标记 100 且目标 MAC 地址为的 00:01:02:03:04:20:20
数据包,目标组标记为 200,并且匹配术语 t10-200。
set firewall family ethernet-switching filter gbp-policy term t10-100 from gbp-src-tag 100 set firewall family ethernet-switching filter gbp-policy term t10-100 from gbp-dst-tag 100 set firewall family ethernet-switching filter gbp-policy term t10-100 then accept set firewall family ethernet-switching filter gbp-policy term t10-200 from gbp-src-tag 100 set firewall family ethernet-switching filter gbp-policy term t10-200 from gbp-dst-tag 200 set firewall family ethernet-switching filter gbp-policy term t10-200 then discard
用于将源 MAC 地址映射到源标记的相同标记分配也用于将目标 MAC 地址映射到目标标记。基于端口的分配也是如此。
让我们看一下另一个示例代码,这次使用 GBP 源标记 300,并且包含数据包入口接口 ge-0/0/30.0
。正如您在下面看到的,GBP 源标记 300 是在出口方向分配的,而 300 也是 GBP 目标组标记。
set firewall family ethernet-switching filter assign_tag term tag300 from interface ge-0/0/30.0 set firewall family ethernet-switching filter assign_tag term tag300 then gbp-src-tag 300
请注意,您需要在出口交换机上配置 GBP 防火墙过滤器,因为入口交换机无法知道出口交换机使用了哪些组标记。此外,您必须在入口节点上启用全局 VXLAN-GBP,以便对匹配项执行查找,并在 VXLAN 标头和出口节点上添加 SGT。使用此处所示的配置命令完成这一操作:
set chassis forwarding-options vxlan-gbp-profile
在创建任何规则之前,通过为所有端点(用户和设备)和分配的 SGT 值创建一个表来组织方案会很有帮助。在这里,我们显示了一个这样的表,其值稍后将在矩阵中应用,可用于进一步简化逻辑并阐明您的规则。
端点 |
分配的 SGT 值 |
---|---|
永久员工 (PE) |
100 |
承包商 (CON) |
200 |
安全人员 (SS) |
300 |
安全凸轮 (CAM) |
400 |
工程服务器 (ES) |
500 |
RADIUS 服务器与 SGTS、EX4400 和 VXLAN 数据包标头以及用于管理访问策略的中央防火墙过滤器之间的关系使矩阵成为组织这些值的便捷方式。在下表中,我们在第一行中列出了用户角色,并在第一行中列出设备类型,以创建访问矩阵。系统为每个用户角色和设备类型分配一个 SGT,并且 RADIUS 配置已更新为信息。
此示例使用三种类型的员工:永久员工 (PE)、承包商 (CON) 和安全人员 (SS)。它还使用两种类型的资源:Eng 服务器 (ES) 和安全摄像机 (CAM)。我们使用 Y 表示允许访问,在访问被阻止时显示 N 。该表可作为在策略中创建各种防火墙规则的有用资源,使访问映射变得简单明了。
ES (SGT 500) | CAM (SGT 400) | PE (SGT 100) | CON (SGT 200) | SS (SGT 300) | |
---|---|---|---|---|---|
PE (SGT 100) | Y | N | Y | Y | N |
CON (SGT 200) | N | N | Y | N | N |
SS (SGT 300) | N | Y | N | N | Y |
拓扑
为简单起见,此示例中的所有配置均在运行 Junos OS 21.1R1 版的单个瞻博网络 EX4400 系列交换机上完成。交换机已连接到 RADIUS 服务器,实现 AAA。在此示例中,此交换机用作出口。请记住,对于 SGT,您必须在出口交换机上定义防火墙,而通常要在接入层的入口 VXLAN 网关上定义防火墙。

要求
Junos OS 21.1R1 版支持 VXLAN-GBP:EX4400-24P、EX4400-24T、EX4400-48F、EX4400-48P 和 EX4400-48T。在本例中,我们考虑一台 EX4400 交换机。
从 Junos 21.4R1 版开始,以下交换机也支持 VXLAN-GBP:QFX5120-32C、QFX5120-48T、QFX5120-48Y、QFX5120-48YM、EX4650 和 EX4650-48Y-VC。
配置
我们可以汇总上述段落中基于 VXLAN-GBP 的底层分段的事件序列,如下所示:
- 用户登录到网络并由 RADIUS 服务器(为其所有端点配置 SG)进行身份验证。
- 通过使用防火墙过滤器,EX4400 根据 802.1X 身份验证或 MAC 地址选择流量,然后将组标记分配给匹配的帧。(对于经过 dot1x 身份验证的客户端,不需要静态防火墙配置)。这一机制是使用防火墙执行的,如下所示:
set firewall family ethernet-switching filter name term name from source-mac-address MAC-Addr
set firewall family ethernet-switching filter name term name then gbp-src-tag PE-GRP
- 此外,还使用防火墙过滤器的机制,根据 SGT 值评估通过 EX4400 的标记流量。为此,您需要首先在交换机上启用
chassis forwarding-options vxlan-gbp-profile
,然后使用gbp-dst-tag
和/或gbp-src-tag
匹配条件来编写防火墙规则,并将它们包含在用于 GBP 微分段的出口交换机上的路由策略中。
为 VXLAN-GBP 配置独立瞻博网络 EX4400 交换机
使用以下命令在沙盒环境中配置 VXLAN-GBP 分段。通常,您需要在交换机上创建防火墙过滤器规则,作为接入层的(出口)VXLAN 网关,但为了简单起见,我们为防火墙过滤器规则和 RADIUS 服务器(EAP,此处)使用相同的独立 EX4400。我们在此示例中使用的值来自前一个表。
以下命令包括配置文件名称和 IP 地址等变量,因此必须对它们进行调整,以适合您的测试环境。
- 配置 radius 服务器:
set groups dot1xgbp access radius-server 10.204.96.102 port 1812 set groups dot1xgbp access radius-server 10.204.96.102 secret “secret key" set groups dot1xgbp access profile radius_profile_dev12 authentication-order radius set groups dot1xgbp access profile radius_profile_dev12 radius authentication-server 10.204.96.102 set groups dot1xgbp access profile radius_profile_dev12 radius accounting-server 10.204.96.102 set groups dot1xgbp access profile radius_profile_dev12 accounting order radius
- 配置物理端口以支持 RADIUS 身份验证:
set groups dot1xgbp protocols dot1x authenticator authentication-profile-name radius_profile_dev12 set groups dot1xgbp protocols dot1x authenticator interface xe-0/0/46.0 supplicant multiple set groups dot1xgbp protocols dot1x authenticator interface xe-0/0/46.0 mac-radius
- 在 RADIUS 服务器上设置 SGT 标记:
Contractor01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 100" Contractor01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 200" SecurityStaff01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 300" SecurityCam01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 400" EngServer01 Auth-Type = EAP, Cleartext-Password := "gbp" Juniper-Switching-Filter = "apply action gbp-tag 500"
- 在交换机上启用 VXLAN-GBP:
set chassis forwarding-options vxlan-gbp-profile
- 创建利用 SG 的防火墙过滤器规则(使用在矩阵中组织的值):
set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-pe from gbp-src-tag 100 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-pe from gbp-dst-tag 100 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-pe then accept set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-pe then count PE-PE set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-es from gbp-src-tag 100 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-es from gbp-dst-tag 500 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-es then accept set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-es then count PE-ES set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-cam from gbp-src-tag 100 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-cam from gbp-dst-tag 400 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-cam then discard set groups gbp-policy firewall family ethernet-switching filter gbp-policy term pe-to-cam then count PE-CAM set groups gbp-policy firewall family ethernet-switching filter gbp-policy term con-to-cam from gbp-src-tag 200 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term con-to-cam from gbp-dst-tag 400 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term con-to-cam then discard set groups gbp-policy firewall family ethernet-switching filter gbp-policy term con-to-cam then count CON-CAM set groups gbp-policy firewall family ethernet-switching filter gbp-policy term con-to-es from gbp-src-tag 200 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term con-to-es from gbp-dst-tag 500 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term con-to-es then discard set groups gbp-policy firewall family ethernet-switching filter gbp-policy term con-to-es then count CON-ES set groups gbp-policy firewall family ethernet-switching filter gbp-policy term ss-to-cam from gbp-src-tag 300 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term ss-to-cam from gbp-dst-tag 400 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term ss-to-cam then accept set groups gbp-policy firewall family ethernet-switching filter gbp-policy term ss-to-cam then count SS-CAM set groups gbp-policy firewall family ethernet-switching filter gbp-policy term ss-to-es from gbp-src-tag 300 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term ss-to-es from gbp-dst-tag 500 set groups gbp-policy firewall family ethernet-switching filter gbp-policy term ss-to-es then discard set groups gbp-policy firewall family ethernet-switching filter gbp-policy term ss-to-es then count SS-ES set apply-groups gbp-policy
- 在 Junos 中运行提交检查,以验证使用的命令和变量是否有效。对您的配置满意时,提交候选配置,使其在设备上处于活动状态。这些命令如下所示。您也可以通过键入
run show configuration
查看配置。commit check configuration check succeeds commit commit complete