MPLS + BGP高級特性

Technorati 標籤: MPLS,BGP,CCIE,標籤,LDP網絡

LDP是否會爲BGP路由分配標籤?爲何?ide

clip_p_w_picpath002

---以前咱們說LDP都是爲IGP分配標籤,歷來都沒有說爲BGP分配標籤.oop

下面用一個實驗來講明一下LDP+BGP的工做方式.學習

純IP網絡的轉發方式:spa

clip_p_w_picpath004

該拓撲圖中,R1和R4創建EBGP鄰居. R3和R5創建EBGP鄰居.3d

R1和R3之間創建IBGP鄰居.blog

R1-R2-R3之間的IGP協議是OSPF.接口

R4 bgp中network 44.1.1.1 mask 255.255.255.255ip

R5 bgp中network 55.1.1.1 mask 255.255.255.255路由

問題:

最終,R4和R5經過BGP都會學習到對端的BGP路由. 首先有一個問題,就是R4 ping 55.1.1.1 source loo0,或者是R5 ping 44.1.1.1 sou loo0,會通嗎?

-------------答案是不通. 經過作實驗就能證實. 緣由就在於R2上面.若是純IP的話,R2就是一個路由黑洞.

在R2上面,既沒有44.1.1.1的路由,也沒有55.1.1.1的路由. 若是要想讓R4和R5兩個路由器通,除非,讓R2也參與到BGP中來,方法不少。R2做爲RR路由反射器。R1和R3都是R2的客戶端.再或者用聯盟.總之必定要讓R2也能學習到相關44.1.1.1/55.1.1.1的路由,那麼在純IP環境中才能進行通信.

不然R2就是一個路由黑洞.

 

 

MPLS標籤轉發方式:

拓撲圖依舊,只是中間AS 100區域,R1,R2和R3之間運行MPLS IP.

這個時候,R2依然沒有運行BGP.

其餘條件和上面純IP轉發一致.

clip_p_w_picpath006

在這種狀況下,R4 network 44.1.1.1/32進入BGP. R5 network 55.1.1.1/32進入bgp.

是否R4pingR5爲何

-------經過實驗發現,能通.

clip_p_w_picpath008

結論:在ASBR上面,收到了一個IP數據包。

對於R1來講,該報文源是44.1.1.1.目的是55.1.1.1, 從R1的e0/1進IP,從R1的e0/0 MPLS出.

目的地是去往一個bgp條目的.那麼這個時候會打上一個標籤,這個時候會給bgp路由的下一跳打上一個標籤.

這就是爲何R2沒有去往55.1.1.1或者44.1.1.1的路由,依然會有標籤,由於標籤是針對於11.1.1.1或者33.1.1.1的。R2有路由前綴,而且有相關的標籤映射.

因此,必定要保證ASBR上面有明細的路由。不然數據包到了ASBR會由於核心路由表沒有條目而丟包.

下面來看看這個數據流如何走:

clip_p_w_picpath010

在R4上面, ping 55.1.1.1 source loo0.

1, 首先R4須要有55.1.1.1的前綴路由信息.

clip_p_w_picpath012

這裏在R4的核心路由表中,對於該路由,下一跳是14.1.1.1.可達.那麼數據包就送到了R1上面去.

2, 當該IP報文送到R1的時候,是IP--->MPLS,應該查看CEF表.

下面是R1全部的相關表項.

首先,R1有核心路由表的路由:

show ip route

B 55.1.1.1 [200/0] via 33.1.1.1, 02:40:13

這裏,R1要到55.1.1.1,bgp路由下一跳是33.1.1.1.

其次,show ip cef表,發現55.1.1.1的前綴,被遠端R2分配了一個label=17.

再次,在LFIB中,發現17這個標籤,實際上是對33.1.1.1(恰好是bgp前綴下一跳)進行分配的標籤.

最後該數據包會PUSH進一個17的標籤經過R1的e0/0轉發給R2.

clip_p_w_picpath014

3, 當MPLS報文,攜帶label=17,進入了R2的e0/0.

R2的標籤轉發表以下:

clip_p_w_picpath016

對於進來的17的MPLS報文,在R2上面會將該標籤彈出,由於33.1.1.1/32是R3的直連,R3會分配一個隱式空標籤給33.1.1.1前綴,而且分發給R2.當數據包到了R2之後,剝離標籤,pop label(PHP倒數第二條彈出機制).而後IP報文轉發給R3.

4, R3收到這個報文之後. 發現報文目是55.1.1.1.查找路由表:

R3上面的路由表:

clip_p_w_picpath018

在R3上面,到達55.1.1.1,下一跳是直連路由35.1.1.5. 是可達的。因此數據包轉發到R5.

5, 數據包到R5上面,最後成功轉發。

=============================================

思考:若是R1和R3不用loopback做爲bgp的source, 而用物理接口,R4和R5還能通信嗎?

以前的應用是R1和R3用環回口創建的IBGP.

clip_p_w_picpath020

思考,若是用直連創建IBGP鄰居的話,是否R4和R5依然能夠經過MPLS域進行通信,爲何?

-----------答案是否認的。

緣由:數據包到了R1之後,R1上面的路由表會變成:

show ip route

B 55.1.1.1 [200/0] via 23.1.1.3,

R2會認爲,23.1.1.0/24是本身的直連路由,那麼R2會分配一個空標籤給23.1.1.0/24.分發給R1和R3.

R1上面對於23.1.1.0是沒有標籤的.

等IP數據包到了R2之後,R2查詢,無標籤,那麼查詢路由表,由於R2根本就沒有啓用bgp,也沒有44.1.1.1/55.1.1.1的路由,因此R2又變成了路由黑洞. 主要的目的是利用標籤將數據包使用標籤交換髮送到R3上面,這樣R3才能進行路由查詢轉發數據.

相關文章
相關標籤/搜索