目录

简介

先决条件

使用的组件

伪线概念

伪线故障排除

简介

伪线(PW)用于在MPLS网络中提供端到端服务。它们是基本构建块，可以提供点对点服务和多点服务（例如VPLS），实际上是PW的网状结构，用于创建数据包流经的网桥域。

编辑者：Kumar Sridhar

先决条件

本文档的读者应具备以下方面的知识：

- MPLS隧道概念

使用的组件

本文档中的信息基于Cisco®运营商数据包传输(CPT)产品系列，尤其是CPT50。

伪线概念

伪线概念上如下所示：

端到端服务由两个部分组成。连接电路(AC)部分和伪线部分。整个电路端到端在Cisco传输控制器(CTC)中仍称为伪线，但请记住此处展示的两个不同部分用于以下故障排除。

另请注意，必须已创建隧道来容纳上面配置的Pseudowire服务。隧道可能受到保护（如图所示）或未受到保护。

伪线部分实际上在隧道端点开始和停止（如果您排除此处显示的MPLS封装块）。

AC部分从隧道终点一直到面向客户端的接口（其中定义了以太网流点[EFP]），以标识通过此伪线传输的特定客户端流量。有2个AC；每端一个。

AC以本机形式传输客户流量，即带有或不带VLAN标记的以太网帧，具体取决于我们是在创建基于VLAN的伪线还是基于以太网的伪线（PW创建向导中的AC Type框）。然后，添加特定PW服务及其所承载的隧道的MPLS标签。然后，数据包通过电路的Pseudowire部分发送到MPLS云。  此过程在MPLS术语中称为标签实施。在远端，会发生反向过程，即删除标签或进行标签处置，然后数据包将返回到本地以太网帧，再通过伪线电路的远端AC部分传送到另一端。

伪线故障排除

要使伪线服务端对端工作，伪线部分和2个交流部分必须一起工作。对电路进行故障排除涉及每个部分，其中每个AC-PW-AC部分单独调试以确定问题所在。

在下面的故障排除讨论中，假设已正确配置了PW，并且已调试并排除了所有第1层或物理层问题。

首先，调试PW部分比较容易。首先通过在终端节点上的IOS窗口中运行的命令“show mpls l2 vc”识别电路。记录连接的虚电路标识符(VCID)和目的节点地址。

10.88.130.201#show mpls l2 vc

本地intf本地电路目的地址VC ID状态

------------- -------------------------- --------------- ---------- ----------

Gi36/2 Eth VLAN 200 202.202.202.202 12 UP

VFI vfi::1 VFI 202.202.202.202 124打开

VFI vfi::1 VFI 204.204.204.204 124打开

这里，所关心的PW是第一个基于接口Gi36/2配置为VLAN 200的PW。确保接口状态为UP。

show mpls l2 vc 12 detail命令为您提供了大量有关PW的信息。下面突出显示的重要字段，例如隧道id、远程节点id、标签堆栈、PWID编号和统计信息。

10.88.130.201#show mpls l2 vc 12 detail

本地接口：Gi36/2 up、line protocol up、Eth VLAN 200 up

目的地址：202.202.202.202,VC ID:12,VC状态：up

输出接口：Tp102，强加的标签堆栈{16 19}

首选路径：Tunnel-tp102、active

默认路径：就绪

下一跳：point2point

创建时间：00:32:52，上次状态更改时间：00:05:42

信令协议：手动

状态TLV支持（本地/远程）：已启用/无

LDP路由监视：已启用

标签/状态机：已建立，LruRru

上次本地数据平面状态rcvd：无故障

上一个BFD数据平面状态rcvd：未发送

上次本地SSS电路状态rcvd：无故障

上次发送本地SSS电路状态：无故障

上次发送本地LDP TLV状态：无故障

上次远程LDP TLV状态rcvd：无故障

上次远程LDP ADJ状态rcvd：无故障

MPLS VC标签：本地18，远程19

PWID:7

组ID:local 0、remote 0

MTU：本地1500，远程1500 <----本地值和远程值必须匹配

排序：接收已禁用，发送已禁用

控制字：开

SSO描述符：202.202.202.202/12，本地标签：18

SSM网段/交换机ID:20513/12320（已使用），PWID:7

VC统计信息：

传输数据包总计：接收10，发送0

传输字节总数：receive 1320, send 0

传输数据包丢弃：接收0，序列错误0，发送0

如果PW关闭，则确保隧道（此处是隧道102）处于良好状态，如果不是，则排查隧道问题。排除隧道故障不属于本文的讨论范围。

确保堆栈中的标签按如上所示进行定义，即它们不是空白的。通过使用适当的PWID编号执行命令show platform mpls pseudowire pwid，确保在硬件中对PW进行编程。

10.88.130.201#show platform mpls pseudowire pwid 7

PW Id:7

PW VC密钥：7

PW AC密钥：786434

PW bind receive in HW：是

PW是否在HW中设置：是

当前处于备用状态：否

---------------------------------------------

— 交流数据 —

AC设置是否在HW中：是

AC接口：GigabitEthernet36/2

交流电路ID:2

AC — 内部VLAN:0

AC — 外部VLAN:200

AC- MPLS端口ID:0x1800000A

AC — 端口Id:31

AC — 模块ID:36

AC-Is efp：是

AC — 封装：单一标签

交流输入RW操作器：无

AC — 出口RW操作器：无

交流输入RW TPID:0

交流输入RW VLAN:0

AC-Ing RW标志：0x0

---------------------------------------------

—ATOM数据 —

互通类型：Vlan

类型4 PW 4091的对等体请求的Vlan ID

MPLS端口ID:0x1800000B

SD标记已启用：是

控制字已启用：是

---------------------------------------------

— 施加数据 —

---------------------------------------------

远程VC标签：19

传出int Num:9

BCM端口：28

BCM模块ID:4

隧道出口对象：100008

故障转移ID:1

故障切换隧道出口对象：100009

故障转移BCM端口：0

故障转移BCMModId:0

---------------------------------------------

— 处置数据 —

---------------------------------------------

本地标签：18

IF编号：12

是否为MSPW：否

---------------------------------------------

— 强制税侧 —

VLAN_XLATE表中找不到VlanId 200的条目

SOURCE_VP[10]

dvp:11

ING_DVP_TABLE[11]

nh_index:411

ING_L3_NEXT_HOP[41]

vlan_id:4095

port_num:28

module_id:4

丢弃：0

EGR_L3_NEXT_HOP[41]

mac_da_profile_index:1

vc_and_swap_index:4099

intf_num:22

dvp:11

EGR_MAC_DA_PROFILE[1]

DA Mac:1 80.C20 .0 0

EGR_MPLS_VC_AND_SWAP_LABEL_TABLE[4099]

mpls_label（VC标签）：19

EGR_L3_INTF[22]

SA Mac:4055.3958.E0E1

MPLS_TUNNEL_INDEX:4

EGR_IP_TUNNEL_MPLS[4]

(lsp)MPLS_LABEL0

(lsp)MPLS_LABEL1

(lsp)MPLS_LABEL2

(lsp)MPLS_LABEL3

— 处理方 —

MPLS_ENTRY[1592]

标签：18

source_vp:11

nh_index:11

SOURCE_VP[11]

DVP:10

ING_DVP_TABLE[10]

nh_index:410

ING_L3_NEXT_HOP[410]

Port_num:31

module_id:36

丢弃：0

EGR_L3_NEXT_HOP[410]

SD_TAG:VINTF_CTR_IDX:134

SD_TAG:RESERVED_3: 0

SD_TAG:SD_TAG_DOT1P_MAPPING_PTR:0

SD_TAG:NEW_PRI:0

SD_TAG:NEW_CFI:0

SD_TAG:SD_TAG_DOT1P_PRI_SELECT:0

SD_TAG:RESERVED_2: 0

SD_TAG:SD_TAG_TPID_INDEX:0

SD_TAG:SD_TAG_ACTION_IF_NOT_PRESENT:0

SD_TAG:SD_TAG_ACTION_IF_PRESENT:3

SD_TAG:HG_L3_OVERRIDE:0

SD_TAG:HG_LEARN_OVERRIDE:1

SD_TAG:HG_MC_DST_PORT_NUM:0

SD_TAG:HG_MODIFY_ENABLE:0

SD_TAG:DVP_IS_NETWORK_PORT:0

SD_TAG:DVP:10

SD_TAG:SD_TAG_VID:0

ENTRY_TYPE:2

错误：在EGR_VLAN_XLATE表中找不到条目！

EGR_VLAN_XLATE[-1]

soc_mem_read：内存EGR_VLAN_XLATE的索引–1无效

日志表明PW已在硬件中绑定并设置，具有正确的VLAN和标签，与之前所见一致。

如果任何数据点不匹配或丢失，则问题出在驱动程序中，该驱动程序没有在硬件中设置和绑定PW。这说明存在软件或硬件缺陷。

如果目前一切正常，则可以尝试使用IOS命令“ping mpls pseudowire 202.202.202.202 12 reply mode control-channel”内部ping PW部分。  再次注意，这只会从一个隧道端点ping另一个隧道端点，而不会接触到电路的交流部分。

10.88.130.201#ping mpls pseudowire 202.202.202 12 reply mode control-channel

正在向202.202.202.202发送5个100字节的MPLS响应，

timeout为2秒，send interval为0毫秒：

代码：“！” — 成功，“Q” — 请求未发送，“。” — 超时，

“L” — 标记输出接口，“B” — 未标记输出接口，

“D” — DS映射不匹配，“F” — 无FEC映射，“f” — FEC不匹配，

“M” — 请求格式不正确，“m” — 不支持的TLV，“N” — 无标签条目，

'P' — 无rx intf标签端口， 'p' — 过早终止LSP，

'R' — 传输路由器，'I' — 未知上游索引，

“l” — 标签交换与FEC更改，“d” — 参见DDMAP了解返回代码，

'X' — 未知返回代码，'x' — 返回代码0

Type escape sequence to abort.

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms

现在检查有关PW的统计信息，如我们之前所做的那样：

10.88.130.201#show mpls l2 vc 12 det | beg statistics

VC统计信息：

传输数据包总计：接收5,发送0

传输字节总计：接收650，发送0

传输数据包丢弃：接收0，序列错误0，发送0

请注意，ping操作成功，并且5个ping回应数据包被记录为已接收。另请注意，ping请求数据包不会记录为已发送。回应请求/应答数据包似乎是CPU在计数器后发送到数据流的，因此没有记录。

如果ping不起作用，则我们应该后退并调试隧道以确保其正常运行。

如果PW部分仍然看起来良好，则请重点观察两端的AC部分。这是困难的部分，因为它没有太多的调试支持，AC路径可能包含多个卡和接口，如Cisco CPT50。

但几乎没有什么事情可以查证。

您可以从测试器发送模式，或从客户端设备执行ping，并观察CPT盒上面向客户端的接口接收的数据包。对于基于端口的PW而言，这比较容易，但对于基于VLAN的PW则不然，因为接口不显示每个VLAN的数据包。在任何情况下，面向客户端的接口的命令“show int ...”应显示数据包计数增加，至少表明数据包正正确进入，且没有其他基于VLAN的电路处于活动状态。

请记住，这些通过AC进入的数据包应该标记为MPLS，然后通过PW发送到另一端。因此，它们应在PW部分的统计信息中显示为发送的数据包。请在命令show mpls l2 vc 12 detail中查找它们 | beg statistics”

10.88.130.201#show mpls l2 vc 12 detail | beg statistic

VC统计信息：

传输数据包总计：接收0，发送232495

传输字节总数：receive 0,send 356647330

传输数据包丢弃：接收0，序列错误0，发送0

它们应在远端以同一命令显示为数据包“接收”。因此，此端的发送PW数据包和远端接收的PW数据包应该与从客户端设备发送的数据包数量匹配。使用相同的命令" show mpls l2 vc 12 detail | beg statistics”在远端显示：

10.88.130.202#show mpls l2 vc 12 detail | beg statis

VC统计信息：

传输数据包总数：receive 232495,send 0

传输字节总数：receive 356647330,send 0

传输数据包丢弃：接收0，序列错误0，发送0

您可以在一端发送和另一端接收之间的数据包中看到匹配项。

如果需要清除MPLS计数器，请使用命令“clear mpls counters”。

另一种检查统计信息的方法是使用SPAN功能将传入EFP流量复制到CPT节点上的备用端口，然后查找此端口上的统计信息以监控从客户接口接收的数据包。

最后，您可以在不同的交换矩阵和线卡上运行BCM shell命令以内部跟踪数据包，但这不属于本文的讨论范围。