MPLS LDP標籤控制--高級feature&&標籤的故障排查

Technorati 標籤: MPLS,CCIE,Label,LDP,標籤控制ide

MPLS LDP標籤控制.oop

1, mpls ldp advertise-labels [for prefix-access-list [to peer-access-list]]spa

標籤過濾, 1, 給予 2, 接收3d

默認狀況下,本地路由器會爲IGP路由表全部前綴分配標籤,而且分發到全部LDP鄰居去.orm

該命令是經過命使人爲的選擇標籤到一些LDP鄰居或者TDP鄰居去.router

意思就是,發多少,發不發,發給誰。都是該命令控制.blog

2, mpls ldp neighbor x.x.x.x labels accept ACL_number接口

這個命令就是,我接收哪一個鄰居發送給個人ACL能匹配的前綴的標籤.ip

其餘都標籤都進行過濾.ci

控制分發:給予:

僅僅支持基礎ACL的方案,不支持前綴列表.

clip_p_w_picpath002

clip_p_w_picpath004

首先全局須要打上:no mpls ldp advertise-labels.就是不分發標籤.

clip_p_w_picpath006

因此上面命令的意思是:

本臺設備,只爲全部的LDP鄰居分發192.168.254.0/24的IGP路由分配的標籤.

其餘的IGP路由前綴沒有標籤,直接在直連設備上面除了192.168.254.0/24有上端分配的標籤,其餘的都是No Labels.

試驗:分配標籤控制----發標籤控制

clip_p_w_picpath008

R3發送了三條IGP路由前綴的標籤給R2.

如圖:

clip_p_w_picpath010

如今要作的就是隻讓R3通告55.1.1.1/32的標籤給R2.其餘的標籤都給過濾掉.

最終在R2上面對於55.1.1.1/32有標籤,可是其餘兩個路由前綴33.1.1.1/32和35.1.1.0/24是No Label的狀態.

ACL解決方案:

R3:

mpls label range 300 399

mpls label protocol ldp

no mpls ldp advertise-labels

mpls ldp advertise-labels for 2 to 1

!

interface Loopback0

ip address 33.1.1.1 255.255.255.255

!

interface Ethernet0/0

ip address 35.1.1.3 255.255.255.0

mpls ip

!

router ospf 1

router-id 33.1.1.1

network 23.1.1.3 0.0.0.0 area 1

network 33.1.1.1 0.0.0.0 area 1

network 35.1.1.3 0.0.0.0 area 1

!

mpls ldp router-id Loopback0 force

access-list 1 permit 22.1.1.1---R2LDProuter-id.

access-list 2 permit 55.1.1.1---容許放行的前綴的標籤

!

上面的配置,22.1.1.1是R2的ldp router-id.

意思是說,R3將通告55.1.1.1的路由前綴分配的標籤給R2,22.1.1.1

該方案是用的ACL方案.

下面是當R2清一下ldp鄰居之後的結果:

clip_p_w_picpath012

對於33.1.1.1/32和35.1.1.0/24都沒有分配標籤。而對55.1.1.1/32是分配了標籤的。

其實是在R3上面作了一個標籤過濾.並不能說R3沒有對33.1.1.1/32和35.1.1.0/24分配標籤,而是說沒有江該標籤分發給R2而已:

下面是R3的標籤綁定表:

clip_p_w_picpath014

這裏能夠看到,R3是對33.1.1.1還有35.1.1.1都分配了標籤的。

只是沒有發送給R2而已.

能夠在同一個路由器上面作不少

mpls ldp advertise 的策略:

clip_p_w_picpath016

剛纔只是一個極端的例子,之因此說極端,是由於R3是達到只發送某些標籤給R2了,但是如今R5就慘了,由於R3的配置,只有對於R2分發某些標籤,致使了R5什麼標籤都沒有從R3收到:

clip_p_w_picpath018

要解決這個問題,繼續在R3上面進行其餘鄰居的標籤放行:

R3的配置:

mpls label range 300 399

mpls label protocol ldp

no mpls ldp advertise-labels-----默認不分發任何標籤.

mpls ldp advertise-labels for 2 to 1 ----將35.1.1.0/24和55.1.1.1/32的前綴分發的標籤通告給22.1.1.1(R2)

mpls ldp advertise-labels for 4 to 55----將全部的前綴標籤通告給55.1.1.1(R5)

!

mpls ldp router-id Loopback0 force

access-list 1 permit 22.1.1.1

access-list 2 permit 35.1.1.0

access-list 2 permit 55.1.1.1

access-list 4 permit any

access-list 55 permit 55.1.1.1

!

最後,在R2上面,咱們能夠看到,只有35.1.1.0和55.1.1.1從R3獲得了標籤,而33.1.1.1沒有標籤,是No Label:

下面是R2的標籤表:

clip_p_w_picpath020

而R5,全部的標籤都從R3分配了過來:

clip_p_w_picpath022

控制分發:標籤接收

僅僅支持基礎ACL的方案,不支持前綴列表.

clip_p_w_picpath024

如今在R5上面作標籤接收的過濾.

在正常狀況下,R5上面的標籤轉發表是:

clip_p_w_picpath026

R5上面作相關接收標籤的策略:

mpls label range 500 599

mpls label protocol ldp

mpls ldp neighbor 33.1.1.1 labels accept 2

!

mpls ldp router-id Loopback0 force

access-list 2 permit 12.1.1.0

access-list 2 permit 22.1.1.1

!

上面R5的配置,意思是說。我R5本地,只接收鄰居33.1.1.1對於IGP前綴12.1.1.0/24和22.1.1.1/32分配的標籤.

clip_p_w_picpath028

這裏能夠看到,由於在R5上作了只接收R3通告的12.1.1.0和22.1.1.1的標籤.因此只有這兩個前綴有標籤。其餘的outgoing label所有都是no Label的。

MPLS label Troubleshooting:

就標籤來講,沒有什麼多說的,由於標籤是系統分配的,咱們很難對每個標籤去注意控制。

可是,若是路由器不管如何也收不到鄰居分配過來的標籤,那麼下面幾點是必定要注意的:

1, no ip cef

//這個是MPLS的基礎,若是沒有CEF,任何標籤都不會收到. 首先, cisco的轉發基礎,cef是核心,cef是核心路由表提取出來的一個集合表,而MPLS的LDP標籤是基於CEF表前綴來分發標籤的,因此沒有CEF,LDP也不會基於路由表來分發標籤,最終什麼標籤都沒有.

下面是一個路由器沒有開啓cef的MPLS forwarding table:

clip_p_w_picpath030

2, no mpls ip

cisco系統,全局的mpls ip默認是打開的,能夠手工關閉.

一旦關閉,現象就是,show mpls forwarding-table是空表項,什麼都沒有.

而show mpls ldp binding標籤庫,也是空的。系統會提示:LIB not enable.

label information base not eanble. 就是全局的mpls ip被幹了,必定要注意區別.

若是no ip cef,那麼全部的標籤都是No Label.若是幹掉了mpls ip,標籤表都不復存在了.

clip_p_w_picpath032

clip_p_w_picpath034

3,LDP鄰居關係起不來.

這個時候就要檢查transport-IP是否IGP能相互可達.

默認的狀況,LDP的router-id就等於Transport-IP.

在LDP創建鄰居的時候,兩邊路由器都在發送224.0.0.2的組播報文.

router-id是用於選舉誰是LDP的鄰居創建的發起方.

Transport-IP是用於創建TCP646鄰居用的。

總結:在設備兩端用擴展ping對方的router-id.通,再說端口是否被封,斷,查IGP路由表.

troubleshooting的時候,好比:

R1--12.1.1.x--R2

R1的loop0:11.1.1.1/32, R2的loop0:22.1.1.1/32.

R1和R2上面,IGP都是宣告loop0和12.1.1.x的網段。

這個時候,在R1上面,再建一個loopback1:11.11.11.11/32,而後全局打上:mpls ldp router-id loop1 force,加了force參數,鄰居會down掉,可是以後在也創建不起來了,由於R1沒有network loop1的網段進行宣告.R2和R1的loop1 IGP不可達.

4, 標籤控制[分發/接收]

分發過濾:mpls ldp advertise-labels [for prefix-access-list [to peer-access-list]]

接收過濾:mpls ldp neighbor x.x.x.x labels accept ACL_number

5, 標籤的分發協議不匹配.TDP&LDP

clip_p_w_picpath036

NOTES:全局和接口都可修改標籤協議.

在一臺設備上面用默認的mpls label protocol ldp.另一個設備上面是用cisco私有的TDP協議。

兩個協議是不兼容的.鄰居沒法創建.

6,標籤的範圍太小.

在作實驗的時候,常常是R1就打上mpls label range 100 199.

由於用於試驗,100個標籤差很少夠用,主要用於觀察現象。

而在現網環境中,或者troubleshooting的時候,若是在一個路由器上面吧這個範圍修改的很小:

R1(config)#mpls label range 100 101

那麼帶來的問題就是下游的路由器只能接收到1個前綴帶標籤,其餘所有都是No Label.

例如:R1---R2直連.在R2上面作這個範圍限制:

clip_p_w_picpath038

clip_p_w_picpath040

在R2上面作了一個限制,可用標籤範圍只有2個.

那麼R1上面的結果是一堆從R2始發的路由前綴沒有標籤.

這也是爲何現網不建議手工配置標籤的範圍.由於隨着業務的增長,路由前綴必定會增長的,若是前期進行限制,後期故障排查很容易出錯。特別是核心設備,show run都是好幾屏或者是十多屏.

相關文章
相關標籤/搜索