MPLS L3×××
MPLS L3×××概述
MPLS L3×××是服務提供商×××解決方案中一種基於PE的L3×××技術,它使用BGP在服務提供商骨幹網上發佈×××路由,使用MPLS在服務提供商骨幹網上轉發×××報文。
MPLS L3×××組網方式靈活、可擴展性好,並能夠方便地支持MPLS QoS和MPLS TE,因此得到越來越多的應用。
MPLS L3×××模型由三部分組成:CE、PE和P。
l CE(Customer Edge)設備:用戶網絡邊緣設備,有接口直接與SP(Service Provider,服務提供商)相連。CE可以是路由器或交換機,也可以是一臺主機。CE“感知”不到×××的存在,也不需要必須支持MPLS。
l PE(Provider Edge)路由器:服務提供商邊緣路由器,是服務提供商網絡的邊緣設備,與用戶的CE直接相連。在MPLS網絡中,對×××的所有處理都發生在PE上。
l P(Provider)路由器:服務提供商網絡中的骨幹路由器,不與CE直接相連。P設備只需要具備基本MPLS轉發能力。
圖 1是一個MPLS L3×××組網方案的示意圖。
CE和PE的劃分主要是根據SP與用戶的管理範圍,CE和PE是兩者管理範圍的邊界。
CE設備通常是一臺路由器,當CE與直接相連的PE建立鄰接關係後,CE把本站點的×××路由發佈給PE,並從PE學到遠端×××的路由。CE與PE之間使用BGP/IGP交換路由信息,也可以使用靜態路由。
PE從CE學到CE本地的×××路由信息後,通過BGP與其它PE交換×××路由信息。PE路由器只維護與它直接相連的×××的路由信息,不維護服務提供商網絡中的所有×××路由。
P路由器只維護到PE的路由,不需要了解任何×××路由信息。
當在MPLS骨幹網上傳輸×××流量時,入口PE做爲Ingress LSR(Label Switch Router,標籤交換路由器),出口PE做爲Egress LSR,P路由器則做爲Transit LSR。
MPLS L3×××的基本概念
1. Site
在介紹×××時經常會提到“Site”,Site(站點)的含義可以從下述幾個方面理解:
l Site是指相互之間具備IP連通性的一組IP系統,並且,這組IP系統的IP連通性不需通過服務提供商網絡實現;
l Site的劃分是根據設備的拓撲關係,而不是地理位置,儘管在大多數情況下一個Site中的設備地理位置相鄰;
l 一個Site中的設備可以屬於多個×××,換言之,一個Site可以屬於多個×××;
l Site通過CE連接到服務提供商網絡,一個Site可以包含多個CE,但一個CE只屬於一個Site。
對於多個連接到同一服務提供商網絡的Sites,通過制定策略,可以將它們劃分爲不同的集合(set),只有屬於相同集合的Sites之間才能通過服務提供商網絡互訪,這種集合就是×××。
2. 地址空間重疊
×××是一種私有網絡,不同的×××獨立管理自己使用的地址範圍,也稱爲地址空間(Address Space)。
不同×××的地址空間可能會在一定範圍內重合,比如,×××1和×××2都使用了10.110.10.0/24網段的地址,這就發生了地址空間重疊(Overlapping Address Spaces)。
3. ×××實例
在MPLS ×××中,不同×××之間的路由隔離通過×××實例(×××-instance)實現。
PE爲每個直接相連的Site建立並維護專門的×××實例。×××實例中包含對應Site的×××成員關係和路由規則。如果一個Site中的用戶同時屬於多個×××,則該Site的×××實例中將包括所有這些×××的信息。
爲保證×××數據的獨立性和安全性,PE上每個×××實例都有相對獨立的路由表和LFIB(Label Forwarding Information Base,標籤轉發表)。
具體來說,×××實例中的信息包括:標籤轉發表、IP路由表、與×××實例綁定的接口以及×××實例的管理信息。×××實例的管理信息包括RD(Route Distinguisher,路由標識符)、路由過濾策略、成員接口列表等。
4. ×××-IPv4地址
傳統BGP無法正確處理地址空間重疊的×××的路由。假設×××1和×××2都使用了10.110.10.0/24網段的地址,並各自發布了一條去往此網段的路由,BGP將只會選擇其中一條路由,從而導致去往另一個×××的路由丟失。
PE路由器之間使用MP-BGP來發布×××路由,並使用×××-IPv4地址族來解決上述問題。
×××-IPv4地址共有12個字節,包括8字節的RD和4字節的IPv4地址前綴,如圖 2所示。
PE從CE接收到普通IPv4路由後,需要將這些私網×××路由發佈給對端PE。私網路由的獨立性是通過爲這些路由附加RD實現的。
SP可以獨立地分配RD,但必須保證RD的全局唯一性。這樣,即使來自不同服務提供商的×××使用了同樣的IPv4地址空間,PE路由器也可以向各×××發佈不同的路由。
建議爲PE上每個×××實例配置專門的RD,以保證到達同一CE的路由都使用相同的RD。RD爲0的×××-IPv4地址相當於全局唯一的IPv4地址。
RD的作用是添加到一個特定的IPv4前綴,使之成爲全局唯一的××× IPv4前綴。
RD或者是與自治系統號(ASN)相關的,在這種情況下,RD是由一個自治系統號和一個任意的數組成;或者是與IP地址相關的,在這種情況下,RD是由一個IP地址和一個任意的數組成。
RD有三種格式,通過2字節的Type字段區分:
l Type爲0時,Administrator子字段佔2字節,Assigned number子字段佔4字節,格式爲:16bits自治系統號:32bits用戶自定義數字。例如:100:1
l Type爲1時,Administrator子字段佔4字節,Assigned number子字段佔2字節,格式爲:32bitsIPv4地址:16bits用戶自定義數字。例如:172.1.1.1:1
l Type爲2時,Administrator子字段佔4字節,Assigned number子字段佔2字節,格式爲:32bits自治系統號:16bits用戶自定義數字,其中的自治系統號最小值爲65536。例如:65536:1
爲保證RD的全局唯一性,建議不要將Administrator子字段的值設置爲私有AS號或私有IP地址。
5. ××× Target屬性
MPLS L3×××使用BGP擴展團體屬性——××× Target(也稱爲Route Target)來控制×××路由信息的發佈。
PE路由器上的×××實例有兩類××× Target屬性:
l Export Target屬性:在本地PE將從與自己直接相連的Site學到的×××-IPv4路由發佈給其它PE之前,爲這些路由設置Export Target屬性;
l Import Target屬性:PE在接收到其它PE路由器發佈的×××-IPv4路由時,檢查其Export Target屬性,只有當此屬性與PE上×××實例的Import Target屬性匹配時,才把路由加入到相應的×××路由表中。
也就是說,××× Target屬性定義了一條×××-IPv4路由可以爲哪些Site所接收,PE路由器可以接收哪些Site發送來的路由。
與RD類似,××× Target也有三種格式:
l 16bits自治系統號:32bits用戶自定義數字,例如:100:1。
l 32bits IPv4地址:16bits用戶自定義數字,例如:172.1.1.1:1。
l 32bits自治系統號:16bits用戶自定義數字,其中的自治系統號最小值爲65536。例如:65536:1。
6. MP-BGP
MP-BGP(Multiprotocol extensions for BGP-4)在PE路由器之間傳播×××組成信息和路由。MP-BGP向下兼容,既可以支持傳統的IPv4地址族,又可以支持其他地址族(比如×××-IPv4地址族)。使用MP-BGP既確保×××的私網路由只在×××內發佈,又實現了MPLS ×××成員間的通信。
7. 路由策略(Routing Policy)
在通過入口、出口擴展團體來控制×××路由發佈的基礎上,如果需要更精確地控制×××路由的引入和發佈,可以使用入方向或出方向路由策略。
入方向路由策略根據路由的××× Target屬性進一步過濾可引入到×××實例的路由,它可以拒絕接收引入列表中的團體選定的路由,而出方向路由策略則可以拒絕發佈輸出列表中的團體選定的路由。
×××實例創建完成後,可以選擇是否需要配置入方向或出方向路由策略。
8. 隧道策略(Tunneling Policy)
隧道策略用於選擇給特定×××實例的報文使用的隧道。
隧道策略是可選配的,×××實例創建完成後,就可以配置隧道策略。缺省情況下,選擇LSP做爲隧道,不進行負載分擔(負載分擔條數爲1)。另外,隧道策略只在同一AS域內生效。
MPLS L3×××的報文轉發
在基本MPLS L3×××應用中(不包括跨域的情況),×××報文轉發採用兩層標籤方式:
l 第一層(外層)標籤在骨幹網內部進行交換,指示從PE到對端PE的一條LSP。×××報文利用這層標籤,可以沿LSP到達對端PE;
l 第二層(內層)標籤在從對端PE到達CE時使用,指示報文應被送到哪個Site,或者更具體一些,到達哪一個CE。這樣,對端PE根據內層標籤可以找到轉發報文的接口。
特殊情況下,屬於同一個×××的兩個Site連接到同一個PE,這種情況下只需要知道如何到達對端CE。
以圖 3爲例,說明×××報文的轉發:
(1) Site 1發出一個目的地址爲1.1.1.2的IP報文,由CE 1將報文發送至PE 1。
(2) PE 1根據報文到達的接口及目的地址查找×××實例表項,匹配後將報文轉發出去,同時打上內層和外層兩個標籤。
(3) MPLS網絡利用報文的外層標籤,將報文傳送到PE 2(報文在到達PE 2前一跳時已經被剝離外層標籤,僅含內層標籤)。
(4) PE 2根據內層標籤和目的地址查找×××實例表項,確定報文的出接口,將報文轉發至CE 2。
(5) CE 2根據正常的IP轉發過程將報文傳送到目的地。
MPLS L3×××的網絡架構
在MPLS L3×××網絡中,通過××× Target屬性來控制×××路由信息在各Site之間的發佈和接收。××× Export Target和Import Target的設置相互獨立,並且都可以設置多個值,能夠實現靈活的×××訪問控制,從而實現多種×××組網方案。
1. 基本的×××組網方案
最簡單的情況下,一個×××中的所有用戶形成閉合用戶羣,相互之間能夠進行流量轉發,×××中的用戶不能與任何本×××以外的用戶通信。
對於這種組網,需要爲每個×××分配一個××× Target,作爲該×××的Export Target和Import Target,並且,此××× Target不能被其他×××使用。
在圖 4中,PE上爲××× 1分配的××× Target值爲100:1,爲××× 2分配的××× Target值爲200:1。××× 1的兩個Site之間可以互訪,××× 2的兩個Site之間也可以互訪,但××× 1和××× 2的Site之間不能互訪。
2. Hub&Spoke組網方案
如果希望在×××中設置中心訪問控制設備,其它用戶的互訪都通過中心訪問控制設備進行,可以使用Hub&Spoke組網方案,從而實現中心設備對兩端設備之間的互訪進行監控和過濾等功能。
對於這種組網,需要設置兩個××× Target,一個表示“Hub”,另一個表示“Spoke”。
各Site在PE上的×××實例的××× Target設置規則爲:
l 連接Spoke站點(Site 1和Site 2)的Spoke-PE:Export Target爲“Spoke”,Import Target爲“Hub”;
l 連接Hub站點(Site 3)的Hub-PE:Hub-PE上需要使用兩個接口或子接口,一個用於接收Spoke-PE發來的路由,其×××實例的Import Target爲“Spoke”;另一個用於向Spoke-PE發佈路由,其×××實例的Export Target爲“Hub”。
在圖 5中,Spoke站點之間的通信通過Hub站點進行(圖中箭頭所示爲Site 2的路由向Site 1的發佈過程):
l Hub-PE能夠接收所有Spoke-PE發佈的×××-IPv4路由;
l Hub-PE發佈的×××-IPv4路由能夠爲所有Spoke-PE接收;
l Hub-PE將從Spoke-PE學到的路由發佈給其他Spoke-PE,因此,Spoke站點之間可以通過Hub站點互訪。
l 任意Spoke-PE的Import Target屬性不與其它Spoke-PE的Export Target屬性相同。因此,任意兩個Spoke-PE之間不直接發佈×××-IPv4路由,Spoke站點之間不能直接互訪。
3. Extranet組網方案
如果一個×××用戶希望提供部分本×××的站點資源給非本×××的用戶訪問,可以使用Extranet組網方案。
對於這種組網,如果某個×××需要訪問共享站點,則該×××的Export Target必須包含在共享站點的×××實例的Import Target中,而其Import Target必須包含在共享站點×××實例的Export Target中。
在圖 6中,××× 1的Site 3能夠被××× 1和××× 2訪問:
l PE 3能夠接受PE 1和PE 2發佈的×××-IPv4路由;
l PE 3發佈的×××-IPv4路由能夠爲PE 1和PE 2接受;
l 基於以上兩點,××× 1的Site 1和Site 3之間能夠互訪,××× 2的Site 2和××× 1的Site 3之間能夠互訪。
PE 3不把從PE 1接收的×××-IPv4路由發佈給PE 2,也不把從PE 2接收的×××-IPv4路由發佈給PE 1(IBGP鄰居學來的條目是不會再發送給別的IBGP鄰居),因此,××× 1的Site 1和××× 2的Site 2之間不能互訪。
MPLS L3×××的路由信息發佈
在基本MPLS L3×××組網中,×××路由信息的發佈涉及CE和PE,P路由器只維護骨幹網的路由,不需要了解任何×××路由信息。PE路由器也只維護與它直接相連的×××的路由信息,不維護所有×××路由。因此,MPLS L3×××網絡具有良好的可擴展性。
×××路由信息的發佈過程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到遠端CE。完成這三部分後,本地CE與遠端CE之間將建立可達路由,×××私網路由信息能夠在骨幹網上發佈。
下面分別對這三部分進行介紹。
1. 本地CE到入口PE的路由信息交換
CE與直接相連的PE建立鄰接關係後,把本站點的×××路由發佈給PE。
CE與PE之間可以使用靜態路由、RIP、OSPF、IS-IS或EBGP。無論使用哪種路由協議,CE發佈給PE的都是標準的IPv4路由。
2. 入口PE到出口PE的路由信息交換
PE從CE學到×××路由信息後,爲這些標準IPv4路由增加RD和××× Target屬性,形成×××-IPv4路由,存放到爲CE創建的×××實例中。
入口PE通過MP-BGP把×××-IPv4路由發佈給出口PE。出口PE根據×××-IPv4路由的Export Target屬性與自己維護的×××實例的Import Target屬性,決定是否將該路由加入到×××實例的路由表。
PE之間通過IGP來保證內部的連通性。
3. 出口PE到遠端CE的路由信息交換
遠端CE有多種方式可以從出口PE學習×××路由,包括靜態路由、RIP、OSPF、IS-IS和EBGP,與本地CE到入口PE的路由信息交換相同。
跨域×××
實際組網應用中,某用戶一個×××的多個Site可能會連接到使用不同AS號的多個服務提供商,或者連接到一個服務提供商的多個AS。這種×××跨越多個自治系統的應用方式被稱爲跨域×××(Multi-AS ×××)。
RFC 2547bis中提出了三種跨域×××解決方案,分別是:
l VRF-to-VRF:ASBR間使用子接口管理×××路由,也稱爲Inter-Provider Option A;
l EBGP Redistribution of labeled ×××-IPv4 routes:ASBR間通過MP-EBGP發佈標籤×××-IPv4路由,也稱爲Inter-Provider Option B;
l Multihop EBGP redistribution of labeled ×××-IPv4 routes:PE間通過MP-EBGP發佈標籤×××-IPv4路由,也稱爲Inter-Provider Option C。
下面逐一對這些方案進行介紹。
1. ASBR間使用子接口管理×××路由
這種方式下,兩個AS的PE路由器直接相連,PE路由器同時也是各自所在自治系統的邊界路由器ASBR。
作爲ASBR的PE之間通過多個子接口相連,兩個PE都把對方作爲自己的CE設備對待,使用傳統的EBGP方式向對端發佈IPv4路由。報文在AS內部作爲×××報文,採用兩層標籤轉發方式;在ASBR之間則採用普通IP轉發方式。
理想情況下,每個跨域的×××都有一對子接口與之對應,用來交換×××路由信息。
使用子接口實現跨域×××的優點是實現簡單:兩個作爲ASBR的PE之間不需要爲跨域進行特殊配置。
缺點是可擴展性差:作爲ASBR的PE需要管理所有×××路由,爲每個×××創建×××實例。這將導致PE上的×××-IPv4路由數量過於龐大。並且,爲每個×××單獨創建子接口也提高了對PE設備的要求。
2. ASBR間通過MP-EBGP發佈標籤×××-IPv4路由
這種方式下,兩個ASBR通過MP-EBGP交換它們從各自AS的PE路由器接收的標籤×××-IPv4路由。
路由發佈過程可分爲以下步驟:
(1) AS 100內的PE先通過MP-IBGP方式把標籤×××-IPv4路由發佈給AS 100的邊界路由器PE,或發佈給爲ASBR PE反射路由的路由反射器;
(2) 作爲ASBR的PE通過MP-EBGP方式把標籤×××-IPv4路由發佈給AS 200的PE(也是AS 200的邊界路由器);
(3) AS 200的ASBR PE再通過MP-IBGP方式把標籤×××-IPv4路由發佈給AS 200內的PE,或發佈給爲PE反射路由的路由反射器。
這種方式的ASBR需要對標籤×××-IPv4路由進行特殊處理,因此也稱爲ASBR擴展方式。
圖 8 ASBR間通過MP-EBGP發佈標籤×××-IPv4路由組網圖
在可擴展性方面,通過MP-EBGP發佈標籤×××-IPv4路由優於ASBR間通過子接口管理×××。
採用MP-EBGP方式時,需要注意:
l ASBR之間不對接收的×××-IPv4路由進行××× Target過濾,因此,交換×××-IPv4路由的各AS服務提供商之間需要就這種路由交換達成信任協議;
l ×××-IPv4路由交換僅發生在私網對等點之間,不能與公網交換×××-IPv4路由,也不能與沒有達成信任協議的MP-EBGP對等體交換×××-IPv4路由。
3. PE間通過MP-EBGP發佈標籤×××-IPv4路由
前面介紹的兩種方式都能夠滿足跨域×××的組網需求,但這兩種方式也都需要ASBR參與×××-IPv4路由的維護和發佈。當每個AS都有大量的×××路由需要交換時,ASBR就很可能成爲阻礙網絡進一步擴展的瓶頸。
解決上述可擴展性問題的方案是:ASBR不維護或發佈×××-IPv4路由,PE之間直接交換×××-IPv4路由。
兩個ASBR通過MP-IBGP向各自AS內的PE路由器發佈標籤IPv4路由。
ASBR上不保存×××-IPv4路由,相互之間也不通告×××-IPv4路由。
ASBR保存AS內PE的帶標籤的IPv4路由,並通告給其它AS的對等體。另一個自治系統中的ASBR也通告帶標籤的IPv4路由。這樣,在入口PE和出口PE之間建立起一條LSP。
不同AS的PE之間建立Multihop方式的EBGP連接,交換×××-IPv4路由。
圖 9 PE間通過Multi-hop MP-EBGP發佈標籤×××-IPv4路由組網圖
爲提高可擴展性,可以在每個AS中指定一個路由反射器RR(Route Reflector),由RR保存所有×××-IPv4路由,與AS的PE交換×××-IPv4路由信息。兩個AS的RR之間建立跨域×××v4連接,通告×××-IPv4路由。如圖 10所示。
運營商的運營商
1. 簡介
MPLS L3×××服務提供商的用戶可能也是一個服務提供商。這種情況下,前者稱爲提供商運營商(Provider Carrier)或一級運營商(First Carrier),後者稱爲客戶運營商(Customer Carrier)或二級運營商(Second Carrier)。這種組網模型稱爲運營商的運營商(Carriers’ carriers),低級別的SP作爲更高級別SP的CE。
爲保持良好的可擴展性,一級運營商並不引入二級運營商的外部路由,只引入爲不同站點的二級運營商交換報文的路由。二級運營商維護的外部路由通過在相關二級運營商路由器間建立BGP會話交換。這可以大大減少一級運營商網絡中需要維護的路由數量。
2. 實現
與普通MPLS L3×××相比,配置運營商的運營商的主要區別在於一級運營商PE接入二級運營商CE這一部分:
l 如果一級運營商PE與二級運營商CE位於同一個AS內,則它們之間配置IGP和LDP;
l 如果一級運營商PE與二級運營商CE位於不同的AS,則它們之間配置MP-EBGP。MP-EBGP爲PE與CE之間交換的路由分配標籤。
無論哪種情況,CE上都需要使能MPLS。並且,CE上雖然有二級運營商的×××路由,但它們並不把這些路由發佈給一級運營商的PE,只在二級運營商PE之間交換。
二級運營商可能只是普通ISP,也可能是MPLS L3×××服務提供商。
二級運營商是普通ISP時,其PE不需要運行MPLS,與CE之間運行IGP。PE 3和PE 4之間通過IBGP會話交換二級運營商的×××路由。如圖 11所示。
二級運營商是MPLS L3×××服務提供商時,其PE也需要運行MPLS,與CE之間運行IGP和LDP。PE 3和PE 4之間通過MP-IBGP會話交換二級運營商的×××路由。如圖 12所示。
如果一級運營商和二級運營商之間存在等價路由,則建議在一級運營商和二級運營商之間建立對應的等價LSP。
嵌套×××
1. 產生背景
在基本的MPLS L3×××模型中,由運營商經營MPLS ×××骨幹網,通過PE設備提供×××服務。×××用戶通過CE設備與運營商的PE設備互連,接入MPLS ×××網絡,實現屬於用戶×××的不同Site之間的通信。在這種情況下,用戶網絡是普通的IP網絡,×××用戶不能再劃分子×××。
實際組網中,×××用戶網絡複雜多樣,繁簡不同。當×××用戶內部需要進一步劃分多個×××時,傳統的解決方案是直接在運營商的PE設備上配置用戶內部的×××。這種方案實現簡單,缺點是將導致PE上承載的×××數量急劇增加,並且,如果用戶內部需要調整×××關係,也必須通過運營商操作。這不僅增加了網絡的運營成本,也帶來了管理和安全方面的問題。
嵌套×××是一種更爲完善的解決方案,它的主要思想是在普通MPLS L3×××的PE和CE之間傳遞×××v4路由,由用戶管理自己內部的×××劃分,運營商不參與用戶內部×××的管理。如圖13所示,用戶在運營商MPLS ×××網絡上所屬的×××爲××× A,在用戶網絡內部劃分子×××:××× A-1和××× A-2。運營商PE設備把用戶網絡當作普通×××用戶對待,不參與子×××的劃分。×××用戶的CE設備(CE 1、CE 2、CE 7和CE 8)和運營商PE設備之間傳遞包括子×××路由信息的×××v4路由,從而實現用戶網絡內部子×××路由信息的傳遞。
2. 路由信息的傳播過程
嵌套×××中,路由信息的傳播過程爲:
(1) 運營商的PE設備與×××用戶的CE設備交互×××v4路由,×××v4路由攜帶用戶內部的×××信息。
(2) 運營商的PE設備收到×××v4路由後,保留用戶內部的×××信息,並附加用戶在運營商網絡上的MPLS ×××屬性,即將該×××v4路由的RD更換爲用戶所處運營商網絡×××的RD,同時將用戶所處運營商網絡×××的ERT(Export Route-target,引出路由標識)添加到路由的擴展團體屬性列表中。運營商的PE設備維護用戶內部的×××信息。
(3) 運營商的PE設備向其他運營商PE設備發佈這些攜帶綜合×××信息的×××v4路由。
(4) 其他的運營商PE設備收到×××v4路由後,與本地的×××進行匹配,每個×××接收屬於自己的路由,然後將路由擴散到自己連接的子×××CE設備(如1. 圖 13中的CE 3、CE 4、CE 5和CE 6):如果運營商PE和CE設備之間是IPv4連接,直接擴散IPv4路由;如果和CE設備之間是×××v4連接,表示通過私網連接的是一個用戶MPLS ×××網絡,向CE擴散×××v4路由。
3. 技術優點
嵌套×××技術的主要優點是:
l 實現了×××聚合功能,可以把用戶的多個內部×××聚合成一個用戶×××,接入運營商的MPLS ×××網絡;
l 支持對稱組網方式和非對稱組網方式,即屬於同一×××用戶的不同Site包括的用戶內部×××數目可以相同,也可以不同;
l 支持用戶內部×××的多層嵌套。
嵌套×××技術降低了用戶接入×××網絡的複雜度和成本,爲用戶提供多樣化的×××組網方式,實現了用戶對內部×××以及多層×××之間的互訪權限控制管理。
多角色主機
從CE進入PE的報文的×××屬性由入接口綁定的×××決定,這就決定了由同一入接口經PE轉發的所有CE設備都必須屬於同一×××。但在實際組網中,一個CE設備可能需要經過一個物理接口訪問多個×××,這可以通過設置不同的邏輯接口來實現,但會增加額外的配置負擔,使用起來也有侷限性。
多角色主機,是通過在PE上配置策略路由,使來自CE的報文可以訪問多個×××。
爲使其它×××的信息能夠從PE發送到CE,需要在其它×××上配置靜態路由,並指定連接CE的接口作爲下一跳。
在實際應用中,應合理進行地址規劃,使每個×××的地址段相對集中,以提高PE的轉發效率。
Ho×××
1. 產生背景
(1) 分層模型與平面模型
在MPLS L3×××解決方案中,PE設備最爲關鍵,它完成兩方面的功能:首先是爲用戶提供接入功能,這需要PE具有大量接口;然後是管理和發佈×××路由,處理用戶報文,這需要PE設備具有大容量存儲和高轉發能力。
目前的網絡設計大多采用經典的分層結構,例如,城域網的典型結構是三層模型:核心層、匯聚層、接入層。從核心層到接入層,對設備的性能要求依次下降,網絡的規模則依次擴大。
而MPLS L3×××是一種平面模型,對網絡中所有PE設備的性能要求相同,當網絡中某些PE在性能和可擴展性方面存在問題時,整個網絡的性能和可擴展性將受到影響。
由於MPLS L3×××的平面模型與典型的分層網絡模型不相符,在每一個層次上部署PE都會遇到擴展性問題,不利於大規模部署×××。
(2) Ho×××
爲解決可擴展性問題,MPLS L3×××必然要從平面模型轉變爲分層模型。
在MPLS L3×××領域,分層×××(Hierarchy of ×××,簡稱Ho×××)解決方案的提出,實現了將PE的功能分佈到多個PE設備上,多個PE承擔不同的角色,並形成層次結構,共同完成一個PE的功能。
Ho×××對處於較高層次的設備的路由能力和轉發性能要求較高,而對處於較低層次的設備的相應要求也較低,符合典型的分層網絡模型。
2. Ho×××的實現
(1) Ho×××的基本結構
在圖 14中,直接連結用戶的設備稱爲下層PE(Underlayer PE)或用戶側PE(User-end PE),簡寫爲UPE;連結UPE並位於網絡內部的設備稱爲上層PE(Superstratum PE)或運營商側PE(Sevice Provider-end PE),簡寫爲SPE。
多個UPE與SPE構成分層式PE,共同完成傳統上一個PE的功能。
SPE與UPE的分工是:
l UPE主要完成用戶接入功能。UPE維護其直接相連的××× Site的路由,但不維護×××中其它遠程Site的路由或僅維護它們的聚合路由;UPE爲其直接相連的Site的路由分配內層標籤,並通過MP-BGP隨×××路由發佈此標籤給SPE;
l SPE主要完成×××路由的管理和發佈。SPE維護其通過UPE連接的×××所有路由,包括本地和遠程Site的路由,SPE將路由信息發佈給UPE,並攜帶標籤。SPE發佈的路由信息可以是×××實例的缺省路由(或聚合路由),也可以是通過路由策略的路由信息。通過後者可以實現對同一×××下不同站點之間互訪的控制。
由於分工的不同,對SPE和UPE的要求也不同:SPE的路由表容量大,轉發性能強,但接口資源較少;UPE的路由容量和轉發性能較低,但接入能力強。Ho×××充分利用了SPE的性能和UPE的接入能力。
需要說明的是,SPE和UPE是相對的概念。在多個層次的PE結構中,上層PE相對於下層就是SPE,下層PE相對於上層就是UPE。
分層式PE從外部來看同傳統上的PE沒有區別,可以同普通PE共存於一個MPLS網絡。
(2) SPE-UPE
SPE和UPE之間運行MP-BGP,可以是MP-IBGP,也可以是MP-EBGP,這取決於UPE和SPE是否屬於同一個AS。
採用MP-IBGP時,爲了在IBGP對等體之間通告路由,SPE將作爲路由反射器,把來自IBGP對等體UPE的×××路由發佈給IBGP對等體SPE,但SPE不作爲其它PE的路由反射器。
(3) Ho×××的嵌套與擴展
Ho×××支持分層式PE的嵌套:
l 一個分層式PE可以作爲UPE,同另一個SPE組成新的分層式PE;
l 一個分層式PE可以作爲SPE,同多個UPE組成新的分層式PE;
l 以上這種嵌套可以多次進行。
通過分層式PE的嵌套,理論上可以將×××無限擴展與延伸。
圖 15是一個三層的分層式PE,稱中間的PE爲MPE(Middle-level PE)。SPE和MPE之間,以及MPE和UPE之間,均運行MP-BGP。
MP-BGP爲上層PE發佈下層PE上的所有×××路由,爲下層PE發佈上層PE的×××實例缺省路由或通過路由策略的×××路由。
SPE維護了這個分層式PE接入的所有Site的×××路由,路由數目最多;UPE只維護它所直接連接的Site的×××路由,路由數目最少;MPE的路由數目介於SPE和UPE之間。
OSPF ×××擴展
1. PE上的OSPF多實例
OSPF是應用廣泛的一種IGP協議,很多情況下,×××客戶端通過BGP對等體連接,客戶端內部則經常以OSPF作爲內部路由協議。如果能夠在PE-CE之間使用OSPF,則CE上就不需要再爲到PE的連接支持其它路由協議,從而簡化CE的管理和配置。並且,如果客戶需要通過傳統的OSPF骨幹區域提供MPLS L3×××服務,在PE和CE之間使用OSPF可以簡化這種轉換。
爲了在PE-CE間運行OSPF,PE必須支持OSPF多實例,每個OSPF實例與一個×××實例對應,使用自己的接口、路由表。
下面具體介紹在PE-CE間配置OSPF需要了解的知識。
(1) PE和CE間的OSPF區域配置
PE與CE之間的OSPF區域可以是非骨幹區域,也可以是骨幹區域。
在OSPF ×××擴展應用中,MPLS ×××骨幹網被看作是骨幹區域area 0。由於OSPF要求骨幹區域連續,因此,所有×××站點的area 0必須與MPLS ×××骨幹網相連。
即:如果×××站點存在OSPF area 0,則CE接入的PE必須通過area 0與這個×××站點的骨幹區域相連(可以通過Virtual-link實現邏輯上的連通)。
(2) BGP/OSPF交互
在PE-CE間運行OSPF後,PE與PE通過BGP發佈×××路由,PE通過OSPF向CE發佈×××路由。
對於普通OSPF,即使兩個不同站點屬於同一×××,它們也會被看作屬於不同的自治系統。這樣,在一個站點學到的路由,將被作爲外部路由傳送給另一站點。這種處理方式導致了比較高的OSPF路由協議流量,並帶來了一些原本可以避免的網絡管理問題。
目前的OSPF可以解決上述問題。通過適當配置,運行OSPF的不同站點之間彼此看作是直接相連的。這樣,PE路由器交換OSPF路由信息時就好像是通過一條專線相連。改善了網絡管理並使OSPF的應用更爲有效。
以圖 16爲例,PE 1和PE 2通過MPLS骨幹網相連,CE 11、CE 21和CE 22都屬於××× 1。假設圖中所有路由器屬於同一個域,即,CE 11、CE 21、CE 22屬於同一個OSPF域(OSPF domain)。
××× 1路由的發佈過程可以描述爲:首先在PE 1上將CE 11的OSPF路由引入BGP;然後通過BGP將這些×××路由發佈給PE 2;在PE 2上將BGP的×××路由引入到OSPF,再發布給CE 21和CE 22。
如果使用標準的BGP/OSPF交互過程,PE 2將把BGP ×××路由通過Type5 LSAs(即ASE LSAs)發佈給CE 21和CE 22。但CE 11與CE 21、CE 22是同一個OSPF域,它們之間的路由發佈應該使用Type3 LSAs,即區域間路由。
爲了解決上述問題,PE使用一種經過修改的BGP/OSPF交互過程(簡稱爲BGP/OSPF互操作功能),發佈從一個Site到另一個Site的路由,將這種路由與真正的AS-External路由進行區分。這一過程需要BGP使用擴展團體屬性,攜帶可以標識OSPF屬性的信息。
在實現中,要求每個OSPF域有一個可配置的域ID(Domain ID)。一般建議:與每個×××實例相關的網絡中的所有OSPF實例要麼配置一個相同的域ID,要麼都使用缺省的域ID。這樣在收到BGP的×××路由時,域ID相同的是來自同一×××實例的路由。
(3) 路由環的檢測
假設PE與CE之間通過OSPF骨幹區域相連,且同一個×××站點(Site)連接到多個不同PE。這種情況下,當一個PE通過LSA向×××站點發布從MPLS/BGP學的BGP ×××路由時,LSA可能被另一個PE接收到,造成路由環。
爲了防止產生路由環,對於從MPLS/BGP學到的BGP ×××路由,無論PE與CE間是否通過OSPF骨幹區域相連,PE在生成Type3 LSA時,都會設置標誌位DN。PE路由器的OSPF進程在進行路由計算時,忽略DN置位的Type3 LSAs。
如果PE需要向CE發佈一條來自其它OSPF域的路由,則PE應表明自己是ASBR,並將該路由作爲Type5 LSA發佈。
2. OSPF僞連接
通常情況下,BGP對等體之間通過BGP擴展團體屬性在MPLS ×××骨幹網上承載路由信息。另一端PE上運行的OSPF可利用這些信息來生成PE到CE的Type3 summary LSA,這些路由是區域間路由。
如圖 17所示:在OSPF的PE-CE連接中,同一個OSPF區域中有兩個Site連接到不同的PE,兩個Site屬於同一個×××,它們之間存在一條區域內OSPF鏈路(backdoor link)。這種情況下,通過PE連接兩個Site的路由將作爲區域間路由(Inter-Area Route),由於其優先級低於經過backdoor鏈路的區域內路由(Intra-Area Route),不會被OSPF優選。
上述情況導致×××流量總是通過後門路由轉發,而不走骨幹網。爲了避免這一問題,可以在PE路由器之間建立OSPF僞連接(Sham-link),使經過MPLS ×××骨幹網的路由也成爲OSPF區域內路由。
Sham-link作爲區域內的一條點到點鏈路,包含在Type1 LSA中發佈。用戶可以通過調整度量值在Sham-link和backdoor之間進行選路。
Sham-link被看成是兩個×××實例之間的鏈路,每個×××實例中必須有一個Sham-link的端點地址,它是PE路由器上×××地址空間中的一個有32位掩碼的Loopback接口地址。同一個OSPF進程的Sham-link可以共用端點地址,但不同OSPF進程不能擁有兩條端點地址完全相同的Sham-link。
Sham-link的端點地址被BGP作爲×××-IPv4地址發佈。如果路由經過了Sham-link,它就不能再以×××-IPv4路由的形式被引入到BGP。
Sham-link可以在任何區域配置。Sham-link需要手工配置,並且,本端×××實例中必須有到Sham-link目的地址的路由。
3. Multi-×××-Instance CE
OSPF多實例通常運行在PE路由器上,在局域網內部運行OSPF多實例的路由器稱爲Multi-×××-Instance CE,即多實例CE。與PE上的OSPF多實例相比,Multi-×××-Instance CE不需要支持BGP/OSPF互操作功能。
Multi-×××-Instance CE主要用於以較低的成本解決局域網的安全問題。
單純使用傳統路由器很難實現局域網中不同業務的完全隔離。目前,在一臺路由器上可以運行多個OSPF進程,這些OSPF進程可以是公網進程,也可以是某個×××實例的進程。因此,在一臺路由器上可以運行多個OSPF進程,將不同的進程綁定到不同的×××實例。
在實際應用中,通過爲不同的業務建立各自的OSPF實例,可以實現不同業務的隔離,保證各自的安全性。
BGP的AS號替換
在MPLS L3×××中,如果PE和CE之間運行EBGP,由於BGP使用AS號檢測路由環路,爲保證路由信息的正確發送,需要爲物理位置不同的站點分配不同的AS號。
如果物理分散的CE複用相同的AS號,就應該在PE上配置BGP的AS號替換功能。此功能是BGP的出口策略,在發佈路由時有效。
使能了BGP的AS號替換功能後,當PE向指定對等體中的CE發佈路由時,如果路由的AS_PATH中有與CE相同的AS號,將被替換成PE的AS號後再發布。
在圖 18中,CE 1和CE 2都使用AS號800,在PE 2上使能針對CE 2的AS號替換功能。當CE 1發來的Update信息從PE 2發佈給CE 2時,PE 2發現AS_PATH中存在與CE 2相同的AS號800,就把它替換爲自己的AS號100,這樣,CE 2就可以正確接收CE 1的路由信息。
對於PE使用不同接口連接多個CE的情況,如上圖中的CE 2和CE 3,也可以使用BGP的AS號替換功能。
Multi-×××-Instance CE
BGP/MPLS ×××以隧道的方式解決了在公網中傳送私網數據的問題,但傳統的BGP/MPLS ×××架構要求每個×××實例單獨使用一個CE與PE相連,如圖 1所示。
隨着用戶業務的不斷細化和安全需求的提高,很多情況下一個私有網絡內的用戶需要劃分成多個×××,不同×××用戶間的業務需要完全隔離。此時,爲每個×××單獨配置一臺CE將加大用戶的設備開支和維護成本;而多個×××共用一臺CE,使用同一個路由表項,又無法保證數據的安全性。
使用以太網交換機提供的MCE功能,可以有效解決多×××網絡帶來的用戶數據安全與網絡成本之間的矛盾,它使用CE設備本身的VLAN接口編號與網絡內的×××進行綁定,併爲每個×××創建和維護獨立的路由轉發表(Multi-VRF)。這樣不但能夠隔離私網內不同×××的報文轉發路徑,而且通過與PE間的配合,也能夠將每個×××的路由正確發佈至對端PE,保證×××報文在公網內的傳輸。
1. MCE工作原理
下面以圖 19爲例介紹MCE對多個×××的路由表項進行維護,並與PE交互×××路由的過程。
如圖 19所示,左側私網內有兩個×××站點:Site1和Site2,分別通過MCE設備接入MPLS骨幹網,其中×××1和×××2的用戶,需要分別與遠端Site2內的×××1用戶和Site1內的×××2用戶建立×××隧道。
通過配置MCE功能,可以在MCE設備上爲×××1和×××2創建各自的路由轉發表,並使用Vlan-interface2接口與×××1進行綁定、Vlan-interface3與×××2進行綁定。在接收路由信息時,MCE設備根據接收接口的編號,即可判斷該路由信息的來源,並將其維護到對應×××的路由轉發表中。
同時,在PE1上也需要將連接MCE的接口(子接口)與×××進行綁定,綁定的方式與MCE設備一致。MCE與PE1之間通過Trunk鏈路連接,並允許VLAN2和VLAN3的報文攜帶VLAN Tag傳輸,從而使PE1在接收時可以根據報文所屬VLAN判別該報文屬於哪一個×××,將報文在指定的隧道內傳輸。