从 FEC128 LDP-VPLS 迁移到 EVPN 概述
对于拥有虚拟专用 LAN 服务 (VPLS) 网络和以太网 VPN (EVPN) 网络的服务提供商,需要将这些网络互连。在引入从 LDP-VPLS 无缝迁移到 EVPN 功能之前,VPLS 和 EVPN 路由实例互连点上的逻辑隧道接口用于此目的。在这种情况下,每个网络中的提供商边缘 (PE) 设备都不知道另一个技术网络中的 PE 设备。
随着从 LDP-VPLS 到 EVPN 的无缝迁移功能的推出,我们推出了一种解决方案,用于为每个 VPN 路由实例逐站点实现从 FEC128 LDP-VPLS 到 EVPN 的分阶段迁移。在此解决方案中,为同一 VPN 路由实例和单宿主分段运行 EVPN 和 VPLS 的 PE 设备可以共存。在迁移期间,对于受影响客户,对客户边缘 (客户边缘) 设备到客户边缘设备流量转发的影响很小。
有关平台和 Junos OS 支持的信息,请参阅功能浏览器中的从 LDP-VPLS 无缝迁移到 EVPN 条目。
以下部分介绍从 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 设备、隧道封装类型、组播隧道类型和组播成员。
-
使用全活动多宿主。这允许给定的客户边缘设备拥有与多个 PE 设备的多个链路,并且进出该客户边缘设备的流量将充分利用所有这些链路(以太网段)。
-
当客户边缘设备与 PE 设备之间的链路发生故障时,该 EVPN 实例 (EVI) 的 PE 设备将收到故障通知,并撤回单个 EVPN 路由。这允许这些 PE 开发人员将撤销的 PE 设备作为与故障链路关联的每个 MAC 地址的下一跃点(批量撤销)。
FEC128 LDP-VPLS 到 EVPN 迁移
部分服务提供商希望保留其对 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 的 客户边缘 设备可以访问连接到仅支持 EVPN 的 PE 设备或仅支持 VPLS 的 PE 设备的客户边缘设备,但连接到仅支持 EVPN 的 PE 设备的客户边缘设备无法访问连接到仅支持 VPLS 的 PE 设备的客户边缘设备。
由于从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,并在层次结构级别包含[edit routing-instances routing-intance-name protocols]该evpn语句,并在同一层次结构中包含该vpls语句以支持 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 地址通过 instance.vpls.0 中的第 2 层地址学习过程同步到路由协议进程。当 instance.vpls.0 中的本地 MAC 老化时,路由协议进程将由第 2 层地址学习进程通知。
学习 EVPN 对等方时,路由协议进程会向第 2 层地址学习进程发送一条新消息,以从 VE 网格组中移除对等方的标签交换接口或虚拟隧道逻辑接口,并禁用其 MAC 学习。然后,EVPN IM 下一跃点会添加到 VE 网格组。路由协议过程中的 EVPN 行为将保持不变,即通过 BGP 学习 MAC 地址并通知第 2 层地址学习过程 MPLS 下一跃点。
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 介绍了一些相关功能的功能,例如多宿主以及集成路由和桥接 (IRB) 以及 LDP-VPLS 到 EVPN 迁移。
|
功能 |
EVPN 迁移中支持的功能 |
|---|---|
|
MAC 移动 |
支持在仅支持 VPLS 的 PE 设备和超级 PE 设备之间进行 MAC 移动。 当 MAC 地址从仅支持 VPLS 的 PE 设备移动到超级 PE 设备时,将通过 BGP 获知,路由协议进程会通知要在 foo.vpls.0 路由表中更新的 EVPN 下一跃点的第 2 层地址学习过程。 当MAC 地址从超级 PE 设备移动到仅支持 VPLS 的 PE 设备时,系统会在标签交换接口或虚拟 隧道 接口上的数据包转发引擎中获知。第 3 层地址学习过程会将其更新为 VPLS 或标签交换接口下一跃点。 当 EVPN BGP 撤回 2 类路由时,MAC 地址不会从转发表中删除,因此不会出现数据丢失。 转发表 MAC 表由 VPLS 和 EVPN 共享。某些属性,例如 |
|
IRB |
IRB 中无需更改。 在超级 PE 设备上,EVPN 填充通过 MAC+IP 从 EVPN 对等方获知的 /32 主机路由,这些路由位于第 3 层虚拟路由和转发中,而使用子网路由的 VPLS IRB 转发适用于仍在运行 VPLS 的站点。 |
|
层次结构 VPLS |
在采用中心辐射型 PE 设备的 H-VPLS 网络中,当中心 PE 设备迁移到 EVPN 时,需要将通过接入标签交换接口或虚拟隧道接口获知的本地 MAC 地址播发至 BGP,以便其他仅支持 EVPN 的 PE 设备或超级 PE 设备可以访问它们。 将 H-VPLS 网络迁移到 EVPN 时,请考虑以下事项:
|
|
ESI 配置 |
以太网段标识符 (ESI) 配置在物理接口或端口级别。 |