MPLS基本原理讲解
目錄
MPLS基礎概念
MPLS協議發展歷程
MPLS網絡結構
MPLS標簽分配和交換的體系結構
MPLS標簽結構
MPLS報文轉發
MPLS報文轉發涉及的相關概念
標簽操作動作
MPLS報文轉發的基本流程
MPLS報文轉發的具體流程 ??
MPLS對TTL的處理
MPLS基礎概念
MPLS(多協議標簽交換協議),是一種應用于運營商IP骨干網的數據交換技術,采用短而定長的標簽進行數據轉發。
MPLS起源于IPv4網絡,但目前其核心技術可通過擴展支持多種網絡層協議,如IPv6、IPX(因特網包交換)、CLNP(無連接網絡協議)等,在數據鏈路層上支持PPP、以太網、HDLC等多種協議
MPLS協議發展歷程
20世紀90年代,互聯網流量快速增長,由于路由器采用最長匹配算法逐跳轉發數據包,轉發效率低,成為網絡數據轉發的瓶頸,快速路由技術成為當時研究的熱點,在各種方案中,IETF確定了MPLS協議作為標準的協議。
不過隨著硬件技術的發展,路由查找速度已經不是阻礙網絡發展的瓶頸了,這使得MPLS在提高轉發速度方面不再具備明顯的優勢。MPLS在設計時定位在TCP/UDP網路體系結構中的2.5層位置,即位于鏈路層和網絡層之間,但是加上其“Multiprotocol”的設計理念,使得MPLS在VPN、TE(流量工程)、QoS等應用方面變得更加靈活
MPLS網絡結構
路由器角色
LSR(標簽交換路由器)
MPLS網絡中的路由器,進行MPLS標簽交換和報文轉發的網絡設備
LER(邊緣路由器)
位于MPLS網絡邊緣,連接其它網絡(如IP網絡)的LSR,主要進行標簽的分發和剝離
標簽轉發涉及的基本概念
LSP(標簽交換路徑)
IP報文在MPLS網路轉發過程中所經過的路徑
FEC(等價轉發類)
一般具有相同特征的報文為同一FEC
這個特征可以是報文的源IP地址、目的IP地址、源端口、目的端口、VPN實例、QoS策略等要素中的一個或者多個(在MPLS網絡中,常見的就是匹配相同路由的所有報文屬于一條FEC)
對于一條FEC來說,沿途所有設備都必須具有相同的路由(前綴和掩碼必須完全相同),才可以建立一條LSP(即不能隨便做路由聚合的操作)
FEC與LSP的關系
同一FEC的報文走的是同一條LSP
可以理解為 ?相同特征的報文打上同一標記,同一標記的走同一條路徑進行轉發
建立LSP的兩種標簽
標簽用來唯一標識一個FEC
入標簽(In lable) ?—— ?本地自己產生
出標簽(Out lable)—— ??由鄰居分配(針對動態LSP)
相同FEC的入標簽必須一致,出標簽必須一致
不同FEC的入標簽必須不同
不同FEC的出標簽可以相同,也可以不同
對于同一條FEC,出標簽和入標簽可以相同,也可以不同(入標簽是由本地分配的,出標簽是由下游節點分配的,之間沒有唯一性要求)
建立LSP的三種節點
一條LSP有且只有一個入節點和一個出節點,可以有0各或多個中間節點
需要先有LSP,才可以確定入節點、出節點等
入節點(Ingress)
LSP的入口LER稱為入節點(打標簽操作)
中間節點(Transit)
LSP的中間的LSR稱為中間節點(進行標簽交換和轉發)
出節點(Egress)
LSP的出口LER稱為入節點(剝離標簽操作)
MPLS標簽分配和交換的體系結構
MPLS體系主要是由控制平面和轉發平面構成
控制平面(產生和維護路由信息以及標簽信息)
RIB(Routing Information Base):由各種IP路由協議生成,用于進行路由選擇
LDP:一種動態標簽分發協議,負責MPLS標簽的分配、LFIB的建立,LSP的建立與拆除等工作
LIB(Label Information Base):由LDP生成(每個LSR都會基于所收到的每個FEC的標簽映射信息,建立LIB表項),用于管理標簽信息,包含FEC網段、入標簽、出標簽等信息
轉發平面(負責普通IP報文的轉發以及MPLS標簽報文的轉發)
FIB(Forwarding Information Base):用于指導IP報文轉發,從RIB提取必要的路由信息生成。包含目的網段、出接口、下一跳IP地址、路由標記、路由優先級等信息
LFIB(Label Forwarding Information Base):用于指導MPLS報文轉發,從LIB提取必要的信息生成,包含目的網段、出接口、下一跳、入標簽、出標簽等信息
?
MPLS標簽結構
MPLS標簽封裝在數據鏈路層和網絡層之間,總共32Bit
標簽(Label)是一個短而定長的、只有本地意義的表示,用于唯一標識一個FEC
Label(20bit):標簽值字段
?????? 0~15:特殊標簽
?????? ??????
16~1023:靜態LSP和MPLS TE中靜態CR-LSP共享的標簽空間。
1024及以上:LDP、RSVP-TE、MP-BGP等動態信令協議的標簽空間。
Exp(3bit):標識MPLS報文的優先級,數值越小,優先級越低,當設別阻塞時,優先發送優先級高的報文
S(1bit):棧底標識,由于MPLS支持多層標簽(即標簽嵌套),當S值為1時表明為最底層標簽,其它各層標簽S值為0
TTL(8bit):和IP報文中的TTL(Time To Live)意義相同,用于限制MPLS報文的傳輸距離
MPLS報文轉發
MPLS報文轉發涉及的相關概念
Tunnel ID字段:32bit,就只是本地有效,需要在本地設備上唯一
NHLFE:下一跳標簽轉發表項,用于指導MPLS報文轉發,包含Tunnel ID、出接口、出標簽、標簽操作類型等信息
ILM:入標簽映射,入標簽到下一跳標簽轉發表項的映射,包含Tunnel ID、入標簽、入接口、標簽操作類型等信息
在MPLS轉發過程中,FIB、ILM和NHLFE表現是通過Tunnel ID關聯的
可以將LFIB再細化為ILM表和NHLFE表
標簽操作動作
Push:標簽壓入, 可能會在Ingress或Transit節點上發生,在二層協議頭和IP頭部之間插入一個MPLS標簽,或者是在現有標簽棧頂再增加一個新的出標簽(標簽嵌套)
Swap:標簽交換,會在Transit節點上發生,通過ILM、Nhife表項查找下一臺哦
用下一跳分配的標簽交換MPLS報文中原有的棧頂標簽。原有MPLS報文可以攜帶一層或多層標簽,不過只會替換最外層標簽
Pop:標簽剝掉,會在倒數第二跳Transit節點(PHP特性-在LDP協議中有講解)或者Egress節點發生。MPLS報文離開MPLS域時剝離標簽,使得后續報文按照IP路由轉發。
MPLS報文轉發的基本流程
IP報文和MPLS報文的轉發主要是依靠FIB表和LFIB表項的
當收到普通IP報文時,查找FIB表,如果Tunnel ID為0x0,則進行普通報文IP轉發(通過FIB表轉發)。如果Tunnel ID為非0x0,則進行MPLS轉發(通過LFIB表)
當收到帶標簽的報文時,查找LFIB表,如果對應的標簽為普通標簽,則進行MPLS轉發。如果對應的標簽為特殊標簽(例如標簽3),則將標簽彈出,進行IP轉發
MPLS報文轉發的具體流程 ??
將LFIB再細化為ILM表和NHLFE表,來討論其轉發流程
不同節點對標簽不同的處理方式
Ingree:入節點,執行Push動作。
Transit:中間節點,執行Swap動作。
Egress:出節點,執行Pop動作。
?????? 如果標簽中的棧底標識S=1,則表明該標簽是棧底標簽,直接進行IP轉發
?????? 如果標簽中的棧底標識S=0,則表明還有下一層標簽,繼續下一層標簽轉發?
MPLS對TTL的處理
兩種模式,Uniform和Pope模式
Uniform模式:(缺省)
在入節點,IP TTL減1映射到MPLS TTL字段
此后報文在MPLS網絡中按照標準的TTL處理方式處理
在出節點將MPLS TTL減1后映射到IP TTL字段
Pipe模式:
在入節點,IP TTL值減1,MPLS TTL字段為固定值
此后報文在MPLS網絡中按照標準的TTL處理方式處理。
在出節點會將IP TTL字段的值減1。
即IP分組經過MPLS網絡時,無論經過多少跳,IP TTL只在入節點和出節點分別減1
注意事項
在MPLS VPN應用中,
出于網絡安全的考慮,需要隱藏MPLS骨干網絡的結構,
這種情況下,對于私網報文,Ingress上使用Pipe模式。
入節點系統視圖:undo ttl propagate? 配置ttl模式為Pipe
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ttl propagate? ? ? ? ? 配置ttl模式為propagate
總結
以上是生活随笔為你收集整理的MPLS基本原理讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python +selenium禁用谷歌
- 下一篇: sqoop导出 建表_hive中orc表