本文編譯自networkfuntimes,作者Juniper Network網(wǎng)絡(luò)工程師Chris。
編者按:盡管 MPLS 技術(shù)已經(jīng)相當(dāng)成熟,有關(guān)它的文章數(shù)不勝枚舉,涵蓋了從基本原理到 SR-MPLS 等方方面面。然而,令人意外的是,實(shí)際上大多數(shù)網(wǎng)絡(luò)工程師并沒有真正理解 MPLS。Juniper Network網(wǎng)絡(luò)工程師Chris通過他的個人經(jīng)歷對此進(jìn)行了闡述。
失敗的 MPLS 面試
大約13年前,我在一家ISP公司從事二線支持工作。每天,我都在處理被稱作“MPLS電路”的客戶問題。當(dāng)時,我并不明白這究竟意味著什么,但我清楚自己每天都在解決這些問題。于是,我決定參加一次與MPLS相關(guān)的工作面試。
我至今仍記得我的第一次面試。第一個問題是:“如何使用MPLS構(gòu)建BGP-free core”。
我一頭霧水。
我對面試官的問題毫無頭緒,接下來又被問及流量工程和RSVP等問題……整個面試過程讓我感到十分困惑。原來我對“MPLS”的理解完全錯了。
那次面試讓我認(rèn)識到,當(dāng)人們談?wù)摗百徺IMPLS電路”時,實(shí)際上是在使用MPLS這個術(shù)語來特指MPLS的一個具體用例,而非更廣泛的技術(shù)概念。
根據(jù)我多年來的經(jīng)驗(yàn),你現(xiàn)在也很有可能正在犯這個錯誤。
認(rèn)知錯誤
MPLS在實(shí)質(zhì)上是支撐幾乎所有互聯(lián)網(wǎng)服務(wù)提供商的技術(shù)。它并非一種會很快被取代的技術(shù),事實(shí)上,它每年都在不斷改進(jìn)。
然而,每當(dāng)提到MPLS時,總會有人聲稱“SD-WAN將取代MPLS”。但事實(shí)上,他們所指并非真正的MPLS,而是MPLS VPN,尤其是第三層MPLS VPN。接下來,我們將詳細(xì)探討這一誤解的含義,以及兩者之間的區(qū)別。
正是因?yàn)檫@種誤解,很多人不再深入學(xué)習(xí)MPLS。他們聽說這是一種即將被“SD-WAN取代”的技術(shù),于是錯失了MPLS背后實(shí)際、更廣泛含義的技術(shù)。
那么,MPLS 究竟是什么?
這個問題的答案很長。
MPLS 是一種服務(wù)提供商用來管理網(wǎng)絡(luò)流量的技術(shù)。
通常,路由器會根據(jù)目標(biāo) IP 地址來轉(zhuǎn)發(fā)數(shù)據(jù)包。然而,在大型網(wǎng)絡(luò)中,特別是互聯(lián)網(wǎng)服務(wù)提供商的網(wǎng)絡(luò)中,這種簡單的方式就不夠用了。
首先,這些網(wǎng)絡(luò)需要處理大量的路由信息,每個路由器都必須知道整個互聯(lián)網(wǎng)的路由信息,以便能夠正確地轉(zhuǎn)發(fā)數(shù)據(jù)包。此外,服務(wù)提供商可能希望為不同的流量指定不同的路徑,而不是總是選擇最短路徑。
為了實(shí)現(xiàn)這一點(diǎn),我們可以在網(wǎng)絡(luò)的兩端設(shè)置兩臺路由器,并通過一個隧道來傳輸數(shù)據(jù)。這個隧道可以沿著我們指定的路徑,或者根據(jù)路由器的約束條件計算出的路徑傳輸數(shù)據(jù)包。
隧道傳輸數(shù)據(jù)包的一種方式是在數(shù)據(jù)包上添加一個標(biāo)簽,該標(biāo)簽告訴下一個路由器該數(shù)據(jù)包應(yīng)該如何轉(zhuǎn)發(fā)。這種標(biāo)簽的好處是接收路由器不需要查看目標(biāo) IP 地址,只需要根據(jù)標(biāo)簽來進(jìn)行轉(zhuǎn)發(fā)。
例如,下圖中有十個路由器,R1 和 R5 之間有兩條隧道。藍(lán)色隧道采用最短路徑,可以專用于最重要的流量。紅色隧道采用較長的路徑,可以用于不妨礙最重要流量的best-effort流量。
MPLS(多協(xié)議標(biāo)簽交換)就是通過標(biāo)簽交換來實(shí)現(xiàn)這一點(diǎn)的技術(shù)。
它允許在數(shù)據(jù)包上添加標(biāo)簽,并根據(jù)這些標(biāo)簽來轉(zhuǎn)發(fā)數(shù)據(jù)包,而不是根據(jù)目標(biāo) IP 地址。這樣一來,我們就可以在大型網(wǎng)絡(luò)中更有效地管理流量,并為不同的流量分配不同的路徑。
看到這里有人想問,為什么需要隧道?
原因有很多,以下是 MPLS 隧道的一些潛在用例:
1. BGP-free core:在核心路由器上運(yùn)行時,不需要存儲完整的互聯(lián)網(wǎng)路由表,只需根據(jù)標(biāo)簽來轉(zhuǎn)發(fā)數(shù)據(jù)包。
2. 優(yōu)先級隧道:創(chuàng)建采用最佳路徑的高優(yōu)先級隧道,以及采用較長路徑到達(dá)目的地的低優(yōu)先級隧道,通過將流量映射到這些隧道,可以將高優(yōu)先級和低優(yōu)先級的流量分開。
3. 動態(tài)路徑調(diào)整:可以在檢測到網(wǎng)絡(luò)擁塞問題時動態(tài)更改路徑。
4. 資源優(yōu)化:自動將低優(yōu)先級隧道移動到不同的路徑,以確保重要隧道能夠訪問最佳資源。
5. IPv4 到 IPv6 隧道:在 IPv4 核心上傳輸 IPv6 流量。
6. 多播隧道:在核心中運(yùn)行多播隧道,如為客戶提供 IPTV。
7. VPN 隧道:通過核心網(wǎng)對客戶的三層或二層 VPN 流量進(jìn)行隧道傳輸。
8. 連接服務(wù)提供商站點(diǎn):大型服務(wù)提供商可以將較小服務(wù)提供商的兩個站點(diǎn)連接在一起,使兩個站點(diǎn)看起來像是合二為一,而較大的服務(wù)提供商則充當(dāng)這些站點(diǎn)之間的隱形隧道。
這些只是 MPLS 在現(xiàn)代服務(wù)提供商網(wǎng)絡(luò)中的一小部分基本用例。
標(biāo)簽交換路徑
在前面的討論中,我們提到了許多關(guān)于“隧道”的內(nèi)容,實(shí)際上,“隧道”的另一個名稱就是“標(biāo)簽交換路徑”,而創(chuàng)建隧道的協(xié)議有很多種。
其中之一是LDP標(biāo)簽分發(fā)協(xié)議(Label Distribution Protocol)。LDP可以創(chuàng)建遵循最佳路徑度量的隧道,同時也可以執(zhí)行IPv6隧道、客戶VPN隧道以及無BGP核心等操作。
此外,還有RSVP源預(yù)留協(xié)議(Resource Reservation Protocol),它以其流量工程功能而聞名。
另一種較新的方法是分段路由(Segment Routing),特別是SR-MPLS,它也提供了上述許多功能。
MPLS允許在數(shù)據(jù)包上添加標(biāo)簽,然后根據(jù)這些標(biāo)簽來轉(zhuǎn)發(fā)數(shù)據(jù)包。MPLS與BGP的結(jié)合可以為整個互聯(lián)網(wǎng)賦能,因此MPLS將在很長一段時間內(nèi)繼續(xù)存在。
“網(wǎng)絡(luò)總是在變化,沒有人知道未來會發(fā)生什么,但如果一個18歲的年輕人今天開始在服務(wù)提供商行業(yè)工作,并在退休后仍然使用MPLS,那一點(diǎn)也不令人驚訝。這正顯示了MPLS對現(xiàn)代互聯(lián)網(wǎng)的重要性!”
人們認(rèn)為 MPLS 意味著什么?
MPLS的一個用例是通過核心網(wǎng)隧道傳輸客戶VPN流量。
想象一下,一個客戶在全國各地有數(shù)十個站點(diǎn)。每個站點(diǎn)都有至少一個私有IP地址范圍的LAN,并且需要連接到其他站點(diǎn)的各個LAN。這種連接可以是全網(wǎng)狀的,每個站點(diǎn)都可以訪問其他所有站點(diǎn),也可以只是在幾個選定的站點(diǎn)之間,或者只是從總部中心向外擴(kuò)展。
由于運(yùn)行 MPLS 的服務(wù)提供商只查看數(shù)據(jù)包上的標(biāo)簽,而不是 IP 本身,這使得服務(wù)提供商能夠使用 MPLS 為此類客戶提供 VPN 服務(wù)。客戶流量可以使用唯一的 MPLS VPN 標(biāo)簽進(jìn)行標(biāo)記,然后通過標(biāo)簽交換路徑進(jìn)行隧道傳輸。隧道另一端的接收服務(wù)提供商路由器將該 VPN 標(biāo)簽映射到特定客戶,從而使該客戶的流量在邏輯上與任何其他客戶(甚至是使用完全相同的私有 IP 的客戶)分開。
一般來說,MPLS VPN 有兩種“類型”。
一種是“三層VPN”(有時稱為L3VPN、IPVPN或VPNv4),服務(wù)提供商了解每個站點(diǎn)的LAN范圍,并在自己的網(wǎng)絡(luò)中發(fā)布它們,將它們標(biāo)記為屬于特定客戶VPN。不論是用BGP、OSPF,或者可能只用靜態(tài)路由,服務(wù)提供商的邊緣路由器都有一個用于該客戶VPN的三層路由表。
另一種是“二層VPN”,服務(wù)提供商不學(xué)習(xí)第三層IP范圍,而是執(zhí)行以下兩項(xiàng)操作之一:
1)可以充當(dāng)將兩個站點(diǎn)連接在一起的虛擬線路,以便從一端進(jìn)入的幀通過隧道傳輸?shù)搅硪欢恕7?wù)提供商不需要在這里學(xué)習(xí)MAC地址,因?yàn)閺囊欢诉M(jìn)入的所有流量都會在另一端發(fā)出。
2)充當(dāng)虛擬交換機(jī),服務(wù)提供商實(shí)際上可以在其中學(xué)習(xí)MAC地址。對于托管WAN電路的現(xiàn)場客戶設(shè)備而言,它可以直接獲知其他站點(diǎn)設(shè)備的MAC地址。但實(shí)際上,就像物理交換機(jī)一樣,服務(wù)提供商正在無形地檢查流量,了解所有MAC地址的位置,并相應(yīng)地轉(zhuǎn)發(fā)和洪泛流量。VPLS(虛擬專用LAN服務(wù))和EVPN(以太網(wǎng)VPN)是實(shí)現(xiàn)這一目的的兩種不同方式。
“MPLS 電路”
不知道從什么時候開始,MPLS電路(MPLS circuits)這個詞被用來代指MPLS VPN。
有趣的是,通過這些所謂的MPLS電路傳輸?shù)臄?shù)據(jù)包實(shí)際上并不攜帶任何MPLS標(biāo)簽!標(biāo)簽只出現(xiàn)在網(wǎng)絡(luò)的服務(wù)提供商部分。客戶現(xiàn)場路由器根本不支持MPLS。相反,WAN電路的服務(wù)提供商端的接口將從公共互聯(lián)網(wǎng)中取出,并放置到客戶的私有路由實(shí)例中。然后,服務(wù)提供商使用MPLS在其網(wǎng)絡(luò)中傳輸VPN流量。
因此,嚴(yán)格來說,MPLS電路并不涉及任何MPLS技術(shù)。
這種誤用的結(jié)果是,許多網(wǎng)絡(luò)工程師錯誤地認(rèn)為“MPLS”這個術(shù)語只有MPLS VPN 和 L3VPN一個含義。他們也不了解標(biāo)簽、標(biāo)簽交換路徑、LDP 或 RSVP等相關(guān)概念。
“SD-WAN 是 MPLS 殺手?”
自2010年代以來,關(guān)于“SD-WAN是MPLS的殺手”的言論層出不窮。
很多人只熟悉MPLS L3VPN,就宣稱MPLS即將退出歷史舞臺,因?yàn)樗麄儧]有意識到MPLS一詞還有另一個更廣泛的含義。
我已經(jīng)記不清我寫過多少篇關(guān)于MPLS流量工程或BGP-free core的文章,但還是有很多人評論“我不認(rèn)為MPLS有未來”或“我認(rèn)為SD-WAN將取代MPLS”。
然而,MPLS不會很快消失。
就其價值而言,我不認(rèn)為SD-WAN會“殺死”MPLS VPN。SD-WAN和MPLS VPN都有各自的用例,各有優(yōu)缺點(diǎn)。只能說隨著時間的推移,一種解決方案可能會比另一種更受歡迎。
審核編輯 :黃飛
評論
查看更多