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的方案,不支持前綴列表.
首先全局須要打上:no mpls ldp advertise-labels.就是不分發標籤.
因此上面命令的意思是:
本臺設備,只爲全部的LDP鄰居分發192.168.254.0/24的IGP路由分配的標籤.
其餘的IGP路由前綴沒有標籤,直接在直連設備上面除了192.168.254.0/24有上端分配的標籤,其餘的都是No Labels.
試驗:分配標籤控制----發標籤控制
R3發送了三條IGP路由前綴的標籤給R2.
如圖:
如今要作的就是隻讓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---R2的LDP的router-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鄰居之後的結果:
對於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的標籤綁定表:
這裏能夠看到,R3是對33.1.1.1還有35.1.1.1都分配了標籤的。
只是沒有發送給R2而已.
能夠在同一個路由器上面作不少
mpls ldp advertise 的策略:
剛纔只是一個極端的例子,之因此說極端,是由於R3是達到只發送某些標籤給R2了,但是如今R5就慘了,由於R3的配置,只有對於R2分發某些標籤,致使了R5什麼標籤都沒有從R3收到:
要解決這個問題,繼續在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的標籤表:
而R5,全部的標籤都從R3分配了過來:
控制分發:標籤接收
僅僅支持基礎ACL的方案,不支持前綴列表.
如今在R5上面作標籤接收的過濾.
在正常狀況下,R5上面的標籤轉發表是:
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分配的標籤.
這裏能夠看到,由於在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:
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,標籤表都不復存在了.
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
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上面作這個範圍限制:
在R2上面作了一個限制,可用標籤範圍只有2個.
那麼R1上面的結果是一堆從R2始發的路由前綴沒有標籤.
這也是爲何現網不建議手工配置標籤的範圍.由於隨着業務的增長,路由前綴必定會增長的,若是前期進行限制,後期故障排查很容易出錯。特別是核心設備,show run都是好幾屏或者是十多屏.