簡介
偽線(PW)用於在MPLS網路中提供端到端服務。它們是基本構建塊,可以提供點對點服務以及多點服務(例如VPLS),實際上是PW的網格,用於建立資料包流經的網橋域。
編輯者:Kumar Sridhar
必要條件
本文檔的讀者應瞭解以下內容:
採用元件
本檔案中的資訊是根據思科®電信級封包傳輸(CPT)產品系列,尤其是CPT50。
偽線概念
假線在概念上如下所示:
端到端服務由兩部分組成。連線電路(AC)部分和偽線部分。在思科傳輸控制器(CTC)中,整個電路端到端仍稱為偽線,但請記住此處展示的兩個不同部分用於以下故障排除。
另請注意,必須已建立隧道來容納上面配置的Pseudowire服務。通道可能受到保護(如此處所示)或不受保護。
偽線部分實際上在通道端點開始和停止(如果您排除此處顯示的MPLS封裝區塊)。
AC部分從隧道終點一直開始到面向客戶端的介面(其中定義了乙太網流點(EFP)),以標識通過此偽線傳輸的特定客戶端流量。有2個AC;每端一個。
AC以其原生形式傳輸客戶流量,即帶有或不帶VLAN標籤的乙太網幀,這取決於我們是在建立基於VLAN的偽線還是基於乙太網的偽線(PW建立嚮導中的AC Type框)。然後,新增特定PW服務以及在其上承載的隧道的MPLS標籤。然後,通過電路的偽線部分將資料包傳送到MPLS雲。 此過程在MPLS術語中稱為標籤實施。在遠端,會發生反向過程,即標籤被移除或標籤處置,然後現在返回到本地乙太網幀的資料包通過偽線電路的遠端AC部分被傳送到另一端。
排除偽線故障
為了使Pseudowire服務端對端工作,Pseudowire部件和2個AC部件必須協同工作。對電路進行故障排除涉及每個部件,其中每個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,活動
預設路徑:就緒
下一跳: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 pseudowid 7
PW Id:7
PW VC金鑰:7
PW AC金鑰:786434
PW bind receive in HW:是
PW是否在HW中設定:是
當前處於備用狀態:否
---------------------------------------------
—AC資料 —
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 — 封裝:單一標籤
AC-Ing RW Oper:無
AC — 輸出RW Oper:無
AC-Ing RW TPID:0
AC-Ing RW VLAN:0
AC-Ing RW標誌:0x0
---------------------------------------------
—ATOM資料 —
互通型別:Vlan
型別4 PW 4091的對等方請求的VLAN ID
MPLS埠Id:0x1800000B
SD標籤已啟用:是
啟用控制字:是
---------------------------------------------
— 拼版資料 —
---------------------------------------------
遠端VC標籤:19
傳出int編號: 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
drop: 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_下一跳[410]
Port_num:31
module_id:36
drop: 0
EGR_L3_下一跳[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操作,而不會接觸到電路的AC部分。
10.88.130.201#ping mpls偽線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
鍵入要中止的轉義序列。
!!!!!
成功率為100%(5/5),往返最小/平均/最大= 1/1/4毫秒
現在,按照我們以前所做的檢查有關PW的統計資訊:
10.88.130.201#show mpls l2 vc 12 det | beg statistics
VC統計資訊:
傳輸資料包總計:接收5,傳送0
傳輸位元組總數:receive 650, send 0
傳輸資料包丟棄:接收0,序列錯誤0,傳送0
請注意ping成功,且5個ping回應封包會記錄為已接收。另請注意,ping請求資料包不會記錄為已傳送。CPU似乎會在計數器後將回應請求/應答資料包傳送到流,因此不會記錄這些資料包。
如果ping不工作,則我們應該後退並調試隧道以確保其正常運行。
如果PW部分仍看起來良好,則關注兩端的AC部分。這是困難的部分,因為它沒有太多調試支援,並且AC路徑可能包括若干卡和介面,如思科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統計
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 | 乞求統計
VC統計資訊:
傳輸資料包總數:receive 232495, send 0
傳輸位元組總數:receive 356647330,send 0
傳輸資料包丟棄:接收0,序列錯誤0,傳送0
您可以在一端傳送與另一端接收之間的封包中看到相符專案。
如果需要清除MPLS計數器,請使用命令「clear mpls counters」。
檢查統計資訊的另一種方法是使用SPAN功能將傳入EFP流量複製到CPT節點上的備用埠,然後查詢此埠上的統計資訊以監控從客戶介面收到的資料包。
最後,您可以在不同的交換矩陣和線卡上運行BCM shell命令以在內部跟蹤資料包,但這超出了本文的範圍。