解答網友的MPLS疑問

補充:172.17.4.1與172.17.5.1的通信過程
如果大家有仔細看文章的話,就知道172.17.4.1與172.17.5.1是沒有通告到OSPF中的,它是被通告了BGP中,按正常的情況下,RT4與RT5都學到了對方發來的BGP路由,數據包封裝是沒問題的,但是數據包被髮到OSPF區域時,裏面沒有這兩個網段的路由,數據包肯定會被丟棄的。但是此博文中這個兩個網段是可以通信的,爲什麼?原因就在配置BGP時,加了一條命令將下一跳指向自己,這個命令在BGP中大家應該很熟悉了。(RT4: neighbor 5.5.5.5 next-hop-self RT5: neighbor 4.4.4.4 next-hop-self)所以這兩個網段的通信是沒有問題的。

下面就來分析:

首先172.17.4.1要與172.17.5.1通信,就需要查詢路由表,發現路由表的中的172.17.5.0/24的下一跳是5.5.5.5,然後再以5.5.5.5爲目標網段查詢路由表,爲直鏈網段,查查詢MPLS標籤轉發表,發現5.5.5.5應封裝的標籤爲19,之後就進行MPLS標籤轉發了,在RT3做下一跳彈出,去掉了MPLS的標籤,最後到達172.17.5.1,回來的過程與上面一樣。

RT4的路由表:

O       5.5.5.5 [110/301] via 10.0.24.1, 00:42:02, Serial0/0

B       172.17.5.0 [200/0] via 5.5.5.5, 00:32:56

RT4的MPLS標籤轉發表:

RT4#show mpls for

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop    

tag    tag or VC   or Tunnel Id      switched   interface              

16     16          1.1.1.1/32        0          Se0/0      point2point  

17     Pop tag     2.2.2.2/32        0          Se0/0      point2point  

18     17          3.3.3.3/32        0          Se0/0      point2point  

19     19          5.5.5.5/32        0          Se0/0      point2point  

20     21          172.16.5.0/24     0          Se0/0      point2point  

21     Pop tag     10.0.12.0/30      0          Se0/0      point2point  

22     22          10.0.13.0/30      0          Se0/0      point2point  

23     Pop tag     10.0.23.0/30      0          Se0/0      point2point  

24     23          10.0.35.0/30      0          Se0/0      point2point  

抓包分析:

標籤是19與MPLS標籤轉發表時的標籤是一致的。但是從這裏抓回來的包,沒有MPLS的標籤,這是爲什麼?因爲做了倒數第二跳彈出了,要看標籤到對面去抓。

總結一下:MPLS不爲BGP的路由分爲標籤,只爲IGP與直連路由分發標籤。MPLS分發的標籤只在本地具有意義,只要本路由器的分配的標籤不重複就行。當路由器收到一條路由有多個MPLS標籤時,選擇最優的,就是根據本路由器的全局路由表中的路由條目中的下一跳發過來的,如果是負載的,MPLS標籤也做負載。當收到標籤中的路由,本地不存在時,則不進入MPLS標籤轉發表。

以上提到的內容具體細節見前面博文!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章