从 FEC128 LDP-VPLS 迁移到 EVPN 概述
对于拥有虚拟专用 LAN 服务 (VPLS) 网络和以太网 VPN (EVPN) 网络的服务提供商,需要将这些网络互连。在 Junos OS 17.3 版之前,已用于 VPLS 和 EVPN 路由实例互连点上的逻辑隧道接口。在这种情况下,每个网络中的提供商边缘 (PE) 设备都不知道其他技术网络中的 PE 设备。从 Junos OS 17.3 版开始,我们引入了一种解决方案,用于为每个 VPN 路由实例启用从 FEC128 LDP-VPLS 到 EVPN 的分阶段迁移。在此解决方案中,为同一 VPN 路由实例和单宿主分段运行 EVPN 和 VPLS 的 PE 设备可以共存。在迁移期间,受影响客户的客户边缘 (CE) 设备到 CE 设备的流量转发影响微乎其微。
以下部分介绍了从 LDP-VPLS 到 EVPN 的迁移:
技术概述和优势
虚拟专用 LAN 服务 (VPLS) 是基于以太网的点到多点 2 层 VPN。该技术允许您通过 MPLS 主干网将地理位置分散的数据中心 LAN 相互连接,同时保持第 2 层连接。VPLS 标准中定义的高可用性功能(如 LER 双宿主)和使用 BGP 信令的拓扑自动发现功能使 VPLS 具有可扩展性且易于部署。由于 VPLS 使用 MPLS 作为其核心,它在 MPLS 网络中提供低延迟变化和有统计限制的低融合时间。
另一方面,以太网 VPN (EVPN) 是一种第 2 层和第 3 层 VPN 组合解决方案,与当前技术相比,其可扩展性、弹性和效率更高。它提供多种优势,包括为服务提供商和企业提供更高的网络效率、可靠性、可扩展性、虚拟机 (VM) 移动性和策略控制。
尽管 VPLS 是一种广泛部署的第 2 层 VPN 技术,但服务提供商网络由于具有扩展优势和部署便利性,迁移到 EVPN。EVPN 的一些优势包括:
-
控制平面流量随 BGP 一起分布,广播和组播流量使用共享组播树或入口复制发送。
-
控制平面学习用于 MAC 和 IP 地址,而非数据平面学习。MAC 地址学习需要未知单播和 ARP 帧泛洪,而 IP 地址学习则不需要任何泛洪。
-
路由反射器用于将 PE 设备之间的 BGP 会话全网状缩减为 PE 设备和路由反射器之间的单个 BGP 会话。
-
使用 BGP 的自动发现可以发现参与给定 VPN 的 PE 设备、参与给定冗余组的 PE 设备、隧道封装类型、组播隧道类型和组播成员。
-
使用全活动多宿主。这允许给定 CE 设备具有到多个 PE 设备的多个链路,而往返该 CE 设备的流量将充分利用所有这些链路(以太网分段)。
-
当 CE 设备与 PE 设备之间的链路发生故障时,该 EVPN 实例 (EVI) 的 PE 设备将随着单个 EVPN 路由的撤销而收到故障通知。这使这些 PE 开发人员可以作为与失败链路关联的每个 MAC 地址的下一跃点移除正在提取的 PE 设备(批量撤销)。
FEC128 到 EVPN 迁移的 LDP-VPLS
一些服务提供商希望保留其在 VPLS 上的投资。因此需要将旧的 VPLS 网络连接到运行 EVPN 的新网络。为此,使用了 VPLS 和 EVPN 路由实例互连点上的逻辑隧道接口。但是,所有其他 PE 设备都属于 VPLS 网络或 EVPN 网络,并且不知道其他技术。
从 Junos OS 17.3 版开始,EVPN 可以分阶段引入现有 VPLS 网络,对 VPLS 服务的影响微乎其微。在 VPLS PE 设备上,某些客户可以转移到 EVPN,而其他客户继续使用 VPLS 伪线。其他 PE 设备可以完全为 VPLS,并将其他 PE 设备上的客户切换到 EVPN。此解决方案支持无缝迁移互联网草案(2018 年 1 月到期) (PBB-)EVPN 与 (PBB-) VPLS 无缝集成。
从 FEC128 LDP-VPLS 无缝迁移到 EVPN 解决方案,支持以下功能:
-
允许针对每个 VPN 实例逐个站点分阶段迁移至 EVPN。例如,将在 EVPN PE 设备上配置的新 EVPN 站点。
-
允许同时为同一 VPN 实例和单宿主分段运行 EVPN 和 VPLS 的 PE 设备共存。
在 LDP-VPLS 到 EVPN 的迁移中,一些客户已迁移到 EVPN,而其他客户使用 VPLS 提供服务的 PE 设备称为超级 PE 设备。当超级 PE 设备在路由实例中发现其他超级 PE 设备时,它们会使用 EVPN 转发与其他超级 PE 设备通信,并将 VPLS 伪线连接到运行 VPLS 的 PE 设备。没有 EVPN 感知功能且仅为所有客户运行 VPLS 的 PE 设备称为 VPLS PE 设备。
连接到超级 PE 的 CE 设备可以到达连接到仅限 EVPN 的 PE 设备或仅限 VPLS 的 PE 设备的 CE 设备,但连接到仅 EVPN 的 PE 设备的 CE 设备无法访问连接到仅限 VPLS 的 PE 设备的 CE 设备。
由于每个路由实例支持从 LDP-VPLS 到 EVPN 的迁移,并且如果路由实例为 PE 设备上的多个客户提供服务,则所有迁移都一起迁移。EVPN 负责在升级到 EVPN 的 PE 设备之间设置数据转发,而 VPLS 继续设置数据转发至运行 VPLS 的 PE 设备。对于仍在所有 PE 设备上使用 VPLS 伪线的客户,应该不会受到任何影响。
从 LDP-VPLS 到 EVPN 的迁移不支持以下功能:
-
从 FEC129 VPLS 迁移到 EVPN。
-
从 BGP-VPLS 迁移到 EVPN。
-
VPLS 虚拟交换机到 EVPN 虚拟交换机的迁移。
-
将 VPLS 路由实例迁移到 EVPN 虚拟交换机。
-
将 VPLS 路由实例或 PBB-VPLS 迁移到 PBB-EVPN。
-
从 EVPN 无缝迁移回 VPLS。
-
增强 EVPN 以支持 VPLS 支持的工具或语句和命令集。
-
主动-主动和主动-备用多宿主。仅单宿主部署支持迁移到 EVPN。
-
无法跨 EVPN 和 VPLS PE 设备跨越全活动,因为 VPLS 不支持全活动多宿主功能。
-
通过超级 PE 设备,将仅限 EVPN 的 PE 设备与仅支持 VPLS 的 PE 设备连接。
-
IPv6、逻辑系统、多机箱支持和 SNMP,因为它们目前在 EVPN 上不受支持。
从 LDP-VPLS 到 EVPN 迁移的示例配置
以下部分提供执行从 LDP-VPLS 到 EVPN 迁移所需的示例配置。
LDP-VPLS 配置
典型的静态 LDP-VPLS 路由实例配置如下所示:
user@host# show routing-instance foo instance-type vpls; vlan-id 100; (not needed for VLAN bundle service) interface ge-2/0/0.590; interface ae500.590; routing-interface irb.0; forwarding-options { family vpls { filter { input UNKNOWN-UNICAST; } } } protocols { vpls { control-word; encapsulation-type ethernet-vlan; enable-mac-move-action; mac-table-size { 100000; packet-action drop; } mac-table-aging-time ; interface-mac-limit { 100000; packet-action drop; } no-tunnel-services; (use label-switched interfaces) vpls-id 245015; mtu 1552; ignore-mtu-mismatch; mac-flush { any-spoke; } no-vlan-id-validate; neighbor 192.168.252.64 { psn-tunnel-endpoint 10.0.0.31; pseudowire-status-tlv; revert-time 60; backup-neighbor 192.168.252.65 { psn-tunnel-endpoint 10.0.0.32; hot-standby; } } mesh-group Spoke { (access label-switched interface toward spoke) local-switching; neighbor 192.168.252.66 { psn-tunnel-endpoint 10.0.0.41; pseudowire-status-tlv; } neighbor 192.168.252.67 { psn-tunnel-endpoint 10.0.0.42; pseudowire-status-tlv; } } connectivity-type permanent; }
user@host# show interfaces ge-2/0/0.590 encapsulation vlan-vpls; vlan-id 590; output-vlan-map { swap; tag-protocol-id 0x8100; inner-vlan-id 590; } family vpls { filter { input-list [ listA ]; output-list listB; } }
EVPN 迁移配置
要执行 FEC128 LDP-VPLS 到 EVPN 的迁移,请执行以下操作:
-
在备份路由引擎上,加载 Junos OS 17.3R1 版。
-
执行不中断服务的软件升级 (ISSU),以获取主要角色。确保 VPLS 统一 ISSU 不会对 VPLS 转发产生任何影响。
-
识别需要迁移到 EVPN 的路由实例(客户)。
-
在单个路由实例中启用 EVPN。
-
将路由实例类型更改为
evpn
, 并在evpn
层次结构级别包含vpls
该语句[edit routing-instances routing-intance-name protocols]
,并在同一层次结构中包含语句以支持 VPLS 命令。例如:
[edit routing-instances routing-instance-name] instance-type evpn; interface ge-2/0/0.590; interface ae500.590; routing-interface irb.0; route-distinguisher 10.1.1.1:50; (add for LDP-VPLS) vrf-target target:100:100; (add for LDP-VPLS) forwarding-options { family vpls { filter { input UNKNOWN-UNICAST; } } } protocols { vpls { (supports all existing VPLS commands) }
-
-
在 BGP 中启用家族 EVPN 信令。
例如:
protocols { bgp { local-as 64512; group 2mx { type internal; local-address 10.81.1.1; family evpn { signaling; } neighbor 10.81.2.2; neighbor 10.81.9.9; } }
提交 EVPN 迁移配置后,路由协议进程和第 2 层地址学习过程开始构建 EVPN 状态以反映接口、网桥域、对等方和路由。本地学习的 MAC 地址由实例.vpls.0 中的第 2 层地址学习过程同步到路由协议进程。当实例.vpls.0 中的本地 MAC 老化时,路由协议进程会通过第 2 层地址学习过程发出通知。
学习 EVPN 对等方时,路由协议进程会向第 2 层地址学习过程发送新消息,以从 VE 网格组中移除对等方标签交换接口或虚拟隧道逻辑接口,并禁用其上的 MAC 学习。然后,EVPN IM 下一跃点被添加到 VE 网格组。在通过 BGP 学习 MAC 地址和通知 MPLS 下一跃点的第 2 层地址学习过程的路由协议过程中,EVPN 行为得到维护。
VPLS 语句和命令继续应用于 PE 设备与通过它们学习的 MAC 地址之间的 VPLS 伪线。EVPN 语句和命令适用于运行 EVPN 的 PE 设备。
恢复到 VPLS
如果 EVPN 迁移出现问题,您可以恢复到 VPLS,直到了解问题。通过启用以下配置,路由实例以非灾难性方式从超级 PE 恢复到 VPLS PE:
[edit routing-instances routing-instance-name] user@host# set instance-type vpls user@host# delete protocols evpn user@host# delete route-distinguisher (if running LDP-VPLS) user@host# delete vrf-target (if running LDP-VPLS)
将 EVPN 迁移恢复为 VPLS 时,将发生以下情况:
-
EVPN 状态信息将被删除。
-
有一个 EVPN 控制平面路由撤销的触发器。
-
路由协议进程使用路由实例和对等方标签交换接口或虚拟隧道逻辑接口向第 2 层地址学习过程发送新消息。
-
标签交换接口或虚拟隧道接口会将新消息添加到泛洪组,并启用 MAC 学习。
-
路由协议进程会删除出口 IM 下一跃点,从而提示第 2 层地址学习进程将其从泛洪组中移除。
-
通过标签交换接口或虚拟隧道逻辑接口再次学习远程 MAC 地址。
LDP-VPLS 到 EVPN 的迁移和其他功能
表 1 介绍了一些相关功能的功能,例如通过 LDP-VPLS 到 EVPN 迁移的多宿主和集成路由和桥接 (IRB)。
特征 |
EVPN 迁移支持的功能 |
---|---|
MAC 移动 |
在仅支持 VPLS 的 PE 设备和超级 PE 设备之间支持 MAC 移动。 当 MAC 地址从仅支持 VPLS 的 PE 设备移动到超级 PE 设备时,会通过 BGP 进行学习,路由协议进程通知第 2 层地址学习进程,使其在 foo.vpls.0 路由表中更新 EVPN 下一跃点。 当 MAC 地址从超级 PE 设备移动到仅支持 VPLS 的 PE 设备时,该地址在标签交换接口或虚拟隧道接口上的数据包转发引擎中学习。第 3 层地址学习过程将其更新为 VPLS 或标签交换接口的下一跃点。 当 EVPN BGP 撤回类型 2 路由时,MAC 地址不会从转发表中删除,因此不会丢失数据。 转发 MAC 表由 VPLS 和 EVPN 共享。某些属性,例如 |
Irb |
IRB 无需更改。 在超级 PE 设备上,EVPN 在第 3 层虚拟路由和转发中填充通过 MAC+IP 类型 2 路由从 EVPN 对等方学习的 /32 主机路由,而使用子网路由的 VPLS IRB 转发适用于仍在运行 VPLS 的站点。 |
分层 VPLS |
在包含中心辐射型 PE 设备的 H-VPLS 网络中,当中心 PE 设备迁移到 EVPN 时,需要将通过接入标签交换或虚拟隧道接口获知的本地 MAC 地址播发至 BGP,以便其他仅支持 EVPN 的 PE 设备或超级 PE 设备可以访问这些地址。 将 H-VPLS 网络迁移到 EVPN 时,要考虑以下事项:
|
ESI 配置 |
以太网分段标识符 (ESI) 在物理接口或端口级别配置。 |