VPN服務(wù)的概念很早就已經(jīng)提出。傳統(tǒng)的VPN是通過電信運營商在傳輸網(wǎng)上提供的覆蓋型的VPN服務(wù)。電信運營商對用戶出租線路,用戶上層使用何種的路由協(xié)議、路由怎么走等等,這些電信運營商都不管。這種租用線路來搭建VPN的好處是安全,但是價格昂貴、線路資源浪費嚴(yán)重。隨著IP網(wǎng)絡(luò)的全面鋪開,在競爭的壓力下,運營商開始嘗試提供更加廉價的VPN服務(wù)。通過提供給用戶一個IP平臺,用戶通過IPOverIP的封裝格式在公網(wǎng)上打隧道,同時也提供了加密等安全保障。這類VPN用戶在目前的網(wǎng)絡(luò)上數(shù)量還是相當(dāng)巨大的。但是這類VPN服務(wù)因大量的加密工作、傳統(tǒng)路由器根據(jù)IP包頭的目的地址轉(zhuǎn)發(fā)效率不高等等的原因不是非常令人滿意。
MPLS技術(shù)的出現(xiàn)和相應(yīng)的路由協(xié)議的改進(jìn),給我們提供了另一種實現(xiàn)VPN的方法。下面我們分析一下,在MPLS上如何實現(xiàn)VPN。
多協(xié)議標(biāo)記交換MPLS網(wǎng)絡(luò)
MPLS網(wǎng)絡(luò)的主要組成包括邊緣標(biāo)記交換路由器(EdgeLSR)、標(biāo)記交換路由器(LSR)和標(biāo)記分發(fā)協(xié)議(LDP)。
標(biāo)記分發(fā)協(xié)議是基于網(wǎng)內(nèi)路由協(xié)議,在MPLS網(wǎng)絡(luò)的所有標(biāo)記交換設(shè)備之間定義標(biāo)記的協(xié)議。標(biāo)記是在普通的數(shù)據(jù)報文內(nèi)定義的一個字段,不同的物理網(wǎng)絡(luò),標(biāo)記的表現(xiàn)形式不一樣。標(biāo)記的分發(fā)基于網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)而不是實際的數(shù)據(jù)報文;同時,標(biāo)記只在網(wǎng)絡(luò)的每一段鏈路上本地有效。在基本的MPLS網(wǎng)絡(luò)中,標(biāo)記一般表示路由的信息;但在高級的MPLS網(wǎng)絡(luò)中,不同的標(biāo)記還可以用來表示不同的服務(wù)等級、不同的VPN或不同轉(zhuǎn)發(fā)路徑。
非MPLS網(wǎng)絡(luò)的數(shù)據(jù)報文并不含標(biāo)記的信息,邊緣標(biāo)記交換路由器就是負(fù)責(zé)在MPLS網(wǎng)絡(luò)的邊緣對數(shù)據(jù)包進(jìn)行標(biāo)記和去除標(biāo)記的工作。在數(shù)據(jù)包進(jìn)入MPLS網(wǎng)絡(luò)的時候,邊緣標(biāo)記交換路由器根據(jù)網(wǎng)絡(luò)拓?fù)溥M(jìn)行數(shù)據(jù)包的處理,同時根據(jù)標(biāo)記分發(fā)協(xié)議所定義的標(biāo)記,給數(shù)據(jù)包加上標(biāo)記進(jìn)入MPLS網(wǎng)絡(luò)。在數(shù)據(jù)包離開MPLS網(wǎng)絡(luò)的時候,邊緣標(biāo)記交換路由器作相反的動作,將數(shù)據(jù)包的標(biāo)記去除進(jìn)入非MPLS網(wǎng)絡(luò)。
標(biāo)記交換路由器是根據(jù)標(biāo)記分發(fā)協(xié)議預(yù)先計算出的標(biāo)記交換表來轉(zhuǎn)發(fā)帶標(biāo)記的數(shù)據(jù)包的核心設(shè)備。標(biāo)記交換路由器只須支持標(biāo)記轉(zhuǎn)發(fā),因此這種設(shè)備可以是一臺交換機,也可以是一臺路由器。在ATM網(wǎng)絡(luò)中,標(biāo)記表現(xiàn)為ATM的參數(shù)VPI和VCI。如果一臺ATM交換機支持標(biāo)記分發(fā)協(xié)議,并據(jù)此轉(zhuǎn)發(fā)ATM包,它也可以作為MPLS網(wǎng)絡(luò)的標(biāo)記交換路由器。
MPLS網(wǎng)絡(luò)結(jié)合了二層交換和三層路由的技術(shù),集中了交換網(wǎng)絡(luò)和IP網(wǎng)絡(luò)的優(yōu)勢,既可以實現(xiàn)交換網(wǎng)絡(luò)的私密性和業(yè)務(wù)等級,也可以達(dá)到IP網(wǎng)絡(luò)的靈活性和擴(kuò)展性。在此基礎(chǔ)上,MPLS網(wǎng)絡(luò)還給運營商帶來了更多的應(yīng)用,包括MPLSVPN(二層和三層)、MPLS流量工程和MPLS業(yè)務(wù)等級。
二層透傳——AToM
AToM建設(shè)在MPLS網(wǎng)絡(luò)的基礎(chǔ)設(shè)施之上,在兩個路由器的一對端口之間提供高速的二層透傳。這種技術(shù)可以用來提供二層VPN,也可以用來實現(xiàn)傳統(tǒng)網(wǎng)絡(luò)的升級。AToM主要組成部分包括:PE路由器、標(biāo)記分發(fā)協(xié)議(LDP)和MPLS標(biāo)記交換隧道(LSPTunnel)。
PE路由器擁有并維護(hù)與其直接相連的二層透傳的鏈路信息。PE路由器負(fù)責(zé)將VPN客戶的普通數(shù)據(jù)包打上標(biāo)記和去除標(biāo)記,因此PE路由器必須是一個邊緣標(biāo)記交換路由器。
在兩個PE路由器之間實現(xiàn)二層透傳的兩個端口必須是相同的類型,例如以太網(wǎng)、VLAN、ATMVC、幀中繼VC、HDLC或PPP。每一對這樣的端口用一個唯一的虛擬鏈路標(biāo)志(VCID)來表示。
在兩個PE路由器之間要定義穿過MPLS網(wǎng)絡(luò)的LSP隧道,LSP隧道提供了隧道標(biāo)記(TunnelLabel),在兩個PE路由器之間透傳數(shù)據(jù)。同時在兩個PE路由器之間還要定義直接的標(biāo)記分發(fā)協(xié)議進(jìn)程,用來傳遞虛擬鏈路的信息,其中最關(guān)鍵的是通過匹配VCID來分發(fā)虛擬鏈路標(biāo)記(VCLabel)。
當(dāng)二層透傳的端口有數(shù)據(jù)包進(jìn)入PE路由器時,PE路由器通過匹配VCID找到與之對應(yīng)的隧道標(biāo)記和虛擬鏈路標(biāo)記。PE路由器會將此數(shù)據(jù)包打上兩層標(biāo)記,其中外層標(biāo)記為隧道標(biāo)記,指示從該PE路由器到目的PE路由器的路徑;內(nèi)層標(biāo)記為虛擬鏈路標(biāo)記,指示在目的PE路由器上屬于哪個VCID對應(yīng)的路由器端口。
值得一提的是,PE路由器要監(jiān)視各自端口上的二層協(xié)議狀態(tài),如幀中繼的LMI或ATM的ILMI。當(dāng)出現(xiàn)故障時,通過標(biāo)記分發(fā)協(xié)議進(jìn)程來取消虛擬鏈路標(biāo)記,從而斷開此二層透傳,避免產(chǎn)生單向無用數(shù)據(jù)流。
這種基于MPLS的二層透傳方式,改變了傳統(tǒng)的二層鏈路必須通過交換網(wǎng)絡(luò)實現(xiàn)的限制,它從根本上形成了“一個網(wǎng)多種業(yè)務(wù)”的業(yè)務(wù)模式,讓運營商可以在一個MPLS網(wǎng)絡(luò)中同時提供二層業(yè)務(wù)和三層業(yè)務(wù)。
基于二層透傳技術(shù)的是二層VPN,F(xiàn)在,二層VPN的各項標(biāo)準(zhǔn)正處于IETF起草階段,主要包括針對點到點服務(wù)的虛擬私用線路服務(wù)(VPWS)和針對多點服務(wù)的虛擬私用局域網(wǎng)服務(wù)(VPLS)。這兩種二層VPN都采用以AToM為基礎(chǔ)的數(shù)據(jù)層面,在控制層面上增加自動發(fā)現(xiàn)和自動配置等多種功能。
三層VPN——MPLSVPN
三層VPN是專門為VPN所設(shè)計的,建設(shè)在MPLS網(wǎng)絡(luò)的基礎(chǔ)設(shè)施之上,即感知VPN的網(wǎng)絡(luò)。三層VPN網(wǎng)絡(luò)的主要組成部分包括:PE路由器、P路由器和網(wǎng)關(guān)路由協(xié)議(BGP)。
PE路由器擁有并維護(hù)與其直接相連的VPN的路由信息。PE路由器負(fù)責(zé)將VPN客戶的普通數(shù)據(jù)包打上標(biāo)記和去除標(biāo)記,因此PE路由器必須是一個邊緣標(biāo)記交換路由器。
在PE路由器上,為每一個VPN設(shè)定了一個虛擬路由轉(zhuǎn)發(fā)表(VRF),只處理該VPN的路由信息。PE路由器只通過該虛擬路由轉(zhuǎn)發(fā)表與VPN用戶交換路由信息(可以采用任何一種動態(tài)路由協(xié)議)。同時PE路由器上還有一個全局路由表,維持MPLS骨干網(wǎng)所需的路由信息。各個路由轉(zhuǎn)發(fā)表之間相互隔離,每一個端口(包括物理的和邏輯的)都只能屬于一個路由轉(zhuǎn)發(fā)表,保證各VPN用戶之間的私密性。
每個虛擬路由轉(zhuǎn)發(fā)表采用一個路由區(qū)分符(RD)來區(qū)分彼此的路由,64位的RD加上32位的普通IP地址組成96位全網(wǎng)唯一的VPN-IPv4地址。通過這種方式,三層VPN可以允許不同的VPN內(nèi)部采用相同的地址而互不影響。
PE路由器之間通過RFC2283定義的多協(xié)議擴(kuò)展的網(wǎng)關(guān)路由協(xié)議(MP-BGP)來傳遞VPN-IPv4地址,同時參與傳遞的還有與該地址對應(yīng)的擴(kuò)展BGP屬性和VPN標(biāo)記。其中一項擴(kuò)展BGP屬性是路由目的(RT),用來控制路由信息到虛擬路由轉(zhuǎn)發(fā)表之間的引入和引出關(guān)系。
當(dāng)VPN用戶的數(shù)據(jù)包通過任一端口進(jìn)入PE路由器時,PE路由器只調(diào)用與此端口對應(yīng)的虛擬路由轉(zhuǎn)發(fā)表來處理此數(shù)據(jù)包。PE路由器會將此數(shù)據(jù)包打上兩層標(biāo)記,其中外層標(biāo)記為IGP標(biāo)記,指示從該PE路由器到目的PE路由器的路徑;內(nèi)層標(biāo)記為VPN標(biāo)記,指示在目的PE路由器上屬于哪個VPN的信息。
P路由器是MPLS網(wǎng)絡(luò)的標(biāo)記交換路由器,完全依據(jù)標(biāo)記進(jìn)行轉(zhuǎn)發(fā)。由于P路由器完全不須要讀取原始的數(shù)據(jù)包信息來作出轉(zhuǎn)發(fā)決定,P路由器不須要擁有VPN的路由信息,因此P路由器只參與骨干IGP的路由。
這種三層VPN的實現(xiàn)方式從根本上改變了傳統(tǒng)的基于點到點的VPN實現(xiàn)方式,它利用了MPLS網(wǎng)絡(luò)中標(biāo)記的靈活性和多樣性,將每一個VPN作為一個邏輯網(wǎng)絡(luò),依附在MPLS骨干網(wǎng)之上,各個用戶節(jié)點只須簡單加入或退出,就可以組建特定的VPN網(wǎng)絡(luò)。(斯文 人民郵電報)
光纖在線公眾號
更多猛料!歡迎掃描左方二維碼關(guān)注光纖在線官方微信