MPLS(Multiprotocol Label Switching)多協(xié)議標(biāo)簽轉(zhuǎn)發(fā)復(fù)習(xí)總結(jié)首先我們要先知道MPLS是為何出現(xiàn)的?MPLS是基于傳統(tǒng)IP網(wǎng)絡(luò)(RIP,OSPF等)的缺陷由IETF確定的 順便先復(fù)習(xí)一下路由器查路由表 轉(zhuǎn)發(fā)的過程:  傳統(tǒng)的IP轉(zhuǎn)發(fā)中,物理層從交換機(jī)的一個端口收到一個報(bào)文,上送到數(shù)據(jù)鏈路層。數(shù)據(jù)鏈路層去掉鏈路層封裝,根據(jù)報(bào)文的協(xié)議域上送給相應(yīng)的網(wǎng)絡(luò)層。網(wǎng)絡(luò)層首先看報(bào)文是否是送給本機(jī)的,若是,去掉網(wǎng)絡(luò)層封裝,上送給它的上層協(xié)議。若不是,則根據(jù)報(bào)文的目的地址查找路由表,若找到路由,將報(bào)文送給相應(yīng)端口的數(shù)據(jù)鏈路層,數(shù)據(jù)鏈路層封裝后,發(fā)送報(bào)文。若找不到路由,將報(bào)文丟棄。傳統(tǒng)的IP轉(zhuǎn)發(fā)采用的是逐跳轉(zhuǎn)發(fā),數(shù)據(jù)報(bào)文經(jīng)過每一臺交換機(jī),都要執(zhí)行上述過程(如圖中SWA收到目的地址為10.2.0.1的數(shù)據(jù)包,SWA會依次查找路由表,根據(jù)匹配的路由表項(xiàng)的進(jìn)行轉(zhuǎn)發(fā),SWB、SWC、SWD都會進(jìn)行類似的處理),所以速度緩慢。并且所有的交換機(jī)需要知道全網(wǎng)的路由或者默認(rèn)路由。另外,由于傳統(tǒng)IP轉(zhuǎn)發(fā)是面向無連接的,所以無法提供好的Qos保證。  傳統(tǒng)IP網(wǎng)絡(luò)基于IGP Metric計(jì)算最優(yōu)路徑,這是遠(yuǎn)遠(yuǎn)不夠的,往往在現(xiàn)實(shí)網(wǎng)絡(luò)中還需考慮帶寬、鏈路屬性等其他因素;基于IP的流量工程是基于IGP面向目的地址的轉(zhuǎn)發(fā),是hop-by-hop(逐跳)的轉(zhuǎn)發(fā),無法實(shí)現(xiàn)根據(jù)來源來控制流量轉(zhuǎn)發(fā);另外基于IP的流量工程是面向無連接的,不能實(shí)現(xiàn)顯式路徑(Explicit Routing)。 上圖中,SWB和SWD之間存在兩條路徑。傳統(tǒng)的IP轉(zhuǎn)發(fā)中IGP根據(jù)Metric選擇最優(yōu)的路由SWB-SWC-SWD轉(zhuǎn)發(fā)所有從Network A和Network B到Network C的IP報(bào)文,而SWB-SWG-SWH-SWD鏈路則閑置,當(dāng)網(wǎng)絡(luò)中流量過大,有可能導(dǎo)致最優(yōu)路徑擁塞,但次優(yōu)路徑卻空載沒有被充分利用。
MPLS的出現(xiàn)我們老師當(dāng)時是這么講的: 從A到走到B有三種方法: 1.廣播(如以太網(wǎng)):直接把數(shù)據(jù)發(fā)給每一個地方 2.逐跳尋徑:走到一個地方,問一下路接下來該怎么走(也就是上面說的根據(jù)路由協(xié)議,查路由表) 3.源路由:提前規(guī)劃好路線,到哪里怎么走,不常用。 而MPLS是第四種走法: 跟在“向?qū)А焙竺孀?,向?qū)г谧哌^的路上做好標(biāo)記,你只要沿著標(biāo)記的指示走就可以了。這也就是“標(biāo)簽交換” MPLS結(jié)合了三層路由技術(shù)與二層交換技術(shù),所以可以把它看成“2.5層”的 其中的MP多協(xié)議指的是支持多種網(wǎng)絡(luò)協(xié)議,如ipv4,ipv6,CLNP,IPX等 MPLS是一種標(biāo)簽轉(zhuǎn)發(fā)技術(shù),它采用無連接的控制平面和面向連接的數(shù)據(jù)平面(具體的MPLS架構(gòu)下面還有介紹),無連接的控制平面實(shí)現(xiàn)路由信息的傳遞和標(biāo)簽的分發(fā),面向連接的數(shù)據(jù)平面實(shí)現(xiàn)報(bào)文在建立的標(biāo)簽轉(zhuǎn)發(fā)路徑上傳送。MPLS域內(nèi),交換機(jī)不需要查看每個報(bào)文的目的IP地址,只需要根據(jù)封裝在IP頭外面的標(biāo)簽進(jìn)行轉(zhuǎn)發(fā)即可,這樣可以大大提高效率 MPLS轉(zhuǎn)發(fā)與IP逐跳轉(zhuǎn)發(fā)的關(guān)系MPLS是IP的承載層:MPLS轉(zhuǎn)發(fā)與IP轉(zhuǎn)發(fā)不沖突,它們的關(guān)系是如果能夠使用MPLS轉(zhuǎn)發(fā),那么IP包會先封裝成MPLS數(shù)據(jù)幀來轉(zhuǎn)發(fā)。如果不能MPLS轉(zhuǎn)發(fā),就還是原來的ip逐跳轉(zhuǎn)發(fā)。 (也就是盡量優(yōu)先MPLS,因?yàn)樗鼤欤?br>  看上面的圖,我們需要理解:整個MPLS域(可以進(jìn)行MPLS轉(zhuǎn)發(fā)的區(qū)域)是嵌在IP域上的,也就是MPLS域外部是IP域,它本身也運(yùn)行IP域。 MPLS中一些基本概念,名詞標(biāo)簽(Label):是一個定長的,比較短的,只具有本地意義的標(biāo)識。 FEC(轉(zhuǎn)發(fā)等價類):一組或一類數(shù)據(jù),這組數(shù)據(jù)分配的標(biāo)簽相同 LSP(標(biāo)簽交換通道):一個FEC的數(shù)據(jù)流,在不同的節(jié)點(diǎn)被賦予確定的標(biāo)簽,數(shù)據(jù)轉(zhuǎn)發(fā)按照 這些標(biāo)簽進(jìn)行。數(shù)據(jù)流所走的路徑就是LSP。 LSR(Label Switching Router): LSR是MPLS的網(wǎng)絡(luò)的核心交換機(jī),它提供標(biāo)簽交 換和標(biāo)簽分發(fā)功能。 LER(Label Switching Edge Router):在MPLS的網(wǎng)絡(luò)邊緣,進(jìn)入到MPLS網(wǎng)絡(luò)的流量由LER分為不同的FEC,并為這些FEC請求相應(yīng)的標(biāo)簽。它提供流量分類和標(biāo)簽的映射、標(biāo)簽的移除功能。  看這個圖我們來理解LER,LSR,LSP: 從IP域進(jìn)入MPLS域的時候,LER(標(biāo)記邊緣路由器)要做一個壓入(push),出MPLS域的時候做一個彈出(pop),而LSR(標(biāo)記交換路由器)負(fù)責(zé)轉(zhuǎn)發(fā)。所以LER實(shí)際工作量比LSR大很多。LSP(標(biāo)記交換路徑)就是從進(jìn)入到離開 走的路徑。這條路徑是在轉(zhuǎn)發(fā)報(bào)文之前就已經(jīng)通過各種協(xié)議確定并建立的,報(bào)文會在特定的LSP上傳遞。(也可以把LSP看成一個隧道)
標(biāo)簽報(bào)文格式:  MPLS Header長度為32bits,包括長度為20bits的標(biāo)簽(Label),該標(biāo)簽用于報(bào)文轉(zhuǎn)發(fā);長度為3bits的EXP通常用來承載IP報(bào)文中的優(yōu)先級;長度為1bit的棧底標(biāo)志S用來表明是否是最后一個標(biāo)簽(MPLS標(biāo)簽可以多層嵌套);長度為8bits的TTL,作用類似IP頭部的TTL,用來防止報(bào)文環(huán)路等。 事實(shí)上MPLS封裝有兩種方式,上面說的是幀模式,Ethernet和PPP都是幀模式封裝;還有一個信元封裝模式(ATM采用)。 MPLS的 LSP 與標(biāo)簽轉(zhuǎn)發(fā)表 
MPLS轉(zhuǎn)發(fā)過程 1.Push:首先從IP數(shù)據(jù)包從ip域進(jìn)入MPLS域,入口LER做 push 操作,分析轉(zhuǎn)發(fā)等價類,為數(shù)據(jù)包“打上標(biāo)簽”,綁定LSP通道;圖中A的標(biāo)簽轉(zhuǎn)發(fā)表內(nèi)容大概如下:  2.Swap:B,C兩個LSR根據(jù)標(biāo)簽轉(zhuǎn)發(fā)表,用下一跳分配的標(biāo)簽,替換MPLS報(bào)文的標(biāo)簽并轉(zhuǎn)發(fā)  3.Pop:轉(zhuǎn)發(fā)到出口LER D時,進(jìn)行pop彈出操作,去掉標(biāo)簽  MPLS轉(zhuǎn)發(fā)的過程到這里結(jié)束。
PHP(倒數(shù)第二跳彈出。Penultimate Hop Popping ,和web開發(fā)的php可沒關(guān)系):上面的過程我們可以發(fā)現(xiàn),C在發(fā)給D時,其實(shí)帶標(biāo)簽的數(shù)據(jù)已經(jīng)沒有意義,因?yàn)橄乱惶鸵獜棾鰳?biāo)簽了,所以完全可以在C就把標(biāo)簽彈出,然后以ip報(bào)文形式轉(zhuǎn)發(fā)給D。 這樣可以大大降低最后的出口LER的工作量,是現(xiàn)在MPLS普遍采用的方法。 默認(rèn)情況下,設(shè)備支持PHP特性,支持PHP的Egress節(jié)點(diǎn)即出口LER 分配給倒數(shù)第二跳節(jié)點(diǎn)的標(biāo)簽值為3。 MPLS標(biāo)簽轉(zhuǎn)發(fā)表與LDP先來看一個標(biāo)簽轉(zhuǎn)發(fā)表例子  我們知道, 交換機(jī)中的MAC地址表是通過逆向?qū)W習(xí)法產(chǎn)生的; 路由器中的路由表是通過路由協(xié)議學(xué)習(xí)或自己配置靜態(tài)路由產(chǎn)生的。 那么MPLS中標(biāo)簽轉(zhuǎn)發(fā)表是怎么產(chǎn)生的呢? 答案是也會有一個類似的路由器學(xué)習(xí)的協(xié)議,這個協(xié)議叫做LDP(Label Distribution Protocol 標(biāo)簽分發(fā)協(xié)議),這個也是MPLS技術(shù)的核心協(xié)議之一。LDP來完成標(biāo)簽的分配控制和保持 從整個MPLS架構(gòu)看這個協(xié)議的位置:  以上是MPLS架構(gòu)圖 MPLS包括兩個平面:控制平面和數(shù)據(jù)平面。 控制平面負(fù)責(zé)產(chǎn)生和維護(hù)路由信息以及標(biāo)簽信息。數(shù)據(jù)平面負(fù)責(zé)普通IP報(bào)文的轉(zhuǎn)發(fā)以及帶MPLS標(biāo)簽報(bào)文的轉(zhuǎn)發(fā)。 控制平面中路由協(xié)議模塊(Routing Protocol)用來傳遞路由信息,生成路由信息表;標(biāo)簽分發(fā)協(xié)議模塊(Label Distribution Protocol)用來完成標(biāo)簽信息的交換,建立標(biāo)簽轉(zhuǎn)發(fā)路徑。 數(shù)據(jù)平面包括IP轉(zhuǎn)發(fā)表和標(biāo)簽轉(zhuǎn)發(fā)表,當(dāng)收到普通IP報(bào)文時(Incoming IP Packets),如果是普通IP轉(zhuǎn)發(fā),則查找IP路由表轉(zhuǎn)發(fā),如果需要標(biāo)簽轉(zhuǎn)發(fā),則按照標(biāo)簽轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā);當(dāng)收到帶有標(biāo)簽的報(bào)文時(Incoming Labeled Packets)時,如果需要按照標(biāo)簽轉(zhuǎn)發(fā),根據(jù)標(biāo)簽轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā),如果需要轉(zhuǎn)發(fā)到IP網(wǎng)絡(luò),則去掉標(biāo)簽后根據(jù)IP轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)。 LDP的標(biāo)簽管理與保留方式主要內(nèi)容有下面三部分 1. 標(biāo)簽分配模式 DoD:下游按需標(biāo)記分發(fā) DU:下游自主標(biāo)記分發(fā)
2. 標(biāo)簽控制模式 3. 標(biāo)簽保持模式 最常用的組合是 下游自主(DU) + 有序 + 自由 下面來具體介紹什么意思  這里先要理解上游,下游的概念,MPLS入口出為最上游;出口處為最下游。標(biāo)簽的產(chǎn)生可以理解為是下游為上游產(chǎn)生的,下游產(chǎn)生的IN標(biāo)簽作為上游的OUT標(biāo)簽(比如圖中R3左邊要接收的IN標(biāo)簽為100,那么R2向右的OUT標(biāo)簽就要是100,因?yàn)镽3只要為100的標(biāo)簽) 然后具體介紹上面的三個部分: Ⅰ.標(biāo)簽的控制模式(即標(biāo)簽是怎么產(chǎn)生的): 有序(常用):只有最下游路由器才能產(chǎn)生標(biāo)簽,最下游的上游收到最下游的標(biāo)簽映射消息后,然后才能再往自己的上游發(fā)送標(biāo)簽映射關(guān)系。 獨(dú)立:中間的路由器也可以直接產(chǎn)生標(biāo)簽 Ⅱ.標(biāo)簽的分發(fā)模式: 下游按需 :需要的時候上游再向下游詢問標(biāo)簽信息; 下游自主:不管有沒有問,下游路由器都自主的向上游發(fā)送標(biāo)簽映射信息(主動向上匯報(bào)) Ⅲ.標(biāo)簽的保留模式:如果有兩條路徑,也就會有兩個標(biāo)簽,那么路由器保留哪個。 保守:只保留路由表中的”最佳路徑“,跳數(shù)比較少的; 自由:保留所有的標(biāo)簽,雖然占用了更多的標(biāo)簽空間,但是收斂會快 以上介紹了MPLS的基礎(chǔ)知識,概念 實(shí)際上在運(yùn)營商網(wǎng)絡(luò)。大型的互聯(lián)網(wǎng)公司與BGP結(jié)合,做VPN是比較多的; 常見應(yīng)用包括MPLS VPN,MPLS QoS,MPLS TE,這方面知識以后再總結(jié)
|