已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1多協(xié)議標(biāo)記交換趙廣2目錄1MPLS技術(shù)基礎(chǔ)411MPLS轉(zhuǎn)發(fā)4111基本概念4112標(biāo)記、標(biāo)記棧與標(biāo)記棧編碼712標(biāo)記分發(fā)協(xié)議9113標(biāo)記分發(fā)協(xié)議概述9114LDP111221LDP發(fā)現(xiàn)121222LDP會話建立和維護(hù)141223標(biāo)記分發(fā)和管理1713案例分析23115配置實現(xiàn)25116標(biāo)記轉(zhuǎn)發(fā)觀察27117LDP協(xié)議觀察2914小結(jié)3415復(fù)習(xí)題342BGP/MPLSVPN3621VPN概述3622BGP/MPLSVPN框架結(jié)構(gòu)3923BGP/MPLSVPN基本原理41231多協(xié)議BGP擴展41232BGP/MPLSVPN控制信息建立過程4324BGP/MPLSVPN常見應(yīng)用48241INTERNET接入48242跨ASVPN提供49243多層次VPN提供5025案例分析53251配置實現(xiàn)54252轉(zhuǎn)發(fā)控制信息分析64253常見應(yīng)用需求7026小結(jié)7027復(fù)習(xí)題713MPLSL2VPN7231MPLSL2VPN概述7232LDP方式MPLSL2VPN7333BGP方式MPLSL2VPN791前言在一個IP報文從源被送到目的的過程中,由于IP的無連接特性,每一個沿途的路由器都必須獨立的為這個報文確定下一跳。抽象的,確定下一跳包含兩個工作第一個工作是分析這個報文的頭部,根據(jù)其目的地址或者還有其他信息如DSCP值,確定這個報文屬于對于這個路由器而言的某個轉(zhuǎn)發(fā)等價類FECFORWARDINGEQUIVALENCECLASS。轉(zhuǎn)發(fā)等價類是指在某個路由器看來應(yīng)該采取同樣轉(zhuǎn)發(fā)行為(至少包含下一跳)的所有報文的全體。第二個工作就是根據(jù)這個FEC確定下一跳等轉(zhuǎn)發(fā)行為。MPLSMULTILABELSWITCHING被發(fā)明的初始動機就是為了改進(jìn)這個過程中第一步的效率。MPLS在一個報文進(jìn)入網(wǎng)絡(luò)時即決定其所屬FEC,并為這個包打上一個“標(biāo)記”決定其所屬的FEC。這樣,中間轉(zhuǎn)發(fā)的路由器無需再去分析特定報文的包頭信息,只需要讀這個標(biāo)記就知道它所屬FEC,進(jìn)而也就決定了這個包轉(zhuǎn)發(fā)方式了。在MPLS出現(xiàn)之前,有許多類似的技術(shù),MPLS是IETF統(tǒng)一這些技術(shù)的結(jié)果。有關(guān)MPLS這個名詞出現(xiàn)的過程,您可以在中找到對這一有趣歷史的一些描述。MPLS對于轉(zhuǎn)發(fā)效率的改進(jìn)事實上就是所謂用交換的技術(shù)實現(xiàn)三層數(shù)據(jù)包的轉(zhuǎn)發(fā),上個世紀(jì)最后幾年出現(xiàn)的被稱為三層交換或是快速路由的技術(shù)更加簡潔地達(dá)到了同樣的目的。但是MPLS目前仍然存在并且事實上已經(jīng)成為核心網(wǎng)絡(luò)路由器必不可少的一個基本組件。其根本原因是在MPLS基礎(chǔ)上可以簡潔地實現(xiàn)如下幾個對于運營商網(wǎng)絡(luò)致關(guān)重要的應(yīng)用,典型的如基于有連接的QOS保障、VPN、流量工程。我們會在相應(yīng)的章節(jié)仔細(xì)研究這些主題。但是現(xiàn)在你就可以理解使得這些應(yīng)用可能的最主要的原因是MPLS轉(zhuǎn)發(fā)標(biāo)記是在數(shù)據(jù)傳輸之前就建立好的,換句話說,也就是有連接的,這就決定了它和ATM技術(shù)一樣可以具備很好的QOS特性。MPLS的轉(zhuǎn)發(fā)決定僅僅決定于輸入報文中的標(biāo)記,這樣中間路由器就可以對報文網(wǎng)絡(luò)層信息一無所知的情況下進(jìn)行報文轉(zhuǎn)發(fā),這是在公網(wǎng)上傳輸私網(wǎng)數(shù)據(jù)的VPN技術(shù)所必須的。決定MPLS轉(zhuǎn)發(fā)的標(biāo)記的分配可以不僅僅決定于網(wǎng)絡(luò)地址前綴,這就為流量工程應(yīng)用建立了一個很好的平臺。歷史上曾經(jīng)存在的關(guān)于MPLS價值的爭論現(xiàn)在業(yè)已風(fēng)平浪靜。對于運營商網(wǎng)絡(luò)和大型企業(yè)網(wǎng)而言,MPLS已經(jīng)被廣泛認(rèn)為屬于具有戰(zhàn)略意義的基礎(chǔ)設(shè)施。盡管MPLS的某些應(yīng)用仍然未能全面部署,但是目前已經(jīng)成熟的應(yīng)用如L3VPN已經(jīng)開始讓運營商從MPLS技術(shù)上獲得回報。目前已有的經(jīng)驗顯示,在全球范圍內(nèi)大規(guī)模部署MPLS對于網(wǎng)絡(luò)研究、設(shè)計、建設(shè)和維護(hù)人員都會是一個挑戰(zhàn)。本書的主要目的是希望能夠幫助這些從業(yè)人員從容面對這個挑戰(zhàn)。具體的,本書力求達(dá)到的目標(biāo)為清晰解釋和MPLS相關(guān)的主要協(xié)議。介紹MPLS的主流設(shè)備實現(xiàn)方法及用戶接口。描述具體網(wǎng)絡(luò)設(shè)計過程。本書力求做到自包含,不過假設(shè)您對于IP網(wǎng)絡(luò)應(yīng)該有一個基本的了解,已經(jīng)懂得關(guān)于路由器的基本常識。如果您閱讀過華為網(wǎng)絡(luò)認(rèn)證中級教材路由和交換部分,閱讀本書肯定不會有技術(shù)障礙??傮w上,本書包含如下幾個部分2MPLS技術(shù)概述這部分會介紹力圖回答兩個問題一個普通報文進(jìn)入MPLS網(wǎng)絡(luò)以后和從MPLS網(wǎng)絡(luò)出來以前,沿途的路由器是如何依據(jù)預(yù)先建立起來的控制信息對這個報文進(jìn)行處理的這些“預(yù)先建立起來的控制信息”是如何建立起來的如果您對于IP地址、路由等概念有基本的了解即可以順利閱讀本章。本章是以后任意一章的基礎(chǔ)。L3VPN這一章的主要內(nèi)容是介紹如何在一個ISP如何利用其MPLS骨干網(wǎng)絡(luò)為她的客戶提供網(wǎng)絡(luò)層意義上的VPN服務(wù)。這里將會討論ISP網(wǎng)絡(luò)和客戶網(wǎng)絡(luò)中處于不同角色的設(shè)備如何建立控制信息以及如何利用這些控制信息來進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)流。這里也會討論一個具體的網(wǎng)絡(luò)案例。這一章的內(nèi)容除了需要具備本書第一章的基礎(chǔ)以外,還需要您熟悉BGP路由協(xié)議和OSPF路由協(xié)議的基本操作和華為路由器上的配置方法。MPLSL2VPN這章將介紹一個ISP如何利用她的MPLS骨干網(wǎng)絡(luò)為她客戶提供數(shù)據(jù)鏈路層意義上的VPN服務(wù),就像傳統(tǒng)的ATM或FRAMERELAY網(wǎng)絡(luò)一樣。這里將會討論2種不同的實現(xiàn)方法MARTINI方法和KOMPELLA方法。如果有第一章和BGP的基礎(chǔ),MPLSL2VPN內(nèi)容的學(xué)習(xí)肯定不會存在障礙。當(dāng)然,如果您有2層傳統(tǒng)VPN的經(jīng)驗,也許閱讀起來會輕松一點。MPLS流量工程MPLS體系結(jié)構(gòu)支持依據(jù)預(yù)先指定的中間節(jié)點建立轉(zhuǎn)發(fā)路徑,這個特性使得流量工程成為可能。在這里將介紹控制流量工程各種應(yīng)用在MPLS框架下的實現(xiàn)和具體的案例分析??紤]到流量工程應(yīng)用目前還沒有得到廣泛應(yīng)用,所以這一章內(nèi)容除了需要第一章的基礎(chǔ)以外我把它做成了自完備的。MPLSQOS傳統(tǒng)的IP網(wǎng)絡(luò)很難為客戶提供和ATM一樣健壯的QOS。其根本原因是因為ATM是有連接的。而MPLS體系結(jié)構(gòu)恰好為IP建立了一個堅實的有連接的基礎(chǔ)設(shè)施,所以部署了MPLS的IP網(wǎng)絡(luò)可以很好的實現(xiàn)QOS。這一章將會討論差分模型的QOS是如何在MPLS網(wǎng)絡(luò)中如何實現(xiàn)的。這一章除了需要第一章的基礎(chǔ)而外,還需要部分MPLS流量工程一章所描述的一些信令協(xié)議的基礎(chǔ)。MPLS組播在MPLS框架結(jié)構(gòu)下,關(guān)于組播有兩個問題。一是如何在MPLS網(wǎng)絡(luò)上支持組播IP報文的轉(zhuǎn)發(fā)。二是如何在MPLSVPN中支持VPN內(nèi)的組播。第二個問題已經(jīng)有了比較系統(tǒng)的解決方案,第一個問題則由于其固有的復(fù)雜性在理論上還處于研究階段。所以,這一章將給出第二個問題的全面解決方案,同時也會給出第一個問題難的原因。第一章依然是本章的基礎(chǔ),同時需要您了解組播路由協(xié)議的基本原理。3MPLS網(wǎng)絡(luò)管理目前部署MPLS網(wǎng)絡(luò)的網(wǎng)絡(luò)都是大規(guī)模的運營商網(wǎng)絡(luò)或企業(yè)網(wǎng)絡(luò),特別是為客戶提供VPN服務(wù)的大型運營商網(wǎng)絡(luò),網(wǎng)絡(luò)的管理特別需要加以重視。這里詳細(xì)地介紹了MPLS網(wǎng)絡(luò)管理的框架以及華為的一個MPLSVPN管理軟件。這一章需要以前各章的基礎(chǔ),同時需要您知道網(wǎng)絡(luò)管理的基本概念。由于本書的作者并不是作家,所以語言有點干癟,但是MPLS本身是充滿魅力的,所以閱讀本書也許就像用青瓷大花瓷碗喝法國葡萄酒,也許很有情趣。趙廣2003/4/152010年的補充說明這份材料原本是20022003年期間計劃編寫的面向技術(shù)人員的培訓(xùn)材料,由于許多原因最終未曾完成或定稿?,F(xiàn)在看來,對于初學(xué)者還有一定作用,因此刪除未完成的目錄,加一個說明,就以這個不定稿作為定稿了)其實在2008年左右,有朋友向我詢問是否有MPLS方面的教材,辛虧我的同學(xué)、同事與兄弟蔣茂勇還保存著這個電子稿,因此我可以向他們吹噓這是世界上最好的MPLS教材。昨天,有朋友再次問MPLS材料,我竟然又將這個電子稿丟了。再次辛虧我我的同學(xué)、同事與兄弟蔣茂勇還保存著這個電子稿,看來我又可以再吹一次牛皮了。不過,為了不再麻煩老蔣,免得他認(rèn)為我是一個麻煩的人,我決定吸取教訓(xùn),利用運計算技術(shù),將本書放在網(wǎng)絡(luò)上)趙廣2010/7/14為了從百度百科上下載電子文檔,我就厚著臉皮將這篇陳年文章上載上去,懇請大家不要嘲諷我都是為了混口飯吃,對吧由衷期望有一天我能再有興趣與計劃寫完這個東西。趙廣2010/11/0141MPLS技術(shù)基礎(chǔ)部署了MPLS的網(wǎng)絡(luò)最終都以提供具備某些特性的報文轉(zhuǎn)發(fā)為其服務(wù)形式。對于各種基于MPLS的應(yīng)用而言,具體的LSRLABELSWITCHINGROUTER標(biāo)記轉(zhuǎn)發(fā)路由器及具備標(biāo)記轉(zhuǎn)發(fā)特性的路由器在實施報文轉(zhuǎn)發(fā)時所采用的核心轉(zhuǎn)發(fā)技術(shù)事實上是一致的。具體到一個網(wǎng)絡(luò)層報文而言,當(dāng)它第一次進(jìn)入MPLS網(wǎng)絡(luò)時,首先處理它的那個LSR必須根據(jù)它的網(wǎng)絡(luò)層頭部信息決定對于它的轉(zhuǎn)發(fā)動作,這個轉(zhuǎn)發(fā)動作包括給它打上MPLS標(biāo)記和從某個接口轉(zhuǎn)發(fā)出去;對于網(wǎng)絡(luò)內(nèi)部LSR而言,只需要以輸入報文中的標(biāo)記信息為索引查找某個預(yù)先建立起來的轉(zhuǎn)發(fā)信息表得出轉(zhuǎn)發(fā)動作,進(jìn)而根據(jù)這個轉(zhuǎn)發(fā)動作進(jìn)行轉(zhuǎn)發(fā);當(dāng)然,MPLS網(wǎng)絡(luò)中最后一個處理這個報文的LSR對這個報文的轉(zhuǎn)發(fā)決定就可能包含去掉標(biāo)記這樣的動作。本章第一節(jié)將具體描述這個轉(zhuǎn)發(fā)過程。本章的其余部分將集中精力描述上面所說的各種轉(zhuǎn)發(fā)信息表是怎么建立起來的,即所謂標(biāo)記分發(fā)的過程。標(biāo)記分發(fā)的過程就是報文的下游告知上游當(dāng)上游轉(zhuǎn)發(fā)報文時應(yīng)該打上什么標(biāo)記的過程。由于涉及到不同設(shè)備間的互通,這就需要一個協(xié)議來協(xié)調(diào)這個過程。目前已有不少協(xié)議可以實現(xiàn)這個功能,我們將用LDPLABELDISTRIBUTIONPROTOCOL來講述標(biāo)記分發(fā)的基本原理,其他幾種協(xié)議我們將在以后的章節(jié)里逐步的描述他們。11MPLS轉(zhuǎn)發(fā)111基本概念為了清晰起見,我們使用如下圖所示實驗網(wǎng)絡(luò)來描述MPLS的轉(zhuǎn)發(fā)過程嘸1“嘸2“N卌“卌“卌“422422422422422222222潬燈慢正22潬燈慢正22圖表115在這個網(wǎng)絡(luò)中,由LSRA、LSRB、LSRC組成的網(wǎng)絡(luò)N運行MPLS為路由器RT1和RT2所連接的網(wǎng)絡(luò)提供轉(zhuǎn)發(fā)服務(wù)。請注意進(jìn)行MPLS轉(zhuǎn)發(fā)的路由器被稱為LSR(LABELSWITCHINGROUTER標(biāo)記轉(zhuǎn)發(fā)路由器)。我們用這RT1和RT2的兩個LOOPBACK地址模擬接受N轉(zhuǎn)發(fā)服務(wù)的網(wǎng)絡(luò)。于是轉(zhuǎn)發(fā)服務(wù)就可以用N對RT1或RT2到對方LOOPBACK接口的PING報文的轉(zhuǎn)發(fā)來說明了。事實上,N提供的服務(wù)很明確使得RT1可以PING通10011,而且RT2可以PING通10001。如果LSRA、LSRB和LSRC上沒有運行MPLS,通過動態(tài)路由協(xié)議N同樣可以為RT1和RT2提供轉(zhuǎn)發(fā)服務(wù)。只要在上圖所示網(wǎng)絡(luò)中每一臺路由器上的每一個接口上都運行OSPF協(xié)議,這樣10000/24和10010/24這兩個網(wǎng)段的路由就會被每一臺路由器所知曉,這樣對于每一臺路由器而言,都可以依據(jù)兩個信息實施轉(zhuǎn)發(fā)了輸入報文的包頭信息(至少是目的IP地址)和路由器上通過OSPF學(xué)習(xí)到的路由信息。具體來看,當(dāng)一個從RT1上發(fā)出的目的地址為10011的一個報文我們稱其為P到達(dá)N中某個路由器時,他所做的主要工作就是確定這個報文的下一跳路由器、發(fā)送接口等轉(zhuǎn)發(fā)信息,然后根據(jù)這些轉(zhuǎn)發(fā)信息把P轉(zhuǎn)發(fā)出去。一個路由器用兩個步驟完成確定對于P的轉(zhuǎn)發(fā)信息的工作其一就是根據(jù)輸入P的頭部信息(至少是目的IP地址10011)為索引用最長匹配算法在三層路由表中查找一個匹配(10010/24)。事實上,無論目的地址是10011還是10012或1001X,這個查找工作的結(jié)果都是10010/24,我們在這里稱這些包屬于同一個轉(zhuǎn)發(fā)等價類FECFORWARDINGEQUIVALENCECLASS,這個轉(zhuǎn)發(fā)等價類就用10010/24標(biāo)識。第二個工作就是以這個FEC10010/24為索引查找下一跳等轉(zhuǎn)發(fā)信息,比如對于LSRB,結(jié)果就是下一跳路由器就應(yīng)該是202012,下一跳接口為E1。MPLS不在轉(zhuǎn)發(fā)的每一跳上獨立的將報文P分配給某一個FEC,而是在P到達(dá)LSRA時即第一次到達(dá)MPLS網(wǎng)絡(luò)時就會被打上一個標(biāo)記L1,L1就是LSRA和LSRB事先協(xié)商好的用于標(biāo)識10010/24這個FEC的。當(dāng)LSRB收到P時,標(biāo)記L1指示它應(yīng)該將這個報文打上它和LSRC協(xié)商好的用于標(biāo)識10010/24這個FEC的標(biāo)記L2,并且從接口E1上發(fā)出去。當(dāng)這個報文到達(dá)LSRC時,標(biāo)記L2指示LSRC去掉標(biāo)記L2并根據(jù)其目的IP地址查找到其轉(zhuǎn)發(fā)接口E0并將其轉(zhuǎn)發(fā)出去。從這個描述可以看出,MPLS網(wǎng)絡(luò)事實上在轉(zhuǎn)發(fā)之前已經(jīng)就某個FEC如何轉(zhuǎn)發(fā)達(dá)成了一致并局部地使用標(biāo)記標(biāo)識,無須在每一跳再根據(jù)報文目的IP地址來確定其所屬的FEC。而且這些局部的標(biāo)記事實上也在轉(zhuǎn)發(fā)之前預(yù)先指定了一個FEC中的所有報文在MPLS網(wǎng)絡(luò)的轉(zhuǎn)發(fā)路徑,我們稱這個轉(zhuǎn)發(fā)路徑為LSP(LABELSWITCHEDPATH標(biāo)記交換路徑)。從LSP的角度我們可以把一個報文(或一個FEC)在MPLS網(wǎng)絡(luò)中所經(jīng)過的所有LSR分成3種,入口LSR(LSRINGRESS)、出口LSR(LSREGRESS)和內(nèi)部LSR,有時我們也將LSRINGRESS和LSREGRESS統(tǒng)稱為LER(EDGELSR)。在我們的實驗網(wǎng)絡(luò)中,對于報文P而言,它的LSP是,LSRA是入口LSR,LSRC是出口LSR。下面我們來考察一下不同節(jié)點的轉(zhuǎn)發(fā)處理過程。對于入口LSRLSRA而言,為了可以正確標(biāo)記轉(zhuǎn)發(fā)報文P,它首先要維護(hù)一個功能上類似于傳統(tǒng)路由表中下一跳以及發(fā)送接口叫做NHLFE(NEXTHOPLABELFORWARDINGENTRY)的數(shù)據(jù)結(jié)構(gòu)。NHLFE包含如下信息報文轉(zhuǎn)發(fā)的下一跳、發(fā)送接口、對于報文中標(biāo)記的操作以及任何其他可能對轉(zhuǎn)發(fā)有用的信息。對于LSRA而言,為了可以正確的轉(zhuǎn)發(fā)報文P,它就必須包含這樣的NHLFE下一跳為202021、發(fā)送接口為E1、應(yīng)該給報文打上標(biāo)記L1。顯然,僅僅有NHLFE是不夠的,為了對不同轉(zhuǎn)發(fā)等價類不同的NHLFE,在入口LSR上還必須維護(hù)一個FEC到NHLFE的映射(FECTONHLFEMAPFTN),這個映射的結(jié)構(gòu)是很清楚的,比如說對于報文P,LSRA上就必須包含如下的FTN6NHLFEFEC下一跳發(fā)送接口標(biāo)記操作其他10010/24LSRBE1加上標(biāo)記L1圖表12LSRA上的FTN映射這樣LSRA對于報文P的轉(zhuǎn)發(fā)流程就很清楚了當(dāng)LSRA收到P后,根據(jù)其包頭中目的IP地址10011按照最長匹配原則查找FTN映射的結(jié)果就是給P打上一個L1的標(biāo)記,并且從E1接口發(fā)送出去。那么這張表格是怎么產(chǎn)生的呢MPLS怎么知道這個10010/24應(yīng)該從E0接口發(fā)送出去的呢根本上,這張表格是LSRA和LSRB基于3層路由協(xié)議所得到的可達(dá)性信息利用標(biāo)記分發(fā)協(xié)議所達(dá)成的共識。具體的過程我們將在本章的第二節(jié)仔細(xì)討論這個過程。在LSRB上,為了轉(zhuǎn)發(fā)報文P,同樣必須有一個表達(dá)其轉(zhuǎn)發(fā)行為的NHLFE下一跳為202012、發(fā)送接口為E1、標(biāo)記操作為去掉原有的標(biāo)記并且打上新的標(biāo)記L2。和LSRA不同的是LSRB無須再檢查P的網(wǎng)絡(luò)層頭部得到其目的地址并據(jù)此作為得到這個NHLFE的索引,它直接利用P頭部的標(biāo)記L1作為這個索引就可以了,因為它已經(jīng)和LSRA就FEC10010和L1的綁定達(dá)成了一致。對于LSRB而言,我們稱L1為P的入標(biāo)記,而L2為P的出標(biāo)記。當(dāng)然,因為LSR對于同一個FEC內(nèi)所有報文的轉(zhuǎn)發(fā)行為是一致的,所以我們也可以說L1是FEC10010/24的入標(biāo)記,L2是FEC10010/24的出標(biāo)記。所以,LSR對于輸入的帶標(biāo)記的報文是通過一個叫做入標(biāo)記映射(ILMINCOMINGLABELMAP)的過程來得到NHLFE的。具體的,LSRB上就應(yīng)該包含如下的ILMNHLFE入標(biāo)記下一跳發(fā)送接口標(biāo)記操作其他L1LSRCE1去掉原來的標(biāo)記,加上標(biāo)記L2圖表13LSRB上的ILMP上的標(biāo)記L1被置換為L2的過程被稱為標(biāo)記交換(LABELSWAPPING),在一個MPLS網(wǎng)絡(luò)內(nèi)部,標(biāo)記交換就是報文轉(zhuǎn)發(fā)的主要操作。對于出口LSRLSRC,它當(dāng)然也是依據(jù)P的輸入標(biāo)記而不是網(wǎng)絡(luò)層包頭識別報文,但是由于它是出口LSR,它并沒有就如何標(biāo)記轉(zhuǎn)發(fā)P和下游路由器達(dá)成一致,所以它只能依據(jù)P的網(wǎng)絡(luò)層頭部中的目的IP地址10011來轉(zhuǎn)發(fā)P。所以,此時的ILM為7NHLFE入標(biāo)記下一跳發(fā)送接口標(biāo)記操作其他L2LSRC去掉標(biāo)記圖表14LSRC上的ILM所以,LSRC對于P的處理過程為先根據(jù)輸入報文P攜帶的標(biāo)記L2查找ILM,得出的NHLFE指示它去掉標(biāo)記并將其“轉(zhuǎn)發(fā)”給自己,然后再根據(jù)網(wǎng)絡(luò)層頭部中的目的IP地址10011根據(jù)網(wǎng)絡(luò)層路由表將其轉(zhuǎn)發(fā)給RT2。由上面的分析可以看出對于LSRC來講,由倒數(shù)第二跳LSRLSRB發(fā)給給它的P中所攜帶的標(biāo)記L2事實上對于LSRC的轉(zhuǎn)發(fā)沒有任何幫助。如果LSRB在發(fā)送P時將L2刪除,對于LSRC轉(zhuǎn)發(fā)P沒有任何負(fù)面影響,因為LSRC對于P的有效轉(zhuǎn)發(fā)決定只依賴于網(wǎng)絡(luò)層頭部的目的IP地址。而且在倒數(shù)第二跳刪除掉出標(biāo)記還可以讓出口只做一次查找工作,甚至出口LSR可以完全不支持MPLS。當(dāng)然,是否進(jìn)行倒數(shù)第二跳,首先必須決定于倒數(shù)第二跳是否具備刪除標(biāo)記的能力(有些設(shè)備,比如說一些由ATM交換機直接升級而成的具備MPLS功能的設(shè)備,就只具備標(biāo)記交換的能力而不具備刪除標(biāo)記的能力),其次出口LSR和倒數(shù)第二跳LSR也必須就此達(dá)成一致。必須注意,我們這里對于LSR的劃分(入口、出口以及內(nèi)部LSR)是對于某一個FEC或者對于某個具體的報文的LSP而言的,同一個LSR完全可能同時是這三個角色。下面我們仔細(xì)介紹一下被我們在這里抽象化的標(biāo)記L1、L2是如何和IP報文一起傳輸?shù)摹?12標(biāo)記、標(biāo)記棧與標(biāo)記棧編碼標(biāo)記在MPLS體系結(jié)構(gòu)中處于核心地位。在標(biāo)記的指示下,LSR以交換的方式讓數(shù)據(jù)轉(zhuǎn)發(fā)工作盡量只發(fā)生在網(wǎng)絡(luò)層以下,從而提高了數(shù)據(jù)轉(zhuǎn)發(fā)效率。所以MPLS能夠在多大程度上簡潔的提供通常在網(wǎng)絡(luò)層完成的工作事實上決定了MPLS的生命力。原因很明顯如果在數(shù)據(jù)交換過程中,為了實現(xiàn)一些基本的功能,數(shù)據(jù)包還必須被傳遞到網(wǎng)絡(luò)層去處理,那么MPLS的轉(zhuǎn)發(fā)效率優(yōu)勢將不復(fù)存在。這一點事實上決定了除了標(biāo)記以外,其他應(yīng)該被編碼進(jìn)數(shù)據(jù)包中的數(shù)據(jù)。網(wǎng)絡(luò)層有兩個工作是至關(guān)重要的一個是為了控制報文傳輸范圍的TTL遞減工作,實際上IP報文中TTL這個域應(yīng)用的廣泛程度是驚人的許多應(yīng)用(例如RIP路由協(xié)議)利用它來防止環(huán)路、許多應(yīng)用(例如組播)利用它來限制報文傳輸范圍、廣泛的被使用于網(wǎng)絡(luò)測試(TRACERT),甚至一些黑客程序利用報文初始TTL來確定操作系統(tǒng)。結(jié)論很清楚當(dāng)一個帶標(biāo)記的報文在傳輸時,它必須同時編碼一個TTL域。另一個是報文分類工作。在IP報文中,DSCP(DIFFERENTIATEDSERVICESCODINGPOINT)域被專門用于報文分類工作,報文分類工作是實現(xiàn)QOS的基本組件。QOS的重要作用對于大型網(wǎng)絡(luò)的重要性是不言而喻的。所以,當(dāng)一個帶標(biāo)記的報文在傳輸時,MPLS設(shè)計者最8終認(rèn)為需要一個域來標(biāo)識報文的類別是值得的。為了安全、互連私有網(wǎng)絡(luò)、互連不同協(xié)議或是顯式指定某個數(shù)據(jù)包的路由方法,在網(wǎng)絡(luò)層領(lǐng)域,隧道技術(shù)被廣泛應(yīng)用。從本質(zhì)上來講,各種(L2TP、GRE、IPSECTUNNEL模式等)隧道都是用一個公開的或是可行的網(wǎng)絡(luò)層頭部封裝一個內(nèi)部的數(shù)據(jù)包,完成這個內(nèi)部的包在特定網(wǎng)絡(luò)上的傳輸,這樣做的主要原因可能是內(nèi)部數(shù)據(jù)包不愿或是不能夠在這個網(wǎng)絡(luò)上傳輸。為了支持類似的應(yīng)用需求,MPLS也支持標(biāo)記的層次結(jié)構(gòu),即一個數(shù)據(jù)包可能包含多個標(biāo)記。這多個標(biāo)記被組織成一個先進(jìn)后出的棧結(jié)構(gòu),所以這些標(biāo)記被稱為標(biāo)記棧。相應(yīng)的,最先入棧的標(biāo)記被稱為棧底標(biāo)記,最新入棧的標(biāo)記被稱為棧頂標(biāo)記。但是,標(biāo)記的棧式結(jié)構(gòu)對于LSR的轉(zhuǎn)發(fā)部件是透明的,所有的轉(zhuǎn)發(fā)決定必須而且只能基于棧頂標(biāo)記。一個數(shù)據(jù)包中包含的MPLS標(biāo)記的主要作用在于指示接受到這個數(shù)據(jù)包的LSR如何轉(zhuǎn)發(fā)這個數(shù)據(jù)包。但是必須注意的是,MPLS并沒有被設(shè)計成網(wǎng)絡(luò)層的替代協(xié)議,MPLS要做的只是利用網(wǎng)絡(luò)層提供的和其他控制部件所提供的控制信息,實現(xiàn)高效的并且靈活的轉(zhuǎn)發(fā)同樣的MPLS也不會代替鏈路層的工作。所以標(biāo)記棧在數(shù)據(jù)報的封裝位置應(yīng)該是鏈路層之后,網(wǎng)絡(luò)層之前。MPLS標(biāo)記的在數(shù)據(jù)轉(zhuǎn)發(fā)中所起的作用和ATM的VPI/VCI或是幀中繼的DLCI是類似的。所以,就可以使用這些鏈路層數(shù)據(jù)封裝中的這些域來封裝MPLS標(biāo)記。但是,不是所有的鏈路層都提供這種交換的機制,比如說PPP或是以太網(wǎng),所以必須定義一個獨立于網(wǎng)絡(luò)層和鏈路層封裝的MPLS頭部。我們現(xiàn)在描述一種被稱為通用標(biāo)記封裝方法的封裝方法,這種方法可以用于任何鏈路層。它定義了一個獨立于鏈路層的被稱為MPLS薄層的MPLS封裝,可以封裝多個標(biāo)記,每個標(biāo)記包括20位的MPLS標(biāo)記、3位的實驗域(EXP)、1位棧頂標(biāo)記和8位TTL域。具體結(jié)構(gòu)如下圖所示012370C偍卌“C“塅“呔“圖表15這里標(biāo)記域中所承載的就是我們在111里一直討論的L1、L2這些用于指示轉(zhuǎn)發(fā)行為的標(biāo)記。標(biāo)記的數(shù)值范圍為0220,0、1、2、3這四個標(biāo)記有特殊含義,415保留。標(biāo)記值為0的標(biāo)記叫做IPV4顯式空標(biāo)記,這個標(biāo)記只能出現(xiàn)在棧底,這個標(biāo)記對應(yīng)的轉(zhuǎn)發(fā)動作只能是刪除標(biāo)記棧并且這個數(shù)據(jù)包將會被送給IPV4模塊處理并轉(zhuǎn)發(fā)。標(biāo)記值為2的標(biāo)記叫做IPV6顯式空標(biāo)記,其語法和語義和IPV4顯式空標(biāo)記是類似的。標(biāo)記值為3的標(biāo)記叫做隱式空標(biāo)記。當(dāng)一個LSR要給一個數(shù)據(jù)包換上一個新的標(biāo)記時,如果被換上的標(biāo)記是這個標(biāo)記,那么LSR就不會執(zhí)行標(biāo)記交換操作,相反的,LSR會在數(shù)據(jù)包中的標(biāo)記棧上執(zhí)行一個POP操作。所以這個標(biāo)記值不會出現(xiàn)在報文封裝中,只會用在標(biāo)記分發(fā)協(xié)議中。標(biāo)記值為1的標(biāo)記叫做路由器提醒(ROUTERALERT)標(biāo)記,其作用類似于IP的路由器提醒選項(ROUTERALERTOPTION),用于提醒沿途的LSR在轉(zhuǎn)發(fā)這個數(shù)據(jù)包之前應(yīng)該仔細(xì)檢查這個數(shù)據(jù)包,可以用在諸如RSVPPATH消息等消息報文需要沿途路由器而不僅僅是目的主機處理的應(yīng)用中。EXP域(實驗域)原先設(shè)計目的是用于實驗?zāi)康?,目前主要用于報文分類。起著和IP9報文中DSCP類似的作用,可以用于編碼不同的PHB(PERHOPBEHAVIOR逐跳行為)。S比特叫做棧底標(biāo)識(BOTTOMOFSTACK)的作用是指示當(dāng)前這個標(biāo)記是否是棧底標(biāo)記。TTL域編碼8位TTL值,其基本作用是防止環(huán)路和限制報文傳輸范圍。通常對于TTL的處理過程是在MPLS網(wǎng)絡(luò)入口路由器上,當(dāng)接收到一個IP報文后,首先將其IPTTL減1,當(dāng)它被發(fā)送之前,IPTTL應(yīng)該被拷貝到MPLS頂層標(biāo)記中;在中間LSR上當(dāng)它收到一個帶標(biāo)記的報文時,首先將報文頂層標(biāo)記中的TTL減1,然后做標(biāo)記交換操作并發(fā)送出去,這里的交換只交換標(biāo)記棧結(jié)構(gòu)頂層標(biāo)記封裝中的20比特標(biāo)記值;在出口LSR上,當(dāng)它收到一個帶標(biāo)記報文以后,首先會對MPLSTTL做減1操作,然后做標(biāo)記彈出操作,然后將MPLSTTL拷貝到報文的IPTTL域,并將其送給網(wǎng)絡(luò)層發(fā)出。請注意,我們這里的假設(shè)是一層標(biāo)記棧,對于多層標(biāo)記棧的操作是類似的,我們把這個問題留到習(xí)題里去。對于在ATM、幀中繼網(wǎng)絡(luò)上標(biāo)記的封裝一般原則是頂層(或最上兩層)標(biāo)記封裝在鏈路層的VPI/VCI或DLCI域中,而標(biāo)記棧的其余標(biāo)記則用我們上面描述的通用標(biāo)記封裝方法封裝。我們這里討論的是標(biāo)記隨數(shù)據(jù)報文一起發(fā)送時的封裝形式,在下一部分要討論的標(biāo)記分發(fā)協(xié)議的報文中,標(biāo)記封裝自然只包含20位標(biāo)記值。12標(biāo)記分發(fā)協(xié)議113標(biāo)記分發(fā)協(xié)議概述嘸“嘸2“卌“卌“卌“422224224222242222422潬燈慢正122潬燈慢正22偍卌22圖表16我們在前面討論了一個LSR如何依據(jù)輸入報文的頂層標(biāo)記(或網(wǎng)絡(luò)層地址)以及ILM(或FTN)來確定對于一個報文的轉(zhuǎn)發(fā)行為(即得到NHLFE),本節(jié)以及下一節(jié)將以上圖為例討論ILM、FTN和NHLFE這些控制信息是如何形成的。我們將把討論限制于一個特定的FEC所有目的地址屬于網(wǎng)絡(luò)10010/24的數(shù)據(jù)包。對于這個FEC,我們下面描述一種可能的各LSR上標(biāo)記轉(zhuǎn)發(fā)信息生成過程。101、當(dāng)LSRB上路由協(xié)議收斂以后,即它發(fā)現(xiàn)FEC10010/24以后,它就向上游LSR發(fā)布一個FCELABEL映射(以后我們將簡稱標(biāo)記映射),其語義是“當(dāng)你發(fā)給我的報文頂層標(biāo)記是17時,我將對其采取FEC10010/24的轉(zhuǎn)發(fā)行為”。當(dāng)然,這里的上游LSR只會是LSRA,而不會包含LSRC,因為LSRB從路由協(xié)議知道FEC10010/24的下一跳路由器是LSRC,因而LSRC不應(yīng)該將屬于FEC10010/24的數(shù)據(jù)包轉(zhuǎn)發(fā)給LSRB。2、當(dāng)LSRA從E1口收到這個映射以后,它就可以建立自己的FTN映射表了NHLFEFEC下一跳發(fā)送接口標(biāo)記操作其他10010/24LSRBE1加上標(biāo)記17圖表17LSRA上的FTN映射3、同樣的LSRC也會給LSRB發(fā)送這樣的標(biāo)記映射,由于標(biāo)記3具備倒數(shù)第二跳彈出的特殊含義,所以對LSRB而言,這個映射的語義是對于屬于10010/24這個FEC要經(jīng)過LSRC轉(zhuǎn)發(fā)的數(shù)據(jù)包,應(yīng)該對原有標(biāo)記棧執(zhí)行POP操作(而不是將原有標(biāo)記棧頂層標(biāo)記交換為3)。由于LSRB曾經(jīng)發(fā)布過關(guān)于10010/24標(biāo)記映射信息,因而現(xiàn)在LSRB就可以把這些信息組合起來形成一張ILM表了NHLFE入標(biāo)記下一跳發(fā)送接口出標(biāo)記其他17LSRCE13圖表18LSRB上的ILM4、當(dāng)然,對于LSRC而言,由于使用了倒數(shù)第二跳彈出技術(shù),所以也就無需為10010/24這個FEC形成標(biāo)記轉(zhuǎn)發(fā)表了。注意,由于考慮了倒數(shù)第二跳彈出,所以這里的幾個表格和111中的表格并不完全一樣。從以上過程可以看出,標(biāo)記轉(zhuǎn)發(fā)控制信息形成的關(guān)鍵就是在標(biāo)記轉(zhuǎn)發(fā)的上下游LSR之間標(biāo)記映射信息的傳遞本質(zhì)上就是下游LSR將特定標(biāo)記和特定FEC的映射通知給上游LSR,這個標(biāo)記映射傳遞過程被稱為標(biāo)記分發(fā)。當(dāng)然,正如前面所述,這里描述的標(biāo)記分發(fā)方式只是兩種可能的方式之一,上面描述的這種方式被稱為下游自主(DUDOWNSTREAMUNSOLICITED)方式,其含義是指下游自主決定是否給上游分發(fā)標(biāo)記映射,而無需上游顯式請求。另外一種方式叫做下游按需分配(DODDOWNSTREAMONDEMAND)方式,這種方式下游只有在上游顯式提出對于某個FEC11的標(biāo)記請求才會向上游分發(fā)和這個FEC相關(guān)的標(biāo)記映射。從全局觀點來看,對于特定的FEC,各獨立對于這個FEC的在他們之間鏈路上和某個標(biāo)記的映射最終形成了一條LSP。如在圖表16中,對于10010/24這個FEC,最終形成了這樣一條LSP。在我們上面所說明的過程所描述的LSP控制方法也是兩種可選方法之一獨立LSP控制方法。所謂,獨立的LSP控制方式是指一個LSR在向上游分發(fā)和特定FEC相關(guān)的標(biāo)記映射之前,無需確保自己已經(jīng)獲得下游關(guān)于這個FEC的標(biāo)記映射。我們可以看到圖表16中的LSRB正是這樣做的當(dāng)它分發(fā)標(biāo)記映射給LSRA時,它還沒有從LSRC得到關(guān)于10010/24的標(biāo)記映射。另外一種LSP控制方式被稱為有序方式,這種方式下,一個LSR在向上游分發(fā)和特定FEC相關(guān)的標(biāo)記映射之前,必須確保自己已經(jīng)獲得下游關(guān)于這個FEC的標(biāo)記映射(除非這個LSR本身就是對于這個FEC的出口路由器)。對于特定FEC的LSP,MPLS標(biāo)記轉(zhuǎn)發(fā)的路由可以使用路由協(xié)議形成的逐跳路由,也可以不使用即使用某種顯式路由機制。對于前者我們稱這條LSP是逐跳路由的LSP,后者則被稱為顯式路由的LSP。截至目前為止,我們討論的都是前者,后者在流量工程中有很重要的應(yīng)用。獨立的LSP控制方式和有序的LSP控制方法各有不同的應(yīng)用場合,前者多用于控制逐跳路由的LSP,后者多用于控制顯式路由的LSP。經(jīng)管這兩種LSP控制方式可以和任意的標(biāo)記分發(fā)方式配合工作,但是下游自主的標(biāo)記分發(fā)方式常和前者配合工作,以達(dá)到和路由協(xié)議同時快速收斂的目的;相應(yīng)的,下游按需的標(biāo)記分發(fā)方式常和有序的LSP控制方式配合使用,可以方便的實施顯式路由。具體在相鄰LSR之間進(jìn)行標(biāo)記分發(fā)工作的是標(biāo)記分發(fā)協(xié)議,目前可以用于標(biāo)記分發(fā)協(xié)議的有LDP(LABELDISTRIBUTIONPROTOCOL)、CRLDP(CONSTRAINTBASEDLDP)、RSVPTE(EXTENSIONSTORESOURCERESERVATIONPROTOCOL)、BGP等。下一節(jié)將介紹LDP協(xié)議,在以后的章節(jié)中將會介紹其他的協(xié)議。114LDP正如前一節(jié)所述,LDP(LABELDISTRIBUTIONPROTOCOL)是一種用于在一對標(biāo)記轉(zhuǎn)發(fā)上下游LSR之間分發(fā)FECLABEL映射信息的協(xié)議。這對標(biāo)記轉(zhuǎn)發(fā)上下游路由器互相被稱為標(biāo)記分發(fā)對等體。盡管圖表16中所示網(wǎng)絡(luò)中,標(biāo)記分發(fā)對等體之間都是直接相連的,但是這并不意味著標(biāo)記分發(fā)對等體必須直接相連,我們會在下一章介紹這個方面的應(yīng)用。LDP以消息的形式在對等體之間分發(fā)、維護(hù)標(biāo)記映射信息,為了保證標(biāo)記分發(fā)的可靠性,LDP使用TCP的傳輸服務(wù)。總體上,所有LDP消息可以分為四類1、發(fā)現(xiàn)消息用于發(fā)現(xiàn)網(wǎng)絡(luò)中的LDP相鄰體2、會話消息用于建立、維護(hù)和中止LDP對等體之間的會話3、分發(fā)消息用于創(chuàng)建、改變以及刪除和FEC相關(guān)的標(biāo)記映射4、通知消息用于提供建議或錯誤通知信息利用這些消息,LDP大致工作過程如下圖所示12效汬O2效汬222DDD圖表19從這張圖可以看到,兩個LDP對等體首先發(fā)現(xiàn)對方,然后和對方建立TCP連接,在連接上,建立會話,最終在會話上傳輸標(biāo)記請求和標(biāo)記映射消息。我們將在隨后的章節(jié)中仔細(xì)討論這些過程。1221LDP發(fā)現(xiàn)從鄰居發(fā)現(xiàn)的角度看,必須有一個標(biāo)識不同LSR的一個ID,否則無法區(qū)分不同的鄰居。LDP使用一個叫做LSRID的四字節(jié)數(shù)標(biāo)識不同的LSR。由于,同一個LSR上可能存在完全的標(biāo)記空間(例如ATM交換機每個接口的VCI是出于不同空間中的),所以從標(biāo)記分發(fā)的角度應(yīng)該區(qū)分同一LSR上不同標(biāo)記空間,LDP使用一個字節(jié)的無符號整數(shù)來標(biāo)識標(biāo)記空間。LDP使用由LSRID和標(biāo)記空間標(biāo)識組成的被稱為LDP標(biāo)識符的字節(jié)無符號整數(shù)標(biāo)識作為一個獨立的標(biāo)記分發(fā)對等體。LDP有兩種發(fā)現(xiàn)鄰居機制一是基本發(fā)現(xiàn)機制,一是擴展發(fā)現(xiàn)機制?;景l(fā)現(xiàn)機制用于發(fā)現(xiàn)通過物理鏈路直接相連的LSR,LSR利用承載在目的地址為組播地址224002(網(wǎng)段上所有路由器)UDP報文上的HELLO消息向網(wǎng)段內(nèi)所有路由器聲明自己的存在,當(dāng)然這個UDP報文的目的端口號是用于指示其中包含LDP協(xié)議的646。而擴展發(fā)現(xiàn)機制用于發(fā)現(xiàn)非直接相連(手工配置的)LDP鄰居,LSR利用承載在目的地址為手工配置的特定LSR地址的UDP報文上的HELLO消息向這個配置的鄰居聲明自己的存在,這個UDP報文的目的端口號也是646。HELLO消息并不是直接承載在UDP報文上,而是封裝在如圖表110的LDPPDU頭部之后,一個LDPPDU可以包含多個不同LDP消息。圖表11013其中VERSION字段表示LDP協(xié)議版本號,目前為1。PDULENGTH表示整個PDU的長度,不包括PDULENGTH和VERSION域的長度。LDPIDENTIFIER是指6個字節(jié)的LDP標(biāo)識符。盡管這兩種機制處理方式并不一樣,但是都利用基本一樣的HELLO消息,下圖列出了HELLO消息的格式圖表111HELLO消息的第一個比特通常叫做U比特,用于指示在消息接受者不能識別這個消息的類型(隨后的15比特域)情形下的處理方法為零則向發(fā)送者發(fā)送一個錯誤通知消息,為1則安靜的忽略這個消息。隨后的15位域用于指示消息的類型,這里的0X0100就是指HELLO消息。MESSAGELENGTH用于指示從MESSAGEID域開始(包括MESSAGEID域)的HELLO消息的長度。MESSAGEID域用于給HELLO消息編號,以便于在其他消息(例如錯誤通知消息)中指示和這個消息相關(guān)的信息。COMMONHELLOPARAMETERSTLV中包含所有HELLO消息中必須包含的TLV,這里的TLV是指形如的對象數(shù)據(jù)結(jié)構(gòu),事實上HELLO消息本身就是一個TLV,只不過它的VALUE中又是一些TLV罷了。OPTIONALPARAMETERS域中則包含一些可選的TLV。LDPHELLO消息中COMMONHELLOPARAMETERSTLV結(jié)構(gòu)如下圖表112其中第1位叫做U比特,用于指示包含這個TLV的消息接收者如果不能識別這個TLV時的處理方式U0則要向消息的發(fā)起者發(fā)送一個錯誤通知消息,同時丟棄包含這個TLV的整個消息;U1則安靜的忽略這個TLV,繼續(xù)其他TLV的處理。第2位叫做F比特,這個比特只在U1時才有用。如果F0,未知的TLV不會隨包14含它的消息被轉(zhuǎn)發(fā);如果F1,未知的TLV則會隨著包含它的消息一起被轉(zhuǎn)發(fā)。隨后14位域是用于指示這個TLV的類型的,這里的0X0400表示COMMONHELLOPARAMETERSTLV。LENGTH域用于指示從HOLDTIME開始(包括HOLDTIME域)的TLV其余部分的長度,實際上就是指這個TLVVALUE部分的長度。HOLDTIME指示HELLO消息的接收者應(yīng)該保持消息發(fā)送者HELLO紀(jì)錄的時長,交互HELLO消息的雙方會選取雙方HELLO消息所指示的兩個值中的較小者使用。T1指示該HELLO消息是目標(biāo)HELLO(TARGETEDHELLO),用于擴展鄰居發(fā)現(xiàn)機制;T0則表明該HELLO消息是鏈路HELLO消息,用于基本鄰居發(fā)現(xiàn)機制。R1請求消息接收者向消息發(fā)送者回應(yīng)目標(biāo)HELLO,R0則不請求。其余14比特保留未用。LDPHELLO消息中OPTIONALPARAMETERS可能包含如下可選參數(shù)IPV4傳輸?shù)刂?、IPV6傳輸?shù)刂泛团渲眯蛄刑柸N可能,我們會在以后的章節(jié)中介紹這些選項的功能。作為一個總結(jié),我們給出利用HELLO消息來進(jìn)行鄰居發(fā)現(xiàn)的大致處理過程1、對于基本發(fā)現(xiàn)機制LSR構(gòu)造一個HELLO消息,在其中填上相應(yīng)的參數(shù),特別重要的是HOLDTIME,T、R比特都置為0,然后將這個HELLO消息放在一個LDPPDU中,LDPPDU中填入LSRID和標(biāo)記空間標(biāo)識組成的LDP標(biāo)識符,然后將這個PDU封裝在目的地址為224002,目的端口為646的UDP數(shù)據(jù)包中發(fā)送出去。這個HELLO消息被它的直接鏈路鄰居收到后,它就被它的鄰居發(fā)現(xiàn)了。2、對于擴展發(fā)現(xiàn)機制假定LSRA和LSRB并非直接相連,他們互相配置為對方的LDP鄰居。LSRA的動作為構(gòu)造一個HELLO消息,在其中填上相應(yīng)的消息,如HOLDTIME等,特別的這里的T1、R1,然后將這個HELLO消息放在一個LDPPDU中,LDPPDU中填入LSRID和標(biāo)記空間標(biāo)識組成的LDP標(biāo)識符,然后將這個PDU封裝在目的地址為LSRB的地址,目的端口為646的UDP數(shù)據(jù)包中發(fā)送出去。LSRB收到這個數(shù)據(jù)包以后就發(fā)現(xiàn)了LSRA,同時LSRB也會給LSRA回應(yīng)HELLO報文。可以用三元組表示LSRA上的標(biāo)記空間A和LSRB上的標(biāo)記空間B在鏈路L(是否物理鏈路都可能)之上的一個HELLO鄰接體關(guān)系。從這里也可以看出,同一對LDP標(biāo)識符之間可能存在多個鄰接體關(guān)系。HELLO報文不僅僅用于建立HELLO鄰接體,而且還用于維護(hù)HELLO鄰接體。HELLO鄰接體中的任何一方都用周期性的HELLO報文證明自己的存在。顯然,HELLO報文的發(fā)送間隔應(yīng)該小于HOLDTIME,一般為HOLDTIME的1/3。當(dāng)一對LDPLSR互相發(fā)現(xiàn)了對方的存在以后,就可以建立兩者之間用于標(biāo)記分發(fā)的會話了。1222LDP會話建立和維護(hù)為了保證LDP會話的可靠性,LDP會話使用TCP的傳輸服務(wù),所以建立LDP會話的第一個步驟就是在一對HELLO對等體之間建立TCP連接。當(dāng)一個LSRLSRA發(fā)現(xiàn)了一個新的鄰接關(guān)系之后,它就會檢查是否已經(jīng)有一個TCP連接在為標(biāo)記空間對服務(wù),如果沒有那就準(zhǔn)備建立一個,并在此基礎(chǔ)上建立會話,并標(biāo)識此會話為HELLO鄰接體。如15果已經(jīng)存在一個TCP連接為此標(biāo)記空間對服務(wù),就標(biāo)識基于此TCP連接的會話為鄰接關(guān)系服務(wù)(當(dāng)然,當(dāng)一個會話所服務(wù)的鄰接關(guān)系數(shù)目為0時,此會話必須被終止)。顯然,會話是沒有考慮前面那個三元組的最后一元即鏈路的,這樣顯然可以節(jié)省資源。建立一個TCP連接的第一個步驟是確定傳輸連接雙方所使用的IP地址。本端IP地址決定于是否在HELLO消息選項中向?qū)Χ送▓髠鬏數(shù)刂愤x項(IPV4或IPV6),如果曾經(jīng)通報過,那么就使用通報的那個地址作為傳輸?shù)刂?,否則,就使用發(fā)送HELLO消息的源IP地址作為本端傳輸?shù)刂贰O鄳?yīng)的,對端傳輸?shù)刂返拇_定也是類似的如果對端曾經(jīng)在HELLO消息選項中包含了一個傳輸?shù)刂罚敲淳褪褂眠@個地址作為對端傳輸?shù)刂?,否則就使用對端發(fā)過來的HELLO消息的源地址作為對端傳輸?shù)刂?。確定了雙方傳輸?shù)刂芬院螅瑓f(xié)議規(guī)定傳輸?shù)刂反蟮哪且环皆陔S后的會話建立過程中為主動方,另一方為被動方。主動方會主動發(fā)起TCP連接建立過程(即先發(fā)出SYN標(biāo)記置位的TCP報文),被動方則被動等待連接請求的到來,三次握手以后,TCP連接就建立起來了1。TCP連接建立以后,雙方就開始會話初始化過程。會話初始化過程的主要目的是協(xié)商LDP協(xié)議版本號、標(biāo)記分發(fā)方式、定時器參數(shù)、標(biāo)記范圍等參數(shù)。具體的會話初始化過程是由主動方首先向被動方發(fā)初始化消息開始的。初始化消息(INITIALIZATIONMESSAGE)格式如下圖表113其中,U比特、TYPE、MESSAGELENGTH以及MESSAGEID有和HELLO消息一樣的語義。INITIALIZATION消息中的COMMONSESSIONPARAMETERSTLV格式如下1關(guān)于TCP連接建立的過程可以參考HCNE培訓(xùn)教材或者RFC792。16圖表114COMMONSESSIONPARAMETERSTLV中的U比特、F比特、TYPE以及LENGTH字段具有和HELLO消息中的COMMONHELLOPARAMETERSTLV中相同的含義。PROTOCOLVERSION用于指示本端LDP版本號,這里描述的LDP協(xié)議版本為1。KEEPALIVETIME字段則用于指示消息發(fā)送者建議的KEEPALIVETIME,KEEPALIVETIME是從TCP連接上在從成功接收到一個PDU到接收到下一個LDPPDU最長秒數(shù)。當(dāng)然,每收到一個PDUKEEPALIVE定時器就會被重置。KEEPALIVE定時器超時以后,會話必須被終止。A比特用于指示發(fā)送方的標(biāo)記分發(fā)方式A0表示DU(下游自主)方式,A1表示DOD(下游按需)方式,雙方必須就標(biāo)記分發(fā)方式達(dá)成一致。D比特用于指示是否使能基于路徑向量(PATHVECTOR)的環(huán)路檢測功能。我們將在下一節(jié)討論環(huán)路檢測。如果使能基于路徑向量的環(huán)路檢測,PVLIM(PATHVECTORLIMIT)域用于指示路徑向量的最大長度。MAXPDULENGTH用于指示消息發(fā)送者建議的最大PDU長度,雙方最后使用的最大PDU長度必須是雙方所建議之較小者。RECEIVERLDPIDENTIFIER用于指示發(fā)送者計劃與之建立LDP會話的接收方標(biāo)記空間。接收方可以利用發(fā)送者的LDPIDENTIFIER和這個接收者LDPIDENTIFIER和它的一個HELLO鄰接關(guān)系相匹配。如果找不到任何的匹配,則接收方會發(fā)出錯誤通知消息,并終止會話。LDPINITIALIZATION消息中的可選參數(shù)目前包括ATMSESSIONPARAMETERS和FRAMERELAYSESSIONPARAMETERS,這些選項用于在ATM或幀中繼接口上和這兩個協(xié)議相關(guān)的一些參數(shù),如接口標(biāo)記范圍、接口的MPLS能力等??傮w上,LDP會話初始化過程為當(dāng)被動方收到主動方發(fā)出的會話初始化消息以后,如果它覺得對方建議的參數(shù)可以接受,它就用一個INITIALIZATION消息向?qū)Ψ奖磉_(dá)自己的關(guān)于這些參數(shù)的建議,否則就發(fā)出錯誤通知并終止連接。主動方收到一個INITIALIZATION消息以后,檢查對方參數(shù)是否可與接受,如果可以,那么就給被動方回應(yīng)一個KEEPALIVE消息(KEEPALIVE消息格式見下圖),否則就發(fā)錯誤通知消息給對端并終止連接。17圖表115任何一方收到來自對端的KEEPALIVE消息以后,它就會認(rèn)為LDP會話已經(jīng)處于操作(OPERATIONAL)狀態(tài)了。KEEPALIVE消息非常簡單,只有一個通用的消息頭,目前未定義任何選項。當(dāng)會話上沒有其他消息要傳輸時,就傳輸KEEPALIVE消息以向?qū)Ψ阶C實自己的存在。作為一個總結(jié),下面給出了一個LDP會話初始化過程的一個示意圖。奓N2奓虋22湉楴污穩(wěn)瑡潩2湉楴污穩(wěn)瑡潩22敋灥楬敶敋灥楬敶2燈牥瑡潩慮22燈牥瑡潩慮22DD圖表116由以上過程可以知道,無論是TCP連接建立的發(fā)起還是會話初始化的發(fā)起都是由主動方負(fù)責(zé)的,而被動方只是消極等待。所以如果由于雙方參數(shù)不兼容而終止連接,主動方必須不斷重復(fù)嘗試建立連接。為了避免網(wǎng)絡(luò)帶寬的無謂浪費,主動方兩次嘗試之間的時間間隔是按指數(shù)規(guī)律增長的。這樣有可能出現(xiàn)這樣的問題一段時間以后,被動方已經(jīng)更改了配置,但是被動方不得不等待主動方下一次連接建立嘗試,這可能會等很長時間。為了解決這個問題,被動方就可以在HELLO消息選項中聲明新的配置序列號(見上一節(jié))。這樣主動方就可以知道被動方已經(jīng)改變了配置,它就可以無需等待地立即發(fā)起連接建立過程。會話初始化過程以后,就可以在會話上利用LDPPDU進(jìn)行標(biāo)記分發(fā)的操作了。1223標(biāo)記分發(fā)和管理LDP的核心任務(wù)就是標(biāo)記分發(fā)。標(biāo)記分發(fā)就是指一個LSR告知它的標(biāo)記分發(fā)對等體關(guān)于特定FEC和標(biāo)記的映射關(guān)系,這樣當(dāng)它的對等體向它轉(zhuǎn)發(fā)屬于這個FEC的數(shù)據(jù)包時,只需打上相應(yīng)的標(biāo)記就可以了。正如前面章節(jié)中所描述的那樣,標(biāo)記分發(fā)有DU(下游自主)和DOD(下游按需)兩18種不同的方式,從全局上看,LSP有兩種不同的控制方式有序的和獨立的。對于逐跳路由應(yīng)用而言,一般采用獨立的LSP控制方式,標(biāo)記分發(fā)方式一般選用DU方式。為了說明LDP標(biāo)記分發(fā)的基本思想,我們以獨立的LSP控制方式、DU方式的標(biāo)記分發(fā)方式為例描述LDP標(biāo)記分發(fā)的操作過程,其他組合是類似的。在這樣的前提下,只要LDP發(fā)現(xiàn)了一個新的FEC,它就可以分配一個標(biāo)記給這個FEC并且將它用LDPLABELMAPPING消息將這個標(biāo)記和FEC的映射從業(yè)已建立起來的LDP會話上分發(fā)給它的所有LDP對等體(顯然,必須將這個下一跳的下一跳路由器排除在外)。我們這里討論的LABELMAPPING消息格式如下圖表117LABELMAPPINGLABELMAPPING消息頭部的U、F、TYPE、LENGTH以及MESSAGEID含義和以前我們討論的消息類似。LABELTLV和FECTLV用于標(biāo)識消息發(fā)送者發(fā)布的標(biāo)記、FEC映射。FEC的定義就是轉(zhuǎn)發(fā)等價類,這個寬廣的定義正是MPLS可以提供多種靈活服務(wù)的原因之一。但是,為了便于理解,在這里我們只考慮傳統(tǒng)意義上的FEC網(wǎng)絡(luò)層目的地址(事實上,在絕大多數(shù)的應(yīng)用中,F(xiàn)EC至少部分包含網(wǎng)絡(luò)層目的地址)。下圖是LDP定義的用于表示FEC的TLV,F(xiàn)ECTLV用于標(biāo)記分發(fā)所使用的相關(guān)消息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年物流車輛智能化升級計劃
- 2026云南省老干部活動中心昆明銀園會務(wù)中心招聘備考題庫及答案詳解(名師系列)
- 2026年福建莆田市荔城區(qū)埕頭中學(xué)代課教師招聘1人備考題庫附參考答案詳解(a卷)
- 2026廣西貴港市電子商務(wù)促進(jìn)中心招募就業(yè)見習(xí)人員2人備考題庫含答案詳解(奪分金卷)
- 2025年嘉興南湖學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(必刷)
- 2026四川宜賓市第八中學(xué)校招聘教師3人備考題庫及答案詳解(考點梳理)
- 2026年安徽省合肥市合肥高新火炬中學(xué)招聘教師備考題庫附答案詳解(突破訓(xùn)練)
- 2026山東青島市人力資源集團(tuán)有限公司招聘14人備考題庫附參考答案詳解(培優(yōu))
- 2026山東濟(jì)南中國重汽集團(tuán)汽車研究總院產(chǎn)品試驗檢測中心社會招聘10人備考題庫帶答案詳解(培優(yōu)a卷)
- 2026四川綿陽市三臺縣潼川第四幼兒園教師招聘備考題庫及答案詳解(新)
- T/CCMA 0133-2022高爾夫球車
- ?;窇?yīng)急演練實操
- 胸部損傷的處理和護(hù)理
- 國家電網(wǎng)有限公司輸變電工程通 用設(shè)計(330~750kV輸電線路絕緣子金具串通 用設(shè)計分冊)2024版
- 欠債抵房屋協(xié)議合同
- TSG R0004-2025固定式壓力容器安全技術(shù)監(jiān)察規(guī)程
- 大學(xué)勞動教育(第二版)課件 第二章 勞動價值觀與勞動素養(yǎng)
- DBJ50T-240-2016 蒸壓加氣混凝土精確砌塊自承重墻體工程應(yīng)用技術(shù)規(guī)程
- 重難點08滑塊-滑板模型專題高一物理題組法突破重難點(原卷版)
- 2024鐵路營業(yè)線作業(yè)人員北斗安全預(yù)警防護(hù)系統(tǒng)技術(shù)條件
- 《東北解放區(qū)工業(yè)戲劇研究(1945-1949年)》
評論
0/150
提交評論