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