从 BGP VPLS 迁移到 EVPN 概述
对于同时使用 BGP VPLS 和 EVPN 网络的服务提供商而言,有必要将这些网络互连起来。在 Junos OS 18.1 版之前,VPLS 和 EVPN 路由实例互连点上的逻辑隧道接口可用于此目的。在这种情况下,每个网络中的 PE 设备都不知道另一个技术网络中的 PE 设备。从 Junos OS 18.1 版开始,引入了一个解决方案,用于为每个 VPN 路由实例逐个站点实现从 BGP VPLS 到 EVPN 的分阶段迁移。在此解决方案中,为同一 VPN 路由实例和单宿主分段运行 EVPN 和 VPLS 的 PE 设备可以共存。该解决方案支持用于 EVPN PE 的多宿主网络和多宿主设备的单主动冗余。使用单活动冗余时,只要 EVPN PE 采用单活动冗余,参与的 VPN 实例就可以跨越 EVPN PE 和 VPLS PE。
对于从 BGP VPLS 进行迁移,当家庭 EVPN 已启用以携带 EVPN NLRI 时,您应该会有一些流量丢失。将路由实例迁移到 EVPN 时,损失应降至最低。
以下章节介绍了从 BGP VPLS 到 EVPN 的迁移:
技术概述和优势
VPLS 是基于以太网的点对多点第 2 层 VPN。此技术允许您通过 MPLS 主干网将地理位置分散的数据中心 LAN 相互连接,同时保持第 2 层连接。VPLS 标准中定义的高可用性功能(如 LER 双宿主)和使用 BGP 信令的拓扑自动发现功能使 VPLS 具有可扩展性且易于部署。由于 VPLS 使用 MPLS 作为其核心,因此它可以在 MPLS 网络中提供低延迟变化和受统计约束的低收敛时间。
另一方面,EVPN 是第 2 层和第 3 层 VPN 组合解决方案,比当前技术更具可扩展性、弹性和效率。它为服务提供商和企业提供了多项优势,包括更高的网络效率、可靠性、可扩展性、虚拟机 (VM) 移动性和策略控制。
尽管 VPLS 是一种广泛部署的第 2 层 VPN 技术,但鉴于 EVPN 的扩展优势和部署简便性,服务提供商网络还是迁移到了 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 设备移除退出的 PE 设备,作为与故障链路关联的每个 MAC 地址的下一跃点(批量撤销)。
BGP VPLS 到 EVPN 迁移
部分服务提供商希望保留其在 VPLS 中的投资。这就需要将旧的 VPLS 网络连接到运行 EVPN 的新网络。为此,使用了 VPLS 和 EVPN 路由实例互连点上的逻辑隧道接口。但是,所有其他 PE 设备要么属于 VPLS 网络,要么属于 EVPN 网络,并且不知道其他技术。
从 Junos OS 18.1 版开始,EVPN 可以分阶段引入到现有的 BGP VPLS 网络中,对 VPLS 服务的影响尽可能小。在 BGP VPLS PE 设备上,某些客户可以迁移到 EVPN,而其他客户则继续使用 VPLS 伪线。其他 PE 设备可能完全是 VPLS,并将其他 PE 上的客户切换到 EVPN。
从 BGP VPLS 无缝迁移到 EVPN 解决方案支持以下功能:
允许针对每个 VPN 实例逐个站点分阶段迁移到 EVPN。例如,要在 EVPN PE 设备上配置新的 EVPN 站点。
允许在同一 VPN 实例和单宿主分段中同时运行 EVPN 和 VPLS 的 PE 设备共存。
在 BGP VPLS 到 EVPN 的迁移中,部分客户已迁移到 EVPN,而其他客户则使用 VPLS 提供服务的 PE 设备称为超级 PE。当超级 PE 设备在路由实例中发现其他超级 PE 设备时,它们会使用 EVPN 转发与其他超级 PE 设备通信,并将 VPLS 伪线与运行 VPLS 的 PE 设备进行通信。没有 EVPN 感知且仅为所有客户运行 VPLS 的 PE 设备称为 VPLS PE。
连接到超级 PE 的 CE 设备既可以访问连接到仅支持 EVPN 的 PE 设备的 CE 设备,也可以访问连接到仅支持 VPLS 的 PE 设备的 CE 设备。连接到仅支持 EVPN 的 PE 设备的 CE 设备无法访问连接到仅支持 VPLS 的 PE 设备的 CE 设备。
因为支持从 BGP VPLS 到 EVPN 的迁移是按每个路由实例进行的,并且如果路由实例在 PE 设备上为多个客户提供服务,则将所有客户一起迁移。EVPN 负责在升级到 EVPN 的 PE 设备之间设置数据转发,而 VPLS 则继续设置向运行 VPLS 的 PE 设备的数据转发。
BGP VPLS 到 EVPN 的迁移不支持以下功能:
从 FEC129 VPLS 迁移到 EVPN。
将 VPLS 虚拟交换机迁移到 EVPN 虚拟交换机。
将 VPLS 路由实例迁移到 EVPN 虚拟交换机。
将 VPLS 路由实例或 PBB-VPLS 迁移到 PBB-EVPN。
从 EVPN 无缝迁移回 VPLS。
增强 EVPN 以支持 VPLS 支持的工具、语句和命令集。
由于 VPLS 不支持全活动多宿主功能,因此在 EVPN 和 VPLS PE 设备之间跨越全活动不起作用。
通过超级 PE 设备将仅支持 EVPN 的 PE 设备与仅支持 VPLS 的 PE 设备连接。
IPv6、逻辑系统、多机箱支持和 SNMP(因为 EVPN 当前不支持它们)。
EVPN 迁移配置
要执行 BGP VPLS 到 EVPN 的迁移,请执行以下操作:
在备份路由引擎上,加载 Junos OS 18.1R1 版。
执行 ISSU 以获取主要角色。确保 VPLS ISSU 不会对 VPLS 转发产生任何影响。
确定需要迁移到 EVPN 的路由实例(客户)。
通过在
[edit protocols bgp group-session]
层次结构级别上添加family evpn
和signaling
,在 BGP 中启用家族 EVPN 信令。注意:添加到
family evpn
BGP 协议将导致 CE IFL 被删除并重新创建,因此在此步骤之后,您应该会丢失一些流量。protocols { bgp { group session { family evpn { signaling; } } } }
使用反映所配置 VPLS 优先级的首选优先级值配置 ESI 接口。
注意:创建 ESI 接口将导致 CE IFL 被删除并重新创建,因此在此步骤之后应该会有一些流量丢失。
[edit interfaces interface-name] esi { 00:01:02:03:04:05:06:00:00:01; single-active; df-election-type { preference { value match vpls preference; } } }
在单个路由实例中启用 EVPN。
在现有 BGP VPLS 配置中,
[edit routing-instances routing-intance-name]
在层次结构级别将路由实例类型从vpls
更改为evpn
。[edit routing-instances routing-instance-name] instance-type evpn;
在
[edit routing-instances routing-intance-name protocols]
层次结构级别包括evpn
和vpls
语句,以便支持 EVPN 和 VPLS 命令。[edit routing-instances routing-instance-name] protocols { evpn vpls }
将 VPLS 网络中的所有节点迁移到 EVPN 后,您可以选择性地停用 VPLS 协议。这将允许 EVPN 干净利落地设置其单宿主和多宿主状态,但可能会导致流量丢失。要停用 VPLS 协议,请删除
protocols vpls
hierarchy 下的[edit routing-instances routing-instance-name]
语句。[edit routing-instances routing-instance-name] user@host# delete protocols vpls
完成 EVPN 迁移配置后,路由协议进程和第 2 层地址学习进程开始构建 EVPN 状态,以反映接口、桥接域、对等方和路由。本地学习的 MAC 地址由 instance.vpls.0 中的第 2 层地址学习进程与路由协议进程同步。当本地 MAC 在 instance.vpls.0 中老化时,路由协议进程将由第 2 层地址学习过程通知。
当学习 EVPN 对等方时,路由协议进程会向第 2 层地址学习进程发送一条新消息,以从 VE 网格组中移除对等方的标签交换接口或虚拟隧道逻辑接口,并在其上禁用 MAC 学习。然后,EVPN IM 下一跃点被添加到 VE 网格组中。保留路由协议过程中的 EVPN 行为,即通过 BGP 学习 MAC 地址并向 MPLS 下一跃点的第 2 层地址学习过程提供通知。
VPLS 语句和命令将继续适用于 PE 设备之间的 VPLS 伪线以及通过这些设备获知的 MAC 地址。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
将 EVPN 迁移恢复到 VPLS 后,会发生以下情况:
EVPN 状态信息将被删除。
触发了 EVPN 控制平面路由的撤回。
路由协议进程使用标签交换接口或路由实例和对等方的虚拟隧道逻辑接口向第 2 层地址学习进程发送一条新消息。
标签交换接口或虚拟隧道接口会将新消息添加到泛洪组,并启用 MAC 学习。
出口 IM 下一跃点将被路由协议进程删除,从而提示第 2 层地址学习进程将其从泛洪组中移除。
通过标签交换接口或虚拟隧道逻辑接口再次学习远程 MAC 地址。
BGP VPLS 到 EVPN 的迁移和其他功能
表 1 介绍了部分相关功能的功能,如多宿主以及具有 BGP VPLS 到 EVPN 迁移的集成路由和桥接 (IRB)。
特征 |
EVPN 迁移中支持的功能 |
---|---|
MAC 移动 |
仅 VPLS PE 设备和超级 PE 设备之间支持 MAC 移动。 当 MAC 地址从仅支持 VPLS 的 PE 移动到超级 PE 时,会通过 BGP 进行学习,并且路由协议进程会通知第 2 层地址学习过程,该过程将在 foo.vpls.0 路由表中更新 EVPN 下一跃点。 当MAC 地址从超级 PE 移动到仅支持 VPLS 的 PE 时,系统会在标签交换接口或虚拟隧道接口上的数据包转发引擎中学习该 PE。第 3 层地址学习过程会将其更新为 VPLS 或标签交换接口下一跃点。 当 EVPN BGP 撤回 2 类路由时,MAC 地址不会从转转发表中删除,因此不会丢失数据。 转发 MAC 表由 VPLS 和 EVPN 共享。可以在 EVPN 和 VPLS 下配置某些属性,例如 |
IRB |
无需对 IRB 进行任何更改。 在超级 PE 上,EVPN 会填充通过 MAC+IP 类型 2 路由从第 3 层虚拟路由和转发的 EVPN 对等方获知的 /32 主机路由,而使用子网路由的 VPLS IRB 转发适用于仍在运行 VPLS 的站点。 |
分层 VPLS |
在包含中心辐射型 PE 设备的 H-VPLS 网络中,当中心 PE 迁移到 EVPN 时,需要将通过接入标签交换接口或虚拟隧道接口学习的本地 MAC 地址通告到 BGP 中,以便其他仅支持 EVPN 的 PE 设备或超级 PE 设备可以访问它们。 将 H-VPLS 网络迁移到 EVPN 时,请考虑以下事项:
|
ESI 配置 |
ESI 在物理接口或端口级别配置。 |