概述 多協定標籤交換(Multi-Protocol Label Switching,MPLS)是新一代的IP高速骨幹網路交換標準,由網際網路工程任務組(Internet Engineering Task Force,IETF)提出。
MPLS是利用標記(label)進行數據轉發的。當分組進入網路時,要為其分配固定長度的短的標記,並將標記與分組封裝在一起,在整個轉發過程中,交換節點僅根據標記進行轉發。
在MPLS 中,數據傳輸發生在標籤交換路徑(LSP)上。LSP 是每一個沿著從源端到
終端 的路徑上的結點的標籤序列。
MPLS 主要設計來解決網路問題,如網路速度、可擴展性、服務質量(
QoS )管理以及流量工程,同時也為下一代IP 中樞網路解決寬頻管理及服務請求等問題。
在這部分,我們主要關注通用MPLS 框架。有關
LDP 、CR-LDP 和RSVP-TE 的具體內容可以參考個別檔案。
多協定標籤交換MPLS最初是為了提高轉發速度而提出的。與傳統IP路由方式相比,它在數據轉發時,只在
網路邊緣 分析IP
報文 頭,而不用在每一跳都分析IP報文頭,從而節約了處理時間。
MPLS起源於IPv4(Internet Protocol version 4),其核心技術可擴展到多種
網路協定 ,包括IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。“MPLS”中的“Multiprotocol”指的就是支持多種
網路協定 。
協定結構 MPLS 標籤結構:
20 23 24 32 bit
Label ―Label 值傳送標籤實際值。當接收到一個標籤
數據包 時,可以查出棧頂部的標籤值,並且系統知道:A、數據包將被轉發的下一跳;B、在轉發之前標籤棧上可能執行的操作,如返回到標籤
進棧 頂入口同時將一個標籤壓出棧;或返回到標籤進棧頂入口然後將一個或多個標籤推進棧。
Exp ―優先權。Experimental Bits用以表示從0到7的報文優先權欄位。
S ―棧底。標籤棧中最後進入的標籤位置,s值為0。S值為1表明此為最底層標籤。 正因為這個欄位表明了MPLS的標籤理論上可以無限嵌套,從而提供無限的業務支持能力。這是MPLS技術最大魅力所在。
TTL ―生存期欄位(Time to Live),用來對生存期值進行編碼。與IP
報文 中的TTL值功能類似,同樣是提供一種防環機制。
協定組 MPLS:相關信令協定,如OSPF、BGP、ATM PNNI等。
LDP:標籤分發協定(Label Distribution Protocol)
CR-LDP:基於
路由 受限標籤分發協定(Constraint-Based LDP)
RSVP-TE:基於流量工程擴展的資源預留協定(resource Reservation Protocol –Traffic Extension)
分類 基於MPLS的VPN
傳統的
VPN 一般是通過
GRE (Generic Routing Encapsulation)、
L2TP (Layer 2 Tunneling Protocol)、
PPTP (Point to Point Tunneling Protocol)、
IPSec 協定等隧道協定來實現私有網路間數據流在公網上的傳送。而
LSP 本身就是公網上的隧道,所以用MPLS來實現VPN有天然的優勢。
基於MPLS的VPN就是通過LSP將私有網路的不同分支聯結起來,形成一個統一的網路。基於MPLS的VPN還支持對不同VPN間的互通控制。
PE(Provider Edge)是服務商
邊緣路由器 ,位於骨幹網路。
在骨幹網路中,還存在P(Provider),是
服務提供商 網路中的骨幹
路由器 ,不與CE直接相連。P設備只需要具備基本MPLS轉發能力,可以將其配置為M-BGP的
路由反射器 ,不維護VPN信息。
基於MPLS的VPN具有以下特點:
PE負責對VPN用戶進行管理、建立各PE間LSP連線、同一VPN用戶各分支間路由分派。
基於MPLS的QoS
由於全網實施流量工程的難度比較大,因此,在實際的組網方案中往往通過差分服務模型來實施QoS。
Diff-Serv的基本機制是在
網路邊緣 ,根據業務的服務質量要求將該業務映射到一定的業務類別中,利用IP分組中的DS(Differentiated Service)欄位(由ToS域而來)唯一的標記該類業務;然後,骨幹網路中的各節點根據該欄位對各種業務採取預先設定的服務策略,保證相應的服務質量。
Diff-Serv對服務質量的分類和標籤機制與MPLS的標籤分配十分相似,事實上,基於MPLS的Diff-Serv就是通過將DS的分配與MPLS的標籤分配過程結合來實現的。
工作過程 1. LDP和傳統
路由協定 (如OSPF、ISIS等)一起,在各個LSR中為有業務需求的FEC建立
路由表 和標籤映射表
2. 入
節點 Ingress接收分組,完成第三層功能,判定分組所屬的FEC,並給分組加上標籤,形成MPLS標籤分組,轉發到中間節點Transit
3. Transit根據分組上的標籤以及標籤
轉發表 進行轉發,不對標籤分組進行任何第三層處理
4. 在出節點Egress去掉分組中的標籤,繼續進行後面的轉發。
由此可以看出,MPLS並不是一種業務或者套用,它實際上是一種
隧道技術 ,也是一種將標籤交換轉發和
網路層 路由技術 集於一身的路由與交換技術平台。這個平台不僅支持多種高層協定與業務,而且,在一定程度上可以保證信息傳輸的安全性。
體系結構 MPLS網路是指由運行MPLS協定的交換節點構成的區域。這些交換節點就是MPLS標記交換路由器,按照它們在MPLS網路中所處位置的不同,可劃分為MPLS標記邊緣路由器(LER: label edge router)和MPLS標記核心路由器(LSR:label switching router)。顧名思義,LER位於MPLS網路邊緣與其他網路或者用戶相連;LSR位於MPLS網路內部。兩類路由器的功能因其在網路中位置的不同而略有差異。
在MPLS的體系結構中:
控制平面(Control Plane)之間基於無連線服務,利用現有IP網路實現。
轉發平面(Forwarding Plane)也稱為數據平面(Data Plane),是面向連線的,可以使用ATM、
幀中繼 等二層網路。
MPLS使用短而定長的標籤(label)
封裝 分組,在數據平面實現快速轉發。
在控制平面,MPLS擁有IP網路強大靈活的路由功能,可以滿足各種新套用對網路的要求。
對於核心
LSR ,在轉發平面只需要進行標籤分組的轉發。
對於LER,在轉發平面不僅需要進行標籤分組的轉發,也需要進行IP分組的轉發,前者使用標籤
轉發表 LFIB,後者使用傳統轉發表FIB(Forwarding Information Base)。
路由協定 LDP通過逐跳方式建立LSP時,利用沿途各LSR路由
轉發表 中的信息來確定
下一跳 ,而路由轉發表中的信息一般是通過IGP、BGP等
路由協定 收集的。LDP並不直接和各種
路由協定 關聯,只是間接使用路由信息。
通過已有協定的擴展支持MPLS標籤分發
雖然LDP是專門用來實現標籤分發的協定,但LDP並不是唯一的標籤分發協定。通過對BGP、RSVP(Resource Reservation Protocol)等已有協定進行擴展,也可以支持MPLS標籤的分發。
通過某些路由協定的擴展支持MPLS套用
在MPLS的套用中,也可能需要對某些
路由協定 進行擴展。例如,基於MPLS的VPN套用需要對BGP進行擴展,使BGP能夠傳播VPN的
路由 信息;基於MPLS的流量工程TE(Traffic Engineering)需要對OSPF或IS-IS協定進行擴展,以攜帶鏈路狀態信息。
LSPM: LSP Management
轉發技術 MPLS作為一種分類轉發技術,將具有相同轉發處理方式的分組歸為一類,稱為轉發等價類FEC(Forwarding Equivalence Class)。相同轉發等價類的分組在MPLS網路中將獲得完全相同的處理。
轉發等價類 的劃分方式非常靈活,可以是源地址、目的地址、
源連線埠 、目的連線埠、協定類型、VPN等的任意組合。例如,在傳統的採用最長匹配算法的IP轉發中,到同一個目的地址的所有
報文 就是一個
轉發等價類 。
標籤 標籤是一個長度固定、只具有本地意義的短
標識符 ,用於唯一標識一個分組所屬的
轉發等價類 FEC。在某些情況下,例如要進行負載分擔,對應一個FEC可能會有多個標籤,但是一個標籤只能代表一個FEC。
標籤由
報文 的頭部所攜帶,不包含拓撲信息,只具有局部意義。標籤的長度為4個位元組,
封裝 結構如圖1-1所示。
標籤共有4個域:
1. Label:20比特,標籤值欄位,用於轉發的
指針 。
2. Exp:3比特,保留,用於試驗,現在通常用做CoS(Class of Service)。
3. S:1比特,棧底標識。MPLS支持標籤的
分層結構 ,即多重標籤,S值為1時表明為最底層標籤。
4.TTL:8比特,和IP分組中的TTL(Time To Live)意義相同。
標籤與ATM的VPI/VCI以及Frame Relay的DLCI類似,是一種連線標識符。
如果
鏈路層 協定具有標籤域,如ATM的VPI/VCI或Frame Relay的DLCI,則標籤
封裝 在這些域中。
如果
鏈路層 協定沒有標籤域,則標籤
封裝 在鏈路層和IP層之間的一個墊層中。
Frame mode:幀模式。
Cell mode:信元模式。
標籤交換路由器
標籤交換路由器LSR(Label Switching Router)是MPLS網路中的基本元素,所有LSR都支持MPLS協定。
LSR由兩部分組成:控制單元和轉發單元。
控制單元負責標籤的分配、路由的選擇、標籤
轉發表 的建立、標籤交換路徑的建立、拆除等工作
標籤發布
標籤發布協定是MPLS的控制協定,它相當於傳統網路中的信令協定,負責FEC的分類、標籤的分配以及LSP的建立和維護等一系列操作。
MPLS可以使用多種標籤發布協定。
包括專為標籤發布而制定的協定,例如:LDP(Label Distribution Protocol)、CR-LDP(Constraint-Routing Label Distribution Protocol)。
也包括現有協定擴展後支持標籤發布的,例如:BGP(Border Gateway Protocol)、RSVP(Resource Reservation Protocol)。
標籤交換路徑
一個
轉發等價類 在MPLS網路中經過的路徑稱為標籤交換路徑LSP(Label Switched Path)。
LSP在功能上與ATM和Frame Relay的虛電路相同,是從入口到出口的一個單向路徑。LSP中的每個
節點 由LSR組成,根據
數據傳送 的方向,相鄰的LSR分別稱為上游LSR和下游LSR。
標籤交換路徑LSP分為
靜態 LSP和動態LSP兩種。
靜態 LSP由管理員手工配置,動態LSP則利用
路由協定 和標籤發布協定動態產生。
位於MPLS域邊緣、連線其它用戶網路的LSR稱為邊緣LSR,即LER(Label Edge Router),區域內部的LSR稱為核心LSR。核心LSR可以是支持MPLS的路由器,也可以是由ATM交換機等升級而成的ATM-LSR。域內部的LSR之間使用MPLS通信,MPLS域的邊緣由LER與傳統IP技術進行適配。
分組被打上標籤後,沿著由一系列LSR構成的標籤交換路徑LSP傳送,其中,入
節點 LER被稱為Ingress,出節點LER被稱為Egress,中間的節點則稱為Transit。
參考信息 如果要更詳細了解MPLS的原理,請參考以下文檔。
RFC3031:Multiprotocol Label Switching Architecture
技術特點 1 充分採用原來的IP路由,在此基礎上加以改進;保證了MPLS網路路由具有靈活性的特點
2 採用 ATM的高效傳輸交換方式,拋棄了複雜的ATM信令,無縫地將IP技術的優點融合到ATM的高效硬體轉發中
3 MPLS網路的數據傳輸和路由計算分開,是一種面向連線的傳輸技術,能夠提供有效的QOS保證
4 MPLS不但支持多種網路層技術,而且是一種與鏈路層無關的技術,它同時支持X.25 幀中繼 ATM PPP SDH DWDM 等 ,保證了多種網路的互連互通,使得各種不同的網路傳輸技術統一在同一各MPLS平台上
5 MPLS支持大規模層次化的網路拓撲結構,具有良好的網路擴展性
6 MPLS的標籤合併機制支持不同數據流的合併傳輸
7 MPLS支持流量工程 COS QOS 和大規模的虛擬專用網
工作原理 MPLS是基於標記的IP路由選擇方法。這些標記可以被用來代表逐跳式或者顯式路由,並指明服務質量(QoS)、虛擬專網以及影響一種特定類型的流量(或一個特殊用戶的流量)在網路上的傳輸方式等各類信息。MPLS採用簡化了的技術,來完成第三層和第二層的轉換。它可以提供每個IP數據包一個標記,將之與IP數據包封裝於新的MPLS數據包,由此決定IP數據包的傳輸路徑以及優先順序,而與MPLS兼容的路由器會在將IP數據包按相應路徑轉發之前僅讀取該MPLS數據包的包頭標記,無須再去讀取每個IP數據包中的IP位址位等信息,因此數據包的交換轉發速度大大加快。
目前的路由協定都是在一個指定源和目的地之間選擇最短路徑,而不論該路徑的頻寬、載荷等鏈路狀態,對於缺乏安全保障的鏈路也沒有一種顯式方法來繞過它。利用顯式路由選擇,就可以靈活選擇一條低延遲、安全的路徑來傳輸數據。
MPLS協定實現了第三層的路由到第二層的交換的轉換。MPLS可以使用各種第二層協定。MPLS工作組到目前為止已經把在幀中繼、ATM和PPP鏈路以及IEEE802.3區域網路上使用的標記實現了標準化。MPLS在幀中繼和ATM上運行的一個好處是它為這些面向連線的技術。
帶來了IP的任意連通性。目前MPLS的主要發展方向是在ATM方面。這主要是因為ATM具有很強的流量管理功能,能提供QoS方面的服務,ATM和MPLS技術的結合能充分發揮在流量管理和QoS方面的作用。標記是用於轉發數據包的報頭,報頭的格式則取決於網路特性。在路由器網路中,標記是單獨的32位報頭;在ATM中,標記置於虛電路標識符/虛通道標識符(VCI/VPI)信元報頭中。對於MPLS可擴展性非常關鍵的一點是標記只在通信的兩個設備之間有意義。在網路核心,路由器/交換機只解讀標記並不去解析IP數據包。
IP包進入網路核心時,邊界路由器給它分配一個標記。自此,MPLS設備就會自始至終查看這些標記信息,將這些有標記的包交換至其目的地。由於路由處理減少,網路的等待時間也就隨之縮短,而可伸縮性卻有所增加。MPLS數據包的服務質量類型可以由MPLS邊界路由器根據IP包的各種參數來確定,如IP的源地址、目的地址、連線埠號、TOS值等參數。
對於到達同一目的地的IP包,可根據其TOS值的要求來建立不同的轉發路徑,以達到其對傳輸質量的要求。同時,通過對特殊路由的管理,還能有效地解決網路中的負載均衡和擁塞問題。當網路中出現擁塞時,MPLS可實時建立新的轉發路由來分散流量以緩解網路擁塞。
MPLS交換採用面向連線的工作方式,面向連線的工作方式就是信息傳送要經過以下三個階段:建立連線、數據傳輸和拆除連線。對於MPLS來說,建立連線就是形成標記交換路徑LSP的過程;數據傳輸就是數據分組沿LSP進行轉發的過程;而拆除連線則是通信結束或發生故障異常時釋放LSP的過程。
建立連線
(1)驅動連線建立的方式
MPLS技術支持三種驅動虛連線建立的方式:拓撲驅動、請求驅動和數據驅動。
(2)標記分配
(3)連線建立過程
(4)MPLS路由方式
數據傳輸
MPLS網路的數據傳輸採用基於標記的轉發機制。
(1)入口LER的處理過程
當數據流到達入口LER時,入口LER需完成三項工作:將數據分組映射到LSP上;將數據分組封裝成標記分組;將標記分組從相應連線埠轉發出去。
(2)LSR的處理過程
LSR從“SHIM”中獲得標記值,用此標記值索引LIB表,找到對應表項的輸出連線埠和輸出標記,用輸出標記替換輸入標記,從輸出連線埠轉發出去。
(3)出口LER的處理過程
出口路由器為數據分組在MPLS網路中經歷的最後一個節點,所以出口路由器要進行相應的彈出標記等操作。
拆除連線
因為MPLS網路中的虛連線,也就是LSP路徑是由標記所標識的裸機信道串聯而成的,所以連線的拆除也就是標記的取消。標記的取消方式主要有兩種,一種是採用計時器的方式;一種是不設定定時器。
套用 隨著ASIC技術的發展,路由查找速度已經不是阻礙
網路發展 的瓶頸。這使得MPLS在提高轉發速度方面不再具備明顯的優勢。
但由於MPLS結合了IP網路強大的三層路由功能和傳統二層網路高效的轉發機制,在轉發平面採用面向連線方式,與現有二層網路
轉發方式 非常相似,這些特點使得MPLS能夠很容易地實現IP與ATM、幀中繼等二層網路的無縫融合,並為流量工程TE(Traffic Engineering)、
虛擬專用網 VPN(Virtual Private Network)、服務質量QoS(Quality of Service)等套用提供更好的解決方案。
雲套用 雲架構
IaaS層的安全機制通過接口技術描述了對雲端與客戶端的連線進行控制的必要性,但卻沒有定義一個子層對雲中的兩個雙向通信的實體間的連線進行控制,這便導致實體間的通信並不可靠。所以本文通過在IaaS層中增加一個子層CaaS(Communication as a Service,通信服務)層來確保兩個實體間通信的安全性,這個子層模型是建立在MPLS技術基礎上的。通過將MPLS技術運用到CaaS層中則可以提高“雲”中數據傳輸的安全性及可靠性,並且能夠有效預防DDoS等攻擊。CaaS層嵌入到IaaS層中的結構如圖1所示。
CaaS層嵌入到IaaS層中結構
圖1 CaaS層嵌入到IaaS層中結構
CaaS子層功能
初始化: 初始化包含兩個過程。首先會將虛擬邏輯分區內的CPU初始化得到一個32bit的隨機數字,這個之後會通過AES(Advanced Encryption Standard,高級加密標準J形成一個128bit的會話密鑰。一個密鑰將只對應一個邏輯分區。然後,再對網路進行初始化後開始CE(Customer Edge,用戶邊緣設備)之間的通信。
協定認證: 在MPLS網路中的路由對相互之間傳送的數據包進行校驗。MPLS網路中的攻擊一般發生在對數據包進行標籤標記時,所以只有當數據包經過認證後才能進行標記。路由器通過認證協定來識別路由和路徑。這為未知網路之間建立了可靠的識別機制,從未知網路傳輸過來的數據包一旦未通過驗證就會被丟棄,這就大大減少了發生攻擊的危險。
密鑰交換: IKE(Internet Key,密鑰交換)為兩個需要進行通信的雲用戶間或雲用戶與雲供應商間建立一種關聯SA(SecurityAssociation,安全關聯),同時負責密鑰的生成與管理。SA可對兩個通信主體間的協定進行編碼,以確認它們使用何種算法、密鑰及密鑰的長度。IKE建立SA分兩階段來完成:第一階段先在兩個通信主體之間建立一個通信信道並對該信道進行認證,第二階段則通過已建立的通信信道建立SA。SA存在一個生命周期,當會話密鑰逾時,就會向對方主機傳送一個第一階段SA刪除命令,然後雙方重新進行SA協商。密鑰的周期性決定了超過一定時間限制,一定會生成新的密鑰,這便大大增強了密鑰的健壯性與可靠性。這也是在雲計算中使用密鑰交換的一個重要原因。
建立通信: CE之間的連線通過標籤邊緣路由進行建立。在MPLS網路中,LSP(Labelb Switch Path,標籤交換路徑)是由兩個端點間的標記所決定的,分為動態LSP和靜態LSP兩類。動態LSP是由路由信息生成的,而靜態LSP是指定的。邏輯分區使用AES算法對數據進行加密這種加密是基於ECB(Electronic Code Book,電子源碼書)模式的,通過這種模式,數據流會快速傳送給雲用戶。加密使用的是一次性密鑰,即使數據包被探測到也很難對其解密,使得數據的安全性得到充分保證。
快取數據將會釋放 會話終止: 當雲用戶結束通信時,會話會自動終止,雲供應商將根據云用戶在會話期間使用的服務進行收費。同時,MPLS網路中的通信資源及虛擬處理器中的快取數據將會釋放。
環路處理 MPLS使用基於分散式計算的傳統IP
路由協定 ,在
網路拓撲結構 變化的瞬間,由這些協定計算得到的路由可能會瞬時產生環路。分組進入有環路的LSP傳送時可能會導致兩個基本問題(1)分組無法遞交到正確的目的地址(2)擁塞。發生環路後。即使採用TTL減和環路分組丟棄的方式分組仍可能在環路中存活很長時間,並占用大量的網路資源。這對其他沒有產生環路的數據分組的正確傳輸有很大影響。產生環路
數據包 造成的擁塞可能導致非環路數據包延遲加長或丟棄,嚴重時導致網路癱瘓。
在MPLS網路中有很多機制防止環路形成,在環路處理的方法上,一般要考慮使用該方法後環路可能發生的數量以及使用該方法對路由計算收斂性的影響。減少環路的發生意味著路由
收斂時間 更長。
MPLS網路的第二層環路處置有很多種方法,主要可以劃分為三類:
1.環路倖存這種方法通過諸如限制環路所能使用的網路資源的大小來最小化環路對網路服務性能的影響。
2.環路檢測允許環路的發生,但在隨後的檢測中發現環路時就刪除它們。