潘清
【摘要】 MPLS-VPN技術是一種基于標簽轉發的路由技術,該協議是由IETF于2002年提出的標準協議,目前主要用作于運營商、骨干網及一些大型園區網中的核心承載技術,MPLS-VPN技術使用一種特殊定義的標簽來標記路由,并通過標簽轉發代替傳統路由技術的路由查詢,效率非常高。并且可以通過虛擬轉發技術,在同一臺設備上虛擬出多張路由表,不同路由表之間相互隔離,從而形成了VPN的效果。
【關鍵詞】 MPLS-VPN技術 標簽交換 虛擬路由轉發 MP-BGP
隨著互聯網技術的不斷發展,越來越多的應用部署從本地局域網遷移至互聯網及云平臺上,使得運營商骨干網絡及一些大型企事業單位的網絡設備需要同時承載不同種類的業務流量,而在傳統的網絡環境中,所有業務流量承載在一臺設備的一張路由表內,使得路由表條目數量非常龐大,從而使得傳統IP路由的逐跳查找方式性能相對不高,并且不同業務流量之間沒有有效的隔離,存在一定的安全隱患。為了解決這個問題,可以使用MPLS-VPN技術來替代傳統的IP路由技術,承載骨干網及園區網的各類應用流量。
一、MPLS-VPN技術原理
MPLS(Multi Porotocol Label Switching)多協議標簽交換,是一種基于標簽交換的VPN。與傳統路由技術逐跳查找遍歷路由表尋找路由的方式不同,MPLS使用標簽交換,并基于預先生成好的標簽交換路徑進行數據轉發,效率更高。
標簽是一個32比特的精簡設計的字段,位于二層頭部與三層頭部之間,因此一般稱標簽位2.5層。其中標簽值占了前20個比特,總共可以生成2的20次方個不重復的標簽,用于分配給設備上的每一條路由條目。除了20個比特的標簽值,標簽還包含了3比特的實驗位,1比特的棧底位,8比特的TTL值。
每一臺運行過了MPLS的設備都需要為自身設備路由表中的每一條路由條目分發標簽,而分發標簽的任務就需要一種單獨的協議完成,這就是標簽分發協議LDP(Label Distribute Protocol),LDP是一個專門用于為IGP路由分發標簽的協議,并且會生成及維護一張標簽與路由對應關系表。LDP是為IGP分發標簽的協議,而對于BGP這種EGP,其自身就擁有分發標簽的能力。
當LDP為路由條目分發完標簽后,參與MPLS的設備就會通過運行了LDP的接口發送通告消息給其相鄰的LDP下游鄰居,通告消息內容包括了自身針對某條路由的標簽,鄰居設備收到標簽后,會將收到的標簽保存在本地,同樣也會將本地針對該路由條目的標簽通告給下游設備,以此類推,通過這樣的通告學習方式,鏈路上的設備都擁有了針對某條路由的自身標簽及上游設備通告來的標簽,這樣就形成了標簽轉發路徑LSP(Label Switching Path)。
當一個去往遠端地址的數據包被發送到第一臺運行了MPLS的設備時,該設備會查找上游設備針對這個遠端地址路由的標簽值,并為該數據包打上這個標簽,之后將數據包發送給上游設備,上游設備收到了這個帶標簽的數據包后,會查看再上游設備對應該路由條目的標簽,并將數據包中的標簽進行交換修改后發送給更上游的設備,依次類推,逐跳交換,直到數據包到達遠端目的地。
對于有多種不同業務流的情況,可以在MPLS邊界設備上啟用VRF(Virtual Route Forwarding)虛擬路由轉發技術,VRF是虛擬的路由表,傳統的路由器只有一張路由表,所有業務流的路由都在一張路由表內,沒有隔離,而VRF技術則實現了為不同業務流創建不同的路由表,并且路由表之間相互獨立,互不干擾。VRF通過與物理接口關聯,實現某一個接口進來的流量都放入對應的VRF路由表中。
在傳播多業務流的網絡環境中,為了區分不同業務流,需要為每一條路由條目添加一個特殊的值,用于標記路由,使其唯一,這個值就是RD(Route Distingish)值,RD值是一個64比特的字段,添加在IPv4路由條目前,使其成為唯一的VPNv4路由條目,此外還需要一個值,來標記不同流量歸屬于不同的VRF,這個值就是RT(Route Target),RT用戶關聯VRF,當接收到收到路由條目后會比對其中的RT值是否與本地某個VRF匹配,如果一致則會將該路由放入對應VRF中。
二、MPLS-VPN技術在園區網中的應用
在目前的中大型園區網設計中,通常在核心骨干位置部署相對較高性能的路由交換設備,因此可以在骨干處實施MPLS-VPN技術,在骨干網設備上啟用MPLS-VPN,使其成為標簽交換網絡,并且為不同的業務流創建不同的VRF虛擬路由表,從而達到有效的業務流量隔離效果。
在接入層的二層網絡中,仍然可以采用傳統的靜態路由方式,將默認流量根據不同的目的地址,指向不同的VRF下聯接口。
三臺路由器R1、R2、R3作為骨干設備運行了MPLSVPN技術,其中R1面向外部互聯網,R3面向內部局域網用戶,R2作為MPLS網絡中間設備。針對遠端網絡10.199.64.0/24的網絡,3臺設備都生成了該路由條目的標簽,R1生成了標簽100,R2生成了標簽200,R3生成了標簽300。之后R1將標簽100通告給R2,R2保存該標簽并將自己的標簽值200通告給R3。
當R3收到一個去往10.199.64.0/24網段的數據包時,會查詢本地數據庫,針對該路由條目的遠端鄰居R2發來的標簽值,查詢結果為200,這時R1會將標簽值200插入到數據包的二層及三層頭部之間,再將該數據包通過對應的出接口發送給R2,R2收到該數據包后不會再去查看三層頭部中的目的IP地址,而是直接查詢標簽200所對應的上游設備發來的標簽,查詢結果300,此時R2會將數據包原有標簽值200交換修改為300,再從出接口發送給R3,R3收到該數據包后將會執行同樣的操作,直到數據包抵達目的網段10.199.64.0/24。當數據包抵達最后一條MPLS設備時,該設備會將數據包中的標簽移除,使數據包還原成為一個普通的IPv4數據包,再將其發送給最終目的,這樣就完成了一個完整的標簽交換過程。
三、基于MPLS-VPN技術的MP-BGP技術
MPLS-VPN可以完成數據包的高速轉發及流量隔離,但是在實際數據轉發前,需要為其生成標簽轉發路徑,而這時基于路由來實現的。
可以這么理解,路由是形成標簽轉發所需要的道路,而實際的標簽轉發則是在路上行駛的車輛。在運營商骨干及一些中大型的園區網絡中,通常采用的是BGP路由協議來完成路由功能的,當MPLS-VPN技術配合BGP技術使用時,則成為MP-BGP(Multi-Protocol BGP)。
MP-BGP可以實現在MPLS網絡環境中傳遞多個VRF的路由,并且路由之間相互邏輯隔離。這主要是通過兩個參數來完成的,RD值及RT值,RD值用于標記IPv4路由,使其在網絡中唯一,RD值是一個64位比特長的字段,將RD值添加到IPv4路由前就形成了VPNv4路由,這樣在數據穿越MPLS網絡使就能保證其唯一性不至于混淆。當數據包抵達MPLS網絡對端時,這個RD值將會被移除,從而將數據包還原成普通的IPv4路由。
在MPLS網絡的邊界設備處,需要創建不同的VRF用于承載不同的業務流,而當一個數據包穿越網絡后如何確定該數據包屬于哪一個VRF,這就要依靠RT值來實現,RT值是一對參數,包含import值及export值,這兩個值用于與VRF相關聯,當數據包在穿越MPLS-VPN網絡時,會攜帶上這個VRF的RT export值,當數據包抵達對端MPLS邊界設備時,對端設備會將該RT export值與本地的RT import值相比較,如果一致,則證明該數據包送到該VRF中去繼續在IP網絡中傳輸。
通過這兩個參數,就使得BGP可以在MPLS-VPN網絡中傳輸多種業務流,并且業務流之間相互隔離,也不會混淆。而在內部局域網環境中,與邊界MPLS設備對接的設備,可以采用靜態路由的方式,根據不同的目的地址,將流量靜態指向對應VRF的下聯接口。
四、結語
在網絡需求日益增長的今天,如何保證網絡流量的告訴轉發及不同流量之間的相互隔離是每一個網絡設計者及實施人員必須考慮的問題,而MPLS-VPN技術則可以很好的實現這一需求,廣大網絡設計者在規劃園區網絡時,可以使用MPLS-VPN技術作為核心骨干承載技術。
參 考 文 獻
[1] 辛麗華.MPLS-VPN 組網技術及應用.科技情報開發與經濟,2006,3:213~215
[2] 林濤.MPLS VPN 技術在福建省政務信息網的應用.電子政務,2008,10:113~116
[3] 韓明明.VPN 技術在高校圖書館中的應用探討.中國計算機報,2006,29
[4] 宋慶.劉顏明.朱永升.MPLS 技術的研究.電子科技,2007(2):76~78
[5] 格林等.MPLS實現技術.北京:電子工業出版社,2005,6