MPLS LDP協議詳述下篇
MPLS LDP協議—— 操作過程
1.對于IP路由表中的每個一個IGP的IP prefix來說,每臺運行LDP的LSR都會產生一個label與之做一個mapping,然后LSR會將這個mapping傳個所有LDP鄰居(運行LDP的LSR會建立鄰居關系)。
2.每個LSR都會保存一張LIB表(label information base)(標簽信息庫),該表收集了從所有LDP鄰居收到的所有prefix和label的mapping,因此,關于某個IP prefix,肯定會有多個label與之對應,原因:
拓撲:routerA---routerB---routerC----10.0.0.0/24
三臺路由器直連,運行了OSPF,他們路由表都有到10.0.0.0/24的prefix,因此自身都會產生一條關于該prefix和label的mapping,而且也會收到其他LSR關于這個label的mapping,如B就會同時收到A、C的mapping,那么到底選A還是C?
事實上,LDP在LSR上建議另外一個表,叫LFIB(label forwarding information dase)(標簽轉發信息庫),該表中,本地的mapping中的label作為入站label,而路由表中的關于10.0.0.0/24的下一跳發送過來的mapping中的label作為出站label(本例中,10.0.0.0/24的下一跳是C,那么B就會將C發來的mapping中的label作為出站label,而A就將B發來的label作為出站label),這就引出了LDP中一個很重要的原理:關于某個prefix,所有路由器發送去往該prefix的報文時,他的label都是由該prefix的下一跳(即該prefix在路由表中對應的下一跳)發給他的,而他也會將他的label發送給他的上一跳路由器.
MPLS LDP協議—— LDP的LSR發現(注意,只是發現,并未建立鄰居,類似于OSPF中的2-way狀態)
(1)配置:
- Ip cef
- //啟用CEF
- Mpls label protocol ldp
- //指定MPLS協議,默認是LDP
- Int e0/0
- Mpls ip
- //在接口下啟用MPLS
(2)LDP的hello消息是一個UDP端口號646,發往224.0.0.2的消息
(3)Sh mpls ldp discovery查看LDP鄰居
(4) Sh mpls int查看所有啟用了LDP的接口
(5)LDP ID:類似以OSPF的router ID,選舉規則也一樣;使用mpls ldp router-id interface force改變LDP ID
(6)在LDP鄰居發現時,鄰居之間的LDP ID必須IGP可達,否則在sh mpls ldp discovery的最后一行會出現no route,即鄰居發現沒有建立成功
MPLS LDP協議—— LDP會話建立和維護
(1)當兩端都收到Hello后,他們就可以嘗試見了LDP會話了,一臺LDP會去打開對端的TCP646端口,到另外一臺LSR。如果TCP建立成功,那么他們就會交換一下信息:
1.計時器的值
2.標簽分發方式
如果兩臺LSR都認可了參數,那么就會建立LDP鄰居
(2)Sh mpls ldp nei查看鄰居關系
MPLS LDP協議—— Label&prefix mapping 通告
LSR會將自己IGP路由表中所有的prefix mapping到一個label中,然后通告給所有他的LDP鄰居
一個下游LDP鄰居因此會收到同一個prefix的多個label的mapping,他如何選擇?
下游LSR是通過在路由表中查找這個prefix的下一跳IP,通過該IP查找到某個特定的LDP ID,然后通過這個LDP ID查找到與之對應的label。要多次查找的原因:當某個LSR向其LDP鄰居發送mapping時,他只包括自身的LDP ID、需要label的prefix、相應的label,而其下游路由器選擇LFIB的mapping時,是通過IGP路由表中的下一跳來選擇的,而通過該下一跳IP并不能查找到相應的LDP IP,也就不能找到相應的mapping,因此事實上,每個LSR在發送mapping的時候,還會把自己所有接口的IP和LDP ID的綁定發送出去。那么現在好了,他的下游路由器就能通過下一跳IP,找到下一跳IP對應的IDP ID,然后哦天那干過LDP IP,找到相應的mapping。Sh mpls ldp nei detail可以看到LDP鄰居發送的所有接口IP(Addresses bound to peer LDP Ident)
Sh mpls ip binding查看LIB表,后面有inuse的表示進入LFIB表
Sh mpls ip forwarding-table查看LFIB表
MPLS LDP協議的更多內容請閱讀上篇