技術 > 多協議標簽交換
  多協議標簽交換
  (mpls:multi-protocol label switching)
  多協議標簽交換(mpls)是一種用於快速數據包交換和路由的體係,它為網絡數據流量提供了目標、路由、轉發和交換等能力。更特殊的是,它具有管理各種不同形式通信流的機製。mpls 獨立於第二和第三層協議,諸如 atm 和 ip。它提供了一種方式,將 ip 地址映射為簡單的具有固定長度的標簽,用於不同的包轉發和包交換技術。它是現有路由和交換協議的接口,如 ip、atm、幀中繼、資源預留協議(rsvp)、開放最短路徑優先(osrf)等等。
  在 mpls 中,數據傳輸發生在標簽交換路徑(lsp)上。lsp 是每一個沿着從源端到終端的路徑上的結點的標簽序列。現今使用着一些標簽分發協議,如標簽分發協議(ldp)、rsvp 或者建於路由協議之上的一些協議,如邊界網關協議(bgp)及 ospf。因為固定長度標簽被插入每一個包或信元的開始處,並且可被硬件用來在兩個鏈接間快速交換包,所以使數據的快速交換成為可能。
  mpls 主要設計來解决網路問題,如網路速度、可擴展性、服務質量(qos)管理以及流量工程,同時也為下一代 ip 中樞網絡解决寬帶管理及服務請求等問題。
  在這部分,我們主要關註通用 mpls 框架。有關 ldp、cr-ldp 和 rsvp-te 的具體內容可以參考個別文件。
  協議結構
  mpls 標簽結構:
  20 23 24 32 bit
  label exp s ttl
  label ╠ label 值傳送標簽實際值。當接收到一個標簽數據包時,可以查出棧頂部的標簽值,並且係統知道:a、數據包將被轉發的下一跳;b、在轉發之前標簽棧上可能執行的操作,如返回到標簽進棧頂入口同時將一個標簽壓出棧;或返回到標簽進棧頂入口然後將一個或多個標簽推進棧。
  exp ╠ 試用。預留以備試用。
  s ╠ 棧底。標簽棧中最後進入的標簽位置,該值為0,提供所有其它標簽入棧。
  ttl ╠ 生存期字段(time to live),用來對生存期值進行編碼。
  mpls 結構協議組包括:
  mpls:相關信令協議,如 ospf、bgp、atm pnni等。
  ldp:標簽分發協議(label distribution protocol)
  cr-ldp:基於路由受限標簽分發協議(constraint-based ldp)
  rsvp-te:基於流量工程擴展的資源預留協議(resource reservation protocol ╟ traffic engineering)
  1.1.1 mpls基本概念
  多協議標簽交換mpls最初是為了提高轉發速度而提出的。與傳統ip路由方式相比,它在數據轉發時,衹在網絡邊緣分析ip報文頭,而不用在每一跳都分析ip報文頭,從而節約了處理時間。
  mpls起源於ipv4(internet protocol version 4),其核心技術可擴展到多種網絡協議,包括ipx(internet packet exchange)、appletalk、decnet、clnp(connectionless network protocol)等。“mpls”中的“multiprotocol”指的就是支持多種網絡協議。
  有關mpls的詳細介紹可參考rfc3031(multiprotocol label switching architecture)。
  轉發等價類
  mpls作為一種分類轉發技術,將具有相同轉發處理方式的分組歸為一類,稱為轉發等價類fec(forwarding equivalence class)。相同轉發等價類的分組在mpls網絡中將獲得完全相同的處理。
  轉發等價類的劃分方式非常靈活,可以是源地址、目的地址、源端口、目的端口、協議類型、vpn等的任意組合。例如,在傳統的采用最長匹配算法的ip轉發中,到同一個目的地址的所有報文就是一個轉發等價類。
  標簽
  標簽是一個長度固定、衹具有本地意義的短標識符,用於唯一標識一個分組所屬的轉發等價類fec。在某些情況下,例如要進行負載分擔,對應一個fec可能會有多個標簽,但是一個標簽衹能代表一個fec。
  標簽由報文的頭部所攜帶,不包含拓撲信息,衹具有局部意義。標簽的長度為4個字節,封裝結構如圖1-1所示。
  標簽共有4個域:
  l label:20比特,標簽值字段,用於轉發的指針;
  l exp:3比特,保留,用於試驗,現在通常用做cos(class of service);
  l s:1比特,棧底標識。mpls支持標簽的分層結構,即多重標簽,s值為1時表明為最底層標簽;
  l ttl:8比特,和ip分組中的ttl(time to live)意義相同。
  標簽與atm的vpi/vci以及frame relay的dlci類似,是一種連接標識符。
  l 如果鏈路層協議具有標簽域,如atm的vpi/vci或frame relay的dlci,則標簽封裝在這些域中;
  l 如果鏈路層協議沒有標簽域,則標簽封裝在鏈路層和ip層之間的一個墊層中
  frame mode:幀模式
  cell mode:信元模式
  標簽交換路由器
  標簽交換路由器lsr(label switching router)是mpls網絡中的基本元素,所有lsr都支持mpls協議。
  lsr由兩部分組成:控製單元和轉發單元。
  l 控製單元負責標簽的分配、路由的選擇、標簽轉發表的建立、標簽交換路徑的建立、拆除等工作;
  l 轉發單元則依據標簽轉發表對收到的分組進行轉發。
  標簽發佈協議
  標簽發佈協議是mpls的控製協議,它相當於傳統網絡中的信令協議,負責fec的分類、標簽的分配以及lsp的建立和維護等一係列操作。
  mpls可以使用多種標簽發佈協議。
  l 包括專為標簽發佈而製定的協議,例如:ldp(label distribution protocol)、cr-ldp(constraint-routing label distribution protocol);
  l 也包括現有協議擴展後支持標簽發佈的,例如:bgp(border gateway protocol)、rsvp(resource reservation protocol)。
  ne80e支持上述標簽發佈協議,並支持手工配置標簽。
  標簽交換路徑
  一個轉發等價類在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的基本工作過程:
  1. ldp和傳統路由協議(如ospf、isis等)一起,在各個lsr中為有業務需求的fec建立路由表和標簽映射表;
  2. 入節點ingress接收分組,完成第三層功能,判定分組所屬的fec,並給分組加上標簽,形成mpls標簽分組,轉發到中間節點transit;
  3. transit根據分組上的標簽以及標簽轉發表進行轉發,不對標簽分組進行任何第三層處理;
  4. 在出節點egress去掉分組中的標簽,繼續進行後面的轉發。
  由此可以看出,mpls並不是一種業務或者應用,它實際上是一種隧道技術,也是一種將標簽交換轉發和網絡層路由技術集於一身的路由與交換技術平臺。這個平臺不僅支持多種高層協議與業務,而且,在一定程度上可以保證信息傳輸的安全性。
  1.1.3 mpls的體係結構
  在mpls的體係結構中:
  l 控製平面(control plane)之間基於無連接服務,利用現有ip網絡實現;
  l 轉發平面(forwarding plane)也稱為數據平面(data plane),是面嚮連接的,可以使用atm、幀中繼等二層網絡。
  mpls使用短而定長的標簽(label)封裝分組,在數據平面實現快速轉發。
  在控製平面,mpls擁有ip網絡強大靈活的路由功能,可以滿足各種新應用對網絡的要求。
  對於核心lsr,在轉發平面衹需要進行標簽分組的轉發。
  對於ler,在轉發平面不僅需要進行標簽分組的轉發,也需要進行ip分組的轉發,前者使用標簽轉發表lfib,後者使用傳統轉發表fib(forwarding information base)。
  1.1.4 mpls與路由協議
  ldp利用路由轉發表建立lsp
  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
  1.1.5 參考信息
  如果要更詳細瞭解mpls的原理,請參考以下文檔。
  rfc3031:multiprotocol label switching architecture
  1.2 mpls的應用
  隨着asic技術的發展,路由查找速度已經不是阻礙網絡發展的瓶頸。這使得mpls在提高轉發速度方面不再具備明顯的優勢。
  但由於mpls結合了ip網絡強大的三層路由功能和傳統二層網絡高效的轉發機製,在轉發平面采用面嚮連接方式,與現有二層網絡轉發方式非常相似,這些特點使得mpls能夠很容易地實現ip與atm、幀中繼等二層網絡的無縫融合,並為流量工程te(traffic engineering)、虛擬專用網vpn(virtual private network)、服務質量qos(quality of service)等應用提供更好的解决方案。
  1.2.1 基於mpls的vpn
  傳統的vpn一般是通過gre(generic routing encapsulation)、l2tp(layer 2 tunneling protocol)、pptp(point to point tunneling protocol)等隧道協議來實現私有網絡間數據流在公網上的傳送。而lsp本身就是公網上的隧道,所以用mpls來實現vpn有天然的優勢。
  基於mpls的vpn就是通過lsp將私有網絡的不同分支聯結起來,形成一個統一的網絡,如圖1-6所示。基於mpls的vpn還支持對不同vpn間的互通控製。圖1-6中:
  l ce(customer edge)是用戶邊緣設備,可以是路由器,也可以是交換機或主機;
  l pe(provider edge)是服務商邊緣路由器,位於骨幹網絡。
  在骨幹網絡中,還存在p(provider),是服務提供商網絡中的骨幹路由器,不與ce直接相連。p設備衹需要具備基本mpls轉發能力,不維護vpn信息。
  基於mpls的vpn具有以下特點:
  l pe負責對vpn用戶進行管理、建立各pe間lsp連接、同一vpn用戶各分支間路由分派。
  l pe間的路由分派通常是用ldp或擴展的bgp協議實現。
  l 支持不同分支間ip地址復用和不同vpn間互通。
  1.2.2 基於mpls的qos
  ne80e支持基於mpls的流量工程和差分服務diff-serv特性,在保證網絡高利用率的同時,可以根據不同數據流的優先級實現差別服務,從而為語音,視頻數據流提供有帶寬保證的低延時、低丟包率的服務。
  由於全網實施流量工程的難度比較大,因此,在實際的組網方案中往往通過差分服務模型來實施qos。
  diff-serv的基本機製是在網絡邊緣,根據業務的服務質量要求將該業務映射到一定的業務類別中,利用ip分組中的ds(differentiated service)字段(由tos域而來)唯一的標記該類業務;然後,骨幹網絡中的各節點根據該字段對各種業務采取預先設定的服務策略,保證相應的服務質量。
  diff-serv對服務質量的分類和標簽機製與mpls的標簽分配十分相似,事實上,基於mpls的diff-serv就是通過將ds的分配與mpls的標簽分配過程結合來實現的。