示例:使用策略过滤器过滤 EVPN 路由
在 Junos 中,路由策略可用于控制边界网关协议 (BGP) 路由播发,并过滤使用不同地址族的路由。但是,尽管以太网 VPN (EVPN) 使用 BGP 在不同的 PE 路由器之间交换 MAC-IP 地址,但 EVPN 路由前缀格式和 BGP 更新消息中编码的扩展社区信息等差异意味着需要特殊的匹配条件才能过滤 EVPN 路由。
本主题中的示例显示了 Junos 中可用于过滤 EVPN 路由的各种路由器配置。
要求
运行 Junos 19.4R1 或更高版本的 MX、VMX、EX、ACX 和 QFX 设备支持 EVPN 路由过滤。 routing-instance
它在层次结构级别(使用 vrf 导出 或 vrf 导入 策略进行配置)和 protocols bgp
级别(在这种情况下,您还需要配置 vpn-apply-export
策略才能生效)可用。
概述
您可以使用策略过滤器过滤 EVPN 路由,例如指定特定的扩展社区属性。根据您在策略的 from 限定符中指定的匹配条件对路由进行过滤。EVPN 路由支持的匹配标准包括 EVPN NLRI 类型、BGP 路径属性、路由识别符、EVPN 以太网标记、以太网分段标识符 (ESI) 以及 EVPN 2 类路由中的 MAC 地址。
此外,还支持以下路由过滤器:local-preference、as-path、community、next-hop、metric 和 origin。
根据您在策略中指定的 then 限定符中指定的条件执行操作。
请参阅 EVPN 路由策略 ,了解支持的匹配条件和操作的完整列表和说明。
拓扑学
以下网络场景显示了用于设置各种 EVPN 匹配条件的配置。
基本配置
- CLI 快速配置
- 过滤基于 EVPN NLRI 类型的 BGP EVPN 路由
- 基于路由识别符过滤 BGP EVPN 路由
- 基于 EVPN 以太网标签过滤 BGP EVPN 路由
- 过滤基于 ESI 的 BGP EVPN 路由
- 根据 IP 地址过滤 BGP、EVPN 2 类和 5 类路由。
- 使用 MAC 地址过滤 BGP EVPN 2 类路由
- 过滤包含(或不包含)IP 地址的 BGP EVPN 2 类路由
- 根据 EVPN 扩展社区过滤 BGP EVPN 路由
- 将社区信息从 EVPN 2 类路由复制到 EVPN 5 类路由
CLI 快速配置
对于 EVPN 路由,可以在层次结构级别或级别protocols bgp
应用routing-instance
策略。两者的配置如下所示。在级别routing-instance
上,策略作为或vrf-import
策略应用vrf-export
。在 BGP 组级别应用导出策略时,必须配置vpn-apply-export
该策略才能正常工作。
案例 1 显示了在层次结构的 BGP 级别应用策略时强制使用语句 vpn-apply-export
。
要使用此示例,您需要导航到配置层次结构中的各个级别。有关 CLI 导航的信息,请参阅 在配置模式下使用 CLI 编辑器。
要快速配置示例,请复制命令列表,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层级的 CLI [edit]
中。
案例 1:在层次结构的协议 BGP 级别应用策略。
set protocols bgp group evpn-sessions type internal set protocols bgp group evpn-sessions local-address 10.255.255.4 set protocols bgp group evpn-sessions import bgp-evpn-exp set protocols bgp group evpn-sessions family evpn signaling set protocols bgp group evpn-sessions neighbor 10.255.255.1 set protocols bgp group evpn-sessions neighbor 10.255.255.6 set protocols bgp group evpn-sessions neighbor 10.255.255.8 set protocols bgp group evpn-sessions vpn-apply-export set policy-options policy-statement bgp-evpn-exp term 1 from family evpn set policy-options policy-statement bgp-evpn-exp term 1 from nlri-route-type 2 set policy-options policy-statement bgp-evpn-exp term 1 from nlri-route-type 3 set policy-options policy-statement bgp-evpn-exp term 1 then community add COM5 set policy-options policy-statement bgp-evpn-exp term 1 then as-path-prepend 999
案例 2 显示了语句 vrf-export
的强制使用,以及 vrf-import
在层次结构的路由实例级别应用匹配条件的情况。
EVPN 使用 8 种不同的路由类型来扩展第 2 层连接。EVPN NLRI 路由类型在 BGP 更新消息的路由前缀字段的第一个八位字节中定义。
在 Junos 中,以下 EVPN 路由类型(每个 ESI 的 1 类 AD、4 类 ES、7 类 IGMP 加入和 8 类 IGMP 离开)的路由不特定于给定的路由实例。相反,它们在导出时会自动添加到默认路由实例表中。因此,没有路由实例 vrf 导出或 vrf 导入策略应用于这些路由类型。如果要对这些路由应用导出策略,则需要在层次结构的 BGP 导出级别执行此操作。为每个 ESI 导入 Type 1、Type 4、Type 7 和 Type 8 路由也是如此(它们会自动导入到默认路由实例表中)。因此,要将导入策略应用于这些路由类型,您需要在层次结构的 BGP 导入级别(而非路由实例级别)执行此操作。
案例 2:在层次结构的路由实例级别应用策略。
set routing-instances evpa protocols evpn set routing-instances evpa instance-type evpn set routing-instances evpa vlan-id none set routing-instances evpa routing-interface irb.600 set routing-instances evpa interface ge-0/0/1.600 set routing-instances evpa route-distinguisher 2:3 set routing-instances evpa vrf-export vrf-exp-pol set routing-instances evpa vrf-target target:1:1 set policy-options policy-statement vrf-exp-pol term 1 from family evpn set policy-options policy-statement vrf-exp-pol term 1 from nlri-route-type 1 set policy-options policy-statement vrf-exp-pol term 1 then community add COM11 set policy-options policy-statement vrf-exp-pol term 1 then accept
过滤基于 EVPN NLRI 类型的 BGP EVPN 路由
CLI 快速配置
首先提供示例中使用的 set 命令的完整列表,然后以分步格式提供相同的命令,以及用于确认配置的说明。本主题末尾显示了可用于查看来自正确配置的系统的相关输出的验证命令。
过滤基于 EVPN NLRI 类型的 BGP EVPN 路由
set policy-options policy-statement bgp-evpn-exp term 1 from family evpn set policy-options policy-statement bgp-evpn-exp term 1 from nlri-route-type 2 set policy-options policy-statement bgp-evpn-exp term 1 from nlri-route-type 3 set policy-options policy-statement bgp-evpn-exp term 1 then community add COM5 set policy-options policy-statement bgp-evpn-exp term 1 then as-path-prepend 999 set protocols bgp group evpn-session type internal set protocols bgp group evpn-session local-address 10.255.255.4 set protocols bgp group evpn-session family evpn signaling set protocols bgp group evpn-session export bgp-evpn-exp set protocols bgp group evpn-session neighbor 10.255.255.1 set protocols bgp group evpn-session neighbor 10.255.255.6 set protocols bgp group evpn-session neighbor 10.255.255.8 set protocols bgp group evpn-session vpn-apply-export
分步过程
要设置基于 BGP 路径属性的 BGP EVPN 路由过滤:
配置要过滤的 BGP 路径属性(用括号将多个类型括起来,并用空格分隔)以及要在匹配路由上执行的操作。
[edit policy-options policy-statement bgp-evpn-exp] user@PE1# set term 1 from family evpn user@PE1# set term 1 from nlri-route-type [2 3] user@PE1# set term 1 then community add COM5 user@PE1# set term 1 then as-path-prepend 999
配置 BGP 组协议会话。
[edit protocols bgp group evpn-session ] user@PE1# set type internal user@PE1# set local-address 10.255.255.4 user@PE1# set family evpn signaling user@PE1# set import bgp-evpn-exp user@PE1# set neighbor 10.255.255.1 user@PE1# set neighbor 10.255.255.6 user@PE1# set neighbor 10.255.255.8 user@PE1# set vpn-apply-export
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入 show policy-options policy-statement bgp-evpn-exp
、和 show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { family evpn; nlri-route-type [ 2 3 ]; } then { community add COM5; as-path-prepend 999; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.4; export bgp-evpn-exp; family evpn { signaling; neighbor 10.255.255.1; neighbor 10.255.255.6; neighbor 10.255.255.8; vpn-apply-export; }
基于路由识别符过滤 BGP EVPN 路由
CLI 快速配置
路由识别符 (RD) 信息以 EVPN 路由前缀进行编码。此示例说明如何基于路由识别符过滤 EVPN 路由。
首先提供示例中使用的 set 命令的完整列表,然后以分步格式提供相同的命令,以及用于确认配置的说明。本主题末尾显示了可用于查看来自正确配置的系统的相关输出的验证命令。
基于路由识别符过滤 BGP EVPN 路由
set policy-options policy-statement bgp-evpn-exp term 1 from family evpn set policy-options policy-statement bgp-evpn-exp term 1 from route-distinguisher 100:200 set policy-options policy-statement bgp-evpn-exp term 1 then community add COM5 set policy-options policy-statement bgp-evpn-exp term 1 then as-path-prepend 999 set protocols bgp group evpn-session type internal set protocols bgp group evpn-session local-address 10.255.255.4 set protocols bgp group evpn-session family evpn signaling set protocols bgp group evpn-session export bgp-evpn-exp set protocols bgp group evpn-session neighbor 10.255.255.1 set protocols bgp group evpn-session neighbor 10.255.255.6 set protocols bgp group evpn-session neighbor 10.255.255.8 set protocols bgp group evpn-session vpn-apply-export
分步过程
要设置基于路由识别符的 BGP EVPN 路由过滤:
配置要过滤的路由识别符以及要对匹配路由执行的操作。
[edit policy-options policy-statement bgp-evpn-exp] user@PE1# set term 1 from family evpn user@PE1# set term 1 from route-distinguisher 100:200 user@PE1# set term 1 then community add COM5 user@PE1# set term 1 then as-path-prepend 999
配置 BGP 组协议会话。
[edit protocols bgp group evpn-session ] user@PE1# set type internal user@PE1# set local-address 10.255.255.4 user@PE1# set family evpn signaling user@PE1# set export bgp-evpn-exp user@PE1# set neighbor 10.255.255.1 user@PE1# set neighbor 10.255.255.6 user@PE1# set neighbor 10.255.255.8 user@PE1# set vpn-apply-export
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入show policy-options policy-statement bgp-evpn-exp
show policy-options route-distinguisher RD1
、和show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { family evpn; route-distinguisher 100:200; } then { community add COM5; as-path-prepend 999; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.4; import bgp-evpn-exp; family evpn { signaling; neighbor 10.255.255.1; neighbor 10.255.255.6; neighbor 10.255.255.8; vpn-apply-export; }
基于 EVPN 以太网标签过滤 BGP EVPN 路由
CLI 快速配置
EVPN 以太网标记信息(或 VLAN ID 信息)位于 EVPN 路由的前缀中。此示例说明如何根据路由前缀中携带的以太网标记过滤 EVPN 路由。请注意,配置此筛选选项时必须包含 family evpn
限定符。
首先提供示例中使用的 set 命令的完整列表,然后以分步格式提供相同的命令,以及用于确认配置的说明。本主题末尾显示了可用于查看来自正确配置的系统的相关输出的验证命令。
基于 EVPN 以太网标签过滤 BGP EVPN 路由
set policy-options policy-statement bgp-evpn-exp term 1 from family evpn set policy-options policy-statement bgp-evpn-exp term 1 from evpn-tag [ 10 12 13 ] set policy-options policy-statement bgp-evpn-exp term 1 then community add COM5 set policy-options policy-statement bgp-evpn-exp term 1 then as-path-prepend 999 set protocols bgp group evpn-session type internal set protocols bgp group evpn-session local-address 10.255.255.4 set protocols bgp group evpn-session family evpn signaling set protocols bgp group evpn-session export bgp-evpn-exp set protocols bgp group evpn-session neighbor 10.255.255.1 set protocols bgp group evpn-session neighbor 10.255.255.6 set protocols bgp group evpn-session neighbor 10.255.255.8 set protocols bgp group evpn-session vpn-apply-export
分步过程
要设置基于 EVPN 以太网标签的 BGP EVPN 路由过滤:
配置要过滤的 EVPN 以太网标记以及要在匹配路由上执行的操作。
[edit policy-options policy-statement bgp-evpn-exp] user@PE1# set term 1 from family evpn user@PE1# set term 1 from evpn-tag [ 10 12 13 ] user@PE1# set term 1 then community add COM5 user@PE1# set term 1 then as-path-prepend 999
配置 BGP 组协议会话。
[edit protocols bgp group evpn-session ] user@PE1# set type internal user@PE1# set local-address 10.255.255.4 user@PE1# set family evpn signaling user@PE1# set import bgp-evpn-exp user@PE1# set neighbor 10.255.255.1 user@PE1# set neighbor 10.255.255.6 user@PE1# set neighbor 10.255.255.8 user@PE1# set vpn-apply-export
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入 show policy-options policy-statement bgp-evpn-exp
和 show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { family evpn; evpn-tag [ 10 12 13 ]; } then { community add COM5; as-path-prepend 999; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.4; import bgp-evpn-exp; family evpn { signaling; neighbor 10.255.255.1; neighbor 10.255.255.6; neighbor 10.255.255.8; vpn-apply-export; }
过滤基于 ESI 的 BGP EVPN 路由
CLI 快速配置
您可以对 1 类、2 类、4 类、7 类和 8 类路由使用基于以太网分段标识符 (ESI) 的策略过滤器,这些路由是唯一在前缀中包含 ESI 信息的类型。
首先提供示例中使用的 set 命令的完整列表,然后以分步格式提供相同的命令,以及用于确认配置的说明。本主题末尾显示了可用于查看来自正确配置的系统的相关输出的验证命令。
过滤基于 ESI 的 BGP EVPN 路由
set policy-options policy-statement bgp-evpn-exp term 1 from family evpn set policy-options policy-statement bgp-evpn-exp term 1 from evpn-esi 00:11:22:33:44:55:66:77:88:99 set policy-options policy-statement bgp-evpn-exp term 1 then community add COM1 set protocols bgp group evpn-session type internal set protocols bgp group evpn-session local-address 10.255.255.8 set protocols bgp group evpn-session family evpn signaling set protocols bgp group evpn-session export bgp-evpn-exp set protocols bgp group evpn-session vpn-apply-export set protocols bgp group evpn-session neighbor 10.255.255.1 set protocols bgp group evpn-session neighbor 10.255.255.4 set protocols bgp group evpn-session neighbor 10.255.255.6
分步过程
要设置基于 ESI 的 BGP EVPN 路由过滤,请执行以下操作:
配置要过滤的 EVPN ESI 以及要在匹配路由上执行的操作。
[edit policy-options policy-statement bgp-evpn-exp] user@PE1# set term 1 from family evpn user@PE1# set term 1 from evpn-esi 00:11:22:33:44:55:66:77:88:99 user@PE1# set term 1 then community add COM1
配置 BGP 组协议会话。
[edit protocols bgp group evpn-session ] user@PE1# set type internal user@PE1# set local-address 10.255.255.8 user@PE1# set family evpn signaling user@PE1# set export bgp-evpn-exp user@PE1# set vpn-apply-export user@PE1# set neighbor 10.255.255.1 user@PE1# set neighbor 10.255.255.4 user@PE1# set neighbor 10.255.255.6
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入 show policy-options policy-statement bgp-evpn-exp
和 show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { family evpn; evpn-esi 00:11:22:33:44:55:66:77:88:99; } then { community add COM1; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.8; family evpn { signaling; export bgp-evpn-exp; vpn-apply-export; neighbor 10.255.255.1; neighbor 10.255.255.4; neighbor 10.255.255.6; }
根据 IP 地址过滤 BGP、EVPN 2 类和 5 类路由。
CLI 快速配置
您可以使用嵌入在 EVPN 前缀字段中的 IPv4 或 IPv6 地址过滤 EVPN 2 类和 5 类路由。还支持以下prefix-list
route-filter
和限定符:
from prefix-list
from prefix-list-filter [ 精确 | 更长 | 或更长 ]
from route-filter [ address-mask | exact | longer | orlonger | prefix-length-range | through | upto ]
从 route-filter-list
首先提供示例中使用的 set 命令的完整列表,然后以分步格式提供相同的命令,以及用于确认配置的说明。本主题末尾显示了可用于查看来自正确配置的系统的相关输出的验证命令。
根据 IP 地址过滤 BGP EVPN 2 类和 5 类路由
set policy-options prefix-list pp1 10.1.1.10/32 set policy-options prefix-list pp1 10.1.1.11/32 set policy-options policy-statement bgp-evpn-exp term 1 from family evpn set policy-options policy-statement bgp-evpn-exp term 1 from prefix-list pp1 set policy-options policy-statement bgp-evpn-exp term 1 then community add COM1 set protocols bgp group evpn-session type internal set protocols bgp group evpn-session local-address 10.255.255.8 set protocols bgp group evpn-session family evpn signaling set protocols bgp group evpn-session export bgp-evpn-exp set protocols bgp group evpn-session vpn-apply-export set protocols bgp group evpn-session neighbor 10.255.255.1 set protocols bgp group evpn-session neighbor 10.255.255.4 set protocols bgp group evpn-session neighbor 10.255.255.6
分步过程
要设置基于 IP 地址的 BGP EVPN 2 类和 5 类路由过滤:
创建要在策略语句中使用的前缀列表。
[ edit policy-options prefix-list pp1] user@PE1# set 10.1.1.10/32 user@PE1# set 10.1.1.11/32
配置要过滤的 2 类和 5 类 IP 地址,以及要在匹配路由上执行的操作。
[edit policy-options policy-statement bgp-evpn-exp] user@PE1# set term 1 from family evpn user@PE1# set term 1 from prefix-list pp1 user@PE1# set term 1 then community add COM1
配置 BGP 组协议会话。
[edit protocols bgp group evpn-session ] user@PE1# set type internal user@PE1# set local-address 10.255.255.8 user@PE1# set family evpn signaling user@PE1# set export bgp-evpn-exp user@PE1# set vpn-apply-export user@PE1# set neighbor 10.255.255.1 user@PE1# set neighbor 10.255.255.4 user@PE1# set neighbor 10.255.255.6
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入 show policy-options policy-statement bgp-evpn-exp
和 show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options prefix-list pp1 10.1.1.10/32; 10.1.1.11/32;
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { family evpn; prefix-list pp1; } then { community add COM1; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.8; family evpn { signaling; export bgp-evpn-exp; vpn-apply-export; neighbor 10.255.255.1; neighbor 10.255.255.4; neighbor 10.255.255.6; }
使用 MAC 地址过滤 BGP EVPN 2 类路由
CLI 快速配置
您可以使用 EVPN 前缀中的 MAC 地址过滤 EVPN 2 类路由。
首先提供示例中使用的 set 命令的完整列表,然后以分步格式提供相同的命令,以及用于确认配置的说明。本主题末尾显示了可用于查看来自正确配置的系统的相关输出的验证命令。
使用 MAC 地址过滤 BGP EVPN 2 类路由
set policy-options mac-list mfl1 01:87:88:04:50:00 set policy-options mac-list mfl1 02:87:88:04:50:00 set policy-options mac-list mfl1 03:87:88:04:50:00 set policy-options mac-list mfl1 04:87:88:04:50:00 set policy-options mac-list mfl1 05:87:88:04:50:00 set policy-options mac-list mfl1 06:87:88:04:50:00 set policy-options mac-list mfl1 07:87:88:04:50:00 set policy-options mac-list mfl1 08:87:88:04:50:00 set policy-options mac-list mfl1 64:87:88:04:50:00 set policy-options policy-statement bgp-evpn-exp term 1 from family evpn set policy-options policy-statement bgp-evpn-exp term 1 from mac-filter-list mfl1 set policy-options policy-statement bgp-evpn-exp term 1 then accept set protocols bgp group evpn-session type internal set protocols bgp group evpn-session local-address 10.255.255.8 set protocols bgp group evpn-session family evpn signaling set protocols bgp group evpn-session export bgp-evpn-exp set protocols bgp group evpn-session vpn-apply-export set protocols bgp group evpn-session neighbor 10.255.255.1 set protocols bgp group evpn-session neighbor 10.255.255.4 set protocols bgp group evpn-session neighbor 10.255.255.6
分步过程
要设置使用 MAC 地址的 BGP EVPN 2 类路由过滤:
创建要过滤的 MAC 地址列表(此示例中为 mfl1 )。
[edit policy-options mac-list mfl1] user@PE1# set 01:87:88:04:50:00; user@PE1# set 02:87:88:04:50:00; user@PE1# set 03:87:88:04:50:00; user@PE1# set 04:87:88:04:50:00; user@PE1# set 05:87:88:04:50:00; user@PE1# set 06:87:88:04:50:00; user@PE1# set 07:87:88:04:50:00; user@PE1# set 08:87:88:04:50:00;
应用要过滤的 MAC 地址列表,以及要执行的操作(在本例中为接受)。
[edit policy-options policy-statement bgp-evpn-exp] user@PE1# set term 1 from family evpn user@PE1# set term 1 from mac-filter-list mfl1 user@PE1# set term 1 then accept
配置 BGP 组协议会话。
[edit protocols bgp group evpn-session ] user@PE1# set type internal user@PE1# set local-address 10.255.255.8 user@PE1# set family evpn signaling user@PE1# set export bgp-evpn-exp user@PE1# set neighbor 10.255.255.1 user@PE1# set neighbor 10.255.255.4 user@PE1# set neighbor 10.255.255.6 user@PE1# set vpn-apply-export
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入show policy-options mac-list mfl1
show policy-options policy-statement bgp-evpn-exp
、和show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options mac-list mfl1 01:87:88:04:50:00; 02:87:88:04:50:00; 03:87:88:04:50:00; 04:87:88:04:50:00; 05:87:88:04:50:00; 06:87:88:04:50:00; 07:87:88:04:50:00; 08:87:88:04:50:00;
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { family evpn; mac-filter-list mfl1; } then { accept; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.8; family evpn { signaling; export bgp-evpn-exp; vpn-apply-export; neighbor 10.255.255.1; neighbor 10.255.255.4; neighbor 10.255.255.6; }
过滤包含(或不包含)IP 地址的 BGP EVPN 2 类路由
CLI 快速配置
EVPN 2 类路由有一个 MAC 地址,并且可以在前缀中还有一个 IP 地址(IPv4 或 IPv6)。使用 BGP EVPN Type 2 过滤器时,您可以根据类型 2 路由是只有 MAC 地址、MAC 地址和 IPv4 地址,还是 MAC 地址和 IPv6 地址(不是特定 IP 地址,而是前缀中的任何 IP 地址)过滤 2 类路由。这些选项是互斥的。
首先提供示例中使用的 set 命令的完整列表,然后以分步格式提供相同的命令,以及用于确认配置的说明。本主题末尾显示了可用于查看来自正确配置的系统的相关输出的验证命令。
过滤仅使用 MAC 地址的 BGP EVPN 2 类路由
set policy-options policy-statement bgp-evpn-exp term 1 from family evpn set policy-options policy-statement bgp-evpn-exp term 1 from evpn-mac-route mac-only set policy-options policy-statement bgp-evpn-exp term 1 then community add COM1 set protocols bgp group evpn-session type internal set protocols bgp group evpn-session local-address 10.255.255.8 set protocols bgp group evpn-session family evpn signaling set protocols bgp group evpn-session export bgp-evpn-exp set protocols bgp group evpn-session vpn-apply-export set protocols bgp group evpn-session neighbor 10.255.255.1 set protocols bgp group evpn-session neighbor 10.255.255.4 set protocols bgp group evpn-session neighbor 10.255.255.6
分步过程
要设置仅使用 MAC 地址的 BGP EVPN 2 类路由过滤:
创建策略和要执行的操作。
[edit policy-options policy-statement bgp-evpn-exp] user@PE1# set term 1 from family evpn user@PE1# set term 1 from evpn-mac-route mac-only user@PE1# set term 1 then community add COM1
配置 BGP 组协议会话(我们在这里使用
export bgp-evpn-exp
此处来应用策略)。[edit protocols bgp group evpn-session ] user@PE1# set type internal user@PE1# set local-address 10.255.255.8 user@PE1# set family evpn signaling user@PE1# set export bgp-evpn-exp user@PE1# set neighbor 10.255.255.1 user@PE1# set neighbor 10.255.255.4 user@PE1# set neighbor 10.255.255.6
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入 show policy-options policy-statement bgp-evpn-exp
、和 show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { family evpn; evpn-mac-route mac-only; } then { community add COM1; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.8; family evpn { signaling; export bgp-evpn-exp; vpn-apply-export; neighbor 10.255.255.1; neighbor 10.255.255.4; neighbor 10.255.255.6; }
根据 EVPN 扩展社区过滤 BGP EVPN 路由
CLI 快速配置
BGP EVPN 路由可以在 BGP 更新消息路径属性中携带一组扩展社区,因此,您可以使用这些扩展社区来过滤 BGP EVPN 路由。.扩展社区中包含的 EVPN 特定信息包括封装类型、MAC 移动性信息、EVPN 水平分割标签、ESI 模式、E-Tree 叶标签等。
有关扩展社区的完整列表,请参阅 边界网关协议 (BGP) 扩展社区 。
扩展社区是一个八八位字节值,分为两个主要部分,通常使用 type:administrator:assigned-number 的表示法。但是,要在 BGP EVPN 的 Junos 配置中指定 EVPN 扩展社区,所有值(包括 type)均为十进制,而不是使用单词来指定类型。Type 为 2 个八位位组,高阶八位字节定义扩展社区的实际类型,低阶八位字节定义社区。子类型;val1 和 val2 可以指定为 [2 + 4] 个八位位组,也可以指定为 [4 + 2] 个八位位组。
Junos 中扩展社区的典型配置:
设置策略选项 社区成员 name 类型:val1:val2
在 Junos 中为 BGP EVPN 配置指定扩展社区。请参阅 基于 BGP MPLS 的以太网 VPN ,了解有关扩展社区的数值表示的更多信息。
在下面的示例中,使用十进制 780 来匹配封装扩展社区(例如 VXLAN)。对于 780,扩展类型字段的高阶八位字节值为 0x03,表示它是传递的。扩展类型字段的低阶八位位组的值为 0x0c;因此,前 2 个八位位组值为 0x030c,这就是十进制 780 的来源。其余值字段(其中 val1 为 0 和 val2 8)用于识别 VXLAN 隧道类型。
RFC 8365 第 11 节(下面的链接)中定义了与 EVPN 相关的隧道类型的完整列表,但此处列出了一些相关的隧道类型:
值 8 = VXLAN 封装
值 9 = NVGRE 封装
值 10 = MPLS 封装
值 11 = GRE 封装中的 MPLS
值 12 = VXLAN GPE 封装
有关详细信息 ,请参阅 RFC 5512 第 4.5 节 “保留字段 ”和 RFC 8365 第 11 节 。
设置策略选项社区成员 name 780:0:8
首先提供示例中使用的 set 命令的完整列表,然后以分步格式提供相同的命令,以及用于确认配置的说明。本主题末尾显示了可用于查看来自正确配置的系统的相关输出的验证命令。
根据 EVPN 扩展社区过滤 BGP EVPN 路由
set policy-options community COM5 members 780:0:8 set policy-options policy-statement bgp-evpn-exp term 1 from community COM5 set policy-options policy-statement bgp-evpn-exp term 1 then reject set protocols bgp group evpn-session type internal set protocols bgp group evpn-session local-address 10.255.255.4 set protocols bgp group evpn-session family evpn signaling set protocols bgp group evpn-session export bgp-evpn-exp set protocols bgp group evpn-session neighbor 10.255.255.1 set protocols bgp group evpn-session neighbor 10.255.255.6 set protocols bgp group evpn-session neighbor 10.255.255.8
分步过程
要根据 EVPN 扩展社区设置 BGP EVPN 路由过滤:
创建要筛选的社区成员列表,以及要执行的操作。
[edit policy-options] user@PE1# set community COM5 members 780:0:8
创建要筛选的社区成员列表,以及要执行的操作。
[edit policy-options policy-statement bgp-evpn-exp] user@PE1# set term 1 from community COM5 user@PE1# set term 1 then reject
配置 BGP 组协议会话(我们在这里使用
export bgp-evpn-exp
此处来应用策略)。[edit protocols bgp group evpn-session ] user@PE1# set type internal user@PE1# set local-address 10.255.255.4 user@PE1# set family evpn signaling user@PE1# set export bgp-evpn-exp user@PE1# set neighbor 10.255.255.1 user@PE1# set neighbor 10.255.255.6 user@PE1# set neighbor 10.255.255.8
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入 show policy-options policy-statement bgp-evpn-exp
、和 show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options community COM5 members members 780:0:8;
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { community COM5; } then { reject; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.4; family evpn { signaling; export bgp-evpn-exp; vpn-apply-export; neighbor 10.255.255.1; neighbor 10.255.255.6; neighbor 10.255.255.8; }
将社区信息从 EVPN 2 类路由复制到 EVPN 5 类路由
您可以使用 BGP EVPN 过滤将从远程 PE 接收的 EVPN 2 类路由通告中的 MAC 地址(如果有)和 IPv4 或 IPv6 地址作为 EVPN 5 类路由包含在内。同样,您可以将 EVPN 2 类路由中的社区信息复制到 EVPN 5 类路由中,这些信息是从 vrf.inet 表中的路由(特别是 VPN-IPv4 (AFI/SAFI 1/128)、VPN-IPv6 (AFI/SAFI 2/128)、IPv4 (AFI/SAFI 1/1) 和 IPv6 (AFI/SAFI 2/1) 生成的。
要将 EVPN 2 类路由通告中包含的任何 MAC 地址和 IPv4 或 IPv6 地址纳入 EVPN 5 类,请启用以下命令:
设置路由实例 EVPNA 协议 EVPN 远程 IP 主机路由 no-advertise-community
您还可以控制在 IP 和 EVPN 路由之间携带哪些路由属性。换言之,当从 EVPN 5 类路由生成 IP 路由时,您可以从导入方向选择要包含哪些路由属性,对于导出方向,您还可以选择从 IP 路由生成 EVPN 5 类路由时要包含的路由属性。这些路由属性是、 as-path
、 community
和 preference
。请注意,如果在导入过程中未显式包含 community
路由属性,则由于 Junos 处理 vrf.inet.0 表中的路由属性的方式,将不会包含颜色社区信息(因此此信息不可用于受影响路由的下一跃点解析)。
要包含给定的路由属性,请使用以下命令,并设置导入或导出操作,该操作可以是允许或跳过(此处的导入操作是允许):
set routing-instances evpna protocols evpn ip-prefix-routes route-attributes as-path import-action allow set routing-instances evpna protocols evpn ip-prefix-routes route-attributes preference import-action allow set routing-instances evpna protocols evpn ip-prefix-routes route-attributes community import-action allow
结果
要查看配置结果,请在 CLI 层次结构顶层的配置模式下,输入 show policy-options policy-statement bgp-evpn-exp
、和 show protocols bgp group evpn-sessions
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@PE1# show policy-options policy-statement bgp-evpn-exp term 1 { from { family evpn; evpn-mac-route mac-only; } then { community add COM1; } }
user@PE1# show protocols bgp group evpn-sessions group evpn-sessions { type internal; local-address 10.255.255.8; family evpn { signaling; export bgp-evpn-exp; vpn-apply-export; neighbor 10.255.255.1; neighbor 10.255.255.4; neighbor 10.255.255.6; }
验证
确认配置工作正常。对于上面给出的每个示例,请运行这些命令的一个版本,该版本使用要确认的配置。以下验证示例基于给出的基于 EVPN NLRI 类型过滤 BGP EVPN 路由的示例。
验证各种 BGP EVPN 过滤
目的
显示有关根据指定条件过滤的 BGP EVPN 路由的信息。
行动
在目标设备的操作模式下,输入以下命令:
user@device> show evpn instance user@device> show evpn instance extensive user@device> show evpn database user@device> show evpn mac-ip-table
在 PE1 的操作模式下,输入以下命令:
user@PE1> show route table bgp.evpn.0 user@PE1> show route table EVPN-1.evpn.0 user@PE1> show route table default_evpn__.evpn.0 user@PE1> show route advertising-protocol bgp 100.100.100.2 table bgp.evpn.0 user@PE1> show route advertising-protocol bgp 100.100.100.2 table EVPN-1.evpn.0 user@PE1> show route advertising-protocol bgp 100.100.100.2 table default_evpn__.evpn.0
在 PE2 的操作模式下,输入以下命令:
user@PE2> show route receive-protocol bgp 100.100.100.1 table bgp.evpn.0 user@PE2> show route receive-protocol bgp 100.100.100.1 table EVPN-1.evpn.0 user@PE2> show route receive-protocol bgp 100.100.100.1 table default_evpn__.evpn.0 user@PE2> show route table bgp.evpn.0 user@PE2> show route table EVPN-1.evpn.0 user@PE2> show route table default_evpn__.evpn.0