【轉(zhuǎn)】MPLS基礎

原地址:https://zhuanlan.zhihu.com/p/27232535

image.png

MPLS是什么考阱?

從發(fā)展歷史來看葬凳,MPLS并非是一個非常新的技術(shù)突琳,最早可以追溯在1997年他巨,相應的IETF工作組就成立。在2001年匪蟀,相應的RFC3031就發(fā)布了椎麦。從字面意思來看,MPLS全稱是Multi-Protocol Label Switching材彪,直譯過來就是多協(xié)議標簽交換技術(shù)观挎。維基百科是這么定義MPLS的:一種在通訊網(wǎng)絡上的高性能數(shù)據(jù)傳輸技術(shù)。信息太少段化,沒法理解嘁捷,不要著急,往下看显熏。

MPLS解決了什么問題雄嚣?

傳統(tǒng)的路由網(wǎng)絡里面,當一個(無狀態(tài)的)網(wǎng)絡層協(xié)議數(shù)據(jù)包(例如IP協(xié)議報文)在路由器之間游蕩時,每個路由器都是獨立的對這個數(shù)據(jù)包做出路由決策缓升。路由決策就是路由器決定數(shù)據(jù)包如何路由轉(zhuǎn)發(fā)的過程鼓鲁。路由決策在后面會多次提到,在這里指港谊,每個路由器都需要分析包頭骇吭,根據(jù)網(wǎng)絡協(xié)議層的數(shù)據(jù)進行運算,再基于這些分析和運算歧寺,獨立的為數(shù)據(jù)包選擇下一跳(next hop)燥狰,最后通過next hop將數(shù)據(jù)包發(fā)送出去。以IP協(xié)議報文為例斜筐,路由決策是基于目的IP地址缀辩,路由器根據(jù)目的IP地址偎快,選擇路由條目暇藏,再做轉(zhuǎn)發(fā)焚刚。路由決策可以認為是由兩部分組成:

  • 分類,將特定的數(shù)據(jù)包歸屬為一個等價轉(zhuǎn)發(fā)類(Forwarding Equivalence Classes蕴潦,F(xiàn)ECs)
  • 查找像啼,查找FEC對應的next hop
image

對于同一個路由器來說,同一個FEC必然對應同一個next hop潭苞,那么屬于同一個FEC的所有網(wǎng)絡數(shù)據(jù)包必然會走同一條路徑轉(zhuǎn)發(fā)出去。(注真朗,在多鏈路負載均衡的情況下此疹,一個FEC也可能對應一組next hop,但是邏輯上還是能看成是一個next hop遮婶,因為殊途同歸;人椤)

具體到IP協(xié)議報文,當多個IP協(xié)議報文的目的地址都對應路由器的一條路由旗扑,且這條路由是所有路由里面最長匹配(longest match)的路由蹦骑,那么對于這個路由器來說,就會認為這兩個IP協(xié)議報文屬于一個FEC臀防。因此眠菇,這兩個數(shù)據(jù)包就會走同一條路徑出這個路由器。這就是我們最常見到的路由轉(zhuǎn)發(fā)袱衷。

需要注意的是捎废,這里的FEC是針對路由器的,而不是全局的致燥。舉個例子登疗,目的地址為192.168.31.1和192.168.31.100的兩個IP協(xié)議報文,第一個路由器具有192.168.31.0/24這條路由,那么在第一個路由器它們屬于同一個FEC辐益,都會被轉(zhuǎn)發(fā)到第二個路由器断傲。第二個路由器具有192.168.31.0/26和192.168.31.0/24兩條路由,并且兩條路由的next hop不一樣智政。因為192.168.31.0/26能更精確的匹配192.168.31.1认罩,所以192.168.31.1匹配第一條路由,而192.168.31.100匹配第二條路由女仰,最終猜年,這兩個IP協(xié)議報文在第二個路由器被認為是不同的FEC,從不同的路徑出去疾忍。這就是每個路由器都需要獨立的做路由決策的原因之一乔外。
路由器的工作原理如下圖所示:

image

由于每個路由器都需要獨立的路由決策(雖然會有這樣那樣的緩存機制加速決策),而路由器的收發(fā)隊列一旦滿了一罩,就會丟包杨幼。所以在一個高流量,高容量的網(wǎng)絡里面聂渊,無疑對每個路由器的要求都很高(否則就會丟包了2罟骸)

針對這個問題,MPLS提出了類似的汉嗽,但是更簡單的另外一種路由決策的方法欲逃。

傳統(tǒng)的路由決策,路由器需要對網(wǎng)絡數(shù)據(jù)包進行解包饼暑,再根據(jù)目的IP地址計算歸屬的FEC稳析。而MPLS提出,當網(wǎng)絡數(shù)據(jù)包進入MPLS網(wǎng)絡時弓叛,對網(wǎng)絡數(shù)據(jù)包進行解包彰居,計算歸屬的FEC,生成標簽(Label)撰筷。當網(wǎng)絡數(shù)據(jù)包在MPLS網(wǎng)絡中傳輸時陈惰,路由決策都是基于Label,路由器不再需要對網(wǎng)絡數(shù)據(jù)包進行解包毕籽。并且Label是個整數(shù)抬闯,以整數(shù)作為key,可以達到O(1)的查找時間影钉。大大減少了路由決策的時間画髓。這里的Label就是MPLS里面的L。需要注意的是Label在MPLS網(wǎng)絡里面平委,是作為網(wǎng)絡數(shù)據(jù)包的一部分奈虾,隨著網(wǎng)絡數(shù)據(jù)包傳輸?shù)摹?/p>

image

也就是說,在MPLS網(wǎng)絡里面,數(shù)據(jù)被封裝在了盒子里肉微,上面貼了標簽匾鸥,每個經(jīng)手的人只需要讀標簽就知道盒子該送到哪。而傳統(tǒng)的路由網(wǎng)絡里面碉纳,每個經(jīng)手的人都需要打開盒子勿负,看看里面的內(nèi)容,再決定送往哪劳曹。

這里提到了MPLS網(wǎng)絡奴愉,這是一個由相連的,支持MPLS的設備組成的網(wǎng)絡铁孵。打上MPLS標簽的數(shù)據(jù)可以在這個網(wǎng)絡里面?zhèn)鬏敹稹PLS的核心就是,一旦進入了MPLS網(wǎng)絡蜕劝,那么網(wǎng)絡數(shù)據(jù)包的內(nèi)容就不再重要檀头,路由決策(包括FEC歸屬的計算,next hop的查找)都是基于Label來進行的岖沛。

從目前看暑始,MPLS帶來的好處是,在MPLS網(wǎng)絡里面婴削,除了邊界路由器廊镜,其他路由器可以由一些支持Label查找替換的低性能的交換機,或者路由器來完成唉俗。這一方面降低了組網(wǎng)的成本期升,另一方面提升了同樣性能設備的轉(zhuǎn)發(fā)效率。不過互躬,隨著路由器的發(fā)展,這方面的優(yōu)勢弱化了颂郎,而且吼渡,類似的問題,也不一定需要MPLS來解決乓序。MPLS的價值更多的在于其他方面寺酪。不過初步理解MPLS,就先說這些替劈。到目前為止寄雀,MPLS里面的M,P陨献,L都介紹過盒犹,S其實也隱含的介紹過,S是Switching的意思,即基于Label做路由決策的意思急膀,或者說標簽交換里面的交換沮协。相信大家也明白了為什么說MPLS是一種高效的數(shù)據(jù)傳輸?shù)募夹g(shù)。

MPLS術(shù)語

相較于傳統(tǒng)的路由交換技術(shù)卓嫂,MPLS是一個全新的世界慷暂,因此有必要對MPLS中的一些術(shù)語和角色做一些解釋。同時晨雳,為了表述簡單行瑞,后面都用IP協(xié)議報文代替網(wǎng)絡數(shù)據(jù)包來進行描述。

  • FEC(Forwarding Equivalence Class):交換等價類餐禁,前面描述過血久,同樣的轉(zhuǎn)發(fā)路徑的網(wǎng)絡數(shù)據(jù)包的集合。

  • MPLS網(wǎng)絡:由支持MPLS的坠宴,相連的設備的構(gòu)成洋魂。

  • LSH(Label Switching hop):IP協(xié)議報文從一個MPLS設備發(fā)送到另一個MPLS設備,區(qū)別于傳統(tǒng)的路由交換喜鼓,LSH是基于Label的轉(zhuǎn)發(fā)副砍。

  • NHLFE(Next Hop Label Forwarding Entry):LSR中用來轉(zhuǎn)發(fā)條目,相當于路由表之于路由器庄岖。包含了:

  • 下一跳:nexthop

  • 對數(shù)據(jù)包的當前l(fā)abel需要做的操作豁翎,包括了:

  • 替換(SWAP)

image
  • 刪除(POP)
image
  • 添加(PUSH)
image
  • LER(Label Edge Router):有的地方也叫做 MPLS edge node。顧名思義隅忿,MPLS網(wǎng)絡的邊緣設備心剥。

  • MPLS ingress node:進入MPLS網(wǎng)絡的節(jié)點,也就是MPLS網(wǎng)絡的入口路由器背桐。該設備計算出IP協(xié)議報文歸屬的FEC优烧,并把相應的Label放入IP協(xié)議報文。

  • MPLS egress node:出MPLS網(wǎng)絡的節(jié)點链峭,也就是MPLS的出口路由器畦娄。IP協(xié)議報文在這里回到傳統(tǒng)的路由系統(tǒng)中。

  • LSR(Label Switching Router):支持MPLS轉(zhuǎn)發(fā)的路由器弊仪。如果一個LSR有一個鄰接的節(jié)點在MPLS網(wǎng)絡之外熙卡,那么這個LSR就是LER。注意励饵,這里的MPLS網(wǎng)絡之外可以是:1.傳統(tǒng)路由網(wǎng)絡驳癌,2.另一個MPLS網(wǎng)絡。

  • LSP(Label Switching Path):特定的FEC中的IP協(xié)議報文所經(jīng)過的LSR的集合役听。LSP通常也被稱為MPLS tunnel颓鲜。

image

MPLS協(xié)議格式

前面說了表窘,MPLS把Label作為IP協(xié)議報文的一部分,存儲在IP協(xié)議報文中灾杰。通常情況下蚊丐,MPLS操作在OSI的2層(數(shù)據(jù)鏈路層)和3層(網(wǎng)絡層)之間,因此也常常被認為是2.5層協(xié)議艳吠。這也就是MPLS能支持Multiprotocol的原因麦备。Label不依賴于任何協(xié)議,直接定義在2-3層之間昭娩。當然凛篙,老司機們會說MPLS也可以在2層,例如MPLS-ATM和MPLS-FRMRLY栏渺。這種情況現(xiàn)在用的比較少呛梆,這里就不考慮。
MPLS的Label格式定義如下:

image
  • Label:前面提到過多次的Label磕诊,20bit的整數(shù)填物,也就是說Labe的容量是百萬級的。雖然不是無限的霎终,但是也很多了滞磺。
  • TC:之前的EXP,改名成TC莱褒,由RFC5462定義击困。
  • S:bottom of stack。什么是stack广凸,一種常見的數(shù)據(jù)結(jié)構(gòu)類型阅茶,特點是后進先出。S為1表明這已經(jīng)是棧底了谅海,即當前Label是IP協(xié)議報文最后一個MPLS標簽脸哀。再執(zhí)行一個POP操作,就能變成正常的IP協(xié)議報文了扭吁。
  • TTL:TTL在IP協(xié)議里面的作用主要是防止環(huán)路和用于traceroute等工具企蹭。在之前的文章Traceroute里詳細介紹過。MPLS里面的TTL作用是一樣的智末。當數(shù)據(jù)包進入MPLS網(wǎng)絡,網(wǎng)絡層中的TTL會被拷貝至MPLS的TTL徒河,每一次LSH系馆,TTL減1,數(shù)據(jù)包出MPLS網(wǎng)絡顽照,MPLS中的TTL會拷貝至網(wǎng)絡層由蘑。

剛剛提到了stack闽寡,MPLS中的Label不是指一個Label,而是由多個Label構(gòu)成的Label Stack尼酿。

image

為什么要Label Stack爷狈?
從前面的描述看,MPLS似乎用一個Label就可以滿足要求了裳擎。多Label的一個應用場景就是嵌套的LSP涎永。直接看圖吧:

image

對于IP1的報文來說,上層LSP就是由A->B組成鹿响。但是A并非直接轉(zhuǎn)發(fā)給B的羡微,而是通過另一個子LSP C1->C2->C3轉(zhuǎn)發(fā)給的B。這么做惶我,首先是因為A和B沒有直接相連妈倔,沒有辦法直接轉(zhuǎn)發(fā)。另一方面绸贡,因為IP1和IP2有一部分重合的路徑盯蝴,通過定義子LSP可以復用這部分路徑。對于IP1和IP2來說听怕,C1捧挺,C2,C3只需要存儲一套NHLFE即可叉跛。

MPLS網(wǎng)絡拓撲

看一個簡單的MPLS網(wǎng)絡:

image

這個圖里面的術(shù)語跟之前描述的不一樣松忍,不過其實這個圖里的術(shù)語更常見】昀澹可以簡單的翻譯一下鸣峭。
CE:前面沒有介紹過,其實就是傳統(tǒng)路由網(wǎng)絡中與LER連接的路由器酥艳,可以理解成客戶網(wǎng)絡的邊緣路由器摊溶。
PE:服務提供商的邊緣路由器,對應LER充石。
P:服務提供商的路由器莫换,對應LSR。
為什么會有這些術(shù)語上的不同骤铃,MPLS的提出本身是中立的拉岁,但是隨著發(fā)展,現(xiàn)在應用最多的是電信網(wǎng)絡惰爬,所以才有了customer provider這些概念喊暖,其實都是對應電信運營商網(wǎng)絡中的設備。上圖中間部分就是個MPLS網(wǎng)絡撕瞧,前面介紹過陵叽,MPLS網(wǎng)絡中的IP報文都是帶有MPLS標簽的狞尔。下面來過一下工作過程:

  1. 在所有的網(wǎng)絡流量之前,PE路由器需要通過MPLS網(wǎng)絡與遠端PE路由器建立LSP巩掺。
  2. 客戶網(wǎng)絡從CE發(fā)來的非MPLS 報文偏序,發(fā)送到了ingress PE路由器,也就是MPLS ingress edge node胖替。
  3. ingress PE 路由器通過運算得出IP協(xié)議報文歸屬于哪個FEC研儒,并把相應的Label加到了IP協(xié)議報文。
  4. IP協(xié)議報文沿著LSP傳輸刊殉,每個P路由器都根據(jù)自身的NHLFE殉摔,替換Label,再把報文傳給下一跳记焊。
  5. 在egress PE路由器逸月,Label被從IP協(xié)議報文中刪除,一個傳統(tǒng)的IP協(xié)議報文又產(chǎn)生了遍膜。
  6. IP協(xié)議報文被發(fā)送到了對端的CE路由器碗硬,最終進入了另一個客戶網(wǎng)絡。

到此為止瓢颅,MPLS的data plane描述完了恩尾。MPLS是個很大話題,如果還有下次的話挽懦,應該會說說LSP的建立過程翰意,也就是LDP(Label Distribution Protocol)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末信柿,一起剝皮案震驚了整個濱河市冀偶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渔嚷,老刑警劉巖进鸠,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異形病,居然都是意外死亡客年,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門漠吻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來量瓜,“玉大人,你說我怎么就攤上這事途乃±浦粒” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵欺劳,是天一觀的道長唧取。 經(jīng)常有香客問我,道長划提,這世上最難降的妖魔是什么枫弟? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮鹏往,結(jié)果婚禮上淡诗,老公的妹妹穿的比我還像新娘。我一直安慰自己伊履,他們只是感情好韩容,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著唐瀑,像睡著了一般群凶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哄辣,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天请梢,我揣著相機與錄音,去河邊找鬼力穗。 笑死毅弧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的当窗。 我是一名探鬼主播够坐,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼崖面!你這毒婦竟也來了元咙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嘶朱,失蹤者是張志新(化名)和其女友劉穎蛾坯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疏遏,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡脉课,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了财异。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倘零。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖戳寸,靈堂內(nèi)的尸體忽然破棺而出呈驶,到底是詐尸還是另有隱情,我是刑警寧澤疫鹊,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布袖瞻,位于F島的核電站司致,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏聋迎。R本人自食惡果不足惜脂矫,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霉晕。 院中可真熱鬧庭再,春花似錦、人聲如沸牺堰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伟葫。三九已至恨搓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扒俯,已是汗流浹背奶卓。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撼玄,地道東北人夺姑。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像掌猛,于是被迫代替她去往敵國和親盏浙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容