通过 SRv6 配置 EVPN-VPWS
EVPN VPWS 使用 EVPN 信令提供点对点第 2 层 VPN 服务。EVPN-VPWS 支持单宿主和多宿主(单活动或全活动)设备。基于 SRv6 的 EVPN-VPWS(基于 IPv6 的分段路由)。SRv6 使用 IPv6 分段路由头 (SRH) 扩展对网络指令的顺序列表进行编码。网络指令包含有关 SRv6 节点的显式信息,这些节点可用于路径上的数据包处理。该指令还包括 SRv6 网络中 SRv6 节点的任务或功能信息。SRH 包含 IPv6 地址形式的 128 位分段标识符 (SID) 列表。SID 由以下内容组成:
定位器 - 定位器是 SID 的第一部分,由最高有效位组成。它表示特定 SRv6 节点的地址。定位器类似于网络地址。它用于路由数据包。
函数 - 函数是 SID 的第二部分。它定义了定位器识别的节点在本地执行的数据包处理功能。Junos OS 支持用于 EVPN-VPWS 的 End.DX2 功能。End.DX2 指定端点解封装和 L2 交叉连接行为。
EVPN-VPWS 相对于 SRv6 的优势
通过 SRv6 底层网络部署的 EVPN-VPWS 具有以下优势: IPv6 网络:
网络编程完全依靠 IPv6 标头和标头扩展来传输数据包,消除了 MPLS 等协议。这可确保在核心 IPv6 网络中实现无缝部署,而无需进行任何重大的硬件或软件升级。
即使中转路由器不支持 SRv6,也可以通过 SRv6 入口节点传输数据包。这样就无需在 IPv6 网络中的所有节点上部署分段路由。
图 1 说明了 SRv6 拓扑中的节点如何处理 SRH。

PE1 使用 SRH 封装有效负载。SRH 列表包含三个 SID。每个 SID 表示分段路径上的一个 SRv6 节点。最后一个 SID 上的函数是 END。DX2 端点。
P1 弹出并处理 SRH 列表底部的第一个 SID,并将下一个 SID 复制到外部目标。SRH 列表包含 2 个 SIDS。
P2 是非 SRv6 节点。P2 在当前分段路径上转发数据包,不再进行进一步处理。
P3 弹出并处理第二个 SID,并复制 SRH 列表中的第三个 SID。
PE2 弹出并处理第三个 SID。结束。DX2 识别面向 CE 的接口,PE2 转发数据包。
EVPN-VPWS 基于 SRv6 基准配置构建。有关配置 SRv6 的更多信息,请参阅 了解 BGP 中通过 SRv6 进行的 SRv6 网络编程和第 3 层服务。
CLI 快速配置
要通过 SRv6 快速配置 EVPN-VPWS,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层级的 CLI 中,然后从配置模式进入提交。
PE1型
set chassis network-services enhanced-ip set routing-instances EVPN-VPWS1 instance-type evpn-vpws set routing-instances EVPN-VPWS1 protocols evpn encapsulation srv6 set routing-options source-packet-routing srv6 locator LOC1 2001:db8:a1:1::/64 set routing-options resolution preserve-nexthop-hierarchy set routing-instances EVPN-VPWS1 protocols evpn interface ge-0/0/1.1 vpws-service-id local 102 remote 201 set routing-instances EVPN-VPWS1 protocols evpn interface ge-0/0/1.1 vpws-service-id source-packet-routing srv6 locator LOC1 end-dx2-sid 2001:db8:a1:1:101:: set protocols bgp group IBGPv6 family evpn signaling advertise-srv6-service set protocols bgp group IBGPv6 family evpn signaling accept-srv6-service set policy-options policy-statement vpws-nh-change term a from protocol evpn set policy-options policy-statement vpws-nh-change term a then next-hop 2001:db8:a1:1:: set policy-options policy-statement vpws-nh-change term a then accept set protocols bgp group ibgpv6 export vpws-nh-change set protocols bgp group ibgpv6 vpn-apply-export
PE2
set chassis network-services enhanced-ip set routing-instances EVPN-VPWS1 instance-type evpn-vpws set routing-instances EVPN-VPWS1 protocols evpn encapsulation srv6 set routing-options source-packet-routing srv6 locator LOC1 2001:db8:a1:2::/64 set routing-options resolution preserve-nexthop-hierarchy set routing-instances EVPN-VPWS1 protocols evpn interface ge-0/0/1.1 vpws-service-id local 201 remote 102 set routing-instances EVPN-VPWS1 protocols evpn interface ge-0/0/1.1 vpws-service-id source-packet-routing srv6 locator LOC1 end-dx2-sid 2001:db8:a1:2:101::: set protocols bgp group IBGPv6 family evpn signaling advertise-srv6-service set protocols bgp group IBGPv6 family evpn signaling accept-srv6-service set policy-options policy-statement vpws-nh-change term a from protocol evpn set policy-options policy-statement vpws-nh-change term a then next-hop 2001:db8:a1:2:: set policy-options policy-statement vpws-nh-change term a then accept set protocols bgp group ibgpv6 export vpws-nh-change set protocols bgp group ibgpv6 vpn-apply-export
程序
我们将在 PE1 设备上描述这些步骤。我们注意到 PE1 和 PE2 在适用时在配置上的差异。要通过 SRv6 将 EVPN-VPWS 配置为支持静态 SID,必须执行以下操作:
在所有 MX 设备上启用
enhanced-ip
支持。[edit] user@PE1# set chassis network-services enhanced-ip
配置对 SRv6 和定位器地址的支持。
PE1型
[edit] user@PE1# set routing-options source-packet-routing srv6 locator LOC1 2001:db8:a1:1::/64
PE2
[edit] user@PE2# set routing-options source-packet-routing srv6 locator LOC1 2001:db8:a1:2::/64
为源数据包路由启用扩展的下一跃点层次结构支持。
[edit] user@R1#set routing-options resolution preserve-nexthop-hierarchy
启用
evpn-vpws
路由实例。[edit] user@PE1# set routing-instances EVPN-VPWS1 instance-type evpn-vpws
为 EVPN-VPWS1 路由实例配置 SRv6 封装类型。
[edit] user@PE1# set routing-instances EVPN-VPWS1 protocols evpn encapsulation srv6
为 EVPN-VPWS1 路由实例配置具有本地和远程 VPWS SID 的接口。
PE1型
[edit] user@PE1# set routing-instances EVPN-VPWS1 protocols evpn interface ge-0/0/1.1 vpws-service-id local 102 remote 201
PE2
[edit] user@PE1# set routing-instances EVPN-VPWS1 protocols evpn interface ge-0/0/1.1 vpws-service-id local 201 remote 102
将定位器配置为支持 END。EVPN-VPWS1 路由实例中接口上的 DX2。
PE1型
[edit] user@PE1# set routing-instances EVPN-VPWS1 protocols evpn interface ge-0/0/1.1 vpws-service-id source-packet-routing srv6 locator LOC1 end-dx2-sid 2001:db8:a1:1:101::
PE2
[edit] user@PE1# set routing-instances EVPN-VPWS1 protocols evpn interface ge-0/0/1.1 vpws-service-id source-packet-routing srv6 locator LOC1 end-dx2-sid 2001:db8:a1:2:101::
启用 BGP 协议以播发并接受 SRv6 服务的 EVPN NLRI。
[edit] user@PE1# set protocols bgp group IBGPv6 family evpn signaling advertise-srv6-service user@PE1# set protocols bgp group IBGPv6 family evpn signaling accept-srv6-service
配置路由策略,将 EVPN 路由的下一跃点地址设置为定位器地址。
注意:从 Junos OS 24.1R1 版和 Junos OS 演化版 24.1R1 版开始,无需通过 SRv6 为 EVPN-VPWS 配置路由策略。
PE1型
[edit] user@PE1#set policy-options policy-statement vpws-nh-change term a from protocol evpn set policy-options policy-statement vpws-nh-change term a then next-hop 2001:db8:a1:1:: set policy-options policy-statement vpws-nh-change term a then accept set protocols bgp group ibgpv6 export vpws-nh-change set protocols bgp group ibgpv6 vpn-apply-export
PE2
[edit] user@PE1#set policy-options policy-statement vpws-nh-change term a from protocol evpn set policy-options policy-statement vpws-nh-change term a then next-hop 2001:db8:a1:2:: set policy-options policy-statement vpws-nh-change term a then accept set protocols bgp group ibgpv6 export vpws-nh-change set protocols bgp group ibgpv6 vpn-apply-export
动态 SID 分配
动态 SID 分配允许您仅指定定位器名称来预配 Junos 设备。要启用动态置备,请在层次结构中 [edit routing-instance routing-instance-name instance-type protocols evpn interface interface-name vpws-service-id source-packet-routing srv6]
配置定位器名称。当需要服务时,设备会动态地将 SID en-dx2-sid
分配给相应的定位符前缀。以下是 EVPN-VPWS 上动态分配的 SID 的示例配置。
instance-type evpn-vpws; protocols { evpn { interface ge-1/1/1.1 { vpws-service-id { local 3040; remote 20; source-packet-routing { srv6 locator LOC2; } } } encapsulation srv6; } } source-packet-routing { srv6 { locator LOC2 2001:db8:b1:1::/64; } }