本页内容
新一代 VPLS 点对多点转发概述
VPLS 是一种第 2 层解决方案,用于通过多协议标签交换 (MPLS) 核心高效发送组播流量。
VPLS 跨 MPLS 网络云模拟 LAN 的广播域。VPLS 的传统 MPLS 实施要求所有参与的入口提供商边缘 (PE) 路由器为每个广播或组播数据包制作单独副本,以便发送到属于同一扩展 LAN 的 VPLS 站点的所有其他 PE 路由器。在大型虚拟专用网 (VPN) 中,每个入口路由器及其连接的面向核心的链路的复制开销可能很大。
瞻博网络有几项重要的 VPLS 增强功能,可以解决复制开销问题:
点对多点 LSP 支持可实现组播流量的高效分配,例如基于 IP 的电视 (IPTV)。
多宿主支持将 BGP 的路径选择功能与 VPLS 集成在一起,使客户边缘 (客户边缘) 以太网交换机能够拥有跨网络的备用路径。
本文档介绍如何在 MPLS 核心中使用点对多点 LSP 作为入口复制的替代方法。点对多点 LSP 使入口路由器仅将每个数据包的一个副本发送到 MPLS 云中。每个 PE 路由器都有一个点对多点树,以便可以高效地将流量发送到所有 VPN 站点。此过程需要尽可能少的数据包复制,并在网络中的最佳点进行复制。
这种方法的好处是:
带宽节约
提高 PE 路由器效率
改进了泛洪流量的流量工程
手动控制或多级自动作
至简组播优化,非常适合IPTV或网络接入批发
互联网工程任务组 (IETF) 支持两种标准化的 VPLS 实施:RFC 4761:使用 BGP 进行自动发现和信令的虚拟专用 LAN 服务 (VPLS) 和 RFC 4762:使用 LDP 信令的虚拟专用 LAN 服务 (VPLS)。
瞻博网络已基于这两种 RFC 实施了 VPLS 解决方案。基于 BGP 的 VPLS 是更出色的解决方案,但已部署此替代方案的服务提供商支持基于 LDP 的 VPLS。
有关 LDP-BGP VPLS 互连的详细技术概述,请参阅 LDP-BGP VPLS 互连 https://www.juniper.net/us/en/local/pdf/whitepapers/2000282-en.pdf。
新一代 VPLS 点对多点转发应用
VPLS 提供多点到多点以太网服务,可以跨越一个或多个城域网区域,并在多个站点之间提供连接,就好像这些站点连接到同一个以太网 LAN 一样。
VPLS 使用 IP 和 MPLS 服务提供商基础架构。从服务提供商的角度来看,使用 IP 和 MPLS 路由协议和程序而非生成树协议 (STP),使用 MPLS 标签而非 VLAN ID,可显著提高 VPLS 服务的可扩展性。
VPLS Protocol Operation
VPLS 在服务提供商网络中传输以太网流量,因此必须在某些方面模仿以太网。配置了VPLS路由实例的PE路由器收到来自客户边缘设备的数据包时,首先判断是否知道VPLS数据包的目的地。如果是,它会将数据包转发到相应的 PE 路由器或客户边缘设备。否则,它会将数据包广播到作为该 VPLS 路由实例成员的所有其他 PE 路由器和客户边缘设备。在这两种情况下,接收数据包的客户边缘设备必须不同于发送数据包的设备。
当PE路由器收到来自其他PE路由器的数据包时,首先判断是否知道VPLS数据包的目的地。如果目标已知,PE 路由器将转发数据包或丢弃数据包,具体取决于目标是本地设备还是远程客户边缘设备。PE 路由器有三个选项(场景):
如果目标是本地客户边缘设备,PE 路由器会将数据包转发给该设备。
如果目标是远程客户边缘设备(连接到另一个 PE 路由器),它将丢弃数据包。
如果无法确定 VPLS 数据包的目的地,PE 路由器会将其泛洪到其连接的客户边缘设备。
VPLS 可以直接连接到以太网交换机。以太网交换机收集的第 2 层信息,例如媒体访问控制 (MAC) 地址和接口端口,都包含在 VPLS 路由实例表中。但是,不是所有 VPLS 接口都是物理交换机端口,而是该路由器允许 VPLS 实例的远程流量通过 MPLS LSP 传输并到达虚拟端口。虚拟端口模拟本地物理端口。流量可以学习、转发或泛洪到虚拟端口,其方式与发送到本地端口的流量几乎相同。
VPLS 路由表填充了物理端口和虚拟端口的 MAC 地址和接口信息。物理端口和虚拟端口之间的一个区别是,在虚拟端口上,路由器捕获用于到达远程站点的传出 MPLS 标签,以及从远程站点接收的 VPLS 流量的传入 MPLS 标签。当您在使用隧道服务 PIC 的路由器上配置 VPLS 时,将在通道服务 PIC 上动态生成虚拟端口。要在运行 Junos OS 的某些路由器上配置 VPLS 路由器,需要通道服务 PIC。
如果路由器安装了增强型 FPC,则可以在没有通道服务 PIC 的情况下配置 VPLS。为此,您可以使用标签交换接口 (LSI) 来提供 VPLS 功能。LSI MPLS 标签用作 VPLS 的内部标签。此标签映射到 VPLS 路由实例。在 PE 路由器上,LSI 标签将被去除,然后映射到逻辑 LSI 接口。然后,使用 LSI 接口将第 2 层以太网帧转发到正确的 VPLS 路由实例。要在没有隧道服务 PIC 的路由器上配置 VPLS,请包含该 no-tunnel-services 语句。
VPLS 中泛洪行为的一个限制是,从远程 PE 路由器收到的流量永远不会转发到其他 PE 路由器。此限制有助于防止核心网络出现环路。这也意味着PE路由器的核心网络必须是全网状的。此外,如果客户边缘以太网交换机与同一 PE 路由器有两个或多个连接,则必须在客户边缘交换机上启用生成树协议 (STP) 以防止环路。
Point-to-Multipoint Implementation
在新一代 VPLS 中,点对多点 LSP 用于将广播、组播和未知单播流量通过 VPLS 核心网络泛洪到所有 PE 路由器。这在 PE 路由器和提供商 (P) 路由器之间的带宽利用率方面更加高效。
如果未使用点对多点 LSP,PE 路由器需要将广播、组播和未知单播数据包的多个副本转发到所有 PE 路由器。如果使用点对多点 LSP,PE 路由器会将每个数据包的一个副本泛洪到 P 路由器,在 P 附近复制该副本出口路由器。
对于新一代 VPLS,PE 路由器之间需要点对点 LSP 和点对多点 LSP。
在 VPLS 中,点对多点 LSP 仅用于传输目标 MAC 地址未知的广播帧、组播帧和单播帧。所有其他帧仍使用点对点 LSP 进行传输。这种结构对于带宽使用来说效率要高得多,尤其是在广播源、组播和未知帧附近。但是,这也会导致网络中的状态更多,因为每个 PE 路由器都是一个点对多点 LSP 的入口,该 LSP 会接触所有其他 PE 路由器,而一个点对点 LSP 会转到其他每个 PE 路由器。
为任何 VPLS 实例启用点对多点 LSP 会开始使用点对多点 LSP 的未知单播、广播和组播流量泛洪。
对于每个 VPLS 实例,PE 路由器会创建一个专用的点对多点 LSP。每当 VPLS 通过 BGP 发现新的邻接方时,就会在点对多点 LSP 实例中为此邻接方添加源到叶子 LSP。
如果 VPLS 实例中有 PE 路由器,则 n 通过 BGP 发现新的邻接方将在网络中创建 n 点对多点 LSP,其中每个 PE 路由器都是树的根,其余的 n-1 PE 路由器都是叶节点(或源到叶子 LSP)。
PE 路由器创建的每个点对多点 LSP 都可以使用 RSVP 流量工程点对多点会话对象进行识别,该对象在播发 VPLS 路由时由 BGP 作为提供商组播服务接口 (PMSI) 隧道属性传递。使用此隧道属性,传入源到叶子 LSP 添加请求消息(RSVP 路径消息)可与正确的 VPLS 实例和发起方 PE 路由器相关联。因此,标签分配的方式是,当流量到达 LSP 时,不仅会在正确的 VPLS 实例上终止,还会识别发起方 PE 路由器,以便可以学习源 MAC 地址。
可以在属于特定 VPLS 实例的任何 PE 路由器上以增量方式启用点对多点 LSP。这意味着,具有此功能的 PE 路由器使用点对多点 LSP 来泛洪流量,而同一 VPLS 实例中的其他 PE 路由器可以使用入口复制来泛洪流量。但是,当在任何 PE 路由器上启用点对多点 LSP 时,请确保属于同一 VPLS 实例的所有 PE 路由器也支持此功能。
对于在 VPLS 实例中终止的点对多点 LSP,倒数第二个跃点弹出 (PHP) 将被禁用。
Limitations of Point-to-Multipoint LSPs
实施点对多点 LSP 时,请记住以下限制:
没有机制只允许组播流量通过点对多点 LSP。
点对多点 LSP 不支持 AS 间流量。仅支持 AS 内部流量。
点对多点 LSP 不支持入口 LSP 的平滑重启。当使用点对多点 LSP 完成泛洪时,这也会影响 VPLS。
不能在多个 VPLS 实例之间共享相同的点对多点 LSP。
启用此功能后,入口 PE 路由器仅使用点对多点 LSP 进行泛洪。该路由器将为属于同一 VPLS 实例的每个 PE 路由器启动创建源到叶子 LSP。此源到叶子 LSP 无法启动的任何 PE 路由器都不会接收来自入口 PE 路由器的任何泛洪流量。
未知单播流量通过点对多点 LSP 泛洪可能会导致数据包重新排序,因为学习完成后,就会使用点对点伪线 LSP 发送单播流量。
静态 LSP 和使用语句配置
label-switched-path-template的 LSP 不能同时配置。使用语句配置
static-lspLSP 时,将静态创建点对多点 LSP,以将所有邻接方包含在 VPLS 实例中。
在任何 PE 路由器上启用点对多点 LSP 功能之前,请确保属于同一 VPLS 实例的所有其他 PE 路由器均已升级到支持该功能的 Junos OS 版本。如果 VPLS 实例中的路由器不支持点对多点 LSP,则可能会丢失在点对多点 LSP 上发送的所有流量。因此,如果 VPLS 实例中存在无法支持此功能的单个路由器,则请勿启用此功能,这是因为该未运行相应的 Junos OS 版本,或者是供应商提供的路由器不支持此功能。
Simultaneous Transit and Egress Router Operation
同时充当 MPLS 中转路由器和 MPLS 出口路由器角色的 PE 路由器可以通过接收一个或两个数据包副本来完成其每个角色来实现这一点。
为了在仅使用数据包的单个副本的同时兼顾这两个角色,某些瞻博网络路由器需要配置了虚拟隧道 (VT) 接口的隧道服务 PIC,并且必须启用终极跳跃弹出。借助虚拟隧道接口和终极跃点弹出,收到的数据包的单个副本将被转发到 PE 路由器之外以充当中转路由器角色,并由虚拟隧道接口在内部使用以充当出口路由器角色。
如果使用标签交换接口 (LSI) 逻辑接口 ,则必须在点对多点 LSP 上接收每个数据包的两个副本,一个用于完成中转路由器角色,另一个用于完成出口路由器角色。
实施
VPLS 的某些实施使用入口复制。入口复制简单但效率低下。它在一条链路上发送同一数据包的多个副本,尤其是 PE-P 链路。当广播和组播流量较大时,这会导致带宽浪费。
如 图 1 中的示例网络所示,入口 PE 路由器为每个 VPLS 实例制作每个广播、组播和泛洪数据包的三个副本。
图 2 显示了点对多点 LSP 如何用于组播。
在使用点对多点 LSP 的 VPLS 中,入口 PE 路由器将组播数据包的单个副本发送到路由器 P1。路由器 P1 为此点对多点 LSP 制作两个副本。其他每个 P 路由器也会制作数据包的多个副本。这使复制更接近端点,从而显著提高了网络带宽利用率。