VPLS 标签块操作
虚拟专用 LAN 服务 (VPLS) 是一种第 2 层 (L2) 服务,可模拟广域网 (WAN) 上的局域网 (LAN)。VPLS 标签在边界网关协议 (BGP) 控制平面中定义和交换。在 Junos OS 实施中,标签块被分配并在 VPLS 控制平面中使用,以实现两个主要功能:自动发现和信令。
自动发现 — 一种使用 BGP 更新消息自动识别特定 VPLS 域中各提供商边缘 (PE) 路由器的方法。
信令 — VPLS 域中的每对 PE 路由器相互发送和接收 VPN 标签。这些标签用于在路由器之间建立和拆除伪线。信令也用于传输伪线的某些特性。
在 VPLS 文档中,PE 路由器等术语用于指提供路由功能的任何设备。
PE 路由器使用 BGP 扩展社区来识别其 VPLS 的成员。一旦 PE 路由器发现其成员,它就可以通过交换和撤回标签以及传输伪线的某些特性来建立和撕毁成员之间的伪线。
PE 路由器使用不同的 BGP 更新消息向所有远程 PE 路由器发送通用更新消息,从而减少了控制平面负载。这是通过使用 VPLS 标签块来实现的。
网络层可达性信息的元素
VPLS BGP 网络层可达性信息 (NLRI) 用于交换 VPLS 成员资格和参数。VPLS BGP NLRI 的元素在 表 1 中定义。
元素 |
缩写 |
描述 |
默认大小(八位位位组) |
---|---|---|---|
长度 |
NLRI 大小的总长度(以字节为单位)。 |
2 |
|
路由识别器 |
Rd |
在 PE 上配置的每个路由实例的唯一标识符。 |
8 |
VPLS 边缘 ID |
VE ID |
用于标识边缘站点的唯一编号。 |
2 |
VE 块补偿 |
VBO |
用于识别标签块的值,而选择的标签值用于为远程站点设置伪线。 |
2 |
VE 块大小 |
VBS |
指示对等方在单个块中可以拥有的伪线数量。 |
2 |
标签库 |
磅 |
播发的标签块中标签的开始值。 |
3 |
NLRI 元素的要求
Junos OS 需要为 PE 路由器上配置的每个路由实例提供唯一的路由识别符 (RD)。PE 路由器可能跨 VPLS(或 VPN) 域使用相同的 RD,也可能使用不同的 RD。使用不同的 RD 有助于识别 VPLS NLRI 的发起方。
VPLS 边缘 (VE) ID 可以是唯一的 VE ID、站点 ID 或客户边缘 (CE) ID。VE ID 由 VPLS PE 路由器用于索引到标签块中,用于派生传输 VPLS 流量所需的传输和接收 VPN 标签。VE ID 标识特定站点,因此它在 VPLS 域中需要唯一,但多宿主等场景除外。
所有 PE 路由器之间均具有全网状连接,以交换标签和设置伪线。VE 块大小 (VBS) 是一个可配置值,表示覆盖远程对等方的所有伪线所需的标签块数。
默认情况下,单个标签块包含 8 个标签(1 个八位位位组)。Junos OS 中的默认 VBS 为 2 个块(2 个八位位组),总共 16 个标签。
标签块中的使用方式
每台 PE 路由器都会将标签块中的标签映射到 VPLS 域中的站点。对带有块偏移的标签块进行宣传的 PE 路由器会指示哪些站点可以使用标签到达该标签。当 PE 路由器准备好将其成员资格播发至 VPLS 域时,它会分配标签块并播发 VPLS NLRI。通过这种方式,同一 VPLS 域中的其他 PE 路由器可以了解 VPLS 的存在,并在需要时为 VPLS 设置伪线。为此播发的 VPLS NLRI 称为 默认 VPLS NLRI。默认 VPLS NLRI 中的标签 块称为默认标签块。
标签块组合
一个标签块(一组标签)用于访问给定的站点 ID。默认情况下,单个标签块包含 8 个标签(1 个八位位位组)。在 Junos OS 中,VBS 默认为 2 个八位位组。
播发的标签块定义为标签基础 (LB) 和 VE 块大小 (VBS)。这是一组连续的标签 (LB, LB+1,...LB+VBS-1)。例如,当路由器 PE-A 发送 VPLS 更新时,它会将相同的标签块信息发送到所有其他 PE 路由器。接收 LB 通告的每台 PE 路由器都会向标签库添加自己的站点 ID,从而推断用于路由器 PE-A 的标签。
通过这种方式,每个接收 PE 都会为该 VPLS 获得一个唯一的 PE-A 标签。这种简单的方法通过使用 VE 块偏移 (VBO) 得到增强。
标签块定义为:<标签基础 (LB)、VE 块偏移 (VBO)、VE 块大小 (VBS)>是集 {LB+VBO,LB+VBO+1,...,LB+VBO+VBS-1}。
Junos OS 中的标签块
Junos OS 实施包含多个标签块,每个标签块都有不同的标签库,而不是单个大型标签块来覆盖 VPLS 中的所有 VE 标识。这使得标签块管理更加轻松,并且允许路由器 PE-A 将加入 VPLS 的 PE 路由器与路由器 PE-A 已经播发的标签块集未涵盖的站点 ID 进行集成。
VPLS 标签块结构
本节说明如何识别标签块。
具有站点 ID V、VE 块偏移 VBO、VE 块大小 VBS 和标签基础 LB 的 VPLS BGP NLRI 将以下内容传达给对等方:
V 的标签块:从 LB 到 (LB + VBS -1) 的标签。
为 V 设置的远程 VE:从 VBO 到 (VBO + VBS -1)。
播发的标签块是一组用于到达给定站点 ID 的标签。如果有多个标签块,则远程 VE 集有助于确定要使用哪个标签块。 图 1 中的示例展示了标签块。有两个块,每个块有八个标签。在此示例中,标签值是 64 到 71,80 到 87。
要创建这 16 个标签到 16 个站点的一对一映射,请假设站点编号为 1 到 16,如图所示。站点块指示哪个站点 ID 可以使用标签块中的哪个标签。因此,在第一个块中,站点 ID 1 使用 64,站点 ID 2 使用 65,以此类推。最后,站点 ID 8 使用 71。第 9 个站点 ID 将使用第二个块,而不是第一个块。
这些标签是通过比较 VBO <= 本地站点 ID < (VBO +VBS) 的值来计算的。因此,站点 ID 9 使用 80,站点 ID 10 使用 81,等等。
为了进一步说明标签到站点的一对一映射,假设一个标签块的站点偏移量为 1,标签库为 10。VPLS NLRI 中包含的标签基础偏移和块偏移的组合提供了标签到站点标识的映射。块偏移是可以使用 VPLS NLRI 中播发的标签块的开始站点 ID。
要播发默认 VPLS NLRI,PE 路由器会选择适合其自身站点 ID 的开始块偏移量,以便结束块偏移量为单个标签块的倍数。在 Junos OS 中,单个标签块默认为八个标签。
结束块偏移量是映射到标签块中最后一个标签的最后一个站点 ID。第一个块的最终偏移量为 8,映射到标签 17,第二个块为 16。例如,ID 为 3 的站点会选择块偏移量 1,并播发 8 号标签块以覆盖 ID 为 1 到 8 的站点。ID 为 10 的站点选择块偏移 9,以覆盖 ID 为 9 到 16 的站点。
图 2 所示的 VPLS NLRI 用于站点 ID 18。标签库包含值262145。块偏移值包含值 17。图中显示了哪些站点 ID 与哪些标签对应。
如果配置了站点 ID 17 的 PE 路由器与配置了站点 ID 18 的 PE 路由器在同一 VPLS 域中,它将接收 VPLS NLRI,如图 2 所示。因此,它使用标签262145将流量发送到站点 18。同样,配置了站点 ID 19 的 PE 路由器使用标签262147将流量发送到配置有站点 ID 18 的 PE 路由器。但是,只有配置了站点 ID 17 到 24 的 PE 路由器才能使用显示的标签块来设置伪线。