MPLS(多協議標籤交換)下

MPLS體系結構
在這裏插入圖片描述

  • 我們在瞭解MPLS的結構的時候,一般情況都會介紹兩個平面,一個是控制平面,一個是轉發平面

  • 控制平面:負責產生和維護路由信息以及標籤信息。
    路由信息表RIB(Routing Information Base):由IP路由協議(IP Routing Protocol)生成,用於選擇路由。 標籤分發協議LDP(Label Distribution Protocol):負責標籤的分配、標籤轉發信息表的建立、標籤交換路徑的建立、拆除等工作。
    標籤信息表LIB(Label Information Base):由標籤分發協議生成,用於管理標籤信息。

  • 轉發平面:即數據平面(Data Plane),負責普通IP報文的轉發以及帶MPLS標籤報文的轉發。
    轉發信息表FIB(Forwarding Information Base):從RIB提取必要的路由信息生成,負責普通IP報文的轉發。
    標籤轉發信息表LFIB(Label Forwarding Information Base):簡稱標籤轉發表,由標籤分發協議在LSR上建立LFIB,負責帶MPLS標籤報文的轉發。

  • 這兩個灰色區域實際上能看作是一臺路由器,這臺路由器同時有兩個平面去達到效果。
    ·首先我們在控制平面去運行路由協議,路由器之間形成路由表RIB。路由表能夠用來做數據轉發,也就是Forwarding,因此RIB和FIB有連線

  • 控制平面:IP信息表,在轉發平面會有Ip forwading table。因此傳統IP轉發中,IGP是控制平面乾的事情,一旦形成了IP轉發表,數據來了的時候,就會使用轉發平面的IPFI(IP轉發表發送)。

  • 現在引入標籤,由於標籤的使用,也需要使用標籤的分發協議,例如這個路由器運行了標籤的路由協議,會生成一個標籤轉發表,因此分發標籤就是控制平面做的事情,形成標籤轉發表,就是轉發平面做的事情,也就是LFIB,標籤轉發數據庫

  • 面試中會進行詢問,控制平面的作用以及轉發平面的作用,我們需要知曉,控制平面是協議去做的,例如IGP,形成路由表,標籤協議形成標籤表等等;轉發平面就是使用形成的表進行數據轉發,例如下一跳出接口等等。

  • 如果現在收到一個IP報文,那麼就會去訪問FIB,然後轉發出去是一個IP報文或者是一個帶標籤的報文

  • 對於LFIB也是一樣,接受到一個帶着標籤的報文,可能會轉發出去一個普通的IP報文或者還是帶標籤的報文

  • 大家會發現FIB以及LFIB時間有個小箭頭,這個小箭頭代表的意思是:實際上在路由器中,如果沒有使能MPLS,那麼在IP轉發表或者FIB中是沒有任何標籤信息的,一旦路由器使用了MPLS,那麼就會生成標籤轉發表,那麼標籤信息滿足條件的也會放入到FIB表中,也就是FIB表中實際上會出現標籤信息,在這種情況下,FIB錶轉發的數據中會帶有標籤數據。

  • MPLS現在使用到的實際上都是幀模式,也有信元模式MPLS,實際上也就是ATM中使用的模式。但是由於ATM網絡我們現在不用了,因此MPLS信元模式也基本上用不到。

MPLS數據報文結構
在這裏插入圖片描述
在這裏插入圖片描述

  • 附加:MPLS標籤嵌套-標籤棧(Lable Stack)
    在這裏插入圖片描述

  • MPLS VPN中,我們只會用到兩個MPLS頭部,一個是外層標籤一個是內層標籤

  • MPLS TE中,我們一般情況上都是3個MPLS標籤,分別是頂層標籤、中間標籤以及底層標籤,如果出現4個,那麼就是比較複雜的情況
    - 如果沒有MPLS,就一個純的IGP,想用MPLS進行交換,那麼就一層標籤

  • 在進行通信的時候,實際上由RTA所連接的純IP的網絡,給RTA一個純IP的數據,那麼由RTA設備要去查FIB表,然後打上標籤,傳遞給RTB設備。

  • 在這裏插入圖片描述

  • NHLFE由三個參數組成,第一個是Nexthop 第二個是Out-Interface,第三個是label Operation(動作):Push代表的就是打上一個標籤或者去掉一個標籤
    在這裏插入圖片描述

  • 華爲設備用IP前綴去分FEC。

  • MPLS標籤操作類型:
    -①PUSH
    在這裏插入圖片描述
    -②Swap
    在這裏插入圖片描述
    -③Pop
    在這裏插入圖片描述
    LSP建立方式

  • LSP概念:

  • LSP建立的方式有兩種:
    -①靜態LSP
    -②動態LSP:
    在這裏插入圖片描述

LDP鄰居發現
在這裏插入圖片描述

  • LDP(Label Distribution Protocol):業界規範標籤分發協議。不同廠商存在不同標準,例如思科也有相應的分發協議,也就是思科的TDP,也是分配標籤的,但是隻能在思科設備上進行發送,由於不同廠商有不同的標準,因此我們就使用一個LDP進行統一
  • 在建立LDP鄰居的時候,必須要在需要做鄰居的這幾臺設備上,開啓LDP,類似於我們想要轉發路由信息,我們也必須在路由器上開啓ospf那樣。
    在這裏插入圖片描述
  • 創建完鄰居之後就是分配標籤,依據就是根據FEC進行分配,華爲設備上默認使用前綴進行分析。
  • 總的來說,LDP是用來在LSR之間建立LDP Session並交換Label/FEC映射信息的協議。
  • LDP發現機制實際上有兩種:
    -①LDP基本發現機制 發現直接連接在同一鏈路上的LSR鄰居,實際上就是自己直連鏈路上的LDP鄰居,類似於建立OSPF鄰居關係那樣,那麼在OSPF中我們建立鄰居關係發送hello包使用組播,那麼實際上對於LDP基本發現機制而言,使用的也是組播,是224.0.0.2
    -②LDP擴展發現機制 發現非直連的LSR鄰居,例如我們如果使用二層VPN等,這些應用需要跨多個設備去建立遠端的LDP Session,那麼基本的發現機制就搞不定了,需要使用擴展的發現機制。這個時候用的就不是組播而是單播了。
  • 在基本發現機制中,發現鄰居非常的簡單,就是互相發送hello包後,建立TCP連接,也就是TCP三次握手即可。
  • 基本發現機制的Hello特點:
    ①消息封裝在UDP中
    ②源目端口號爲646
    ③消息的目的IP地址爲組播地址,224.0.0.2
  • 如果hello交互完成之後,要去創建TCP連接的時候,用的是TCP目的端口號爲646。
  • 那麼這個TCP連接是由Transport Address大的發起,這個transport address是用來建立TCP連接使用的

LDP鄰居建立

  • LDP消息類型:(以下只是類型,不是真正的協議報文)
    ①Discovery message 宣告和維護網絡中一個LSR的存在
    ②Session message 建立、維護和終止LDP Peers之間的LDP Session
    ③Advertisemnet message 生成、改變和刪除FEC的標籤映射
    ④Notification message 宣告告警和錯誤信息 (和BGP裏面的很像,都是出問題了進行報告使用的)
  • 華爲LDP通告原則:
    ①設備默認情況下只爲/32的主機前綴分配標籤
    ②設備產生某條前綴的標籤後,會發送給所有的鄰居。
    ③標籤產生情況:
    1、本設備上所有/32的網絡都會產生
    2、通過路由表中的目的網段的下一跳路由器收到標籤,那麼這個時候我們要發送標籤

Penultimate Hop Popping
在這裏插入圖片描述

  • 在沒有使用PHP,也就是次末跳彈出之前,RTA發送數據包要去往100.1.1.1/32的數據轉發過程爲
    ①:RTA查看自身LIB表,將數據包根據LIB裏面的參數進行轉發,那麼就會給數據包打上MPLS的標籤爲1027
    ②:RTB收到RTA發來的帶着標籤的數據包的時候,不需要通過FIB然後直接通過LFIB查詢後,知道了標籤的in和out,因此就會將1027改爲1026,進行操作爲swap,然後將這個數據包發送給RTC,發給RTC之後,在沒有PHP的情況下,實際上又會進行個swap操作,然後對於RTD來說,首先需要去LFIB,看到裏面的out Label數值爲null,因此需要拆掉這個標籤,然後再通過自己的FIB進行查看,找到自己的目的地怎麼去,因此給RTD多加了一些資源耗損。【也就是RTD這臺設備所耗損的資源比其他設備要高,容易讓MPLS達到瓶頸】
  • 爲了應對這種情況,PHP的作用就出現了,引入PHP技術後,在倒數第二跳此網絡中的RTC,會收到來自最後一跳的路由器RTD一個值爲3(保留)的標籤,叫做隱式標籤。這個隱式標籤給次末跳的路由器,這樣它的LFIB表裏面就會出現一個out label=3的項,在這種情況下,它知道如果要將數據發出去,需要將label進行拆除,拆除之後,RTD就只需要去查看自己FIB表就能將數據包轉到100.1.1.1/32

【注意】:如果是基於MPLS要使用QoS的話,需要考慮一個問題,就是我們的標籤實際上都需要存在,在這種情況我們需要使用顯式標籤(0)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章