您好,登錄后才能下訂單哦!
Technorati 標簽: MPLS,CCIE,Label,LDP,標簽控制
MPLS LDP標簽控制.
1, mpls ldp advertise-labels [for prefix-access-list [to peer-access-list]]
標簽過濾, 1, 給予 2, 接收
默認情況下,本地路由器會為IGP路由表所有前綴分配標簽,并且分發到所有LDP鄰居去.
該命令是通過命令人為的選擇標簽到一些LDP鄰居或者TDP鄰居去.
意思就是,發多少,發不發,發給誰。都是該命令控制.
2, mpls ldp neighbor x.x.x.x labels accept ACL_number
這個命令就是,我接收哪個鄰居發送給我的ACL能匹配的前綴的標簽.
其他都標簽都進行過濾.
控制分發:給予:
僅僅支持基礎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都是好幾屏或者是十多屏.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。