高速轉(zhuǎn)發(fā)設(shè)備提佣、VPN部署吮蛹、流量工程
數(shù)據(jù)量很大的單位能用到。
MPLS的思路
IP網(wǎng)絡(luò)路由查找算法:最長匹配算法(二叉搜索樹BST)拌屏,很難適應(yīng)高速路由器的高處理要求潮针;MPLS:借鑒ATM短的固定長度的分組頭,可以加速選路過程倚喂;(郵政編碼:210003)每篷。
原理
MPLS的主要架構(gòu)概念是明確分離網(wǎng)絡(luò)交換元件中控制平面與數(shù)據(jù)平面。數(shù)據(jù)平面由轉(zhuǎn)發(fā)組件組成端圈,這些組件根據(jù)經(jīng)典標簽交換范例執(zhí)行簡單的標簽交換操作焦读。另一方面,控制平面關(guān)注網(wǎng)絡(luò)級協(xié)調(diào)功能舱权,例如路由和信令矗晃,以便于在整個網(wǎng)絡(luò)中傳輸流量。
Label 標簽
定長宴倍、局部意義的標識张症,位于Link Layer和Networy Layer仓技,用于識別某個特定的FEC
Label:20bit,標簽值域俗他。
Exp:3bit脖捻,用于擴展。現(xiàn)在通常用做CoS(Class of Service)兆衅,當(dāng)設(shè)備阻塞時郭变,優(yōu)先發(fā)送優(yōu)先級高的報文。
S:1bit涯保,棧底標識。MPLS支持多層標簽周伦,即標簽嵌套夕春。S值為1時表明為最底層標簽。
TTL:8bit专挪,和IP報文中的TTL(Time To Live)意義相同及志。
標簽棧(Label Stack)是指標簽的排序集合≌唬靠近二層首部的標簽稱為棧頂MPLS標簽或外層MPLS標簽(Outer MPLS label)速侈;靠近IP首部的標簽稱為棧底MPLS標簽或內(nèi)層MPLS標簽(Inner MPLS label)
FEC Forwarding Equivalence Class轉(zhuǎn)發(fā)等價類
有共同屬性的數(shù)據(jù)流。
LER label edge router 邊緣標記路由器
LSR label switching 標記交換路由器
LSP label switched path 標記交換路徑
LDP Label Distribution Protocol 標簽分發(fā)協(xié)議
控制LSR之間交換標簽與FEC綁定消息迫卢,協(xié)調(diào)LSR之間工作的一系列規(guī)程倚搬。
LFIB label forwarding information base 標記轉(zhuǎn)發(fā)信息表
LIB 標簽信息數(shù)據(jù)庫
FIB 轉(zhuǎn)發(fā)信息數(shù)據(jù)庫
控制平面Control Plane
交換第三層路由信息和標記
數(shù)據(jù)平面Data Plane
基于標記轉(zhuǎn)發(fā)分組
MPLS技術(shù)特點
1、簡化分組轉(zhuǎn)發(fā)乾蛤,基于定長標簽匹配
2每界、支持有效的顯式路由explicit routing
與逐跳路由相比,顯式路由最顯著的優(yōu)勢在于能夠提供定制的數(shù)據(jù)傳輸服務(wù)家卖,允許將管理眨层、運營、流量調(diào)節(jié)等方面的策略施加于數(shù)據(jù)轉(zhuǎn)發(fā)的過程上荡,允許按照各種業(yè)務(wù)的特性以及用戶需求對網(wǎng)絡(luò)資源進行靈活的配置趴樱。
3、實現(xiàn)流量工程(Traffic Engineering)
平衡網(wǎng)絡(luò)負載
4酪捡、支持QoS選路
按其QoS要求來為它選擇路由的方法
5叁征、從IP分組到轉(zhuǎn)發(fā)等價類的映射
6、支持多網(wǎng)絡(luò)功能劃分
核心網(wǎng)絡(luò)則盡可能地簡單逛薇,網(wǎng)絡(luò)邊緣結(jié)點承擔(dān)更多工作航揉。
7、提高了網(wǎng)絡(luò)擴展性
標簽分發(fā)方式
下游自主方式DU(Downstream Unsolicited)
對于一個特定的FEC金刁,LSR無需從上游獲得標簽請求消息即進行標簽分配與分發(fā)帅涂。
下游按需方式DoD(Downstream on Demand)
對于一個特定的FEC议薪,LSR獲得標簽請求消息之后才進行標簽分配與分發(fā)。
標簽分配控制方式
有序方式:LSR必須先收到FEC下一跳的標簽映射消息媳友,或者該LSR就是此FEC的出節(jié)點時斯议,該LSR自己才會為FEC分配標簽
獨立方式:任何節(jié)點,任何時候都可以進行獨立的標記分發(fā)醇锚;
標簽保持方式
標記保持方式指LSR對收到的但目前暫時無用的LABEL-FEC綁定的處理方式哼御。保守、自由焊唬。采用自由的標簽保持方式恋昼,則LSR會將所有的鄰居發(fā)送來的標簽映射都保存到標簽信息庫中,這樣做雖然會增加設(shè)備的負擔(dān)赶促,卻能夠在網(wǎng)絡(luò)拓撲發(fā)生變更的時候讓LSP快速切換液肌,
倒數(shù)第二跳彈出機制
對于出口LER,先查找LFIB表鸥滨,發(fā)現(xiàn)要將標簽彈出嗦哆,于是它將標簽彈出,彈出后發(fā)現(xiàn)是個IP報文婿滓,于是又去查FIB表老速,最終將這個IP數(shù)據(jù)包轉(zhuǎn)發(fā)出去。C進行了兩次查找凸主。這降低了轉(zhuǎn)發(fā)效率橘券。標簽可以在(倒數(shù)第二跳)上彈出,出口LER只需查找FIB表將收到的IP報文進行轉(zhuǎn)發(fā)
LDP工作機制
LDP協(xié)議規(guī)定了標簽分發(fā)過程中的各種消息以及相關(guān)的處理過程卿吐。通過LDP约郁,LSR可以把網(wǎng)絡(luò)層的路由信息映射到數(shù)據(jù)鏈路層的交換路徑上,進而建立起LSP但两。
發(fā)現(xiàn)(Discovery)消息:用于通告和維護網(wǎng)絡(luò)中LSR的存在鬓梅,如Hello消息。
會話(Session)消息:用于建立谨湘、維護和終止LDP對等體之間的會話绽快,如Initialization消息、Keepalive消息紧阔。
通告(Advertisement)消息:用于創(chuàng)建坊罢、改變和刪除FEC的標簽映射。
通知(Notification)消息:用于提供建議性的消息和差錯通知擅耽。
LSP建立過程
將FEC轉(zhuǎn)發(fā)等價類與標簽綁定活孩,并通告相鄰的LSR,在分組轉(zhuǎn)發(fā)路徑上乖仇,數(shù)據(jù)分組的發(fā)送方路由器是一條LSP的上游LSR憾儒,接收方路由器是下游LSR询兴。下游LSR將特定標簽分配給特定FEC(即標簽綁定)后,將標簽發(fā)布給上游LSR起趾;上游LSR保存標簽和FEC的綁定關(guān)系诗舰。
在轉(zhuǎn)發(fā)數(shù)據(jù)包之前,MPLS網(wǎng)絡(luò)路由器根據(jù)路由協(xié)議生成路由表RIB训裆;路由器的硬件CEF會生成FIB表眶根,用作硬件轉(zhuǎn)發(fā)(此表類似路由表);然后路由器會通過LDP協(xié)議生成標簽數(shù)據(jù)庫LIB表边琉,然后LDP協(xié)議會根據(jù)LIB表和原有的FIB表属百,生成標簽轉(zhuǎn)發(fā)表LFIB。
下面是一個例子
GNS3 c3640
A
f0/0 12.1.1.1 255.255.255.0
loopback0 1.1.1.1 255.255.255.255
B
f0/0 12.1.1.2 255.255.255.0
f1/0 23.1.1.2 255.255.255.0
loopback0 2.2.2.2 255.255.255.255
C
f0/0 23.1.1.3 255.255.255.0
f1/0 34.1.1.3 255.255.255.0
loopback0 3.3.3.3 255.255.255.255
D
f0/0 34.1.1.4 255.255.255.0
f1/0 45.1.1.4 255.255.255.0
loopback0 4.4.4.4 255.255.255.255
E
f0/0 45.1.1.5 255.255.255.0
loopback0 5.5.5.5 255.255.255.255
C#config t
C(config)#int f0/0
C(config-if)#ip address 23.1.1.3 255.255.255.0
C(config-if)#no shutdown
C(config-if)#exit
C(config)#int f1/0
C(config-if)#ip address 34.1.1.3 255.255.255.0
C(config-if)#no shutdown
C(config-if)#exit
C(config)#int loop
C(config)#int loopback0
C(config-if)#ip address 3.3.3.3 255.255.255.255
C(config-if)#end
C#ip add
C#show ip int b
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 23.1.1.3 YES manual up up
FastEthernet1/0 34.1.1.3 YES manual up up
Loopback0 3.3.3.3 YES manual up up
C#write
Building configuration...
[OK]
OSPF
A#config t
A(config)#router ospf 110
A(config-router)#router-id 1.1.1.1
A(config-router)#network 1.1.1.1 0.0.0.0 area 0
A(config-router)#network 12.1.1.1 0.0.0.0 area 0
A(config-router)#exit
A(config)#exit
A#write
Building configuration...
[OK]
A#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
34.0.0.0/24 is subnetted, 1 subnets
O 34.1.1.0 [110/3] via 12.1.1.2, 00:00:16, FastEthernet0/0
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback0
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/2] via 12.1.1.2, 00:00:16, FastEthernet0/0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/3] via 12.1.1.2, 00:00:16, FastEthernet0/0
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/4] via 12.1.1.2, 00:00:16, FastEthernet0/0
5.0.0.0/32 is subnetted, 1 subnets
O 5.5.5.5 [110/5] via 12.1.1.2, 00:00:20, FastEthernet0/0
23.0.0.0/24 is subnetted, 1 subnets
MPLS
D#config t
D(config)#ip cef
D(config)#int f0/0
D(config-if)#mpls ip
D(config-if)#mpls label protocol mpls
D(config-if)#mpls label protocol ldp
D(config-if)#tag-switching ip
D(config-if)#exit
D(config)#ip cef
D(config)#int f1/0
D(config-if)#mpls ip
D(config-if)#mpls label protocol ldp
D(config-if)#tag-switching ip
D(config-if)#end
D#write
Building configuration...
[OK]
歸納
在上述基于OSPF的局域網(wǎng)中变姨,各路由器使用LDP Label Distribution Protocol 標簽分發(fā)協(xié)議生成管理標簽族扰。假設(shè)需要一條1.1.1.1到5.5.5.5的虛連接,在LSP建立時钳恕,ABCD先在LFIB表為:
之后發(fā)送本地綁定標簽給其他LSR,如D向C發(fā)送local tag為19蹄衷,所以C把outgong tag記為19忧额。
在A路由器使用traceroute 5.5.5.5命令時,可以看到由A發(fā)往B的報文中l(wèi)abel為20愧口,B接收到報文睦番,彈出標簽,根據(jù)標簽查找LFIB表找到了local tag為20對應(yīng)項耍属,再把19壓入標簽棧發(fā)送給C托嚣。C也是收到標簽為19更具LFIB表壓入19標簽。D根據(jù)LFIB表直接轉(zhuǎn)發(fā)厚骗,所以沒有outgoing tag示启,沒有mpls標簽了。
Tracing the route to 5.5.5.5
1 12.1.1.2 [MPLS: Label 20 Exp 0] 180 msec 292 msec 264 msec
2 23.1.1.3 [MPLS: Label 19 Exp 0] 336 msec 268 msec 280 msec
3 34.1.1.4 [MPLS: Label 19 Exp 0] 308 msec 288 msec 268 msec
4 45.1.1.5 292 msec 316 msec 224 msec
A#show mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 16 34.1.1.0/24 0 Fa0/0 12.1.1.2
17 Pop tag 2.2.2.2/32 0 Fa0/0 12.1.1.2
18 18 3.3.3.3/32 0 Fa0/0 12.1.1.2
19 19 4.4.4.4/32 0 Fa0/0 12.1.1.2
20 20 5.5.5.5/32 0 Fa0/0 12.1.1.2
21 Pop tag 23.1.1.0/24 0 Fa0/0 12.1.1.2
22 21 45.1.1.0/24 0 Fa0/0 12.1.1.2
B#show mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 34.1.1.0/24 0 Fa1/0 23.1.1.3
17 Pop tag 1.1.1.1/32 3150 Fa0/0 12.1.1.1
18 Pop tag 3.3.3.3/32 0 Fa1/0 23.1.1.3
19 18 4.4.4.4/32 950 Fa1/0 23.1.1.3
20 19 5.5.5.5/32 1130 Fa1/0 23.1.1.3
21 21 45.1.1.0/24 0 Fa1/0 23.1.1.3
C#show mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 17 1.1.1.1/32 3234 Fa0/0 23.1.1.2
17 Pop tag 2.2.2.2/32 0 Fa0/0 23.1.1.2
18 Pop tag 4.4.4.4/32 1242 Fa1/0 34.1.1.4
19 19 5.5.5.5/32 1508 Fa1/0 34.1.1.4
20 Pop tag 12.1.1.0/24 1140 Fa0/0 23.1.1.2
21 Pop tag 45.1.1.0/24 0 Fa1/0 34.1.1.4
D#show mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 16 1.1.1.1/32 1896 Fa0/0 34.1.1.3
17 17 2.2.2.2/32 0 Fa0/0 34.1.1.3
18 Pop tag 3.3.3.3/32 0 Fa0/0 34.1.1.3
19 Pop tag 5.5.5.5/32 1788 Fa1/0 45.1.1.5
20 Pop tag 23.1.1.0/24 0 Fa0/0 34.1.1.3
21 20 12.1.1.0/24 590 Fa0/0 34.1.1.3
E#show mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 34.1.1.0/24 0 Fa0/0 45.1.1.4
17 16 1.1.1.1/32 0 Fa0/0 45.1.1.4
18 17 2.2.2.2/32 0 Fa0/0 45.1.1.4
19 18 3.3.3.3/32 0 Fa0/0 45.1.1.4
20 Pop tag 4.4.4.4/32 0 Fa0/0 45.1.1.4
21 20 23.1.1.0/24 0 Fa0/0 45.1.1.4
22 21 12.1.1.0/24 0 Fa0/0 45.1.1.4
MPLS VPN
虛擬專用網(wǎng)Virture Private Network
使用IP機制仿真出一個專用的廣域網(wǎng)领舰,通過專用的 “隧道Tunnel技術(shù)”夫嗓,在公共數(shù)據(jù)網(wǎng)中仿真出點到點的專線技術(shù)。隧道技術(shù)(Tunneling)冲秽、加解密技術(shù)舍咖、密鑰管理技術(shù)、使用者與設(shè)備身份認證技術(shù)锉桑。
MPLS/BGP VPN的模型
MPLS/BGP VPN: 三層VPN排霉。
在MPLS/BGP VPN的模型中,網(wǎng)絡(luò)由運營商的骨干網(wǎng)與用戶的各個Site組成民轴,所謂VPN就是對site集合的劃分攻柠,一個VPN就對應(yīng)一個由若干site組成的集合球订。如MPLS/BGP VPN的實現(xiàn)如圖所示;
利用標記堆疊來實現(xiàn)VPN辙诞,在一個IP分組上疊加兩個MPLS標記頭標進行轉(zhuǎn)發(fā)辙售,外側(cè)標記用于轉(zhuǎn)發(fā),內(nèi)側(cè)標記用于VPN飞涂。