网络协议-MPLS
MPLS
- 簡介
- MPLS的工作原理
- MPLS的實現原理
- 靜態LSP的配置方法
- 動態LSP(LDP)的配置方法
- 相關信息
?
簡介
MPLS的起源
90年代中期,IP技術憑借技術簡單和成本低廉實現快速發展,Internet數據海量增長。
但由于硬件技術存在限制,基于最長匹配算法的IP技術必須使用軟件查找路由,轉發性能低下,因此IP技術的轉發性能成為當時限制網絡發展的瓶頸。
為了適應網絡的發展,ATM(Asynchronous Transfer Mode)技術應運而生。
ATM采用定長標簽(即信元),并且只需要維護比路由表規模小得多的標簽表,能夠提供比IP路由方式高得多的轉發性能。
然而,ATM協議相對復雜,且ATM網絡部署成本高,這使ATM技術很難普及。
如何結合IP與ATM的優點成為熱門話題。
多協議標簽交換技術MPLS(Multiprotocol Label Switching)就是在這種背景下產生的。
MPLS最初是為了提高路由器的轉發速度而提出的。與傳統IP路由方式相比,它在數據轉發時,只在網絡邊緣分析IP報文頭,而不用在每一跳都分析IP報文頭,節約了處理時間。
隨著ASIC技術的發展,路由查找速度已經不是阻礙網絡發展的瓶頸,這使得MPLS在提高轉發速度方面不再具備明顯的優勢。但是MPLS支持多層標簽和轉發平面面向連接的特性,使其在
VPN(Virtual Private Network)、流量工程、QoS(Quality of Service)等方面得到廣泛應用。
?
MPLS的定義
MPLS位于TCP/IP協議棧中的鏈路層和網絡層之間,用于向IP層提供連接服務,同時又從鏈路層得到服務。MPLS以標簽交換替代IP轉發,標簽是一個短而定長的、只具有本地意義的連接標識符,與ATM的VPI/VCI以及Frame Relay的DLCI類似。
MPLS不局限于任何特定的鏈路層協議,能夠使用任意二層介質傳輸網絡分組。MPLS起源于IPv4(Internet Protocol version 4),其核心技術可擴展到多種網絡協議,包括IPv6(Internet Protocol version 6)、IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。MPLS中的“Multiprotocol”指的就是支持多種網絡協議。
由此可見,MPLS并不是一種業務或者應用,它實際上是一種隧道技術,在一定程度上可以保證信息傳輸的安全性。
?
MPLS的工作原理
MPLS個工作原理主要包含兩部分內容:
- MPLS的體系結構是指運行MPLS的單個設備內部的獨立工作原理。
- MPLS的網絡結構是指運行MPLS的多個設備互連的聯合工作原理。
?
MPLS的體系結構
MPLS的體系結構由控制平面(Control Plane)和轉發平面(Forwarding Plane)組成:
- 控制平面是無連接的,主要功能是負責標簽的分配、LFIB(標簽轉發表,Lable Forwarding Information Base)的建立、 LSP(標簽交換路徑,Label Switched Path)的建立、拆除等工作。
- 轉發平面也稱為數據平面(Data Plane),是面向連接的,可以使用ATM、Ethernet等二層網絡承載,主要功能是對IP包進行標簽的添加和刪除,同時依據標簽轉發表對收到的分組進行轉發。
MPLS的體系結構如圖1-1所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1-1?MPLS體系結構示意圖使用?
?
- A:IP路由協議建立鄰居,交互路由信息,生成IP路由表。
- B:標簽交換協議從IP路由表中獲取路由信息。IP路由表中的路由前綴匹配了FEC(轉發等價類,Forwarding Equivalence Class),在傳統的采用最長匹配算法的IP轉發中,到同一條路由的所有報文就是一個FEC。
- C:IP路由表中激活的最優路由生成IP轉發表。
- D:標簽轉換協議建立鄰居,為FEC分配標簽并發布給鄰居,同時獲取鄰居發布的標簽,生成標簽轉發表。
MPLS轉發平面建立以后,設備中已經生成了IP轉發表和標簽轉發表,就可以對于接收到的數據包進行轉發,其過程如圖1-2所示。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1-2?MPLS轉發數據包過程示意圖
?
MPLS的網絡結構
MPLS網絡的典型結構如圖1-3所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1-3?MPLS網絡結構
MPLS網絡的基本組成單元是標簽交換路由器LSR(Label Switching Router):
- 位于MPLS域邊緣、連接其它網絡的LSR稱為邊沿路由器LER(Label Edge Router),如果一個LSR有一個或多個不運行MPLS的相鄰節點,那么該LSR就是LER。
- 區域內部的LSR稱為核心LSR(Core LSR),如果一個LSR的相鄰節點都運行MPLS,則該LSR就是核心LSR。
MPLS的實現原理
MPLS的實現原理是指:
為FEC(轉發等價類,Forwarding Equivalence Class)分配標簽來建立LSP(標簽交換路徑,Label Switched Path)。
?
MPLS LSP
IP包在MPLS網絡中經過的路徑稱為MPLS的LSP,即標簽交換的路徑,如圖1-4所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-4?MPLS LSP
MPLS LSP是一個單向路徑,與數據流的方向一致。
-
LSP的起始節點稱為入節點(Ingress):LSP的起始節點,一條LSP只能有一個Ingress。
Ingress的主要功能是給報文壓入一個新的標簽,封裝成MPLS報文進行轉發。
-
位于LSP中間的節點稱為中間節點(Transit):LSP的中間節點,一條LSP可能有0個或多個Transit。
Transit的主要功能是查找標簽轉發信息表,通過標簽交換完成MPLS報文的轉發。
-
LSP的末節點稱為出節點(Egress):LSP的末節點,一條LSP只能有一個Egress。
Egress的主要功能是彈出標簽,恢復成原來的報文進行相應的轉發。
其中Ingress和Egress既是LSR,又是LER;Transit是LSR。
根據數據傳送的方向,LSR可以分為上游和下游。
-
上游:以指定的LSR為視角,根據數據傳送的方向,所有往本LSR發送MPLS報文的LSR都可以稱為上游LSR。
-
下游:以指定的LSR為視角,根據數據傳送的方向,本LSR將MPLS報文發送到的所有下一跳LSR都可以稱為下游LSR。
?
MPLS標簽
標簽是一個短而定長的、只具有本地意義的標識符,用于唯一標識一個分組所屬的FEC。在某些情況下,例如要進行負載分擔,對應一個FEC可能會有多個入標簽,但是一臺LSR上,一個標簽只能代表一個FEC。
標簽長度為4個字節,封裝結構如圖1-5所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-5?MPLS報文首部結構
標簽共有4個域:
-
Label:20bit,標簽值域。
-
Exp:3bit,用于擴展。現在通常用做CoS(Class of Service),其作用與Ethernet802.1p的作用類似。
-
BoS:1bit,棧底標識。MPLS支持多層標簽,即標簽嵌套。S值為1時表明為最底層標簽。
-
TTL:8bit,和IP分組中的TTL(Time To Live)意義相同。
標簽封裝在鏈路層和網絡層之間。這樣,標簽能夠被任意的鏈路層所支持。標簽在分組中的封裝位置如圖1-6所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-6?標簽在分組中的封裝位置
標簽棧(Label stack)也稱為多層標簽,是指標簽的排序集合,如圖1-7所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1-7?標簽棧
靠近二層首部的標簽稱為棧頂標簽或外層標簽;靠近IP首部的標簽稱為棧底標簽,或內層標簽。
理論上,MPLS標簽可以無限嵌套。
?
標簽棧按后進先出(Last In First Out)方式組織標簽,從棧頂開始處理標簽。
標簽的操作類型包括標簽壓入(Push)、標簽交換(Swap)和標簽彈出(Pop),它們是標簽轉發的基本動作,是標簽轉發信息表的組成部分。
-
Push:指當IP報文進入MPLS域時,MPLS邊界設備在報文二層首部和IP首部之間插入一個新標簽;或者MPLS中間設備根據需要,在標簽棧頂增加一個新的標簽(即標簽嵌套封裝)。
-
Swap:當報文在MPLS域內轉發時,根據標簽轉發表,用下一跳分配的標簽,替換MPLS報文的棧頂標簽。
-
Pop:當報文離開MPLS域時,將MPLS報文的標簽去掉;或者MPLS倒數第二跳節點處去掉棧頂標簽,減少標簽棧中的標簽數目。
在最后一跳節點,標簽已經沒有使用價值。這種情況下,可以利用倒數第二跳彈出特性PHP(Penultimate Hop Popping),在倒數第二跳節點處將標簽彈出,減少最后一跳的負擔。最后一跳節點直接進行IP轉發或者下一層標簽轉發。PHP在Egress節點上配置,通過分配特殊的標簽值3來實現。標簽值3表示隱式空標簽(implicit-null),這個值不會出現在標簽棧中。當一個LSR發現自己被分配了隱式空標簽時,它并不用這個值替代棧頂原來的標簽,而是直接執行Pop操作。Egress節點直接進行IP轉發或下一層標簽轉發。
?
分配標簽來建立LSP
MPLS需要為報文事先分配好標簽,建立一條MPLS LSP,才能進行報文轉發。標簽由下游分配,按從下游到上游的方向分發。
如圖1-8所示,由下游LSR在IP路由表的基礎上進行FEC的劃分,并將標簽分配給特定FEC,再通過標簽發布協議通知上游LSR,以便建立標簽轉發表和LSP。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1-8?MPLS LSP的建立
LSP分為靜態LSP和動態LSP兩種:
靜態LSP由手工配置,動態LSP則利用路由協議和標簽發布協議動態建立。
?
MPLS可以使用多種標簽發布協議,例如LDP(Label Distribution Protocol)、RSVP-TE(Resource Reservation Protocol Traffic Engineering)和MP-BGP(Multiprotocol Border Gateway Protocol)。
LDP是專為標簽發布而制定的協議,也是其中使用較廣的一種。LDP規定了標簽分發過程中的各種消息以及相關的處理過程。LSR之間將依據轉發表中對應于一個特定FEC的入標簽、下一跳節點、出標簽等信息聯系在一起,從而形成標簽交換路徑LSP。
靜態LSP的配置方法
組網圖如圖1-9所示,3個節點運行OSPF作為IGP,在節點上通過配置靜態LSP來實現LSRA到LSRC之間的MPLS隧道承載。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1-9?靜態LSP配置示例組網圖
本例中interface1,interface2分別代表GE 1/0/0,GE 2配置文件示例如所表1-1示:
表1-1?靜態LSP配置文件示例
| # sysname LSRA # mpls lsr-id 192.168.1.9 # mpls # interface GigabitEthernet1/0/0undo shutdown ip address 10.1.1.1 255.255.255.0mpls # interface LoopBack1ip address 192.168.1.9 255.255.255.255 # ospf 1 area 0.0.0.0 network 10.1.1.0 0.0.0.255network 192.168.1.9 0.0.0.0 # static-lsp ingress AtoC destination 192.168.3.9 32 nexthop 10.1.1.2 out-label 20 # return | # sysname LSRB # mpls lsr-id 192.168.2.9 # mpls # interface GigabitEthernet1/0/0undo shutdown ip address 10.1.1.2 255.255.255.0mpls # interface GigabitEthernet2/0/0undo shutdown ip address 10.2.1.1 255.255.255.0mpls # interface LoopBack1ip address 192.168.2.9 255.255.255.255 # ospf 1 area 0.0.0.0 network 10.1.1.0 0.0.0.255network 10.2.1.0 0.0.0.255network 192.168.2.9 0.0.0.0 # static-lsp transit AtoC in-label 20 outgoing-interface GigabitEthernet2/0/0 nexthop 10.2.1.2 out-label 40 # return | # sysname LSRC # mpls lsr-id 192.168.3.9 # mpls # interface Gigabrnet1/0/0undo shutdown ip address 10.2.1.2 255.255.255.0mpls # interface LoopBack1ip address 192.168.3.9 255.255.255.255 # ospf 1 area 0.0.0.0 network 10.2.1.0 0.0.0.255network 192.168.3.9 0.0.0.0 #static-lsp egress AtoC incoming-interface GigabitEthernet1/0/0 in-label 40 # return |
檢查配置結果:在設備上查看靜態LSP的狀態,以LSRA為列,Lsp Status為Up。
<LSRA> display mpls static-lsp verboseNo : 1LSP-Name : AtoCLSR-Type : IngressFEC : 192.168.3.9/32In-Label : NULLOut-Label : 20In-Interface : -Out-Interface : GigabitEthernet1/0/0NextHop : 10.1.1.2Static-Lsp Type : NormalLsp Status : Up動態LSP(LDP)的配置方法
組網圖如圖1-10所示,3個節點運行OSPF作為IGP,在節點上通過配置動態LSP來實現LSRA到LSRC之間的MPLS隧道承載。
圖1-10?動態LSP配置示例組網圖
本例中interface1,interface2分別代表GE 1/0/0,GE 2/0/0。
配置文件示例如所表1-2示:
表1-2?動態LSP配置文件示例
| # sysname LSRA # mpls lsr-id 192.168.1.9 # mpls # mpls ldp # interface GigabitEthernet1/0/0undo shutdownip address 10.1.1.1 255.255.255.0mplsmpls ldp # interface LoopBack1ip address 192.168.1.9 255.255.255.255 # ospf 1area 0.0.0.0network 10.1.1.0 0.0.0.255network 192.168.1.9 0.0.0.0 # return | # sysname LSRB # mpls lsr-id 192.168.2.9 # mpls # mpls ldp # interface GigabitEthernet1/0/0undo shutdownip address 10.1.1.2 255.255.255.0mplsmpls ldp # interface GigabitEthernet2/0/0undo shutdownip address 10.2.1.1 255.255.255.0mplsmpls ldp # interface LoopBack1ip address 192.168.2.9 255.255.255.255 # ospf 1 area 0.0.0.0 network 10.1.1.0 0.0.0.255network 10.2.1.0 0.0.0.255network 192.168.2.9 0.0.0.0 # return | # sysname LSRC # mpls lsr-id 192.168.3.9 # mpls # mpls ldp # interface GigabitEthernet1/0/0undo shutdownip address 10.2.1.2 255.255.255.0mplsmpls ldp # interface LoopBack1ip address 192.168.3.9 255.255.255.255 # ospf 1 area 0.0.0.0 network 10.2.1.0 0.0.0.255network 192.168.3.9 0.0.0.0 # return |
檢查配置結果:在設備上查看LDP的會話狀態,以LSRA為列,Status為Operational。
<LSRA> display mpls ldp sessionLDP Session(s) in Public NetworkCodes: LAM(Label Advertisement Mode), SsnAge Unit(DDD:HH:MM)An asterisk (*) before a session means the session is being deleted. ---------------------------------------------------------------------------------PeerID Status LAM SsnRole SsnAge KASent/Rcv --------------------------------------------------------------------------------- 192.168.2.9:0 Operational DU Passive 0000:00:22 91/91 --------------------------------------------------------------------------------- TOTAL: 1 Session(s) Found.?
總結
- 上一篇: 易语言之数组
- 下一篇: 1024 游戏攻略|马尔可夫链 Java