配置 VPLS 简介
虚拟专用 LAN 服务 (VPLS) 允许您在虚拟专用网络 (VPN) 中的一组站点之间提供点对多点 LAN。
要配置 VPLS 功能,必须在提供商边缘 (PE) 路由器上启用 VPLS 支持。您还必须配置 PE 路由器,以便将路由信息分发到 VPLS 中的其他 PE 路由器。此外,还必须配置 PE 路由器与客户边缘 (客户边缘) 路由器之间的电路。
在 VPLS 文档中,PE 路由器等术语“路由器”用于指代提供路由功能的任何设备。
您可以通过在 Junos OS 上配置实例类型为 的 vpls 路由实例,或使用 Junos Evolve OS 的 virtual-switch实例类型配置路由实例来支持 VPLS 流量。路由实例在服务提供商的网络中以透明的方式传输以太网流量。与其他路由实例一样,属于 VPLS 路由实例的所有逻辑接口都列在该实例下。
vlan-id none该语句,则还必须在层次结构中
[edit routing-instances routing-instance protocol vpls]包含该
service-type single语句。
除了 VPLS 路由实例配置之外,还必须在 PE 路由器之间配置 MPLS 标签交换路径 (LSP)、PE 路由器之间的 IBGP 会话以及在 PE 和提供商 (P) 路由器上配置内部网关协议 (IGP)。
VPLS 的许多配置过程与第 2 层 VPN 和第 3 层 VPN 的过程相同。
了解 VPLS 接口
接口名称:
对于 PE 路由器上的每个 VPLS 路由实例,您可以指定用于在 PE 和客户边缘设备之间传输 VPLS 流量的接口。
指定接口名称的物理部分和逻辑部分,格式如下: physical.logical。例如,在 ge-1/0/1.2 中,ge-1/0/1 是接口名称的物理部分,2 是逻辑部分。如果未指定接口名称的逻辑部分,则默认设置为 0。
一个逻辑接口只能与一个路由实例相关联。
封装类型:
VPLS 接口的链路层封装类型可以是以下类型之一:
-
ethernet-vpls:在启用了 VPLS 且必须接受携带标准标记协议标识符 (TPID) 值的数据包的以太网接口上使用以太网 VPLS 封装。extended-vlan-vpls:在启用了 VLAN 802.1Q 标记和 VPLS 且必须接受承载 TPID 0x8100、0x9100 和 0x9901 的数据包的以太网接口上,使用扩展虚拟LAN (VLAN) VPLS 封装。从 1 到 1023 的所有 VLAN ID 都对快速以太网接口上的 VPLS VLAN 有效,从 1 到 4094 的所有 VLAN ID 对千兆以太网接口上的 VPLS VLAN 有效。vlan-vpls:在启用了 VLAN 标记和 VPLS 的以太网接口上使用 VLAN VPLS 封装。使用 VLAN VPLS 封装的接口仅接受携带标准 TPID 值的数据包。您必须在物理接口和逻辑接口上配置此封装类型。VLAN ID 1 到 511 保留给普通以太网 VLAN,ID 512 到 1023 保留给快速以太网接口上的 VPLS VLAN,ID 512 到 4094 保留给千兆以太网接口上的 VPLS VLAN。 flexible-ethernet-services:如果要配置多个按单元的以太网封装,请使用灵活的以太网服务封装。此封装类型允许您在单个物理端口上配置路由、TCC、CCC 和 VPLS 封装的任意组合。聚合以太网捆绑包不能使用此封装类型。对于灵活的以太网服务封装,1 到 511 的 VLAN ID 不再保留给普通 VLAN。
VPLS CLI 配置层次结构 Junos OS 与 Junos OS Evolved 之间的差异
在运行在 Junos OS 或 Junos OS 演化版上的设备上配置 Junos OS 时,请注意 CLI 层次结构差异。 表 1 说明了在 Junos OS 和 Junos OS 演化版上运行的设备上的 VPLS CLI层次结构配置差异。
要了解在Junos OS上运行的设备,请参阅 https://www.juniper.net/documentation/product/us/en/junos-os/#cat=by_product。
要了解在 Junos OS Evolved 上运行的设备,请参阅 https://www.juniper.net/documentation/product/us/en/junos-os-evolved/#cat=hardware_documentation。
| 任务 | Junos OS | Junos OS 演化版 |
|---|---|---|
| 启用 VPLS 路由实例 | user@host# set routing-instances routing-instance-name instance-type vpls user@host# set routing-instances routing-instance-name protocols vpls neighbor IP-address user@host# set routing-instances routing-instance-name protocols vpls no-tunnel-services user@host# set routing-instances routing-instance-name protocols vpls vpls-id number user@host# set routing-instances routing-instance-name vlan-id number user@host# set routing-instances routing-instance-name interface interface-name |
user@host# set routing-instances routing-instance-name instance-type virtual-switch user@host# set routing-instances routing-instance-name protocols vpls neighbor IP-address user@host# set routing-instances routing-instance-name protocols vpls no-tunnel-services user@host# set routing-instances routing-instance-name protocols vpls vpls-id number user@host# set routing-instances routing-instance-name vlans vlan-name vlan-id number user@host# set routing-instances routing-instance-name vlans vlan-name interface interface-name
注意:
您需要强制配置配置, |
配置不带 VLAN ID、或将 VLAN ID 配置 none为 ,或将 VLAN ID 配置为 all |
user@host# set routing-instances routing-instance-name |
|
| 在接口上配置 VPLS 系列 | user@host# set interfaces interface-name unit number family vpls |
运行 Junos OS Evolved 的设备不支持在接口上配置 的 |
| 在接口上配置 VPLS 封装 | user@host# set interfaces interface-name flexible-vlan-tagging user@host# set interfaces interface-name speed 100g user@host# set interfaces interface-name encapsulation flexible-ethernet-services user@host# set interfaces interface-name unit number encapsulation vlan-vpls user@host# set interfaces interface-name unit number vlan-id number |
user@host# set interfaces interface-name flexible-vlan-tagging user@host# set interfaces interface-name speed 100g user@host# set interfaces interface-name encapsulation flexible-ethernet-services user@host# set interfaces interface-name unit number encapsulation vlan-vpls user@host# set interfaces interface-name unit number vlan-id number |
| 使用网桥域在接口上配置 VPLS 封装 | user@host# set interfaces et-0/0/6 flexible-vlan-tagging user@host# set interfaces et-0/0/6 encapsulation flexible-ethernet-services user@host# set interfaces et-0/0/6 unit 0 encapsulation vlan-bridge user@host# set interfaces et-0/0/6 unit 0 vlan-id 1 |
user@host# set interfaces et-0/0/6 flexible-vlan-tagging user@host# set interfaces et-0/0/6 encapsulation flexible-ethernet-services user@host# set interfaces et-0/0/6 unit 0 encapsulation vlan-bridge user@host# set interfaces et-0/0/6 unit 0 vlan-id 1 |
| 在 VPLS 上配置 IRB | user@host# set routing-instances routing-instance-name instance-type vpls user@host# set routing-instances routing-instance-name protocols vpls neighbor ip-address user@host# set routing-instances routing-instance-name protocols vpls no-tunnel-services user@host# set routing-instances routing-instance-name protocols vpls vpls-id number user@host# set routing-instances routing-instance-name vlan-id number user@host# set routing-instances routing-instance-name interface interface-name user@host# set routing-instances routing-instance-name routing-interface interface-name user@host# set routing-instances routing-instance-name route-distinguisher distinguisher user@host# set routing-instances routing-instance-name vrf-target target; |
user@host# set routing-instances routing-instance-name instance-type virtual-switch user@host# set routing-instances routing-instance-name protocols vpls neighbor ip-address user@host# set routing-instances routing-instance-name protocols vpls no-tunnel-services user@host# set routing-instances routing-instance-name protocols vpls control-word user@host# set routing-instances routing-instance-name protocols vpls vpls-id number user@host# set routing-instances routing-instance-name vlans vlan-name vlan-id number user@host# set routing-instances routing-instance-name vlans vlan-name interface interface-name user@host# set routing-instances routing-instance-name l3-interface interface-name |
Junos OS 上的示例 VPLS 配置
以下是 Junos OS 上的 VPLS 配置示例:
配置
[edit]user@host# set interfaces xe-0/0/2 flexible-vlan-tagging user@host# set interfaces xe-0/0/2 speed 40g user@host# set interfaces xe-0/0/2 encapsulation flexible-ethernet-services user@host# set interfaces xe-0/0/2 unit 108 encapsulation vlan-vpls user@host# set interfaces xe-0/0/2 unit 108 vlan-id 108 user@host# set interfaces xe-0/0/2 unit 108 family vpls user@host# set routing-instances VPLS instance-type vpls user@host# set routing-instances VPLS interface xe-0/0/2.108 user@host# set routing-instances VPLS protocols vpls interface xe-0/0/2.108 user@host# set routing-instances VPLS protocols vpls neighbor 192.168.1.3 user@host# set routing-instances VPLS protocols vpls no-tunnel-services user@host# set routing-instances VPLS protocols vpls vpls-id 1001
结果
user@host> show configuration interfaces xe-0/0/2
flexible-vlan-tagging;
speed 40g;
encapsulation flexible-ethernet-services;
}
unit 108 {
encapsulation vlan-vpls;
vlan-id 108;
family vpls;
}
user@host> show configuration routing-instances
VPLS {
protocols {
vpls {
interface xe-0/0/2.108;
neighbor 192.168.1.3;
no-tunnel-services;
vpls-id 1001;
}
}
instance-type vpls;
interface xe-0/0/2.108;
}
验证
确认配置工作正常。
运行命令验证 show vpls connections VPLS 连接状态。
user@host> show vpls connections Layer-2 VPN connections:
Legend for interface status
Up -- operational
Dn -- down
Instance: VPLS
VPLS-id: 1001
Neighbor Type St Time last up # Up trans
192.168.1.3(vpls-id 1001) rmt Up Jun 12 12:50:07 2023 1
Remote PE: 192.168.1.3, Negotiated control-word: No
Incoming label: 259, Outgoing label: 22
Negotiated PW status TLV: No
Local interface: lsi.1049600, Status: Up, Encapsulation: ETHERNET
Description: Intf - vpls VPLS neighbor 192.168.1.3 vpls-id 1001
Flow Label Transmit: No, Flow Label Receive: No
在此输出中,两个 PE 路由器之间的 VPLS 连接状态为正常。
通过运行 show vpls mac-table 命令验证在本地 PE 和远程 PE 上获知的 MAC 地址。
user@host> show vpls mac-table
MAC flags (S -static MAC, D -dynamic MAC, L -locally learned, C -Control MAC
O -OVSDB MAC, SE -Statistics enabled, NM -Non configured MAC, R -Remote PE MAC, P -Pinned MAC)
Routing instance : VPLS
Bridging domain : __VPLS__, VLAN : NA
MAC MAC Logical NH MAC active
address flags interface Index property source
00:00:00:42:98:47 D lsi.1049346
00:00:00:42:98:4a D xe-0/0/2.108
在此输出中,您可以看到 MAC 地址 (00:00:00:42:98:47) 是从 VLAN ID 为 108 的本地 PE 接口 (et-0/0/4) 获知的,而 MAC 地址 (00:00:00:42:98:4a) 是从 VLAN ID 为 108 的远程 PE 接口 (lsi.1048832) 获知的。
Junos OS Evolved 上的 VPLS 配置示例
以下是 Junos OS 演化版上的 VPLS 配置示例:
配置
[edit] user@host# set interfaces et-0/0/4 flexible-vlan-tagging user@host# set interfaces et-0/0/4 speed 40g user@host# set interfaces et-0/0/4 encapsulation flexible-ethernet-services user@host# set interfaces et-0/0/4 unit 108 encapsulation vlan-bridge user@host# set interfaces et-0/0/4 unit 108 vlan-id 108 user@host# set routing-instances VPLS instance-type virtual-switch user@host# set routing-instances VPLS protocols vpls neighbor 192.168.1.3 user@host# set routing-instances VPLS protocols vpls no-tunnel-services user@host# set routing-instances VPLS protocols vpls vpls-id 1001 user@host# set routing-instances VPLS vlans v108 vlan-id 108 user@host# set routing-instances VPLS vlans v108 interface et-0/0/4.108
结果
user@host> show configuration interfaces et-0/0/4
flexible-vlan-tagging;
speed 40g;
encapsulation flexible-ethernet-services;
unit 108 {
encapsulation vlan-bridge;
vlan-id 108;
}
user@host> show configuration routing-instances
VPLS {
instance-type virtual-switch;
protocols {
vpls {
neighbor 192.168.1.3;
no-tunnel-services;
vpls-id 1001;
}
}
vlans {
V108 {
vlan-id 108;
interface et-0/0/4.108;
}
}
}
验证
确认配置工作正常。
运行命令验证 show vpls connections VPLS 连接状态。
user@host> show vpls connections
Layer-2 VPN connections:
Legend for interface status
Up -- operational
Dn -- down
Instance: VPLS
VPLS-id: 1001
Neighbor Type St Time last up # Up trans
192.168.1.3(vpls-id 1001) rmt Up Jun 12 12:50:07 2023 1
Remote PE: 192.168.1.3, Negotiated control-word: No
Incoming label: 22, Outgoing label: 259
Negotiated PW status TLV: No
Local interface: lsi.1048576, Status: Up, Encapsulation: ETHERNET
Description: Intf - vpls VPLS neighbor 192.168.1.3 vpls-id 1001
Flow Label Transmit: No, Flow Label Receive: No
在此输出中,两个 PE 路由器之间的 VPLS 连接状态为正常。
通过运行 show ethernet-switching table instance VPLS 命令验证在本地 PE 和远程 PE 上获知的 MAC 地址。
user@host> show ethernet-switching table instance VPLS
MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC
SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC
GBP - group based policy)
Ethernet switching table : 2 entries, 2 learned
Routing instance : VPLS
Vlan MAC MAC Age GBP Logical NH RTR
name address flags Tag interface Index ID
V108 00:00:00:42:98:47 D - et-0/0/4.108 0 0
V108 00:00:00:42:98:4a D - lsi.1048832 0 0
在此输出中,您可以看到 MAC 地址 (00:00:00:42:98:47) 是从 VLAN ID 为 108 的本地 PE 接口 (et-0/0/4) 获知的,而 MAC 地址 (00:00:00:42:98:4a) 是从 VLAN ID 为 108 的远程 PE 接口 (lsi.1048832) 获知的。
特定于平台的 VPLS 行为
使用 功能浏览器 确认对 VPLS 的平台和版本支持
| 平台 |
差异 |
|---|---|
| ACX 7000 系列 |
ACX7000 系列路由器不支持该 |
| ACX 7000 系列 |
ACX7000 系列路由器支持单个虚拟交换机路由实例中的单个网桥域。 |
| PTX10002-36QDD |
PTX10002-36QDD 路由器在单个虚拟交换机路由实例中支持多个网桥域。 |