简介
本文档介绍了基于多协议标签交换 (MPLS) 的 L2 虚拟专用网络 (L2VPN) 伪线。
背景信息
为说明相关行为,文中以 Cisco IOS®、Cisco IOS® XE 为例介绍了伪线信令和数据包分析。
L2VPN 概述
基于 MPLS 和 IP 的第 2 层 (L2) 传输已用于同类接入电路,如以太网到以太网、PPP 到 PPP、高级数据链路控制 (HDLC)等。
L2VPN 采用基于 MPLS 的 L2 服务,以构建可连接 VPN 中最终用户站点的点对点连接拓扑。如果专用网络通过专用租用线路或通过采用 ATM 或帧中继的 L2 虚拟电路进行调配,L2VPN 可为其提供备用方案。使用 L2VPN 调配的服务称为“虚拟专用线路服务”(VPWS)。
- 构建 L2VPN 需用到伪线 (PW) 技术。
- PW 可提供一种通用的中间格式,用于通过分组交换网络 (PSN) 传输多种类型的网络服务。PSN 是一种用于转发分组的网络,包括 IPv4、IPv6、MPLS 和以太网。
- PW 技术既可提供同类传输,亦可提供互通 (IW) 功能。
- AC 上的 PE 路由器接收的帧会经过封装,然后通过 PSW 发送至远程 PE 路由器。
- 出口 PE 路由器可接收来自 PSW 的数据包并删除其封装。
- 出口 PE 可提取帧并将其转发给 AC。

为什么需要使用 L2VPN
- SP 只需拥有一套基础设施,即可同时提供 IP 和传统服务.
- 在不中断现有服务的情况下,将传统 ATM 和帧中继服务迁移至 MPLS/IP 核心.
- 在现有 MPLS/IP 核心中以增量方式(而非从头开始)调配新的 L2VPN 服务。
- 使用融合 IP/MPLS 网络,节省资金和运营成本.
- SP 提供新的点对点或点对多点服务。用户可以拥有自己的路由、QoS 策略、安全机制等。
MPLS L2 VPN 模型
技术选项

1. VPWS 服务
• 点对点•称为“伪线”(PW)
2. VPLS 服务
• 多点
3. EVPN
• xEVPN 系列推出新一代以太网服务解决方案
a.BGP 控制平面,用于以太网段、MAC 分发以及 MPLS 核心上的学习
b.与 IP VPN 相同的原理和操作体验
• 不使用伪线
a.使用 MP2P 隧道进行单播
b.通过入口复制(通过 MP2P 隧道)或 LSM 实现多目标帧传输
• 符合 IETF 标准化的多供应商解决方案
4. PBB-EVPN
·将PBB的扩展工具(例如,MAC-in-MAC)与从EVPN进行的基于BGP的MAC学习相结合
EVPN 和提供商主干网桥 EVPN (PBB-EVPN) 是基于 BGP 控制平面在核心上进行 MAC 分发或学习的下一代 L2VPN 解决方案,旨在满足以下要求:
- 实现单流冗余和负载均衡
- 简化调配和操作
- 实现最优转发
- 快速收敛
- 扩展 MAC 地址
VPWS 伪线参考模型
- PW 是两台 PE 设备之间的连接,可连接两个承载 L2 帧的 AC。
- MPLS 上的任何传输 (AToM) 是思科针对 IP/MPLS 网络实施的 VPWS。
- 接入电路 (AC) 是连接 CE 与 PE 的物理或虚拟电路,可以是 ATM、帧中继、HDLC、PPP 等。
- 用户边缘 (CE) 设备将 PW 视为非共享链路或电路。

第 2 层 VPN 启动器:伪线
构建 L2VPN 需用到伪线 (PW) 技术。
- PW 可提供一种通用的中间格式,用于通过分组交换网络 (PSN) 传输多种类型的网络服务。PSN 是一种用于转发分组的网络,包括 IPv4、IPv6、MPLS 和以太网。
- PW 技术既可提供同类传输,亦可提供互通 (IW) 功能。
- AC 上的 PE 路由器接收的帧会经过封装,然后通过 PSW 发送至远程 PE 路由器。
- 出口 PE 路由器可接收来自伪线的数据包并删除其封装。
- 出口 PE 可提取帧并将其转发给 AC。
AToM 架构
- 在 AToM 网络中,SP 的所有路由器均运行 MPLS,且 PE 路由器的 AC 可通往 CE 路由器。
- 就 AToM 而言,PSN 隧道只不过是两台 PE 路由器之间的标签交换路径 (LSP)。
- 因此,与该 LSP 关联的标签在 AToM 上下文中称为“隧道标签”。
- 首先,LDP 用于在 PE 之间逐跳传递信令。
- 其次,LSP 可以是 MPLS TE 隧道,RSVP 会使用 TE 所需的扩展传递信令。
- 通过此隧道标签可标识承载的用户帧所属的 PSN 隧道。
- 此隧道标签还可通过 MPLS 主干网将帧从本地或入口 PE 传送至远程或出口 PE。
- 要将多条伪线复用到一条 PSN 隧道中,PE 路由器需使用其他标签来标识伪线。
- 此标签因可标识多路复用帧所到的 VC 或 PW 而被称为 VC 或 PW 标签。
基于 MPLS 的 L2 传输

VPWS 流量封装

- 采用三级封装。
- 使用隧道标签在 PE 之间交换数据包.
- VC 标签标识 PW.
- 在 PE 之间传递 VC 标签的信令.
- 可选控制字 (CW) 承载第 2 层控制位并启用排序.

伪线信令
- PE 路由器之间使用 TLDP 会话传递伪线中的信令。
- PE 路由器之间使用 T-LDP 会话,通告与 PSW 关联的 VC 标签。
- 在使用下游主动标签通告模式的标签映射消息中通告此标签。
- 出口 PE 通过 TLDP 会话向 AC 的入口 PE 通告 VC 标签。 #TLDP 通告的 VC 标签
- 出口 PE 路由器通过 LDP 向入口 PE 通告隧道标签。 #LDP 通告的隧道标签
请注意,出口 PE 通告的是标签 3,这表明使用了 PHP。
TLDP 会话所通告的标签映射消息中包含以下 TLV:

伪线标识符 (PW ID) FEC TLV:标识与标签绑定的伪线.
标签TLV < LDP用于通告MPLS标签。
PW ID FEC TLV 包含以下 TLV:
1. C 位:如果设置为 1,则表示存在控制字。
2. PW 类型:表示伪线的类型。
3. 组 ID:标识一组伪线。同一接口上所有 AC 具有相同的组 ID。在一条 LDP 标签撤销消息中,PE 可使用组 ID 撤销与之关联的所有 VC 标签,也即“通配符标签撤销”。
4. PW ID:PW ID 为 VC ID
5. 接口参数:标识通往 CE 路由器的接口 MTU(请求的 VLAN ID)。
如果 MTU 参数不匹配,则 PW 不会传递信令。由于 LSP 为单向路径,因此只有在两台 PE 路由器之间存在相反方向的另一条 LSP 时,才能形成 PW。
PW ID FEC TLV 用于标识和匹配两台 PE 路由器之间的两条反向 LSP。
控制字
控制字具有以下五项功能:
- 填充小型数据包.
- 承载所传输协议第 2 层报头的控制位.
- 保留传输帧的排序.
- 促进 MPLS 主干网中 AToM 数据包达到合适的负载均衡.
- 促进分段和重组
- 填充小型数据包:如果 AToM 数据包不符合最小长度,则系统会填充帧,以符合以太网链路上的最小长度。
由于 MPLS 报头中没有指示帧长度的长度字段,因此控制字会保留用于指示帧长度的长度字段。
如果出口 PE 路由器中所接收 AToM 数据包的控制字长度不为 0,则路由器便会知晓已添加填充内容,并在转发帧之前正确删除填充内容。
- 保留传输帧的排序:通过下列序列号,接收器可以检测到数据包:
发送到 PW 的第一个数据包的序列号为 1,后续每个数据包序列号均会递增 1,直至达到 65535
如果接收器检测到失序序列,则会将其丢弃,不会对无序 AToM 数据包重新排序。
默认情况下,排序处于禁用状态。
- 负载均衡:
路由器负责执行 MPLS 负载检查,并在此基础上决定如何实现流量负载均衡。
路由器会查看第一个半字节,如果第一个半字节为 4,则为 IPV4 数据包。通用控制字以值为 0 的半字节开头,而使用 OAM 数据的控制字则以值 1 开头。
- 促进分段和重组:
可用于指示负载分片
00 = 未分段
01 = 第一个分段
10 = 最后一个分片
11 = 中间分段
转发平面处理

入口 PE 收到来自 CE 的帧时,会通过 MPLS 主干网将帧转发到带有如下两个标签的出口 LSR:
1. 隧道标签(顶部标签)– 告知所有 LSR 和出口 PE 转发帧的目标位置。
2. VC标签(底部标签) — 用于识别出口PE上的出口AC。
在 AToM 网络中,每对 PE 路由器必须在相互之间进行目标 LDP 会话。
TLDP 会话可传递伪线图表的信令,最重要的是,通告 VC 标签。
操作
步骤1.入口PE路由器首先将VC标签推送到帧上。然后推送隧道标签。
步骤2.隧道标签是与标识远程PE的IGP前缀关联的标签。前缀是配置AToM的指定位。
步骤3.然后根据隧道标签逐跳转发MPLS数据包,直到数据包到达出口PE2。
步骤4.当数据包到达出口PE时,隧道标签已删除。这是因为最后一个P路由器和出口PE之间的PHP行为。
步骤5.出口PE然后查找VC标签上的转发信息库条中的VC标签,并将帧转发到正确的AC。
PW 状态信令
在 PE 路由器设置伪线后,PE 可以向远程 PE 传递伪线状态信令。可采用以下两种方法:
- 标签撤销(较旧的方法)
- PE 路由器可以发送标签撤销消息或标签映射释放消息,进而撤销标签映射。
- 如果 AC 关闭,PE 路由器会向远程 PE 发送标签撤销消息,以此传递 PW 状态信令.
- 如果物理接口关闭,则包含组 ID 的标签撤销消息可传递此接口的所有 AC 均已关闭的信令.
- PW 状态 TLV
- 当传递伪线信令时,PW 状态 TLV 使用 LDP 标签映射 TLV。这表明 PE 路由器希望使用第二种方法。
- 如果另一台 PE 路由器不支持 PW 状态 TLV 方法,则两台 PE 路由器均恢复为使用“标签撤销”方法。
- 选中伪线后,LDP 通知消息中含有 PW 状态 TLV。PW 状态 TLV 包含 32 位状态码字段。
AToM 基本配置
步骤1.选择encapsulation类型。
第 2 步:在面向 CE 的接口上启用 specifying the connect 命令。
xocnnect peer-router-id vcid encapsulation mpls
Peer-router-id:远程 PE 路由器的 LDP 路由器 ID。
VCID:分配给 PW 的标识符。
步骤 3:在两台 PE 路由器中配置 xconnect 后,两者之间就会建立目标 LDP 会话。
伪线数据包分析
发起从入口 PE 到出口 PE 的伪线 ping。
通过点对点伪线发送 MPLS 回应请求和应答数据包。
拓扑

从 PE1 ping 到 PE2:
R1#ping mpls pseudowire 10.6.6.6 100
Sending 5, 100-byte MPLS Echos to 10.6.6.6,
timeout is 2 seconds, send interval is 0 msec:
Type escape sequence to abort.
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 48/61/80 ms
观察结果:
1. 回应请求:
带有两个标签,即“VPN”和“Transport”
作为带有PW LABEL的标记数据包发送。这可以是标签交换(带有传输标签)。
标签:2
SRC IP:环回 IP(在目标 LDP 邻域中使用)
DST IP:127.0.0.1
L4 类型:UDP
SRC 端口:3503
DST 端口:3505
TOS 字节:OFF
MPLS EXP:OFF
DF 位:开启
正在使用“IPv4 选项”字段:“路由器警报选项”字段(Punt 到 CPU)
UDP 负载可以包含 MPLS 标签交换回显请求
概述:

第 2 层/标签:

L3/L4:

实际 MPLS 负载:

2. 回应应答:
可带有一个标签,即“Transport”
作为UNICAST PACKET发送。由于核心中存在LDP,因此可以进行标签交换(使用传输标签)。
标签:1
SRC IP:退出接口 IP 地址(本例中为 10.1.6.2)
DST IP:回应请求中发现的源 IP - 源路由器的环回
L4 类型:UDP
SRC 端口:3503
DST 端口:3505
TOS 字节:OFF
MPLS EXP:OFF
DF 位:开启
UDP 负载可以包含 MPLS 标签交换回显应答
MPLS EXP 已开启且设置为 6
“DF 位”已开启
VC 详细信息以供参考:
R1#sh mpls l2transport vc detail
Local interface: Fa2/0 up, line protocol up, Ethernet up
Destination address: 10.6.6.6, VC ID: 100, VC status: up
Output interface: Fa0/1, imposed label stack {24 28}
Preferred path: not configured
Default path: active
Next hop: 10.1.1.2
Create time: 2d17h, last status change time: 2d17h
Last label FSM state change time: 2d17h
Signaling protocol: LDP, peer 10.6.6.6:0 up
Targeted Hello: 10.1.1.1(LDP Id) -> 10.6.6.6, LDP is UP
Status TLV support (local/remote) : enabled/supported
LDP route watch : enabled
Label/status state machine : established, LruRru
Last local dataplane status rcvd: No fault
Last BFD dataplane status rcvd: Not sent
Last BFD peer monitor status rcvd: No fault
Last local AC circuit status rcvd: No fault
Last local AC circuit status sent: No fault
Last local PW i/f circ status rcvd: No fault
Last local LDP TLV status sent: No fault
Last remote LDP TLV status rcvd: No fault
Last remote LDP ADJ status rcvd: No fault
MPLS VC labels: local 28, remote 28
Group ID: local 0, remote 0
MTU: local 1500, remote 1500
Remote interface description:
Sequencing: receive enabled, send enabled
Sequencing resync disabled
Control Word: On (configured: autosense)
Dataplane:
SSM segment/switch IDs: 4097/4096 (used), PWID: 1
VC statistics:
transit packet totals: receive 1027360, send 1027358
transit byte totals: receive 121032028, send 147740215
transit packet drops: receive 0, seq error 0, send 0
L2VPN 交互操作
L2VPN 交互操作基于上述功能,允许连接不同的接入电路。交互操作功能可促进不同第 2 层封装之间的转换。思科系列路由器早期版本仅支持网桥交互操作,也称为“以太网交互操作”。
到目前为止,网络两端的 AC 都属于相同的封装类型,也称为“同类功能”。
L2VPN 交互操作具有 AToM 特性,允许在 AToM 网络两端使用不同的封装类型
- 这需要将两个异质接入电路 (AC) 互连。
- Cisco IOS 软件支持以下两大 L2VPN 交互操作 (IW) 功能:
1. IP/路由:在 MPLS 云的一端删除 MAC 报头(并替换为 MPLS 标签),在另一台 PE 上构建新的 MAC 报头。IP 报头按原样保留。
2. 以太网/网桥:此功能根本不会删除 MAC 报头。MPLS 标签会加在 MAC 报头之上,而 MAC 报头按原样传送到 MPLS 云的另一端。
可能的交互操作
a.帧中继到以太网
b.帧中继到 PPP
c. 帧中继到 ATM
d.以太网到 VLAN
e.以太网到 PPP
相关信息