山東 孟慶杰 何鈺
LDP 即標簽分發協議,是 MPLS 體系中的一種重要協議。在MPLS 網絡中,兩個標簽交換路由器(LSR)必須用在它們之間或通過它們轉發流量的標簽上達成一致。LDP 鄰居建立不起來,會影響到LSR之間數據的交互。
筆者單位兩臺核心路由器之間的MPLS VPN 出現故障,經過ping 和show 等命令進行測試以及查看設備的相關配置,最終將故障定位在BRAS 和路由器間的LDP鄰居關系失效,失效原因是BRAS 和其中一臺核心路由器物理鏈路DOWN,接下來就詳細介紹一下網絡故障的處理過程。
近日有運維人員反映某專線業務出現故障,得知故障后我們立即開始排查。通過進一步了解得知該專線業務是金融類業務,使用的是MPLS 三層VPN,通過運維人員提供的故障IP 地址作為依據開始排查。

圖1 網絡拓撲結構
為了盡快完成故障的排查,下面簡要介紹一下網絡拓撲結構,如圖1 所示。
通過圖1 我們可以看到專線分支單位使用ONU 進行接入,上聯OLT 設備進行匯聚,OLT 直連BRAS 設備,BRAS 設備和核心路由器1 之間使用MPLS 三層VPN 將數據轉發至位于核心路由器上1 的專線單位總部。完成整個網絡情況的梳理后,接下來需要登錄到BRAS 上對故障的IP 地址進行ping測試,測試沒有發現問題。既然向下ping 沒有問題,那么向上ping專線單位總部(IP 地址是172.28.0.38)呢?得到的結果如圖2 所示。
通過圖2 對專線單位總部IP 地址的ping 測試結果是不通。使用同樣的命令在BRAS 上ping 核心路由器和專線單位的互聯地址呢?結果也是不通,那么這樣就可以將故障定位在核心路由器1 和BRAS 之間。

圖2 ping 專線總部結果示意圖
剛才我們介紹到兩臺設備之間運行的MPLS 三層VPN,那就將排查的重點放在MPLS 上。我們先在BRAS 上查看下VPN 實例的路由學習情況,這里需要使用到的命令是“show ip forwarding route vrf NongXin_Data”,具體查看結果如圖3 所示。
通過上面對VPN 實例路由學習的查看發現了問題,即從核心路由器方向以及相鄰BRAS 學習的網段出接口都是NULL,即黑洞路由。黑洞路由是將所有無關路由吸入其中,使它們有來無回的路由。那么為什么BRAS 從核心路由器1 上學習到的路由被丟到黑洞去了呢?
上面我們講到兩臺設備間運行的是MPLS 三層VPN,那么我們可以繼續排查下LDP 協議和鄰居關系是否正常,首先需要查看的是BRAS上LDP 的配置,即:


圖3 查看VPN 實例的路由學習示意圖

圖4 從核心路由器1 學習的路由

圖5 查看BRAS 的isis 鄰接關系
通過對LDP 配置的查看可以看到smartgroup4 加入了MPLS LDP 實例1 中,我們可以再使用命令“show running-config-interface smartgroup4”查看到該聚合口連接的是核心路由器1,那么我們看下從核心路由器1學習的路由正確嗎?即如圖4 所示。
通過對在BRAS 查看學習到核心路由器1 的路由發現,路由的下一跳和出接口都是核心路由器2,那就是說從核心路由器2 學習過來的,即兩臺路由器之間的心跳線發揮了作用。那么我們再查看下BRAS 和核心路由器1 的鄰居關系建立情況,使用命令“show mpls ldp neighbor instance 1”,結果沒有發現鄰居。然后再使用命令“show isis adjacency”查看BRAS的isis 鄰接關系,如圖5所示。
通過上面的命令可以看到該BRAS 只和路由器2 建立了isis 鄰接關系,那為什么沒有和路由器1 建立鄰接關系呢?既然BRAS 和路由器2 互聯使用聚合組1,那么和路由器1 互聯使用哪個聚合口?上面我們在查看BRAS上LDP 配置時已經得知是smartgroup4,那么這就需要查看該smartgroup 狀態是否正常。
通過對該smartgroup4組的查看,smartgroup 成員端口處于不活動的,查看該成員端口狀態是down。這時立即對該端口的物理鏈路進行排查,最后隨著端口的UP,smartgroup4 工作正常,同時BRAS 和路由器1 的LDP 鄰接關系建立也恢復正常,至此故障的專線得以解決。