前言:
- 多協議標簽交換MPLS(Multiprotocol Label Switching)是一種IP(Internet Protocol)骨干網技術。MPLS在無連接的IP網絡上引入面向連接的標簽交換概念,將第三層路由技術和第二層交換技術相結合,充分發揮了IP路由的靈活性和二層交換的簡捷性
- MPLS實際上是一種隧道技術。這種技術不僅支持多種高層協議與業務,而且在一定程度上可以保證信息傳輸的安全性
基本概念
傳統的IP轉發采用的是逐跳轉發,數據報文經過每一臺路由器,都要被解封裝查看報文網絡層信息,然后根據路由最長匹配原則查找路由表指導報文轉發。各路由器重復進行解封裝查找路由表和再封裝的過程,所以轉發慢
MPLS是基于MPLS頭部實現數據快速轉發,節約了時間,所以轉發速度快
定義:
? ? ? ??MPLS(Multiprotocol Label Switching)是一種結合了第三層(網絡層)路由和第二層(數據鏈路層)交換的高效轉發技術。其核心思想是通過在數據包前添加標簽(Label),實現基于標簽的快速轉發,從而提升網絡性能并支持多種高級功能(如VPN、流量工程等)
組成:
-
MPLS域(MPLS Domain):一系列連續的運行MPLS的網絡設備構成了一個MPLS域
-
LSR(Label Switching Router,標簽交換路由器):進行MPLS標簽交換和報文轉發的網絡設備。位于MPLS域邊緣、連接其它網絡的LSR稱為邊沿路由器LER(Label Edge Router),區域內部的LSR稱為核心LSR(Core LSR)
LSR分類:
-
入站LSR(Ingress LSR):是向IP報文中壓入MPLS頭部并生成MPLS報文的的入口路由器
-
中轉LSR(Transit LSR):是將MPLS報文進行標簽置換等操作,并將該報文繼續在MPLS域中轉發的中間路由器
-
出站LSR(Egress LSR):是將MPLS報文中MPLS頭部移除,還原為IP報文的出口路由器
FEC和LSP:
FEC:
概念:?將具有相同特征的報文歸為一類,稱為轉發等價類FEC(Forwarding Equivalence Class),屬于相同FEC的報文在轉發過程中被LSR以相同方式處理
FEC可以根據源地址、目的地址、源端口、目的端口、VPN等要素進行劃分。例如,在傳統的采用最長匹配算法的IP轉發中,到同一條路由的所有報文就是一個轉發等價類
最常見的 FEC 就是目的 IP 地址前綴(由 IGP 路由決定),LSR 會為每個 FEC 分配標簽
LSP:
IP報文在MPLS網絡中經過的入站,中轉,出站路徑稱為標簽交換路徑LSP(Label Switched Path)。LSP是一個單向路徑,與數據流的方向一致
同一個FEC的報文通常采用相同的LSP穿越MPLS域 , 所以對同一個FEC,LSR用相同的標簽轉發
一條LSP可以有0個、1個或多個中間節點,但有且只有一個入節點和一個出節點
標簽:
IP報文進入MPLS域之前,會被入站LSR壓入MPLS頭部(又叫MPLS標簽),形成一個MPLS標簽報文,
一個標簽報文可以包含一個或多個MPLS標簽
標簽(Label)是一個短而定長的、只具有本地意義的標識符,用于唯一標識一個分組所屬的FEC。在某些情況下,例如要進行負載分擔,對應一個FEC可能會有多個入標簽,但是一臺設備上,一個標簽只能代表一個FEC
標簽的4個字段:
-
Label:20bit,標簽值域
-
Exp:3bit,用于擴展
-
S:1bit,棧底標識。S值為1時表明為最底層標簽頭部,為0就代表下面還有標簽頭部
-
TTL:8bit,用于當網絡出現環路時 , 防止標簽報被無限制轉發?
標簽棧:
標簽棧(Label Stack)是指標簽的排序集合(同時存在多個標簽頭部)
當標簽棧存在多個標簽時:
-
最靠近二層頭部的標簽是棧頂標簽,標簽中的s字段為0
-
最靠近IP頭部的標簽是棧底標簽,標簽中的s字段為1
?MPLS標簽的處理:
標簽操作類型包括標簽壓入(Push)、標簽交換(Swap)和標簽彈出(Pop),它們是標簽轉發的基本動作
-
Push:當IP報文進入MPLS域時,MPLS邊界設備在報文二層首部和IP首部之間插入一個新標簽;或者MPLS中間設備根據需要,在標簽棧頂增加一個新的標簽(即標簽嵌套封裝)
-
Swap:當報文在MPLS域內轉發時,根據標簽轉發表,用下一跳分配的標簽,替換接收搭配的MPLS報文的棧頂標簽
-
Pop:當報文離開MPLS域時,將MPLS報文的標簽剝掉
問題:當MPLS報文到達最后一跳(Egress LER)時,標簽已完成使命(下一步需轉發原始IP包)。若Egress LER仍需執行撕標簽+查IP路由表兩步操作,效率較低
解決方案:讓倒數第二跳(Penultimate Hop)提前撕掉標簽,使Egress LER直接收到原始IP包,省去撕標簽動作,最后一跳節點直接進行IP轉發或者下一層標簽轉發,轉發速度更快
注釋:華為設備默認開啟PHP,支持PHP的Egress節點分配給倒數第二跳節點的標簽值為3。標簽3,代表?"直接撕掉我的標簽,不用替換新標簽"
MPLS的轉發:
MPLS轉發的本質就是將數據歸到對應的FEC并按照提前建立好的LSP進行轉發
- 對于整個MPLS域,LSP是某一特定的FEC進入域和離開域的路徑,可以看成是LSR的有序集合
- 對于單臺LSR,需要建立標簽轉發表,用標簽來標識FEC,并綁定相應的標簽處理和轉發等行為