Technorati 標籤: MPLS,CCIE,聚合,agg,LDPide
一個FEC,只會爲同一個路由分配標籤.學習
同一個路由的含義:相同的前綴,相同的掩碼.測試
那麼有一個比較典型的狀況會破壞這個規則:彙總。spa
過來的時候是明細,分發出去是彙總.雖然符合路由查找的規律,大網段包含小網段,但是對於FEC來講,是破壞了FEC的模型。3d
路由彙總在MPLS域內:router
在下面這個彙總的圖中來講.C是彙總點.blog
路由彙總,會破壞MPLS域內不是同一條路由(前綴/掩碼絕對相同)接口
彙總之後,以彙總點爲中心,一條FEC會被分割成兩端.進程
在上面的圖中,從Router E傳回來一個路由. 10.1.1.0/24, 24位的掩碼,傳到D,最後傳到C,這個時候C作一個彙總,彙總成/16位的掩碼從C通告給B,B再給A.前提是C只發送彙總路由,抑制明細路由.ip
這樣,這個LSP已經被破壞成了兩段.
最終,數據流在MPLS域中轉發,由一條LSP變成了兩條LSP.以router C爲分界點.
非鏈路聚合,一條完整FEC路徑的狀況:
下面這個拓撲圖,R4 有一個環回口.44.1.1.1/32
R5也有一個環回口:55.1.1.1/32
期間,R4,R1,R2,R3,R5,全部設備對該兩條路由的認識都是同樣的(掩碼相同,前綴相同)
這樣才能造成一個完成FEC鏈路的先決條件.
從R4到R5是一條路徑,能夠經過traceroute來進行查看:
從traceroute的結果來講,對於R4上面的55.1.1.1,R1分配的標籤是102.
R2爲55.1.1.1分配的標籤是202.
R3爲55.1.1.1分配的標籤是302.
R5上面,由於55.1.1.1/32是直連,分配的標籤是implict-null(3), 一個空標籤.
因此traceroute的路徑是:
label: 102-->202-->302-->(3)implict-null
這裏整條路徑是一條路徑.沒有作鏈路聚合.
鏈路聚合,一條不完整FEC路徑的狀況:
下面這個拓撲圖,R4 有一個環回口.44.1.1.1/32
R5也有一個環回口:55.1.1.1/32
如今,R1,2,3,4,5,中間咱們作一個路由聚合,讓你們5臺設備對這個前綴的認識不統一,看看會有什麼樣的狀況發生.
最終選定R2作一個路由彙總.把/32位的路由彙總成/24位.
OSPF在同一個區域是不能作彙總的,因此環境須要稍微改造一下,R2--R3--R5屬於區域1中.
在R2上面的ospf進程中,對area1進行一個55.1.1.1/32--->55.1.1.0/24的路由彙總.
最終通告給R1和R4,意思是R1和R4上面學習到的路由針對於55.1.1.0/24是24位的掩碼,而不是32位的。
最終,R4 traceroute 55.1.1.1的結果是:
這裏能夠看到R4的數據包到了R1,R1對55.1.1.0/24分配的標籤是100.
當數據包到了R1之後,R2由於55.1.1.0/24是直連,因此分配的是空標籤給R1.R1將100標籤移除.將IP報文送給R2.
R2拿到這個IP報文,通過查詢,目的是55.1.1.1,他上面有55.1.1.1/32的路由,R3會爲這個前綴分配一個標籤30x給R2.
這個時候R2再將這個IP報文壓入標籤30x,而後進入MPLS轉發流程.
R2壓入30x的標籤進入該報文,送到R3,由於R5上面55.1.1.1/32是直連路由,R5會分配空標籤(3)給該前綴,而且將(3)分發給R3.
因此該MPLS包送到R3的時候,R3會移除以前的30x,而後剝離標籤,直接發送IP報文給R5.
因此自己一段完整的LSP,最後被分割成了兩斷。
以R2爲分界點.
下面是整個標籤準發的整個流程:
最後,再來整理一下標籤分發的過程:
1,R4始發該報文:
R4上面,路由表中對於55.1.1.x/24是24位的,由於R2作了area1的彙總,不會有明細32位的路由:
在R4上面,outgoing的標籤應該是R1針對55.1.1.0/24分配過來的:
這樣,IP包進入R4,而後R4 PUSH進一個100的標籤.將該MPLS報文轉發給R1.
2, R1轉發MPLS報文.
R1上面對於55.1.1.0/24的路由前綴,是由R2分配的標籤.
由於55.1.1.0/24是由R2產生的,也能夠認爲是R2的直連路由,因此R2會分配一個空標籤給R1.
R1如今收到標籤爲100的MPLS報文,會作的動做是pop彈出該標籤.
由於R1爲55.1.1.0/24分配的是一個(3),隱式空標籤.
因此R1收到了相關的100標籤的報文,直接彈出,而後經過接口eth0/0發送給R2.
==============至此,第一個LSP已經完畢了===========================
==============下面是第二條LSP====================================
3, R2收到IP報文,繼續PUSH而後轉發MPLS報文給R3.
R2這個時候收到一個報文,目的地址是55.1.1.1.
IP進,MPLS出,應該查詢cef表:
R3爲55.1.1.1/32路由前綴分配的標籤是302.R2會將302做爲出口PUSH進入那個IP包.而後經過e1/0轉發給R3.
4, R3收到MPLS報文,pop掉標籤,純IP轉發給R5.
由於55.1.1.1/32是R5的直連路由,因此R5會分配空標籤(3)給LDP鄰居R3.
MPLS進,mpls出,查看R3的標籤轉發表:
當R3收到標籤是302的MPLS報文,會pop掉標籤,而後經過Et0/0發送純IP報文給R5.
最終R5收到了相關IP報文,本地直連路由。單向通信搞定。
因此最終的測試結果是: