05-MPLS L3VPN配置
本章節下載: 05-MPLS L3VPN配置 (2.2 MB)
目 錄
1.8.3 配置BGP引入Loopback接口地址和OSPF的路由
1.13.1 PE-CE間使用EBGP基本MPLS L3VPN配置示例
1.13.2 PE-CE間使用IBGP基本MPLS L3VPN配置示例
2.1.4 IPv6 MPLS L3VPN支持的組網方案及功能
本章隻涉及MPLS L3VPN的介紹和配置,有關MPLS基礎的介紹請參見“MPLS配置指導”中的“MPLS基礎”,有關BGP的介紹請參見“三層技術-IP路由配置指導”中的“BGP”。
MPLS L3VPN是服務提供商VPN解決方案中一種基於PE的L3VPN技術,它使用BGP在服務提供商骨幹網上發布VPN路由,使用MPLS在服務提供商骨幹網上轉發VPN報文。
MPLS L3VPN組網方式靈活、可擴展性好,並能夠方便地支持MPLS QoS和MPLS TE,因此得到越來越多的應用。
MPLS L3VPN模型由三部分組成:
· CE(Customer Edge)設備:用戶網絡邊緣設備,有接口直接與SP(Service Provider,服務提供商)相連。CE可以是路由器或交換機,也可以是一台主機。CE“感知”不到VPN的存在,也不需要必須支持MPLS。
· PE(Provider Edge)設備:服務提供商網絡的邊緣設備,與用戶的CE直接相連。在MPLS網絡中,對VPN的所有處理都發生在PE上。
· P(Provider)設備:服務提供商網絡中的骨幹設備,不與CE直接相連。P設備隻需要具備基本MPLS轉發能力。
圖1-1是一個MPLS L3VPN組網方案的示意圖。
CE和PE的劃分主要是根據服務提供商與用戶的管理範圍,CE和PE是兩者管理範圍的邊界。
CE設備通常是一台路由器,當CE與直接相連的PE建立鄰接關係後,CE把本站點的VPN路由發布給PE,並從PE學到遠端VPN的路由。CE與PE之間使用BGP/IGP交換路由信息,也可以使用靜態路由。
PE從CE學到CE本地的VPN路由信息後,通過BGP與其它PE交換VPN路由信息。PE路由器隻維護與它直接相連的VPN的路由信息,不維護服務提供商網絡中的所有VPN路由。
P路由器隻維護到PE的路由,不需要了解任何VPN路由信息。
當在MPLS骨幹網上傳輸VPN流量時,入口PE作為Ingress LSR(Label Switch Router,標簽交換路由器),出口PE作為Egress LSR,P路由器則作為Transit LSR。
在介紹VPN時經常會提到“Site”,Site(站點)的含義可以從下述幾個方麵理解:
· Site是指相互之間具備IP連通性的一組IP係統,並且這組IP係統的IP連通性不需通過服務提供商網絡實現;
· Site的劃分是根據設備的拓撲關係,而不是地理位置,盡管在大多數情況下一個Site中的設備地理位置相鄰;
· 一個Site中的設備可以屬於多個VPN,換言之,一個Site可以屬於多個VPN;
· Site通過CE連接到服務提供商網絡,一個Site可以包含多個CE,但一個CE隻屬於一個Site。
對於多個連接到同一服務提供商網絡的Sites,通過製定策略,可以將它們劃分為不同的集合(set),隻有屬於相同集合的Sites之間才能通過服務提供商網絡互訪,這種集合就是VPN。
VPN是一種私有網絡,不同的VPN獨立管理自己使用的地址範圍,也稱為地址空間(Address Space)。
不同VPN的地址空間可能會在一定範圍內重合,比如,VPN 1和VPN 2都使用了10.110.10.0/24網段的地址,這就發生了地址空間重疊(Overlapping Address Spaces)。
在MPLS VPN中,不同VPN之間的路由隔離通過VPN實例(VPN-instance)實現。
PE為直接相連的Site建立並維護VPN實例。VPN實例中包含對應Site的VPN成員關係和路由規則。如果一個Site中的用戶同時屬於多個VPN,則該Site的VPN實例中將包括所有這些VPN的信息。
為保證VPN數據的獨立性和安全性,PE上每個VPN實例都有相對獨立的路由表和LFIB(Label Forwarding Information Base,標簽轉發表)。
具體來說,VPN實例中的信息包括:標簽轉發表、IP路由表、與VPN實例綁定的接口以及VPN實例的管理信息。VPN實例的管理信息包括RD(Route Distinguisher,路由標識符)、路由過濾策略、成員接口列表等。
傳統BGP無法正確處理地址空間重疊的VPN的路由。假設VPN1和VPN2都使用了10.110.10.0/24網段的地址,並各自發布了一條去往此網段的路由,BGP將隻會選擇其中一條路由,從而導致去往另一個VPN的路由丟失。
PE路由器之間使用MP-BGP來發布VPN路由,並使用VPN-IPv4地址族來解決上述問題。VPN-IPv4地址共有12個字節,包括8字節的RD和4字節的IPv4地址前綴,如圖1-2所示。
圖1-2 VPN-IPv4地址結構
PE從CE接收到普通IPv4路由後,需要將這些私網VPN路由發布給對端PE。私網路由的獨立性是通過為這些路由附加RD實現的。
SP可以獨立地分配RD,但必須保證RD的全局唯一性。這樣,即使來自不同服務提供商的VPN使用了同樣的IPv4地址空間,PE路由器也可以向各VPN發布不同的路由。
建議為PE上每個VPN實例配置專門的RD,以保證到達同一CE的路由都使用相同的RD。RD為0的VPN-IPv4地址相當於全局唯一的IPv4地址。
RD的作用是添加到一個特定的IPv4前綴,使之成為全局唯一的VPN IPv4前綴。
RD或者是與自治係統號(ASN)相關的,在這種情況下,RD是由一個自治係統號和一個任意的數組成;或者是與IP地址相關的,在這種情況下,RD是由一個IP地址和一個任意的數組成。
RD有三種格式,通過2字節的Type字段區分:
· Type為0時,Administrator子字段占2字節,Assigned number子字段占4字節,格式為:16bits自治係統號:32bits用戶自定義數字。例如:100:1
· Type為1時,Administrator子字段占4字節,Assigned number子字段占2字節,格式為:32bitsIPv4地址:16bits用戶自定義數字。例如:172.1.1.1:1
· Type為2時,Administrator子字段占4字節,Assigned number子字段占2字節,格式為:32bits自治係統號:16bits用戶自定義數字,其中的自治係統號最小值為65536。例如:65536:1
為保證RD的全局唯一性,建議不要將Administrator子字段的值設置為私有AS號或私有IP地址。
(1) VPN Target屬性
MPLS L3VPN使用BGP擴展團體屬性——VPN Target(也稱為Route Target)來控製VPN路由信息的發布。
PE路由器上的VPN實例有兩類VPN Target屬性:
· Export Target屬性:在本地PE將從與自己直接相連的Site學到的VPN-IPv4路由發布給其它PE之前,為這些路由設置Export Target屬性;
· Import Target屬性:PE在接收到其它PE路由器發布的VPN-IPv4路由時,檢查其Export Target屬性,隻有當此屬性與PE上VPN實例的Import Target屬性匹配時,才把路由加入到相應的VPN路由表中。
也就是說,VPN Target屬性定義了一條VPN-IPv4路由可以為哪些Site所接收,PE路由器可以接收哪些Site發送來的路由。
與RD類似,VPN Target也有三種格式:
· 16bits自治係統號:32bits用戶自定義數字,例如:100:1。
· 32bits IPv4地址:16bits用戶自定義數字,例如:172.1.1.1:1。
· 32bits自治係統號:16bits用戶自定義數字,其中的自治係統號最小值為65536。例如:65536:1。
(2) SOO屬性
SOO(Site of Origin,路由源)是BGP的一種擴展團體屬性,用來標識路由的原始站點。路由器不會將帶有SOO屬性的路由發布給SOO指定的站點。AS路徑丟失時,通過SOO屬性可以防止自己發布的路由被其他鄰居轉發回來,避免發生環路。
SOO屬性有三種格式:
· 16bits自治係統號:32bits用戶自定義數字,例如:100:1。
· 32bits IPv4地址:16bits用戶自定義數字,例如:172.1.1.1:1。
· 32bits自治係統號:16bits用戶自定義數字,其中的自治係統號最小值為65536。例如:65536:1。
每條路由隻能攜帶一個SOO屬性。
MP-BGP(Multiprotocol extensions for BGP-4)在PE路由器之間傳播VPN組成信息和路由。MP-BGP向下兼容,既可以支持傳統的IPv4地址族,又可以支持其他地址族(比如VPN-IPv4地址族)。使用MP-BGP既確保VPN的私網路由隻在VPN內發布,又實現了MPLS VPN成員間的通信。
在通過入口、出口擴展團體來控製VPN路由發布的基礎上,如果需要更精確地控製VPN路由的引入和發布,可以使用入方向或出方向路由策略。
入方向路由策略根據路由的VPN Target屬性進一步過濾可引入到VPN實例的路由,它可以拒絕接收引入列表中的團體選定的路由,而出方向路由策略則可以拒絕發布輸出列表中的團體選定的路由。
VPN實例創建完成後,可以選擇是否需要配置入方向或出方向路由策略。
隧道策略用於選擇給特定VPN實例的報文使用的隧道。
隧道策略是可選配的,VPN實例創建完成後,就可以配置隧道策略。缺省情況下,按照LSP隧道->CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1,即不進行負載分擔。另外,隧道策略隻在同一AS域內生效。
在基本MPLS L3VPN應用中(不包括跨域的情況),VPN報文轉發采用兩層標簽方式:
· 第一層(外層)標簽在骨幹網內部進行交換,指示從PE到對端PE的一條LSP。VPN報文利用這層標簽,可以沿LSP到達對端PE;
· 第二層(內層)標簽在從對端PE到達CE時使用,指示報文應被送到哪個Site,或者更具體一些,到達哪一個CE。這樣,對端PE根據內層標簽可以找到轉發報文的接口。
特殊情況下,屬於同一個VPN的兩個Site連接到同一個PE,這種情況下隻需要知道如何到達對端CE。
以圖1-3為例,說明VPN報文的轉發:
圖1-3 VPN報文轉發示意圖
(1) Site 1發出一個目的地址為1.1.1.2的IP報文,由CE 1將報文發送至PE 1。
(2) PE 1根據報文到達的接口及目的地址查找VPN實例表項,匹配後將報文轉發出去,同時打上內層和外層兩個標簽。
(3) MPLS網絡利用報文的外層標簽,將報文傳送到PE 2(報文在到達PE 2前一跳時已經被剝離外層標簽,僅含內層標簽)。
(4) PE 2根據內層標簽和目的地址查找VPN實例表項,確定報文的出接口,將報文轉發至CE 2。
(5) CE 2根據正常的IP轉發過程將報文傳送到目的地。
在MPLS L3VPN網絡中,通過VPN Target屬性來控製VPN路由信息在各Site之間的發布和接收。VPN Export Target和Import Target的設置相互獨立,並且都可以設置多個值,能夠實現靈活的VPN訪問控製,從而實現多種VPN組網方案。
最簡單的情況下,一個VPN中的所有用戶形成閉合用戶群,相互之間能夠進行流量轉發,VPN中的用戶不能與任何本VPN以外的用戶通信。
對於這種組網,需要為每個VPN分配一個VPN Target,作為該VPN的Export Target和Import Target,並且,此VPN Target不能被其他VPN使用。
圖1-4 基本的VPN組網方案
在圖1-4中,PE上為VPN 1分配的VPN Target值為100:1,為VPN 2分配的VPN Target值為200:1。VPN 1的兩個Site之間可以互訪,VPN 2的兩個Site之間也可以互訪,但VPN 1和VPN 2的Site之間不能互訪。
如果希望在VPN中設置中心訪問控製設備,其它用戶的互訪都通過中心訪問控製設備進行,可以使用Hub&Spoke組網方案,從而實現中心設備對兩端設備之間的互訪進行監控和過濾等功能。
對於這種組網,需要設置兩個VPN Target,一個表示“Hub”,另一個表示“Spoke”。
各Site在PE上的VPN實例的VPN Target設置規則為:
· 連接Spoke站點(Site 1和Site 2)的Spoke-PE:Export Target為“Spoke”,Import Target為“Hub”;
· 連接Hub站點(Site 3)的Hub-PE:Hub-PE上需要使用兩個接口或子接口,一個用於接收Spoke-PE發來的路由,其VPN實例的Import Target為“Spoke”;另一個用於向Spoke-PE發布路由,其VPN實例的Export Target為“Hub”。
圖1-5 Hub&Spoke組網方案
在圖1-5中,Spoke站點之間的通信通過Hub站點進行(圖中箭頭所示為Site 2的路由向Site 1的發布過程):
· Hub-PE能夠接收所有Spoke-PE發布的VPN-IPv4路由;
· Hub-PE發布的VPN-IPv4路由能夠為所有Spoke-PE接收;
· Hub-PE將從Spoke-PE學到的路由發布給其他Spoke-PE,因此,Spoke站點之間可以通過Hub站點互訪。
· 任意Spoke-PE的Import Target屬性不與其它Spoke-PE的Export Target屬性相同。因此,任意兩個Spoke-PE之間不直接發布VPN-IPv4路由,Spoke站點之間不能直接互訪。
如果一個VPN用戶希望提供部分本VPN的站點資源給非本VPN的用戶訪問,可以使用Extranet組網方案。
對於這種組網,如果某個VPN需要訪問共享站點,則該VPN的Export Target必須包含在共享站點的VPN實例的Import Target中,而其Import Target必須包含在共享站點VPN實例的Export Target中。
圖1-6 Extranet組網方案
在圖1-6中,VPN 1的Site 3能夠被VPN 1和VPN 2訪問:
· PE 3能夠接受PE 1和PE 2發布的VPN-IPv4路由;
· PE 3發布的VPN-IPv4路由能夠為PE 1和PE 2接受;
· 基於以上兩點,VPN 1的Site 1和Site 3之間能夠互訪,VPN 2的Site 2和VPN 1的Site 3之間能夠互訪。
PE 3不把從PE 1接收的VPN-IPv4路由發布給PE 2,也不把從PE 2接收的VPN-IPv4路由發布給PE 1(IBGP鄰居學來的條目是不會再發送給別的IBGP鄰居),因此,VPN 1的Site 1和VPN 2的Site 2之間不能互訪。
在基本MPLS L3VPN組網中,VPN路由信息的發布涉及CE和PE,P路由器隻維護骨幹網的路由,不需要了解任何VPN路由信息。PE路由器也隻維護與它直接相連的VPN的路由信息,不維護所有VPN路由。因此,MPLS L3VPN網絡具有良好的可擴展性。
VPN路由信息的發布過程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到遠端CE。完成這三部分後,本地CE與遠端CE之間將建立可達路由,VPN私網路由信息能夠在骨幹網上發布。
下麵分別對這三部分進行介紹。
CE與直接相連的PE建立鄰接關係後,把本站點的VPN路由發布給PE。
CE與PE之間可以使用靜態路由、RIP、OSPF、IS-IS、EBGP或IBGP。無論使用哪種路由協議,CE發布給PE的都是標準的IPv4路由。
PE從CE學到VPN路由信息後,為這些標準IPv4路由增加RD和VPN Target屬性,形成VPN-IPv4路由,存放到為CE創建的VPN實例的路由表中,並觸發MPLS為其分配私網標簽。
入口PE通過MP-BGP把VPN-IPv4路由發布給出口PE。出口PE根據VPN-IPv4路由的Export Target屬性與自己維護的VPN實例的Import Target屬性,決定是否將該路由加入到VPN實例的路由表。
PE之間通過IGP來保證內部的連通性。
遠端CE有多種方式可以從出口PE學習VPN路由,包括靜態路由、RIP、OSPF、IS-IS、EBGP和IBGP,與本地CE到入口PE的路由信息交換相同。
實際組網應用中,某用戶一個VPN的多個Site可能會連接到使用不同AS號的多個服務提供商,或者連接到一個服務提供商的多個AS。這種VPN跨越多個自治係統的應用方式被稱為跨域VPN(Multi-AS VPN)。
RFC 2547bis中提出了三種跨域VPN解決方案,分別是:
· VRF-to-VRF:ASBR間使用VLAN接口管理VPN路由,也稱為Inter-Provider Option A;
· EBGP Redistribution of labeled VPN-IPv4 routes:ASBR間通過MP-EBGP發布標簽VPN-IPv4路由,也稱為Inter-Provider Option B;
· Multihop EBGP redistribution of labeled VPN-IPv4 routes:PE間通過MP-EBGP發布標簽VPN-IPv4路由,也稱為Inter-Provider Option C。
下麵逐一對這些方案進行介紹。
這種方式下,兩個AS的PE路由器直接相連,PE路由器同時也是各自所在自治係統的邊界路由器ASBR。
作為ASBR的PE之間通過多個VLAN接口相連,兩個PE都把對方作為自己的CE設備對待,使用傳統的EBGP方式向對端發布IPv4路由。報文在AS內部作為VPN報文,采用兩層標簽轉發方式;在ASBR之間則采用普通IP轉發方式。
理想情況下,每個跨域的VPN都有一對VLAN接口與之對應,用來交換VPN路由信息。
圖1-7 ASBR間使用VLAN接口管理VPN路由組網圖
使用VLAN接口實現跨域VPN的優點是實現簡單:兩個作為ASBR的PE之間不需要為跨域進行特殊配置。
缺點是可擴展性差:作為ASBR的PE需要管理所有VPN路由,為每個VPN創建VPN實例。這將導致PE上的VPN-IPv4路由數量過於龐大。並且,為每個VPN單獨創建VLAN接口也提高了對PE設備的要求。
這種方式下,兩個ASBR通過MP-EBGP交換它們從各自AS的PE路由器接收的標簽VPN-IPv4路由。
路由發布過程可分為以下步驟:
(1) AS 100內的PE先通過MP-IBGP方式把標簽VPN-IPv4路由發布給AS 100的邊界路由器PE,或發布給為ASBR PE反射路由的路由反射器;
(2) 作為ASBR的PE通過MP-EBGP方式把標簽VPN-IPv4路由發布給AS 200的PE(也是AS 200的邊界路由器);
(3) AS 200的ASBR PE再通過MP-IBGP方式把標簽VPN-IPv4路由發布給AS 200內的PE,或發布給為PE反射路由的路由反射器。
路由反射器的介紹,請參見“三層技術-IP路由配置指導”中的“BGP”。
這種方式的ASBR需要對標簽VPN-IPv4路由進行特殊處理,因此也稱為ASBR擴展方式。
圖1-8 ASBR間通過MP-EBGP發布標簽VPN-IPv4路由組網圖
在可擴展性方麵,通過MP-EBGP發布標簽VPN-IPv4路由優於ASBR間通過VLAN接口管理VPN。
采用MP-EBGP方式時,需要注意:
· ASBR之間不對接收的VPN-IPv4路由進行VPN Target過濾,因此,交換VPN-IPv4路由的各AS服務提供商之間需要就這種路由交換達成信任協議;
· VPN-IPv4路由交換僅發生在私網對等點之間,不能與公網交換VPN-IPv4路由,也不能與沒有達成信任協議的MP-EBGP對等體交換VPN-IPv4路由。
前麵介紹的兩種方式都能夠滿足跨域VPN的組網需求,但這兩種方式也都需要ASBR參與VPN-IPv4路由的維護和發布。當每個AS都有大量的VPN路由需要交換時,ASBR就很可能成為阻礙網絡進一步擴展的瓶頸。
解決上述可擴展性問題的方案是:ASBR不維護或發布VPN-IPv4路由,PE之間直接交換VPN-IPv4路由。
兩個ASBR通過MP-IBGP向各自AS內的PE路由器發布標簽IPv4路由。
ASBR上不保存VPN-IPv4路由,相互之間也不通告VPN-IPv4路由。
ASBR保存AS內PE的帶標簽的IPv4路由,並通告給其它AS的對等體。另一個自治係統中的ASBR也通告帶標簽的IPv4路由。這樣,在入口PE和出口PE之間建立起一條LSP。
不同AS的PE之間建立Multihop方式的EBGP連接,交換VPN-IPv4路由。
圖1-9 PE間通過Multi-hop MP-EBGP發布標簽VPN-IPv4路由組網圖
為提高可擴展性,可以在每個AS中指定一個路由反射器RR(Route Reflector),由RR保存所有VPN-IPv4路由,與AS的PE交換VPN-IPv4路由信息。兩個AS的RR之間建立跨域VPNv4連接,通告VPN-IPv4路由。如圖1-10所示。
圖1-10 采用RR的跨域VPN OptionC方式組網圖
MPLS L3VPN服務提供商的用戶可能也是一個服務提供商。這種情況下,前者稱為提供商運營商(Provider Carrier)或一級運營商(First Carrier),後者稱為客戶運營商(Customer Carrier)或二級運營商(Second Carrier)。這種組網模型稱為運營商的運營商(Carriers’ carriers),低級別的SP作為更高級別SP的CE。
為保持良好的可擴展性,一級運營商並不引入二級運營商連接的用戶網絡的路由,隻引入為不同站點的二級運營商交換報文的路由。二級運營商連接的用戶網絡的路由通過在相關二級運營商路由器間建立BGP會話交換。這可以大大減少一級運營商網絡中需要維護的路由數量。
與普通MPLS L3VPN相比,配置運營商的運營商的主要區別在於一級運營商PE接入二級運營商CE這一部分:
· 如果一級運營商PE與二級運營商CE位於同一個AS內,則它們之間配置IGP和LDP;
· 如果一級運營商PE與二級運營商CE位於不同的AS,則它們之間配置MP-EBGP。MP-EBGP為PE與CE之間交換的路由分配標簽。
無論哪種情況,CE上都需要使能MPLS。並且,CE上雖然有二級運營商的VPN路由,但它們並不把這些路由發布給一級運營商的PE,隻在二級運營商PE之間交換。
二級運營商可能隻是普通ISP,也可能是MPLS L3VPN服務提供商。
二級運營商是普通ISP時,其PE不需要運行MPLS,與CE之間運行IGP。PE 3和PE 4之間通過IBGP會話交換二級運營商的VPN路由。如圖1-11所示。
二級運營商是MPLS L3VPN服務提供商時,其PE也需要運行MPLS,與CE之間運行IGP和LDP。PE 3和PE 4之間通過MP-IBGP會話交換二級運營商的VPN路由。如圖1-12所示。
如果一級運營商和二級運營商之間存在等價路由,則建議在一級運營商和二級運營商之間建立對應的等價LSP。
在基本的MPLS L3VPN模型中,由運營商經營MPLS VPN骨幹網,通過PE設備提供VPN服務。VPN用戶通過CE設備與運營商的PE設備互連,接入MPLS VPN網絡,實現屬於用戶VPN的不同Site之間的通信。在這種情況下,用戶網絡是普通的IP網絡,VPN用戶不能再劃分子VPN。
實際組網中,VPN用戶網絡複雜多樣,繁簡不同。當VPN用戶內部需要進一步劃分多個VPN時,傳統的解決方案是直接在運營商的PE設備上配置用戶內部的VPN。這種方案實現簡單,缺點是將導致PE上承載的VPN數量急劇增加,並且,如果用戶內部需要調整VPN關係,也必須通過運營商操作。這不僅增加了網絡的運營成本,也帶來了管理和安全方麵的問題。
嵌套VPN是一種更為完善的解決方案,它的主要思想是在普通MPLS L3VPN的PE和CE之間傳遞VPNv4路由,由用戶管理自己內部的VPN劃分,運營商不參與用戶內部VPN的管理。如圖1-13所示,用戶在運營商MPLS VPN網絡上所屬的VPN為VPN A,在用戶網絡內部劃分子VPN:VPN A-1和VPN A-2。運營商PE設備把用戶網絡當作普通VPN用戶對待,不參與子VPN的劃分。VPN用戶的CE設備(CE 1、CE 2、CE 7和CE 8)和運營商PE設備之間傳遞包括子VPN路由信息的VPNv4路由,從而實現用戶網絡內部子VPN路由信息的傳遞。
圖1-13 嵌套VPN組網應用
嵌套VPN中,路由信息的傳播過程為:
(1) 運營商的PE設備與VPN用戶的CE設備交互VPNv4路由,VPNv4路由攜帶用戶內部的VPN信息。
(2) 運營商的PE設備收到VPNv4路由後,保留用戶內部的VPN信息,並附加用戶在運營商網絡上的MPLS VPN屬性,即將該VPNv4路由的RD更換為用戶所處運營商網絡VPN的RD,同時將用戶所處運營商網絡VPN的ERT(Export Route-target,引出路由標識)添加到路由的擴展團體屬性列表中。運營商的PE設備維護用戶內部的VPN信息。
(3) 運營商的PE設備向其他運營商PE設備發布這些攜帶綜合VPN信息的VPNv4路由。
(4) 其他的運營商PE設備收到VPNv4路由後,與本地的VPN進行匹配,每個VPN接收屬於自己的路由,然後將路由擴散到自己連接的子VPNCE設備(如圖1-13中的CE 3、CE 4、CE 5和CE 6):如果運營商PE和CE設備之間是IPv4連接,直接擴散IPv4路由;如果和CE設備之間是VPNv4連接,表示通過私網連接的是一個用戶MPLS VPN網絡,向CE擴散VPNv4路由。
嵌套VPN技術的主要優點是:
· 實現了VPN聚合功能,可以把用戶的多個內部VPN聚合成一個用戶VPN,接入運營商的MPLS VPN網絡;
· 支持對稱組網方式和非對稱組網方式,即屬於同一VPN用戶的不同Site包括的用戶內部VPN數目可以相同,也可以不同;
· 支持用戶內部VPN的多層嵌套。
嵌套VPN技術降低了用戶接入VPN網絡的複雜度和成本,為用戶提供多樣化的VPN組網方式,實現了用戶對內部VPN以及多層VPN之間的互訪權限控製管理。
從CE進入PE的報文的VPN屬性由入接口綁定的VPN決定,這就決定了由同一入接口經PE轉發的所有CE設備都必須屬於同一VPN。但在實際組網中,一個CE設備可能需要經過一個物理接口訪問多個VPN,這可以通過設置不同的邏輯接口來實現,但會增加額外的配置負擔,使用起來也有局限性。
多角色主機,是通過在PE上配置策略路由,使來自CE的報文可以訪問多個VPN。
為使其它VPN的信息能夠從PE發送到CE,需要在其它VPN上配置靜態路由,並指定連接CE的接口作為下一跳。
配置多角色主機時需要注意:應保證與PE路由器關聯的所有IP地址都是唯一的,以實現多角色主機特性。
在實際應用中,應合理進行地址規劃,使每個VPN的地址段相對集中,以提高PE的轉發效率。
(1) 分層模型與平麵模型
在MPLS L3VPN解決方案中,PE設備最為關鍵,它完成兩方麵的功能:首先是為用戶提供接入功能,這需要PE具有大量接口;然後是管理和發布VPN路由,處理用戶報文,這需要PE設備具有大容量存儲和高轉發能力。
目前的網絡設計大多采用經典的分層結構,例如,城域網的典型結構是三層模型:核心層、彙聚層、接入層。從核心層到接入層,對設備的性能要求依次下降,網絡的規模則依次擴大。
而MPLS L3VPN是一種平麵模型,對網絡中所有PE設備的性能要求相同,當網絡中某些PE在性能和可擴展性方麵存在問題時,整個網絡的性能和可擴展性將受到影響。
由於MPLS L3VPN的平麵模型與典型的分層網絡模型不相符,在每一個層次上部署PE都會遇到擴展性問題,不利於大規模部署VPN。
(2) HoVPN
為解決可擴展性問題,MPLS L3VPN必然要從平麵模型轉變為分層模型。
在MPLS L3VPN領域,分層VPN(Hierarchy of VPN,簡稱HoVPN)解決方案的提出,實現了將PE的功能分布到多個PE設備上,多個PE承擔不同的角色,並形成層次結構,共同完成一個PE的功能。
HoVPN對處於較高層次的設備的路由能力和轉發性能要求較高,而對處於較低層次的設備的相應要求也較低,符合典型的分層網絡模型。
(1) HoVPN的基本結構
圖1-14 HoVPN的基本結構
在圖1-14中,直接連結用戶的設備稱為下層PE(Underlayer PE)或用戶側PE(User-end PE),簡寫為UPE;連結UPE並位於網絡內部的設備稱為上層PE(Superstratum PE)或運營商側PE(Sevice Provider-end PE),簡寫為SPE。
多個UPE與SPE構成分層式PE,共同完成傳統上一個PE的功能。
HoVPN把PE的功能分層實現,因此,這種解決方案有時也被稱為分層PE(Hiberarchy of PE,HoPE)。
SPE與UPE的分工是:
· UPE主要完成用戶接入功能。UPE維護其直接相連的VPN Site的路由,但不維護VPN中其它遠程Site的路由或僅維護它們的聚合路由;UPE為其直接相連的Site的路由分配內層標簽,並通過MP-BGP隨VPN路由發布此標簽給SPE;
· SPE主要完成VPN路由的管理和發布。SPE維護其通過UPE連接的VPN所有路由,包括本地和遠程Site的路由,SPE將路由信息發布給UPE,並攜帶標簽。SPE發布的路由信息可以是VPN實例的缺省路由(或聚合路由),也可以是通過路由策略的路由信息。通過後者可以實現對同一VPN下不同站點之間互訪的控製。
由於分工的不同,對SPE和UPE的要求也不同:SPE的路由表容量大,轉發性能強,但接口資源較少;UPE的路由容量和轉發性能較低,但接入能力強。HoVPN充分利用了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的VPN路由發布給IBGP對等體SPE,但SPE不作為其它PE的路由反射器。
(3) HoVPN的嵌套與擴展
HoVPN支持分層式PE的嵌套:
· 一個分層式PE可以作為UPE,同另一個SPE組成新的分層式PE;
· 一個分層式PE可以作為SPE,同多個UPE組成新的分層式PE;
· 以上這種嵌套可以多次進行。
通過分層式PE的嵌套,理論上可以將VPN無限擴展與延伸。
圖1-15 分層式PE的嵌套
圖1-15是一個三層的分層式PE,稱中間的PE為MPE(Middle-level PE)。SPE和MPE之間,以及MPE和UPE之間,均運行MP-BGP。
“MPE”這種說法隻是為了表述方便,在HoVPN模型中並沒有MPE。
MP-BGP為上層PE發布下層PE上的所有VPN路由,為下層PE發布上層PE的VPN實例缺省路由或通過路由策略的VPN路由。
SPE維護了這個分層式PE接入的所有Site的VPN路由,路由數目最多;UPE隻維護它所直接連接的Site的VPN路由,路由數目最少;MPE的路由數目介於SPE和UPE之間。
本節重點介紹OSPF對VPN的擴展,如果需要了解OSPF的基本知識,請參見“三層技術-IP路由配置指導”中的“OSPF”。
OSPF是應用廣泛的一種IGP協議,很多情況下,VPN客戶端通過BGP對等體連接,客戶端內部則經常以OSPF作為內部路由協議。如果能夠在PE-CE之間使用OSPF,則CE上就不需要再為到PE的連接支持其它路由協議,從而簡化CE的管理和配置。並且,如果客戶需要通過傳統的OSPF骨幹區域提供MPLS L3VPN服務,在PE和CE之間使用OSPF可以簡化這種轉換。
為了在PE-CE間運行OSPF,PE必須支持OSPF多實例,每個OSPF實例與一個VPN實例對應,使用自己的接口、路由表。
下麵具體介紹在PE-CE間配置OSPF需要了解的知識。
(1) PE和CE間的OSPF區域配置
PE與CE之間的OSPF區域可以是非骨幹區域,也可以是骨幹區域。
在OSPF VPN擴展應用中,MPLS VPN骨幹網被看作是骨幹區域area 0。由於OSPF要求骨幹區域連續,因此,所有VPN站點的area 0必須與MPLS VPN骨幹網相連。
即:如果VPN站點存在OSPF area 0,則CE接入的PE必須通過area 0與這個VPN站點的骨幹區域相連(可以通過Virtual-link實現邏輯上的連通)。
(2) BGP/OSPF交互
在PE-CE間運行OSPF後,PE與PE通過BGP發布VPN路由,PE通過OSPF向CE發布VPN路由。
對於普通OSPF,即使兩個不同站點屬於同一VPN,它們也會被看作屬於不同的自治係統。這樣,在一個站點學到的路由,將被作為外部路由傳送給另一站點。這種處理方式導致了比較高的OSPF路由協議流量,並帶來了一些原本可以避免的網絡管理問題。
目前的OSPF可以解決上述問題。通過適當配置,運行OSPF的不同站點之間彼此看作是直接相連的。這樣,PE路由器交換OSPF路由信息時就好像是通過一條專線相連。改善了網絡管理並使OSPF的應用更為有效。
以圖1-16為例,PE 1和PE 2通過MPLS骨幹網相連,CE 11、CE 21和CE 22都屬於VPN 1。假設圖中所有路由器屬於同一個域,即CE 11、CE 21、CE 22屬於同一個OSPF域(OSPF domain)。
VPN 1路由的發布過程可以描述為:首先在PE 1上將CE 11的OSPF路由引入BGP;然後通過BGP將這些VPN路由發布給PE 2;在PE 2上將BGP的VPN路由引入到OSPF,再發布給CE 21和CE 22。
圖1-16 OSPF在VPN中的使用
如果使用標準的BGP/OSPF交互過程,PE 2將把BGP VPN路由通過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)。一般建議:同一個VPN的所有OSPF進程要麼配置一個相同的域ID,要麼都使用缺省的域ID。這樣在收到BGP的VPN路由時,域ID相同的是來自同一VPN實例的路由。
(3) 路由環的檢測
假設PE與CE之間通過OSPF骨幹區域相連,且同一個VPN站點(Site)連接到多個不同PE。這種情況下,當一個PE通過LSA向VPN站點發布從MPLS/BGP學的BGP VPN路由時,LSA可能被另一個PE接收到,造成路由環。
為了防止產生路由環,對於從MPLS/BGP學到的BGP VPN路由,無論PE與CE間是否通過OSPF骨幹區域相連,PE在生成Type3 LSA時,都會設置標誌位DN。PE路由器的OSPF進程在進行路由計算時,忽略DN置位的Type3 LSAs。
如果PE需要向CE發布一條來自其它OSPF域的路由,則PE應表明自己是ASBR,並將該路由作為Type5 LSA發布。
通常情況下,BGP對等體之間通過BGP擴展團體屬性在MPLS VPN骨幹網上承載路由信息。另一端PE上運行的OSPF可利用這些信息來生成PE到CE的Type3 summary LSA,這些路由是區域間路由。
如圖1-17所示:在OSPF的PE-CE連接中,同一個OSPF區域中有兩個Site連接到不同的PE,兩個Site屬於同一個VPN,它們之間存在一條區域內OSPF鏈路(backdoor link)。這種情況下,通過PE連接兩個Site的路由將作為區域間路由(Inter-Area Route),由於其優先級低於經過backdoor鏈路的區域內路由(Intra-Area Route),不會被OSPF優選。
圖1-17 Sham-link應用示意圖
上述情況導致VPN流量總是通過backdoor路由轉發,而不走骨幹網。為了避免這一問題,可以在PE路由器之間建立OSPF偽連接(Sham-link),使經過MPLS VPN骨幹網的路由也成為OSPF區域內路由。
Sham-link作為區域內的一條點到點鏈路,包含在Type1 LSA中發布。用戶可以通過調整度量值在Sham-link和backdoor鏈路之間進行選路。
Sham-link被看成是兩個VPN實例之間的鏈路,每個VPN實例中必須有一個Sham-link的端點地址,它是PE路由器上VPN地址空間中的一個有32位掩碼的Loopback接口地址。同一個OSPF進程的Sham-link可以共用端點地址,但不同OSPF進程不能擁有兩條端點地址完全相同的Sham-link。
Sham-link的端點地址被BGP作為VPN-IPv4地址發布。如果路由經過了Sham-link,它就不能再以VPN-IPv4路由的形式被引入到BGP。
Sham-link可以在任何區域配置。Sham-link需要手工配置,並且,本端VPN實例中必須有到Sham-link目的地址的路由。
配置OSPF偽連接時,需要在PE上配置BGP引入OSPF的私網路由,但不能配置OSPF引入BGP路由,否則會引起路由環路。
在MPLS L3VPN中,如果PE和CE之間運行EBGP,由於BGP使用AS號檢測路由環路,為保證路由信息的正確發送,需要為物理位置不同的站點分配不同的AS號。
如果物理分散的CE複用相同的AS號,就應該在PE上配置BGP的AS號替換功能。此功能是BGP的出口策略,在發布路由時有效。
使能了BGP的AS號替換功能後,當PE向指定對等體中的CE發布路由時,如果路由的AS_PATH中有與CE相同的AS號,將被替換成PE的AS號後再發布。
使能BGP的AS號替換功能後,PE向對等體組中所有已建立連接的CE重新發送所有路由,並對發送路由中的AS_PATH屬性按上述規則替換。
圖1-18 BGP AS號替換和SOO屬性應用示意圖
在圖1-18中,Site 1和Site 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時,如圖1-18中的CE 2和CE 3,使用BGP的AS號替換功能,會導致路由環路。如圖1-18所示,使能針對CE 2的AS號替換功能後,CE 3發布的路由會通過PE 2和CE 2再次發布到Site 2,導致路由環路。此時,通過在PE 2上對從CE 2和CE 3學習的路由應用路由策略,為學習到的路由添加相同的SOO屬性,可以防止PE 2將CE 3發布的路由再次通過CE 2發布給Site 2,避免路由環路。
BGP/MPLS VPN以隧道的方式解決了在公網中傳送私網數據的問題,但傳統的BGP/MPLS VPN架構要求每個VPN實例單獨使用一個CE與PE相連,如圖1-1所示。
隨著用戶業務的不斷細化和安全需求的提高,很多情況下一個私有網絡內的用戶需要劃分成多個VPN,不同VPN用戶間的業務需要完全隔離。此時,為每個VPN單獨配置一台CE將加大用戶的設備開支和維護成本;而多個VPN共用一台CE,使用同一個路由表項,又無法保證數據的安全性。
使用以太網交換機提供的MCE功能,可以有效解決多VPN網絡帶來的用戶數據安全與網絡成本之間的矛盾,它使用CE設備本身的VLAN接口編號與網絡內的VPN進行綁定,並為每個VPN創建和維護獨立的路由轉發表(Multi-VRF)。這樣不但能夠隔離私網內不同VPN的報文轉發路徑,而且通過與PE間的配合,也能夠將每個VPN的路由正確發布至對端PE,保證VPN報文在公網內的傳輸。
下麵以圖1-19為例介紹MCE對多個VPN的路由表項進行維護,並與PE交互VPN路由的過程。
圖1-19 MCE工作原理示意圖
如圖1-19所示,左側私網內有兩個VPN站點:Site 1和Site 2,分別通過MCE設備接入MPLS骨幹網,其中VPN 1和VPN 2的用戶,需要分別與遠端Site 2內的VPN 1用戶和Site 1內的VPN 2用戶建立VPN隧道。
通過配置MCE功能,可以在MCE設備上為VPN 1和VPN 2創建各自的路由轉發表,並使用Vlan-interface2接口與VPN 1進行綁定、Vlan-interface3與VPN 2進行綁定。在接收路由信息時,MCE設備根據接收接口的編號,即可判斷該路由信息的來源,並將其維護到對應VPN的路由轉發表中。
同時,在PE 1上也需要將連接MCE的接口與VPN進行綁定,綁定的方式與MCE設備一致。MCE與PE 1之間通過Trunk鏈路連接,並允許VLAN 2和VLAN 3的報文攜帶VLAN Tag傳輸,從而使PE 1在接收時可以根據報文所屬VLAN判別該報文屬於哪一個VPN,將報文在指定的隧道內傳輸。
MCE與VPN站點之間、MCE與PE之間可以使用靜態路由、RIP、OSPF、IS-IS、EBGP或IBGP交換路由信息。
MCE設備上可以配置DHCP服務器或DHCP中繼功能,實現為私網內的DHCP客戶端動態分配IP地址,但不同私網的IP地址空間不能重疊。
表1-1 MPLS L3VPN配置任務簡介
配置任務 |
詳細配置 |
說明 |
配置基本MPLS L3VPN |
完成基本MPLS L3VPN配置後,即可實現通過MPLS技術構建簡單的VPN網絡 如果部署一些特殊的MPLS L3VPN組網方案,例如跨域VPN、嵌套VPN、多角色主機等,除了配置基本MPLS L3VPN外,還需要根據相應章節進行其他的配置 |
|
配置跨域VPN |
||
配置嵌套VPN |
||
配置多角色主機 |
||
配置HoVPN |
||
配置OSPF偽連接 |
||
配置Multi-VPN-Instance CE |
||
配置Egress PE上私網路由標簽操作方式 |
||
配置BGP的AS號替換和SOO屬性 |
配置MPLS L3VPN的關鍵在於管理VPN私網路由在MPLS骨幹網上的發布,包括PE-CE間的路由發布管理以及PE-PE間的路由發布管理。
表1-2 基本MPLS L3VPN配置任務簡介
配置任務 |
說明 |
詳細配置 |
||
配置VPN實例 |
創建VPN實例 |
必選 |
||
配置VPN實例與接口關聯 |
必選 |
|||
配置VPN實例的路由相關屬性 |
可選 |
|||
配置VPN實例的隧道策略 |
可選 |
|||
配置LDP實例 |
可選 |
|||
配置PE-CE間的路由交換 |
必選 |
|||
配置PE-PE間的路由交換 |
必選 |
|||
配置BGP-VPNv4子地址族下的路由特性 |
可選 |
|||
在配置基本MPLS L3VPN之前,需完成以下任務:
· 對MPLS骨幹網(PE、P)配置IGP,實現骨幹網的IP連通性
· 對MPLS骨幹網(PE、P)配置MPLS基本能力
· 對MPLS骨幹網(PE、P)配置MPLS LDP,建立LDP LSP
VPN實例不僅可以隔離VPN私網路由與公網路由,還可以隔離不同VPN實例的路由,這一特點使得VPN實例的使用不限於MPLS L3VPN。
配置VPN實例的操作是在PE或MCE設備上進行的。
VPN實例在實現中與Site關聯。VPN實例不是直接對應於VPN,一個VPN實例綜合了和它所對應Site的VPN成員關係和路由規則。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建VPN實例,並進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
必選 |
配置VPN實例的保留VLAN |
reserve-vlan vlan-id |
必選 |
配置VPN實例的RD |
route-distinguisher route-distinguisher |
必選 一個VPN實例隻有配置了RD後才生效 |
配置VPN實例的描述信息 |
description text |
可選 描述信息用於描述VPN實例,可以用來記錄VPN實例與某個VPN的關係等信息 |
· 保留VLAN的配置僅在係統工作模式為標準模式時下才有效。關於係統工作模式的詳細介紹,請參見“基礎配置指導”中的“設備管理”。
· 當係統工作模式為標準模式時,如果創建的VPN實例,不需要接入CE設備、需要配置組播VPN功能或綁定IP 隧道,則必須配置保留VLAN。
· 當係統工作模式為標準模式時,保留VLAN必須在RD之前配置,否則該VPN實例的功能將無法正常使用,隻能刪除該VPN實例再按照正確的配置順序重新創建。在配置RD之前,除允許配置保留VLAN外,不允許配置VPN實例的其他任何參數。
· 保留VLAN上不允許配置其他業務,否則將影響對應的MPLS L3VPN的正常使用,用戶隻能刪除該VPN實例,然後按照正確的配置順序重新創建。
· 保留VLAN上,所有普通VLAN的功能(如VLAN鏡像)都無法正常使用。
· 當係統工作模式為標準模式時,如果VPN實例沒有配置保留VLAN,則該VPN實例關聯的私網VLAN接口上不能配置URPF功能。
· 一旦配置了保留VLAN,就無法將其和VPN實例解除關聯。要想重新關聯,必須刪除VPN實例,再重新創建VPN實例。
VPN實例配置完成後,還需要與連接CE的接口進行關聯。支持MPLS LDP能力的接口類型都可以與VPN實例相關聯。具體接口類型請參見“MPLS配置指導”中的“MPLS基礎”。
表1-4 配置VPN實例與接口關聯
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入要關聯接口的接口視圖 |
interface interface-type interface-number |
- |
將當前接口與VPN實例關聯 |
ip binding vpn-instance vpn-instance-name |
必選 缺省情況下,接口不關聯任何VPN實例 |
執行ip binding vpn-instance命令將刪除接口上已經配置的IP地址,因此需要重新配置接口的IP地址。
VPN路由的發布控製過程如下:
· 當從CE學習到的一條VPN路由引入BGP時,BGP為它關聯一個VPN Target擴展團體屬性列表,通常這個列表是與CE相關聯的VPN實例的輸出路由屬性列表。
· VPN實例根據VPN Target中import-extcommunity決定可被接受並引入此VPN實例的路由。
· VPN實例根據VPN Target中的export-extcommunity對向外發布的路由進行VPN Target屬性的修改。
表1-5 配置VPN實例的路由相關屬性
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
- |
進入IPv4 VPN視圖 |
ipv4-family |
可選 |
配置VPN Target |
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] |
必選 |
配置支持的最大路由數 |
routing-table limit number { warn-threshold | simply-alert } |
可選 |
應用入方向路由策略 |
import route-policy route-policy |
可選 缺省情況下,接收所有VPN Target屬性匹配的路由 |
應用出方向路由策略 |
export route-policy route-policy |
可選 缺省情況下,不對發布的路由進行過濾 |
· VPN實例視圖下配置的路由相關屬性既可以用於IPv4 VPN,也可以用於IPv6 VPN。
· 既可以在VPN實例視圖下,也可以在IPv4 VPN視圖下,配置IPv4 VPN的路由相關屬性。如果同時在兩個視圖下配置了路由相關屬性,則IPv4 VPN采用IPv4 VPN視圖下配置的路由相關屬性。
· 命令vpn-target最多可以配置8個VPN Target;一個VPN實例最多可以配置64個VPN Target。
· 可以配置一個VPN實例支持的最大路由數,以防止PE路由器的入接口有過多的路由。
· 為VPN實例配置路由策略之前必須已經創建了路由策略,否則無法對接收和發布的路由進行過濾。
在網絡中存在多條、多種類型的隧道時,可以通過配置隧道策略對選擇的隧道種類和隧道數目進行限製。
通過tunnel select-seq命令,可以配置隧道的優先級順序和負載分擔條數。
通過preferred-path命令可以配置優選路徑,每條優選路徑對應一個隧道接口,指定通過哪個隧道接口轉發流量。
應用隧道策略後,隧道的選擇方式為:
(1) 從編號最小的優選路徑開始匹配,如果對端PE地址和任何優選路徑的隧道目的地址都不同,則根據tunnel select-seq命令配置的隧道優先級順序和負載分擔條數選擇隧道。如果沒有配置tunnel select-seq命令,則根據缺省的隧道策略選擇隧道,即按照LSP隧道-> CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1。
(2) 如果對端PE地址和某條優選路徑的隧道目的地址相同,則匹配成功。此優選路徑指定的隧道可用時,不再匹配後續的隧道策略規則,使用該優選路徑指定的隧道接口轉發流量。
(3) 匹配的優選路徑指定的隧道不可用時(例如,隧道接口down、隧道下配置的ACL規則不允許轉發該流量等原因導致隧道不可用),如果該優選路徑中沒有指定disable-fallback參數,則繼續匹配後續的隧道策略規則;如果該優選路徑中指定了disable-fallback參數,則不再匹配後續的隧道策略規則,隧道查找失敗。
表1-6 配置VPN實例的隧道策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建隧道策略,並進入隧道策略視圖 |
tunnel-policy tunnel-policy-name |
必選 |
配置通過隧道接口轉發報文的優選路徑 |
preferred-path number interface tunnel tunnel-number [ disable-fallback ] |
可選 缺省情況下,不存在任何優選路徑 |
配置隧道的優先級順序和負載分擔條數 |
tunnel select-seq { cr-lsp | lsp } * load-balance-number number |
可選 缺省情況下,按照LSP隧道->CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1 |
退回係統視圖 |
quit |
- |
進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
必選 |
進入IPv4 VPN視圖 |
ipv4-family |
可選 |
配置VPN實例的隧道策略 |
tnl-policy tunnel-policy-name |
必選 缺省情況下,按照LSP隧道->CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1 |
· 一個隧道策略下最多可以配置64條優選路徑。不同優選路徑對應的隧道接口的目的地址可以相同。隧道接口的隧道類型必須為MPLS TE。
· 在配置隧道優先級順序時,隧道類型越靠近關鍵字select-seq的,其優先級越高。例如:如果配置了命令tunnel select-seq cr-lsp lsp load-balance-number 1,在沒有CR-LSP的情況下,VPN將使用LSP隧道,當cr-lsp建立後,VPN將選用cr-lsp。
· VPN實例視圖下配置的隧道策略既可以用於IPv4 VPN,也可以用於IPv6 VPN。
· 既可以在VPN實例視圖下,也可以在IPv4 VPN視圖下,配置IPv4 VPN的隧道策略。如果同時在兩個視圖下配置了隧道策略,則IPv4 VPN采用IPv4 VPN視圖下配置的隧道策略。
· 為VPN實例配置隧道策略之前必須先創建隧道策略,否則將采用缺省策略,即按照LSP隧道->CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1。
LDP實例應用於運營商的運營商(Carriers’ carriers)組網模型中。
本配置任務用來使能VPN實例的LDP能力,創建LDP實例,並在MPLS-LDP-VPN實例視圖下為VPN實例配置LDP參數。
表1-7 配置LDP實例
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能指定VPN實例的LDP能力,創建LDP實例,並進入MPLS-LDP-VPN實例視圖 |
mpls ldp vpn-instance vpn-instance-name |
必選 缺省情況下,未使能VPN實例的LDP能力 |
配置除LDP GR外的其他LDP參數 |
詳細配置請參見“MPLS配置指導”中的“MPLS基礎” |
可選 |
l 除了LDP GR特性外,MPLS LDP視圖下的命令都可以在MPLS-LDP-VPN實例視圖下使用。MPLS LDP的詳細介紹請參見“MPLS配置指導”中的“MPLS基礎”。
l 對於使能LDP能力的接口,MPLS-LDP-VPN實例視圖下的配置隻影響綁定VPN實例的接口;而MPLS LDP視圖下的配置對綁定到VPN實例的接口沒有影響。為LDP實例配置傳輸地址時,也必須使用綁定到VPN實例的接口的IP地址。
l 對於私網側的LDP鄰居關係,缺省情況下是使用使能LDP能力的接口地址建立的;而公網上的LDP鄰居關係,缺省情況下是使用LDP實例的LSR ID建立的。
PE-CE間路由交換可以使用靜態路由、RIP、OSPF、IS-IS、EBGP和IBGP路由協議。根據實際組網情況選擇一種進行配置即可。
在配置PE-CE間路由交換之前,需要先完成以下任務:
· 在CE上配置連接PE接口的IP地址
· 在PE上配置連接CE接口的IP地址
表1-8 配置PE-CE間使用靜態路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為指定VPN實例配置靜態路由 |
ip route-static dest-address { mask | mask-length } { gateway-address | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
必選 該配置在PE上進行,CE上的配置方法與普通靜態路由相同 |
ip route-static vpn-instance s-vpn-instance-name&<1-5> dest-address { mask | mask-length } { gateway-address [ public ] | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
有關靜態路由的配置請參見“三層技術-IP路由配置指導”中的“靜態路由”。
一個RIP進程隻能屬於一個VPN實例。如果在啟動RIP進程時不綁定到VPN實例,則該進程屬於公網進程。
表1-9 配置PE-CE間使用RIP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建PE-CE間的RIP實例,並進入RIP視圖 |
rip [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在PE上進行,CE上配置普通RIP即可 |
在指定網段接口上使能RIP |
network network-address |
必選 缺省情況下,接口上的RIP功能處於關閉狀態 |
有關RIP的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“RIP”。
VPN實例綁定的OSPF進程中不使用係統視圖下配置的公網Router ID,因此用戶需要在啟動進程時手工配置Router ID,或者所要綁定的VPN實例中至少有一個接口配置了IP地址。
一個OSPF進程隻能屬於一個VPN實例。如果在啟動OSPF進程時不綁定到VPN實例,則該進程屬於公網進程。
表1-10 配置PE-CE間使用OSPF
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建PE-CE間的OSPF實例,並進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
必選 該配置在PE上進行,CE上配置普通OSPF即可 |
配置OSPF域標識符 |
domain-id domain-id [ secondary ] |
可選 缺省情況下,OSPF域標識符為0 該配置在PE上進行,CE上配置普通OSPF即可 |
配置OSPF擴展團體屬性的類型編碼 |
ext-community-type { domain-id type-code1 | router-id type-code2 | route-type type-code3 } |
可選 缺省情況下,OSPF擴展團體屬性Domain ID的類型編碼是0x0005,Router ID的類型編碼是0x0107,Route Type的類型編碼是0x0306 該配置在PE上進行 |
配置OSPF區域,進入OSPF區域視圖 |
area area-id |
必選 缺省情況下,沒有配置OSPF區域 |
配置區域所包含的網段並在指定網段的接口上使能OSPF |
network ip-address wildcard-mask |
必選 缺省情況下,接口不屬於任何區域且OSPF功能處於關閉狀態 |
刪除VPN實例後,相關的所有OSPF進程也將全部被刪除。
每個OSPF進程隻能配置一個域ID,不同進程的域ID相互沒有影響。不同VPN的PE的OSPF進程域ID配置沒有限製。但同一VPN的所有OSPF進程應配置相同的域ID,以保證路由發布的正確性。
OSPF進程的域ID包含在此進程生成的路由中,在將OSPF路由引入BGP中時, 域ID被附加到BGP VPN路由上,作為BGP的擴展團體屬性傳遞。
· 配置OSPF實例後,需要啟動OSPF,具體配置與普通的OSPF相同。
· 有關OSPF的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“OSPF”。
一個IS-IS進程隻能屬於一個VPN實例。如果在啟動IS-IS進程時不綁定到VPN實例,則該進程屬於公網進程。
表1-11 配置PE-CE間使用IS-IS
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建PE-CE間的IS-IS實例,並進入IS-IS視圖 |
isis [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在PE上進行,CE上配置普通IS-IS即可 |
配置網絡實體名稱 |
network-entity net |
必選 缺省情況下,沒有配置網絡實體名稱 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能接口IS-IS並指定要關聯的IS-IS進程號 |
isis enable [ process-id ] |
必選 缺省情況下,接口上沒有使能IS-IS |
有關IS-IS的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“IS-IS”。
(1) PE上的配置
表1-12 PE上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
必選 |
將CE配置為VPN私網EBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
引入本端CE路由 |
import-route protocol [ process-id ] [ med med-value | route-policy route-policy-name ] * |
必選 PE需要將到本端CE的路由引入VPN路由表中,以發布給對端PE |
配置對發布的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
配置允許本地AS號在所接收的路由的AS_PATH屬性中出現,並可同時配置允許重複的次數 |
peer { group-name | ip-address } allow-as-loop [ number ] |
可選 用於Hub&Spoke組網方案 |
通常情況下,BGP通過AS號檢測路由環路。但在Hub&Spoke組網方式下,如果在PE和CE之間運行EBGP,當PE將路由信息通告給CE時帶上本自治係統的AS號,再從CE接收路由更新時,路由更新消息中會帶有本自治係統的AS號,這樣PE就不能接收這條路由更新信息,此時需要配置允許路由環路。
(2) CE上的配置
表1-13 CE上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
將PE配置為對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
配置路由引入 |
import-route protocol [ process-id ] [ med med-value | route-policy route-policy-name ] * |
可選 CE需要將自己所能到達的VPN網段地址發布給接入的PE,通過PE發布給對端CE |
· 配置BGP VPN實例後,VPN實例中的BGP路由交換與普通的BGP相同。
· BGP實例視圖下配置任務與BGP視圖下的相同,有關介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“BGP”。
· BGP的配置中有對等體和對等體組的配置,有關介紹和詳細說明請參見“三層技術-IP路由配置指導”的“BGP”。本章中不將對等體和對等體組加以區分。
PE和CE之間使用IBGP路由協議隻適用於普通的MPLS L3VPN組網環境,Extranet、跨域VPN、運營商的運營商、嵌套VPN和HoVPN等組網中,PE和CE之間不能配置IBGP。
(1) PE上的配置
表1-14 PE上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
必選 |
將CE配置為VPN私網IBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
將CE配置為路由反射器的客戶端 |
peer { group-name | ip-address } reflect-client |
可選 缺省情況下,沒有配置路由發射器及其客戶端 |
允許客戶到客戶的路由反射 |
reflect between-clients |
可選 缺省情況下,允許客戶到客戶的路由反射 如果客戶之間是全連接的,則不需要配置路由反射 |
為路由反射器配置群ID |
reflector cluster-id { cluster-id | ip-address } |
可選 缺省情況下,每個路由反射器都使用自己的Router ID作為群ID 如果一個群中配置了多個路由反射器,請使用本命令為所有的路由反射器配置相同的群ID,以避免產生路由環路 |
配置對發布的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
· 缺省情況下PE不會向IBGP對等體(包括VPNv4的IBGP對等體)發送從IBGP對等體CE學習的路由,隻有將CE配置為路由反射器的客戶端後,才能向其它IBGP對等體發送從該CE學習的路由。
· 可以在多個視圖下執行reflect between-clients和reflector cluster-id命令,如BGP-VPN實例視圖和BGP-VPNv4子地址族視圖。這兩條命令僅對執行此命令的視圖下的路由反射器生效,對於其他視圖下的路由反射器不生效。
· 配置路由反射器後不會修改路由的下一跳。如果需要修改下一跳,則需在路由的接收端通過入策略進行修改。
(2) CE上的配置
表1-15 CE上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
將PE配置為IBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
配置路由引入 |
import-route protocol [ process-id ] [ med med-value | route-policy route-policy-name ] * |
可選 CE需要將自己所能到達的VPN網段地址發布給接入的PE,通過PE發布給對端CE |
· 配置BGP VPN實例後,VPN實例中的BGP路由交換與普通的BGP相同。
· BGP-VPN實例視圖下配置任務與BGP視圖下的相同,有關介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“BGP”。
· 有關對等體和對等體組的介紹和詳細說明請參見“三層技術-IP路由配置指導”中的“BGP”。本章中不將對等體和對等體組加以區分。
以下配置是在PE上進行的。
表1-16 配置PE-PE間的路由交換
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入BGP視圖 |
bgp as-number |
必選 |
|
將對端PE配置為對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
|
指定路由更新報文的源接口 |
peer { group-name | ip-address } connect-interface interface-type interface-number |
必選 缺省情況下,BGP使用最佳路由更新報文的源接口 |
|
進入BGP-VPNv4子地址族視圖 |
ipv4-family vpnv4 |
必選 |
|
使能對等體交換BGP-VPNv4路由信息 |
peer { group-name | ip-address } enable |
必選 缺省情況下,BGP對等體之間隻能交換IPv4路由信息 |
|
BGP-VPNv4子地址族下的很多路由特性都與BGP IPv4單播路由的特性相同。這些特性根據組網的需求來決定是否選擇。
對於VPN的應用,BGP的地址族包括:BGP-VPNv4子地址族和VPLS地址族。對於下麵的命令在各地址族中的作用都是相同的,且隻對相應地址族中的BGP路由起作用。
表1-17 配置各種地址族通用路由特性
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
必選 |
將對端PE配置為對等體 |
peer ip-address as-number as-number |
必選 |
指定建立TCP連接的接口 |
peer ip-address connect-interface interface-type interface-number |
必選 |
進入地址族視圖 |
ipv4-family vpnv4 |
必選 根據不同的組網情況選擇地址族 |
vpls-family |
||
配置允許本地AS號在所接收的路由的AS_PATH屬性中出現,並可同時配置允許重複的次數 |
peer { group-name | ip-address } allow-as-loop [ number ] |
可選 |
在指定的地址族下使能對等體,並使能交換對應地址族的BGP路由信息的能力 |
peer { group-name | ip-address } enable |
必選 缺省情況下,BGP對等體之間隻能交換IPv4路由信息 |
將對等體加入已存在的對等體組 |
peer ip-address group group-name |
可選 |
向對等體或對等體組發布路由時,將自身地址作為下一跳 |
peer { group-name | ip-address } next-hop-local |
可選 缺省情況下,向EBGP對等體發布路由時會將下一跳改為自己的地址。在跨域VPN OptionC組網中反射器上對多跳EBGP鄰居和反射客戶需要配置next-hop-invariable以保證私網路由下一跳不會被改變。 |
配置將本機作為路由反射器,並將對等體或對等體組作為路由反射器的客戶 |
peer { group-name | ip-address } reflect-client |
可選 缺省情況下,沒有配置路由反射器及其客戶 |
配置BGP鄰居的ORF(Outbound Route Filtering,輸出路由過濾)能力 |
peer { group-name | ip-address } capability-advertise orf ip-prefix { both | receive | send } |
可選 缺省情況下,BGP對等體/對等體組不使能鄰居的ORF能力 |
對接收到的相應地址族下BGP路由使能VPN-Target過濾功能 |
policy vpn-target |
可選 缺省情況下,對接收到的相應地址族的BGP路由使能VPN-Target過濾功能 |
允許客戶到客戶的路由反射 |
reflect between-clients |
可選 缺省情況下,允許客戶到客戶的路由反射 |
為路由反射器配置群ID |
reflector cluster-id { cluster-id | ip-address } |
可選 缺省情況下,群ID是群中某個路由反射器的Router ID |
創建路由反射器的反射策略 |
rr-filter extended-community-list-number |
可選 缺省情況下,路由反射器不會對反射的路由進行過濾 執行本命令後,隻有與本命令配置的擴展團體屬性號匹配的IBGP路由才會被反射 通過在不同的路由反射器上配置不同的反射策略,可以實現路由反射器之間的負載分擔 |
有關VPLS地址族的介紹請參見“MPLS命令參考”中的“VPLS”。
表1-18 配置BGP-VPNv4子地址族的特有路由特性
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
將對端PE配置為對等體 |
peer ip-address as-number as-number |
必選 |
指定建立TCP連接的接口 |
peer ip-address connect-interface interface-type interface-number |
必選 |
進入BGP-VPNv4子地址族視圖 |
ipv4-family vpnv4 |
- |
配置本地優先級的缺省值 |
default local-preference value |
可選 缺省情況下,本地優先級的值為100 |
配置係統MED的缺省值 |
default med med-value |
可選 缺省情況下,係統MED的缺省值為0 |
配置對發布的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
配置將團體屬性通告給對等體或對等體組 |
peer { group-name | ip-address } advertise-community |
可選 缺省情況下,不將團體屬性傳給任何對等體或對等體組 |
為指定對等體或對等體組配置基於AS路徑列表的路由過濾 |
peer { group-name | ip-address } as-path-acl aspath-filter-number { import | export } |
可選 缺省情況下,對等體及對等體組沒有應用AS過濾列表 |
配置向對等體或對等體組發布指定VPN實例的缺省路由 |
peer { group-name | ip-address } default-route-advertise vpn-instance vpn-instance-name |
可選 缺省情況下,不向對等體或對等體組發布缺省路由 |
配置為指定對等體或對等體組應用過濾策略 |
peer { group-name | ip-address } filter-policy acl-number { export | import } |
可選 缺省情況下,沒有為對等體或對等體組應用過濾策略 |
為指定對等體或對等體組應用基於IP前綴列表的路由過濾策略 |
peer { group-name | ip-address } ip-prefix prefix-name { export | import } |
可選 缺省情況下,對等體或對等體組上不應用基於IP前綴列表的路由過濾策略 |
配置向EBGP對等體發布路由時不改變下一跳 |
peer { group-name | ip-address } next-hop-invariable |
可選 缺省情況下,向EBGP對等體發布路由時會將下一跳改為自己的地址 |
為從對等體/對等體組接收的路由分配首選值 |
peer { group-name | ip-address } preferred-value value |
可選 缺省情況下,從對等體/對等體組接收的路由的首選值為0 |
配置發送BGP更新報文時不攜帶私有自治係統號 |
peer { group-name | ip-address } public-as-only |
可選 缺省情況下,發送BGP更新報文時,攜帶私有自治係統號 |
為指定對等體或對等體組配置路由策略 |
peer { group-name | ip-address } route-policy route-policy-name { export | import } |
可選 缺省情況下,對等體及對等體組沒有應用路由策略 |
有關BGP的路由特性請參見“三層技術-IP路由配置指導”中的“BGP”。
如果承載VPN路由的MPLS骨幹網跨越多個AS,就需要配置跨域VPN。
跨域VPN有三種解決方案,詳細描述請參見“1.1.6 跨域VPN”。
在配置跨域VPN之前,需完成以下任務:
· 為各AS的MPLS骨幹網分別配置IGP,實現同一AS內骨幹網的IP連通性
· 為各AS的MPLS骨幹網分別配置MPLS基本能力
· 為各AS的MPLS骨幹網分別配置MPLS LDP,建立LDP LSP
· 為各AS分別進行基本MPLS L3VPN配置
在對各AS分別進行基本MPLS L3VPN配置時,根據所選擇的跨域VPN方式,PE和ASBR-PE上還需要進行專門的配置。
請根據實際應用的跨域VPN方式,選擇下述配置任務中的對應項。
跨域VPN-OptionA的實現比較簡單,當PE上的VPN數量及VPN路由數量都比較少時可以采用這種方案。跨域VPN-OptionA的配置可以描述為:對各AS分別進行基本MPLS L3VPN配置,對於ASBR-PE,將對端ASBR-PE看作自己的CE配置即可。即:跨域VPN-OptionA方式需要在PE和ASBR-PE上分別配置VPN實例,前者用於接入CE,後者用於接入對端ASBR-PE。
請參見“1.3 配置基本MPLS L3VPN”。
在跨域VPN-OptionA方式中,對於同一個VPN,同一AS內的ASBR-PE和PE上配置的VPN Target應能匹配,即VPN Target的配置應能保證PE(或ASBR-PE)發送的VPN路由能夠被ASBR-PE(或PE)接受;不同AS的PE上配置的VPN Target則不需要匹配。
以下配置是在作為ASBR-PE的路由器上進行的。
表1-19 配置跨域VPN-OptionB的ASBR-PE
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入連接對端ASBR-PE接口的接口視圖 |
interface interface-type interface-number |
- |
配置接口IP地址 |
ip address ip-address { mask | mask-length } |
必選 |
退回係統視圖 |
quit |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPNv4子地址族視圖 |
ipv4-family vpnv4 |
- |
不對VPNv4路由進行VPN Target過濾 |
undo policy vpn-target |
必選 缺省情況下,PE對收到的VPNv4路由進行VPN Target過濾 通過過濾的路由會被加入到路由表中,沒有通過過濾的路由將被丟棄 |
在跨域VPN-OptionB方式中,ASBR-PE需要保存所有VPNv4路由信息,以通告給對端ASBR-PE。這種情況下,ASBR-PE應接收所有的VPNv4路由信息,不對它們進行VPN Target過濾。
在跨域VPN-OptionB方式中,對於同一個VPN,不同AS的PE之間的VPN實例的VPN Target需要匹配。
對於跨域VPN-OptionB,存在兩種配置方式:
· 一種是在ASBR不改下一跳的方式,在這種方式下ASBR間仍然需要配置MPLS LDP;
· 另一種在ASBR上需要修改下一跳,這種組網下ASBR間不需要配置MPLS LDP。
目前實現隻支持在ASBR上修改下一跳的方式,因此在實現上,默認情況下對於MP-EBGP路由,在發往MP-IBGP時是修改下一跳的。而對於發往IBGP的普通EBGP路由,默認情況下是不改下一跳的,如果需要將下一跳改為本地地址,需要配置peer { ip-address | group-name } next-hop-local命令。具體說明請參見“三層技術-IP路由配置指導”中的“BGP”。
同一AS內的PE和ASBR-PE之間建立普通的IBGP對等體關係,不同AS的PE之間建立MP-EBGP對等體關係。
同一AS內的PE和ASBR-PE之間應能夠交換標簽IPv4路由。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
配置本AS的ASBR-PE為IBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
配置與本AS的ASBR-PE之間能夠交換帶標簽的IPv4路由 |
peer { group-name | ip-address } label-route-capability |
必選 缺省情況下,不向IPv4對等體/對等體組發送標簽路由 |
將另一AS的PE配置為EBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
進入BGP-VPNv4子地址族視圖 |
ipv4-family vpnv4 |
- |
使能EBGP對等體交換BGP-VPNv4路由信息 |
peer { group-name | ip-address } enable |
必選 |
配置向EBGP對等體發送路由時不改變下一跳 |
peer { group-name | ip-address } next-hop-invariable |
可選 該步驟用於使用路由反射器RR(Route Reflector)通告VPNv4路由的情況:RR之間通告VPNv4路由時,路由的下一跳不能被改變 |
在跨域VPN-OptionC方式中,需要建立一條跨域的VPN LSP,相關PE、ASBR之間發布公網路由時攜帶MPLS標簽信息。
ASBR-PE與本AS的PE建立普通IBGP對等體關係,與對端ASBR-PE建立普通EBGP對等體關係。都能夠交換標簽IPv4路由。
ASBR-PE上不能配置peer ebgp-max-hop,否則MPLS隧道將無法建立。
攜帶MPLS標簽的公網路由通過MP-BGP發布。根據RFC 3107(Carrying Label Information in BGP-4)中的描述,一條路由的標簽映射信息可以通過發布這條路由的BGP Update消息捎帶(piggyback)。這種能力使用BGP的擴展屬性實現,要求BGP對等體能夠處理標簽IPv4路由。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
配置本AS的PE為IBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
配置與本AS的PE之間能夠交換帶標簽的IPv4路由 |
peer { group-name | ip-address } label-route-capability |
必選 缺省情況下,不向IPv4對等體/對等體組發送標簽路由 |
向本AS的PE發布路由時將下一跳改為自己 |
peer { group-name | ip-address } next-hop-local |
必選 缺省情況下,BGP發言者在向IBGP對等體/對等體組發布路由時不會將下一跳改為自己的地址 |
將對端ASBR-PE配置為EBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
配置與對端ASBR-PE之間能夠交換帶標簽的IPv4路由 |
peer { group-name | ip-address } label-route-capability |
必選 缺省情況下,不向IPv4對等體發送標簽路由 |
對對端ASBR-PE發布來的路由應用路由策略 |
peer { group-name | ip-address } route-policy route-policy-name export |
必選 缺省情況下,對等體及對等體組沒有應用路由策略 |
配置路由策略應用在ASBR-PE上:
· 對於從本AS的PE接收的路由,在向對端ASBR-PE發布時,分配MPLS標簽;
· 對於向本AS的PE發布的路由,如果是帶標簽的IPv4路由,為其分配新的MPLS標簽。
對IPv4路由分配MPLS標簽是通過路由策略控製的,隻對滿足某些條件的路由分配標簽,其它路由還是普通IPv4路由。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入路由策略視圖 |
route-policy policy-name permit node seq-number |
必選 |
匹配帶標簽的IPv4路由 |
if-match mpls-label |
必選 |
為IPv4路由分配標簽 |
apply mpls-label |
必選 缺省情況下,IPv4路由不帶標簽 |
有關路由策略的配置請參見“三層技術-IP路由配置指導”中的“路由策略”。
如果網絡中VPN接入數量比較多,管理者想要管理權限層次化(通過VPN劃分訪問權限),且不想讓外部知道用戶內部VPN的部署情況,可以使用嵌套VPN的組網方式。在嵌套VPN組網方式中,用戶通過較低的管理複雜度和組網成本,就可以實現內部VPN網絡的層次化管理。
配置嵌套VPN之前,需完成MPLS L3VPN的基本配置,請參見“1.3 配置基本MPLS L3VPN”。
表1-23 配置嵌套VPN
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
- |
配置CE對等體或對等體組 |
peer { group-name | peer-address } as-number number |
必選 |
退回BGP視圖 |
quit |
- |
進入BGP-VPNv4子地址族視圖 |
ipv4-family vpnv4 |
- |
使能嵌套VPN功能 |
nesting-vpn |
必選 缺省情況下,禁止嵌套VPN功能 |
激活嵌套VPN對等體或對等體組,並使能其交換BGP-VPNv4路由信息的能力 |
peer { group-name | peer-address } vpn-instance vpn-instance-name enable |
必選 缺省情況下,嵌套VPN對等體/對等體組之間隻能交換IPv4路由信息,不能交換BGP-VPNv4路由信息 |
將對等體加入到嵌套VPN對等體組中 |
peer peer-address vpn-instance vpn-instance-name group group-name |
可選 缺省情況下,對等體沒有加入任何嵌套VPN對等體組 |
配置從嵌套VPN對等體或對等體組接收的VPNv4路由應用的路由策略 |
peer { group-name | peer-address } vpn-instance vpn-instance-name route-policy route-policy-name import |
可選 缺省情況下,對於從嵌套VPN對等體或對等體組接收的VPNv4路由不應用路由策略 |
· 同一用戶VPN的不同子VPN之間地址空間不能重疊。
· 建議嵌套VPN對等體的地址不要與公網中對等體的地址重疊。
· 配置嵌套VPN對等體或對等體組之前,需要先配置BGP-VPN實例視圖下的CE對等體或對等體組。
· 目前嵌套VPN不支持多跳EBGP組網方式,因此運營商PE和CE之間必須使用直連接口地址建立鄰居關係。
· 如果子VPN的CE設備直接連接運營商PE設備,則需要在該PE設備上配置策略路由,使得主VPN和子VPN可以互訪。
· 配置運營商PE與VPN用戶CE間路由交換,具體配置參見1.3.4 配置PE-CE間路由交換。
多角色主機特性是通過在PE上配置策略路由,使來自同一CE的報文可以訪問不同的VPN。
多角色主機特性本身的配置都在多角色主機所屬CE所接入的PE上進行。
有關策略路由的詳細介紹請參見“三層技術-IP路由配置指導”中的“策略路由”。
在配置多角色主機之前,需在PE上完成以下任務:
· 為不同的VPN分別創建VPN實例
· 配置基本MPLS L3VPN
表1-24 配置策略路由及應用
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建策略,並進入策略路由視圖 |
policy-based-route policy-name { deny | permit } node node-number |
- |
在策略節點中設置指定VPN實例進行轉發 |
apply access-vpn vpn-instance vpn-instance-name&<1-6> |
必選 |
退回係統視圖 |
quit |
- |
進入接入CE的接口視圖 |
interface interface-type interface-number |
- |
在接口上應用策略路由 |
ip policy-based-route policy-name |
必選 |
配置PE-CE間使用靜態路由,具體配置參見1.3.4 2. 配置PE-CE間使用靜態路由。
在PE上配置私網靜態路由,指定另外一個私網或者公網出口作為該靜態路由的出接口,使多角色主機訪問某個VPN的報文能夠使用非該VPN的路由表返回。
對於層次化比較明顯的VPN網絡,可以采用HoVPN方案,以降低對PE設備的性能要求。
在配置HoVPN之前,需先在UPE和SPE上配置基本MPLS L3VPN並使用undo vpn l2vpn mix命令取消MPLS L2VPN混插功能。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPNv4子地址族視圖 |
ipv4-family vpnv4 |
必選 |
使能對等體交換BGP-VPNv4路由信息 |
peer { group-name | ip-address } enable |
必選 |
配置BGP對等體或對等體組為UPE |
peer { group-name | ip-address } upe |
必選 |
向UPE發送指定VPN實例的缺省路由 |
peer { group-name | ip-address } default-route-advertise vpn-instance vpn-instance-name |
二者必選其一 缺省情況下,不向對等體發布路由 |
向UPE發送通過路由策略的路由 |
peer { group-name | ip-address } upe route-policy route-policy-name export |
執行peer default-route-advertise vpn-instance命令後,不論本地路由表中是否存在缺省路由,SPE都會向UPE發布一條下一跳地址為本地地址的缺省路由。
· 向BGP對等體或對等體組發布VPN實例缺省路由的前提是:此BGP對等體或對等體組必須是UPE。
· 建議不要同時配置peer default-route-advertise vpn-instance命令和peer upe route-policy命令。
在VPN PE間配置偽連接Sham-link後,Sham-link將被視為OSPF區域內路由。這一特性用於使經過MPLS VPN骨幹網的路由成為OSPF區域內路由,避免VPN流量經backdoor路由轉發。
Sham-link的源地址和目的地址應使用32位掩碼的Loopback接口地址,且該loopback接口需要綁定到VPN實例中,並通過BGP發布。
在配置OSPF偽連接之前,需完成以下任務:
· 配置基本MPLS L3VPN(PE-CE間使用OSPF)
· 配置用戶CE所在局域網的OSPF
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建Loopback接口並進入Loopback接口視圖 |
interface loopback interface-number |
必選 |
將Loopback接口綁定到VPN實例 |
ip binding vpn-instance vpn-instance-name |
必選 缺省情況下,接口不關聯到任何VPN實例,屬於公網接口 |
配置Loopback接口的地址 |
ip address ip-address { mask | mask-length } |
必選 |
表1-27 發布Loopback接口的路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
必選 |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
必選 |
引入直連路由(將Loopback主機路由引入BGP) |
import-route direct [ med med-value | route-policy route-policy-name ] * |
必選 |
引入OSPF的私網路由 |
import-route ospf [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ] |
必選 |
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置VPN引入路由的外部路由標記(External Route Tag)值 |
route-tag tag-value |
必選 |
進入OSPF區域視圖 |
area area-id |
必選 |
配置偽連接 |
sham-link source-ip-address destination-ip-address [ cost cost | dead dead-interval | hello hello-interval | retransmit retrans-interval | trans-delay delay | { simple [ cipher | plain ] password | { md5 | hmac-md5 } key-id [ cipher | plain ] password } ] * |
必選 缺省情況下,未配置偽連接 |
· 啟動OSPF而不手工配置路由器ID時,係統會自動選取出一個路由器ID。選舉規則請參見“三層技術-IP路由配置指導”中的“OSPF”。需要注意的是,由於選舉規則相同會得到相同的路由器ID。建議用戶啟動OSPF進程時手工配置路由器ID。
· 配置OSPF的VPN多實例而不配置route tag時,係統會根據配置的BGP自治係統號生成一個tag值,如果沒有配置BGP則tag為0。需要注意的是,在BGP的自治係統號相同的PE或同一台PE上,因為計算規則相同會得到相同的tag值。建議用戶配置OSPF的VPN多實例時手工配置tag值。
· 修改偽連接的MD5/HMAC-MD5驗證字支持MD5驗證平滑遷移,具體情況請參見“三層技術-IP路由配置指導”中的“OSPF”。
Multi-VPN-Instance CE可以看作一種通過路由隔離實現業務隔離的組網方案。配置MCE的關鍵為:
· 配置MCE與站點之間的路由交換
· 配置MCE與PE之間的路由交換
在MCE組網方案中,路由計算時需要關閉PE上的路由環路檢測功能,防止路由丟失;同時禁止各路由協議互操作功能,以節省係統資源。
在配置Multi-VPN-Instance CE之前,需完成以下任務:
· 創建VPN實例、在MCE上將連接站點和PE的接口與VPN實例綁定
· 配置相關接口的鏈路層協議和網絡層協議,保證路由可達
MCE可以通過靜態路由與Site連接。傳統CE配置的靜態路由對全局生效,無法解決多VPN間的地址重疊問題。以太網交換機提供的MCE功能可以將靜態路由與VPN實例相綁定,將各VPN之間的靜態路由進行隔離。
表1-29 配置MCE與站點之間使用靜態路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為指定VPN實例配置靜態路由 |
ip route-static dest-address { mask | mask-length } { gateway-address | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
二者必選其一 該配置在MCE上進行,站點上的配置方法與普通靜態路由相同 |
ip route-static vpn-instance s-vpn-instance-name&<1-6> dest-address { mask | mask-length } { gateway-address [ public ] | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
||
配置靜態路由的缺省優先級 |
ip route-static default-preference default-preference-value |
可選 缺省情況下,靜態路由的缺省優先級為60 |
一個RIP進程隻能屬於一個VPN實例。如果在啟動RIP進程時不綁定到VPN實例,則該進程屬於公網進程。通過在MCE上將RIP進程與VPN實例綁定,可以使不同VPN內的私網路由通過不同的RIP進程在Site和MCE間進行交互,保證了私網路由的隔離和安全。
表1-30 配置MCE與站點之間使用RIP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與站點間的RIP實例,並進入RIP視圖 |
rip [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在MCE上進行,站點上配置普通RIP即可 |
在指定網段接口上使能RIP |
network network-address |
必選 缺省情況下,接口上的RIP功能處於關閉狀態 |
引入由PE發布的遠端站點的路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name | tag tag ] * |
必選 缺省情況下,RIP未引入其它路由 |
配置引入路由的缺省度量值 |
default cost value |
可選 缺省情況下,引入路由的缺省度量值為0 |
有關RIP的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“RIP”。
一個OSPF進程隻能屬於一個VPN實例。如果在啟動OSPF進程時不綁定到VPN實例,則該進程屬於公網進程。
通過在MCE上將OSPF進程與VPN實例綁定,可以使不同VPN內的私網路由通過不同的OSPF進程在Site和MCE間進行交互,保證了私網路由的隔離和安全。
表1-31 配置MCE與站點之間使用OSPF
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與站點間的OSPF實例,並進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
必選 該配置在MCE上進行,站點上配置普通OSPF即可 |
配置OSPF域標識符 |
domain-id domain-id [ secondary ] |
可選 缺省情況下,OSPF域標識符為0 該配置在MCE上進行,Site上配置普通OSPF即可 |
引入由PE發布的遠端站點的路由 |
import-route protocol [ process-id | allow-ibgp ] [ cost cost | type type | tag tag | route-policy route-policy-name ] * |
必選 缺省情況下,沒有引入其他協議的路由信息 |
配置OSPF區域,進入OSPF區域視圖 |
area area-id |
必選 缺省情況下,沒有配置OSPF區域 |
配置區域所包含的網段並在指定網段的接口上使能OSPF |
network ip-address wildcard-mask |
必選 缺省情況下,接口不屬於任何區域且OSPF功能處於關閉狀態 |
· VPN實例綁定的OSPF進程中不使用係統視圖下配置的公網Router ID,因此用戶需要在啟動進程時手工配置Router ID。同一VPN的所有OSPF進程應配置相同的域ID,以保證路由發布的正確性。
· 一個OSPF進程隻能屬於一個VPN實例,但一個VPN實例可以使用多個OSPF進程為其傳播私網路由。同一VPN實例內的OSPF進程應配置有相同的域ID,以保證路由發布的正確性。
· 有關OSPF協議的配置,請參見“三層技術-IP路由配置指導”中的“OSPF”。
一個IS-IS進程隻能屬於一個VPN實例。如果在啟動IS-IS進程時不綁定到VPN實例,則該進程屬於公網進程。
通過在MCE上將IS-IS進程與VPN實例綁定,可以使不同VPN內的私網路由通過不同的IS-IS進程在Site和MCE間進行交互,保證了私網路由的隔離和安全。
表1-32 配置MCE與站點之間使用IS-IS
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與站點間的IS-IS實例,並進入IS-IS視圖 |
isis [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在MCE上進行,站點上配置普通IS-IS即可 |
配置網絡實體名稱 |
network-entity net |
必選 缺省情況下,沒有配置網絡實體名稱 |
引入由PE發布的遠端站點的路由 |
import-route { isis [ process-id ] | ospf [ process-id ] | rip [ process-id ] | bgp [ allow-ibgp ] | direct | static } [ cost cost | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
可選 缺省情況下,IS-IS不引入其它協議的路由信息 如果import-route命令中不指定引入的級別,則默認為引入路由到Level-2路由表中 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能接口IS-IS並指定要關聯的IS-IS進程號 |
isis enable [ process-id ] |
必選 缺省情況下,接口上沒有使能IS-IS |
有關IS-IS的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“IS-IS”。
MCE與站點間使用EBGP交換路由信息時,需要在MCE上為每個VPN實例配置BGP對等體,並在站點上引入相應VPN內的IGP路由信息。
MCE使用EBGP交換路由信息時,還可以通過Filter-policy對接收/發布的路由進行過濾。
(1) MCE上的配置
表1-33 配置MCE與站點之間使用EBGP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
必選 |
配置EBGP對等體 |
peer { group-name | ip-address } [ as-number as-number ] |
二者必選其一 |
配置允許本地AS號在所接收的路由的AS_PATH屬性中出現,並可同時配置允許重複的次數 |
peer { group-name | ip-address } allow-as-loop [ number ] |
|
引入由PE發布的遠端站點的路由 |
import-route protocol [ process-id | all-processes ] [ med med-value | route-policy route-policy-name ] * |
必選 缺省情況下,BGP不引入且不通告其它協議的路由 |
配置對發布的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
· 通常情況下,BGP通過AS號檢測路由環路。如果在MCE和Site之間運行EBGP,當MCE將路由信息通告給Site時帶上本自治係統的AS號,再從Site接收路由更新時,路由更新消息中會帶有本自治係統的AS號,這樣MCE就不能接收這條路由更新信息,此時需要配置允許路由環路。
· 對於標準的BGP/OSPF互相引用功能,當在MCE設備上配置引入BGP路由到OSPF中時,該路由的原OSPF屬性將無法恢複,造成該路由與從其他域引入的路由無法區分。為了區分原屬於不同OSPF域的路由,需要在遠端PE將OSPF路由引入到BGP時攜帶標識域的屬性,即OSPF的域ID(Domain ID)。OSPF進程的域ID包含在此進程生成的路由中,在將OSPF路由引入BGP中時,域ID被附加到BGP VPN路由上,作為BGP的擴展團體屬性傳遞。
· 配置BGP VPN實例後,VPN實例中的BGP路由交換與普通的BGP相同。有關BGP協議的配置,請參見“三層技術-IP路由配置指導”中的“BGP”。
(2) 站點上的配置
表1-34 站點上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
將MCE配置為EBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
配置引入VPN內的IGP路由 |
import-route protocol [ process-id ] [ med med-value | route-policy route-policy-name ] * |
可選 站點需要將自己所能到達的VPN網段地址發布給接入的MCE |
MCE與站點間使用IBGP交換路由信息時,需要在MCE上為每個VPN實例配置BGP對等體,並在站點上引入相應VPN內的IGP路由信息。
(1) MCE上的配置
表1-35 配置MCE與站點之間使用IBGP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
必選 |
配置IBGP對等體 |
peer { group-name | ip-address } [ as-number as-number ] |
必選 |
配置本地設備作為路由反射器,對端設備作為路由反射器的客戶端 |
peer { group-name | ip-address } reflect-client |
可選 缺省情況下,沒有配置路由反射器及其客戶端 |
引入由PE發布的遠端站點的路由 |
import-route protocol [ process-id | all-processes ] [ med med-value | route-policy route-policy-name ] * |
必選 缺省情況下,BGP不引入且不通告其它協議的路由 |
配置對發布的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
將站點配置為IBGP對等體時,從該站點學習的BGP路由不會向其它IBGP對等體(包括VPNv4對等體)發送。隻有將站點配置為路由反射器的客戶端後,才能向其它IBGP對等體發送從該站點學習的路由。
(2) 站點上的配置
表1-36 站點上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
將MCE配置為IBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
配置引入VPN內的IGP路由 |
import-route protocol [ process-id ] [ med med-value | route-policy route-policy-name ] * |
可選 站點需要將自己所能到達的VPN網段地址發布給接入的MCE |
由於在MCE設備上已經將站點內的私網路由信息與VPN實例進行了綁定,因此,隻需要在MCE與PE之間將接口與VPN實例進行綁定、進行簡單的路由配置、並將MCE上維護的站點內的VPN路由引入到MCE-PE間的路由協議中,便可以實現私網VPN路由信息的傳播。
本節中的配置均在MCE上進行,PE上的配置與基本MPLS L3VPN組網中PE上的配置相同,詳細介紹請參見“1.3.4 配置PE-CE間路由交換”。
表1-37 配置MCE與PE之間使用靜態路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為指定VPN實例配置靜態路由 |
ip route-static dest-address { mask | mask-length } { gateway-address | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
必選 |
ip route-static vpn-instance s-vpn-instance-name&<1-6> dest-address { mask | mask-length } { gateway-address [ public ] | interface-type interface-number [ gateway-address ] | vpn-instance d-vpn-instance-name gateway-address } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
||
配置靜態路由的缺省優先級 |
ip route-static default-preference default-preference-value |
可選 缺省情況下,靜態路由的缺省優先級為60 |
表1-38 配置MCE與PE之間使用RIP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與PE間的RIP實例,並進入RIP視圖 |
rip [ process-id ] vpn-instance vpn-instance-name |
必選 |
在指定網段接口上使能RIP |
network network-address |
必選 缺省情況下,接口上的RIP功能處於關閉狀態 |
引入站點內的VPN路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name | tag tag ] * |
必選 缺省情況下,RIP未引入其它路由 |
配置引入路由的缺省度量值 |
default cost value |
可選 缺省情況下,引入路由的缺省度量值為0 |
有關RIP的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“RIP”。
表1-39 配置MCE與PE之間使用OSPF
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與PE間的OSPF實例,並進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
必選 |
關閉OSPF實例的路由環路檢測功能 |
vpn-instance-capability simple |
必選 缺省情況下,OSPF實例的路由環路檢測功能處於開啟狀態 需要在MCE上通過本命令關閉OSPF實例的路由環路檢測功能。否則,MCE不會接收PE發送過來的OSPF路由,導致路由丟失 |
配置OSPF域標識符 |
domain-id domain-id [ secondary ] |
可選 缺省情況下,OSPF域標識符為0 |
引入站點內的VPN路由 |
import-route protocol [ process-id | allow-ibgp ] [ cost cost | type type | tag tag | route-policy route-policy-name ] * |
必選 缺省情況下,沒有引入其他協議的路由信息 |
配置對引入的路由進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ protocol [ process-id ] ] |
可選 缺省情況下,沒有對引入的路由信息進行過濾 |
配置引入外部路由時的參數缺省值(開銷、路由數量、標記、類型) |
default { cost cost | limit limit | tag tag | type type } * |
可選 缺省情況下,OSPF引入外部路由的度量值為1,一次引入外部路由數量的上限為1000,外部路由標記值為1,引入的外部路由類型為Type2 |
配置OSPF區域,進入OSPF區域視圖 |
area area-id |
必選 缺省情況下,沒有配置OSPF區域 |
配置區域所包含的網段並在指定網段的接口上使能OSPF |
network ip-address wildcard-mask |
必選 缺省情況下,接口不屬於任何區域且OSPF功能處於關閉狀態 |
有關OSPF協議的配置,請參見“三層技術-IP路由配置指導”中的“OSPF”。
表1-40 配置MCE與PE之間使用IS-IS
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與PE間的IS-IS實例,並進入IS-IS視圖 |
isis [ process-id ] vpn-instance vpn-instance-name |
必選 |
配置網絡實體名稱 |
network-entity net |
必選 缺省情況下,沒有配置網絡實體名稱 |
引入站點內的VPN路由 |
import-route { isis [ process-id ] | ospf [ process-id ] | rip [ process-id ] | bgp [ allow-ibgp ] | direct | static } [ cost cost | cost-type { external | internal } | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
可選 缺省情況下,IS-IS不引入其它協議的路由信息 如果import-route命令中不指定引入的級別,則默認為引入路由到Level-2路由表中 |
對引入的路由進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name | route-policy route-policy-name } export [ isis process-id | ospf process-id | rip process-id | bgp | direct | static ] |
可選 缺省情況下,IS-IS不對引入的路由信息進行過濾 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能接口IS-IS並指定要關聯的IS-IS進程號 |
isis enable [ process-id ] |
必選 缺省情況下,接口上沒有使能IS-IS |
有關IS-IS的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“IS-IS”。
表1-41 配置MCE與PE之間使用EBGP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
必選 |
將PE配置為EBGP對等體 |
peer { group-name | ip-address } [ as-number as-number ] |
必選 |
引入站點內的VPN路由 |
import-route protocol [ process-id | all-processes ] [ med med-value | route-policy route-policy-name ] * |
必選 缺省情況下,BGP不引入且不通告其它協議的路由 |
配置對發布的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
配置BGP VPN實例後,VPN實例中的BGP路由交換與普通的BGP相同。有關BGP協議的配置,請參見“三層技術-IP路由配置指導”中的“BGP”。
表1-42 配置MCE與PE之間使用IBGP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
必選 |
將PE配置為IBGP對等體 |
peer { group-name | ip-address } [ as-number as-number ] |
必選 |
引入站點內的VPN路由 |
import-route protocol [ process-id | all-processes ] [ med med-value | route-policy route-policy-name ] * |
必選 缺省情況下,BGP不引入且不通告其它協議的路由 |
配置對發布的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ direct | isis process-id | ospf process-id | rip process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
Egress PE上私網路由的標簽操作方式根據標簽查找FIB進行轉發與根據標簽查找出接口進行轉發兩種:
· 私網標簽的POPGO轉發方式:標簽分配時,都明確了標簽跟出接口和下一跳的對應關係,彈出標簽後,直接從出接口發送。
· 私網標簽的POP轉發方式:忽略標簽分配時明確的標簽跟出接口和下一跳對應關係,彈出標簽後,再查FIB表轉發。
表1-43 配置Egress PE上私網路由標簽操作方式
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置Egress PE上私網路由的標簽操作方式為根據標簽查找出接口轉發 |
vpn popgo |
必選 缺省情況下,Egress PE上私網路由的標簽操作方式為根據標簽查找FIB進行轉發 |
· 用戶如需將兩台設備配置成IRF,這兩台設備的vpn popgo必須配置一致,即都為vpn popgo或都為undo vpn popgo,否則不能形成IRF。有關IRF的介紹,請參見“IRF配置指導”中的“IRF”。
· 隻有重啟設備後,本命令的配置才會生效。
· 配置成功後此命令不會在設備上顯示。可以通過display vpn label operation命令查看當前生效的轉發方式。
在配置BGP的AS號替換和SOO屬性之前,需完成以下任務:
· 配置基本MPLS L3VPN
· 確保不同Site的CE具有相同的AS號
不同Site的CE具有相同的AS號時,PE上需要開啟BGP的AS號替換功能,從而避免路由被丟棄。
使能了BGP的AS號替換功能後,當PE向指定對等體(即CE)發布路由時,如果路由的AS_PATH中有與CE相同的AS號,將被替換成PE的AS號後再發布。
同時,為了避免PE使用不同接口連接同一站點的多個CE時產生路由環路,需要在PE上對從CE學習到的路由應用入方向路由策略,指定為路由添加的SOO屬性。
表1-44 配置BGP的AS號替換和SOO屬性
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建路由策略,並進入路由策略視圖 |
route-policy route-policy-name permit node node-number |
可選 缺省情況下,不存在任何路由策略 |
配置路由的SOO屬性 |
apply extcommunity soo site-of-origin additive |
可選 缺省情況下,沒有指定SOO屬性 |
退回係統視圖 |
quit |
- |
進入BGP視圖 |
bgp as-number |
- |
進入BGP-VPN實例視圖 |
ipv4-family vpn-instance vpn-instance-name |
必選 |
使能BGP的AS號替換功能 |
peer { ip-address | group-name } substitute-as |
必選 缺省情況下,BGP的AS號替換功能是被禁止的 |
對從對等體學習的路由應用已配置的路由策略,為路由添加SOO屬性 |
peer { ip-address | group-name } route-policy route-policy-name import |
可選 缺省情況下,沒有對從對等體學習的路由應用路由策略 |
apply extcommunity命令的介紹,請參見“三層技術-IP路由命令參考”中的“路由策略”;peer substitute-as和peer route-policy命令的介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。
當BGP配置變化後,可以通過軟複位或複位BGP連接使新的配置生效。軟複位需要BGP對等體具備路由刷新能力(支持ROUTE-REFRESH消息)。
軟複位BGP連接是指在不斷開BGP鄰居關係的情況下,更新BGP路由信息;複位BGP連接是指斷開並重新建立BGP鄰居關係的情況下,更新BGP路由信息。
請在用戶視圖下進行下列操作。
操作 |
命令 |
軟複位指定VPN實例的BGP連接 |
refresh bgp vpn-instance vpn-instance-name { ip-address | all | external | group group-name } { export | import } |
軟複位BGP的VPNv4連接 |
refresh bgp vpnv4 { ip-address | all | external | group group-name | internal } { export | import } |
複位指定VPN實例的BGP連接 |
reset bgp vpn-instance vpn-instance-name { as-number | ip-address | all | external | group group-name } |
複位BGP的VPNv4連接 |
reset bgp vpnv4 { as-number | ip-address | all | external | internal | group group-name } |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後MPLS L3VPN的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除路由振蕩衰減信息。
表1-46 顯示MPLS L3VPN的運行狀態
操作 |
命令 |
顯示與VPN實例相關聯的IP路由表 |
display ip routing-table vpn-instance vpn-instance-name [ verbose ] [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例的FIB信息 |
display fib vpn-instance vpn-instance-name [ acl acl-number | ip-prefix ip-prefix-name ] [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例中與指定目的IP地址匹配的FIB信息 |
display fib vpn-instance vpn-instance-name ip-address [ mask | mask-length ] [ | { begin | exclude | include } regular-expression ] |
顯示BGP路由表中的標簽路由信息 |
display bgp vpnv4 { all | vpn-instance vpn-instance-name } routing-table label [ | { begin | exclude | include } regular-expression ] |
顯示BGP VPNv4對等體組信息 |
display bgp vpnv4 { all | vpn-instance vpn-instance-name } group [ group-name ] [ | { begin | exclude | include } regular-expression ] |
顯示引入的BGP VPNv4路由信息 |
display bgp vpnv4 { all | vpn-instance vpn-instance-name } network [ | { begin | exclude | include } regular-expression ] |
顯示BGP VPNv4的AS路徑信息 |
display bgp vpnv4 { all | vpn-instance vpn-instance-name } paths [ as-regular-expression | { | { begin | exclude | include } regular-expression } ] |
顯示BGP VPNv4對等體信息 |
display bgp vpnv4 all peer [ ip-address verbose | verbose ] [ | { begin | exclude | include } regular-expression ] display bgp vpnv4 vpn-instance vpn-instance-name peer [ group-name log-info | ip-address { log-info | verbose } | verbose ] [ | { begin | exclude | include } regular-expression ] |
顯示從指定鄰居收到的ORF報文中的前綴信息 |
display bgp vpnv4 { all | vpn-instance vpn-instance-name } peer ip-address received ip-prefix [ | { begin | exclude | include } regular-expression ] |
顯示所有BGP VPNv4路由信息 |
display bgp vpnv4 all routing-table [ [ network-address [ { mask | mask-length } [ longer-prefixes ] ] | as-path-acl as-path-acl-number | cidr | community [ aa:nn ]&<1-13> [ no-advertise | no-export | no-export-subconfed ] * [ whole-match ] | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } | different-origin-as | peer ip-address { advertised-routes | received-routes } [ statistic ] | statistic ] [ | { begin | exclude | include } regular-expression ] | regular-expression as-regular-expression ] |
顯示指定路由標識符的BGP VPNv4路由信息 |
display bgp vpnv4 route-distinguisher route-distinguisher routing-table [ [ network-address [ mask | mask-length ] | as-path-acl as-path-acl-number | cidr | community [ aa:nn ]&<1-13> [ no-advertise | no-export | no-export-subconfed ] * [ whole-match ] | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } | different-origin-as ] [ | { begin | exclude | include } regular-expression ] | regular-expression as-regular-expression ] |
顯示指定VPN實例的BGP VPNv4路由信息 |
display bgp vpnv4 vpn-instance vpn-instance-name routing-table [ [ network-address [ { mask | mask-length } [ longer-prefixes ] ] | as-path-acl as-path-acl-number | cidr | community [ aa:nn ]&<1-13> [ no-advertise | no-export | no-export-subconfed ] * [ whole-match ] | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } | dampened | dampening parameter | different-origin-as | flap-info [ network-address [ { mask | mask-length } [ longer-match ] ] | as-path-acl as-path-acl-number ] | peer ip-address { advertised-routes | received-routes } | statistic ] [ | { begin | exclude | include } regular-expression ] | [ flap-info ] regular-expression as-regular-expression ] |
顯示OSPF偽連接信息 |
display ospf [ process-id ] sham-link [ area area-id ] [ | { begin | exclude | include } regular-expression ] |
顯示所有或指定隧道策略的信息 |
display tunnel-policy { all | policy-name tunnel-policy-name } [ | { begin | exclude | include } regular-expression ] |
顯示Egress PE上私網路由的標簽操作方式信息 |
display vpn label operation [ | { begin | exclude | include } regular-expression ] |
顯示指定LDP實例的信息 |
display mpls ldp vpn-instance vpn-instance-name [ | { begin | exclude | include } regular-expression ] |
清除指定VPN實例的路由振蕩衰減信息 |
reset bgp vpn-instance vpn-instance-name dampening [ network-address [ mask | mask-length ] |
清除指定VPN實例的BGP對等體路由振蕩曆史信息 |
reset bgp vpn-instance vpn-instance-name ip-address flap-info reset bgp vpn-instance vpn-instance-name flap-info [ ip-address [ mask | mask-length ] | as-path-acl as-path-acl-number | regexp as-path-regexp ] |
有關查看路由表的命令介紹請參見“三層技術-IP路由命令參考”中的“IP路由基礎命令”。
缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使這些接口處於UP。
· CE 1、CE 3屬於VPN 1,CE 2、CE 4屬於VPN 2;
· VPN 1使用的VPN Target屬性為111:1,VPN 2使用的VPN Target屬性為222:2。不同VPN用戶之間不能互相訪問;
· CE與PE之間配置EBGP交換VPN路由信息;
· PE與PE之間配置OSPF實現PE內部的互通、配置MP-IBGP交換VPN路由信息。
圖1-20 PE-CE間使用EBGP基本MPLS L3VPN組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
Vlan-int1 |
10.1.1.1/24 |
P |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
Vlan-int1 |
172.2.1.1/24 |
|
Vlan-int1 |
10.1.1.2/24 |
|
Vlan-int3 |
172.1.1.2/24 |
|
Vlan-int3 |
172.1.1.1/24 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
Vlan-int2 |
10.2.1.2/24 |
|
Vlan-int1 |
172.2.1.2/24 |
CE 2 |
Vlan-int2 |
10.2.1.1/24 |
|
Vlan-int2 |
10.3.1.2/24 |
CE 3 |
Vlan-int2 |
10.3.1.1/24 |
|
Vlan-int3 |
10.4.1.2/24 |
CE 4 |
Vlan-int3 |
10.4.1.1/24 |
|
|
|
(1) 在MPLS骨幹網上配置IGP協議,實現骨幹網PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface vlan-interface 3
[PE1-Vlan-interface3] ip address 172.1.1.1 24
[PE1-Vlan-interface3] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface vlan-interface 3
[P-Vlan-interface3] ip address 172.1.1.2 24
[P-Vlan-interface3] quit
[P] interface vlan-interface 1
[P-Vlan-interface1] ip address 172.2.1.1 24
[P-Vlan-interface1] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface vlan-interface 1
[PE2-Vlan-interface1] ip address 172.2.1.2 24
[PE2-Vlan-interface1] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成後,PE 1、P、PE 2之間應能建立OSPF鄰居,執行display ospf peer命令可以看到鄰居達到FULL狀態。執行display ip routing-table命令可以看到PE之間學習到對方的Loopback路由。
以PE 1為例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 OSPF 10 1 172.1.1.2 Vlan3
3.3.3.9/32 OSPF 10 2 172.1.1.2 Vlan3
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
172.1.1.0/24 Direct 0 0 172.1.1.1 Vlan3
172.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
172.2.1.0/24 OSPF 10 1 172.1.1.2 Vlan3
[PE1] display ospf peer verbose
OSPF Process 1 with Router ID 1.1.1.9
Neighbors
Area 0.0.0.0 interface 172.1.1.1(Vlan-interface3)'s neighbors
Router ID: 172.1.1.2 Address: 172.1.1.2 GR State: Normal
State: Full Mode:Nbr is Master Priority: 1
DR: 172.1.1.1 BDR: 172.1.1.2 MTU: 0
Dead timer due in 38 sec
Neighbor is up for 00:02:44
Authentication Sequence: [ 0 ]
Neighbor state change count: 5
(2) 在MPLS骨幹網上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] interface vlan-interface 3
[PE1-Vlan-interface3] mpls
[PE1-Vlan-interface3] mpls ldp
[PE1-Vlan-interface3] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls
[P-mpls] quit
[P] mpls ldp
[P-mpls-ldp] quit
[P] interface vlan-interface 3
[P-Vlan-interface3] mpls
[P-Vlan-interface3] mpls ldp
[P-Vlan-interface3] quit
[P] interface vlan-interface 1
[P-Vlan-interface1] mpls
[P-Vlan0interface1] mpls ldp
[P-Vlan-interface1] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface vlan-interface 1
[PE2-Vlan-interface1] mpls
[PE2-Vlan-interface1] mpls ldp
[PE2-Vlan-interface1] quit
上述配置完成後,PE 1、P、PE 2之間應能建立LDP會話,執行display mpls ldp session命令可以看到顯示結果中Status字段為Operational。執行display mpls ldp lsp命令,可以看到LDP LSP的建立情況。
以PE 1為例:
[PE1] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
---------------------------------------------------------------
2.2.2.9:0 Operational DU Passive Off Off 5/5
---------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[PE1] display mpls ldp lsp
LDP LSP Information
------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------
1 1.1.1.9/32 3/NULL 127.0.0.1 -------/InLoop0
2 2.2.2.9/32 NULL/3 172.1.1.2 -------/Vlan-interface3
3 3.3.3.9/32 NULL/1024 172.1.1.2 -------/Vlan-interface3
------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
(3) 在PE設備上配置VPN實例,將CE接入PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface vlan-interface 1
[PE1-Vlan-interface1] ip binding vpn-instance vpn1
[PE1-Vlan-interface1] ip address 10.1.1.2 24
[PE1-Vlan-interface1] quit
[PE1] interface vlan-interface 2
[PE1-Vlan-interface2] ip binding vpn-instance vpn2
[PE1-Vlan-interface2] ip address 10.2.1.2 24
[PE1-Vlan-interface2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface vlan-interface 2
[PE2-Vlan-interface2] ip binding vpn-instance vpn1
[PE2-Vlan-interface2] ip address 10.3.1.2 24
[PE2-Vlan-interface2] quit
[PE2] interface vlan-interface 3
[PE2-Vlan-interface3] ip binding vpn-instance vpn2
[PE2-Vlan-interface3] ip address 10.4.1.2 24
[PE2-Vlan-interface3] quit
# 按圖1-20配置各CE的接口IP地址,配置過程略。
配置完成後,在PE設備上執行display ip vpn-instance命令可以看到VPN實例的配置情況。各PE能ping通自己接入的CE。
以PE 1和CE 1為例:
[PE1] display ip vpn-instance
Total VPN-Instances configured : 2
VPN-Instance Name RD Create time
vpn1 100:1 2009/01/22 13:02:21
vpn2 100:2 2009/01/22 13:02:40
[PE1] ping -vpn-instance vpn1 10.1.1.1
PING 10.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.1.1: bytes=56 Sequence=1 ttl=255 time=56 ms
Reply from 10.1.1.1: bytes=56 Sequence=2 ttl=255 time=4 ms
Reply from 10.1.1.1: bytes=56 Sequence=3 ttl=255 time=4 ms
Reply from 10.1.1.1: bytes=56 Sequence=4 ttl=255 time=52 ms
Reply from 10.1.1.1: bytes=56 Sequence=5 ttl=255 time=3 ms
--- 10.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 3/23/56 ms
(4) 在PE與CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp] peer 10.1.1.2 as-number 100
[CE1-bgp] import-route direct
[CE1-bgp] quit
另外3個CE設備(CE 2~CE 4)配置與CE 1設備配置類似,配置過程省略。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.1.1.1 as-number 65410
[PE1-bgp-vpn1] import-route direct
[PE1-bgp-vpn1] quit
[PE1-bgp] ipv4-family vpn-instance vpn2
[PE1-bgp-vpn2] peer 10.2.1.1 as-number 65420
[PE1-bgp-vpn2] import-route direct
[PE1-bgp-vpn2] quit
[PE1-bgp] quit
PE 2的配置與PE 1類似,配置過程省略。
配置完成後,在PE設備上執行display bgp vpnv4 vpn-instance peer命令,可以看到PE與CE之間的BGP對等體關係已建立,並達到Established狀態。
以PE 1與CE 1的對等體關係為例:
[PE1] display bgp vpnv4 vpn-instance vpn1 peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
10.1.1.1 65410 11 9 0 1 00:06:37 Established
(5) 在PE之間建立MP-IBGP對等體
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-af-vpnv4] quit
[PE2-bgp] quit
配置完成後,在PE設備上執行display bgp peer或display bgp vpnv4 all peer命令,可以看到PE之間的BGP對等體關係已建立,並達到Established狀態。
[PE1] display bgp peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.9 100 2 6 0 0 00:00:12 Established
(6) 配置完成後的檢驗
在PE設備上執行display ip routing-table vpn-instance命令,可以看到去往對端CE的路由。
以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 Direct 0 0 10.1.1.2 Vlan11
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 BGP 255 0 3.3.3.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
[PE1] display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.2.1.0/24 Direct 0 0 10.2.1.2 Vlan12
10.2.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.4.1.0/24 BGP 255 0 3.3.3.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
同一VPN的CE能夠相互Ping通,不同VPN的CE不能相互Ping通。
例如:CE 1能夠Ping通CE 3(10.3.1.1),但不能Ping通CE 4(10.4.1.1)。
[CE1] ping 10.3.1.1
PING 10.3.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.3.1.1: bytes=56 Sequence=1 ttl=253 time=72 ms
Reply from 10.3.1.1: bytes=56 Sequence=2 ttl=253 time=34 ms
Reply from 10.3.1.1: bytes=56 Sequence=3 ttl=253 time=50 ms
Reply from 10.3.1.1: bytes=56 Sequence=4 ttl=253 time=50 ms
Reply from 10.3.1.1: bytes=56 Sequence=5 ttl=253 time=34 ms
--- 10.3.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 34/48/72 ms
[CE1] ping 10.4.1.1
PING 10.4.1.1: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 10.4.1.1 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
· CE 1、CE 3屬於VPN 1,CE 2、CE 4屬於VPN 2;
· VPN 1使用的VPN Target屬性為111:1,VPN 2使用的VPN Target屬性為222:2。不同VPN用戶之間不能互相訪問;
· CE與PE之間配置IBGP交換VPN路由信息;
· PE與PE之間配置OSPF實現PE內部的互通、配置MP-IBGP交換VPN路由信息。
圖1-21 PE-CE間使用IBGP基本MPLS L3VPN組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
Vlan-int11 |
10.1.1.2/24 |
|
Vlan-int12 |
172.2.1.2/24 |
|
Vlan-int13 |
172.1.1.1/24 |
|
Vlan-int11 |
10.3.1.2/24 |
|
Vlan-int12 |
10.2.1.2/24 |
|
Vlan-int13 |
10.4.1.2/24 |
CE 1 |
Loop0 |
4.4.4.9/32 |
P |
Loop0 |
2.2.2.9/32 |
|
Vlan-int11 |
10.1.1.1/24 |
|
Vlan-int12 |
172.2.1.1/24 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
Vlan-int13 |
172.1.1.2/24 |
|
Vlan-int12 |
10.2.1.1/24 |
CE 4 |
Loop0 |
7.7.7.9/32 |
CE 3 |
Loop0 |
6.6.6.9/32 |
|
Vlan-int13 |
10.4.1.1/24 |
|
Vlan-int11 |
10.3.1.1/24 |
|
|
|
|
|
|
|
|
|
(1) 在MPLS骨幹網上配置IGP協議,實現骨幹網PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface vlan-interface 13
[PE1-Vlan-interface13] ip address 172.1.1.1 24
[PE1-Vlan-interface13] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface vlan-interface 13
[P-Vlan-interface13] ip address 172.1.1.2 24
[P-Vlan-interface13] quit
[P] interface vlan-interface 12
[P-Vlan-interface12] ip address 172.2.1.1 24
[P-Vlan-interface12] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface vlan-interface 12
[PE2-Vlan-interface12] ip address 172.2.1.2 24
[PE2-Vlan-interface12] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成後,PE 1、P、PE 2之間應能建立OSPF鄰居,執行display ospf peer命令可以看到鄰居達到FULL狀態。執行display ip routing-table命令可以看到PE之間學習到對方的Loopback路由。
以PE 1為例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 OSPF 10 1 172.1.1.2 Vlan13
3.3.3.9/32 OSPF 10 2 172.1.1.2 Vlan13
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
172.1.1.0/24 Direct 0 0 172.1.1.1 Vlan13
172.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
172.2.1.0/24 OSPF 10 1 172.1.1.2 Vlan13
[PE1] display ospf peer verbose
OSPF Process 1 with Router ID 1.1.1.9
Neighbors
Area 0.0.0.0 interface 172.1.1.1(Vlan-interface13)'s neighbors
Router ID: 172.1.1.2 Address: 172.1.1.2 GR State: Normal
State: Full Mode:Nbr is Master Priority: 1
DR: 172.1.1.1 BDR: 172.1.1.2 MTU: 0
Dead timer due in 38 sec
Neighbor is up for 00:02:44
Authentication Sequence: [ 0 ]
Neighbor state change count: 5
(2) 在MPLS骨幹網上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] interface vlan-interface 13
[PE1-Vlan-interface13] mpls
[PE1-Vlan-interface13] mpls ldp
[PE1-Vlan-interface13] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls
[P-mpls] quit
[P] mpls ldp
[P-mpls-ldp] quit
[P] interface vlan-interface 13
[P-Vlan-interface13] mpls
[P-Vlan-interface13] mpls ldp
[P-Vlan-interface13] quit
[P] interface vlan-interface 12
[P-Vlan-interface12] mpls
[P-Vlan0interface12] mpls ldp
[P-Vlan-interface12] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface vlan-interface 12
[PE2-Vlan-interface12] mpls
[PE2-Vlan-interface12] mpls ldp
[PE2-Vlan-interface12] quit
上述配置完成後,PE 1、P、PE 2之間應能建立LDP會話,執行display mpls ldp session命令可以看到顯示結果中Status字段為Operational。執行display mpls ldp lsp命令,可以看到LDP LSP的建立情況。
以PE 1為例:
[PE1] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
---------------------------------------------------------------
2.2.2.9:0 Operational DU Passive Off Off 5/5
---------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[PE1] display mpls ldp lsp
LDP LSP Information
------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------
1 1.1.1.9/32 3/NULL 127.0.0.1 -------/InLoop0
2 2.2.2.9/32 NULL/3 172.1.1.2 -------/Vlan-interface13
3 3.3.3.9/32 NULL/1024 172.1.1.2 -------/Vlan-interface13
------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
(3) 在PE設備上配置VPN實例,將CE接入PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface vlan-interface 11
[PE1-Vlan-interface11] ip binding vpn-instance vpn1
[PE1-Vlan-interface11] ip address 10.1.1.2 24
[PE1-Vlan-interface11] quit
[PE1] interface vlan-interface 12
[PE1-Vlan-interface12] ip binding vpn-instance vpn2
[PE1-Vlan-interface12] ip address 10.2.1.2 24
[PE1-Vlan-interface12] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface vlan-interface 11
[PE2-Vlan-interface11] ip binding vpn-instance vpn1
[PE2-Vlan-interface11] ip address 10.3.1.2 24
[PE2-Vlan-interface11] quit
[PE2] interface vlan-interface 13
[PE2-Vlan-interface13] ip binding vpn-instance vpn2
[PE2-Vlan-interface13] ip address 10.4.1.2 24
[PE2-Vlan-interface13] quit
# 按圖1-21配置各CE的接口IP地址,配置過程略。
配置完成後,在PE設備上執行display ip vpn-instance命令可以看到VPN實例的配置情況。各PE能ping通自己接入的CE。
以PE 1和CE 1為例:
[PE1] display ip vpn-instance
Total VPN-Instances configured : 2
VPN-Instance Name RD Create time
vpn1 100:1 2009/01/22 13:02:21
vpn2 100:2 2009/01/22 13:02:40
[PE1] ping -vpn-instance vpn1 10.1.1.1
PING 10.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.1.1: bytes=56 Sequence=1 ttl=255 time=56 ms
Reply from 10.1.1.1: bytes=56 Sequence=2 ttl=255 time=4 ms
Reply from 10.1.1.1: bytes=56 Sequence=3 ttl=255 time=4 ms
Reply from 10.1.1.1: bytes=56 Sequence=4 ttl=255 time=52 ms
Reply from 10.1.1.1: bytes=56 Sequence=5 ttl=255 time=3 ms
--- 10.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 3/23/56 ms
(4) 在PE與CE之間建立IBGP對等體,引入VPN路由,並配置路由策略修改路由的下一跳
# 在CE 1上配置IBGP對等體,並對從PE 1接收的路由應用路由策略,將路由下一跳修改為PE 1的地址。
<CE1> system-view
[CE1] route-policy ce-ibgp permit node 0
[CE1-route-policy] apply ip-address next-hop 10.1.1.2
[CE1-route-policy] quit
[CE1] bgp 100
[CE1-bgp] peer 10.1.1.2 as-number 100
[CE1-bgp] peer 10.1.1.2 route-policy ce-ibgp import
[CE1-bgp] import-route direct
[CE1-bgp] quit
另外3個CE設備(CE 2~CE 4)配置與CE 1設備配置類似,配置過程省略。
# 在PE 1上配置IBGP對等體,並配置PE 1作為路由反射器反射路由。
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.1.1.1 as-number 100
[PE1-bgp-vpn1] peer 10.1.1.1 reflect-client
[PE1-bgp-vpn1] import-route direct
[PE1-bgp-vpn1] quit
[PE1-bgp] ipv4-family vpn-instance vpn2
[PE1-bgp-vpn2] peer 10.2.1.1 as-number 100
[PE1-bgp-vpn2] peer 10.2.1.1 reflect-client
[PE1-bgp-vpn2] import-route direct
[PE1-bgp-vpn2] quit
[PE1-bgp] quit
PE 2的配置與PE 1類似,配置過程省略。
配置完成後,在PE設備上執行display bgp vpnv4 vpn-instance peer命令,可以看到PE與CE之間的BGP對等體關係已建立,並達到Established狀態。
以PE 1與CE 1的對等體關係為例:
[PE1] display bgp vpnv4 vpn-instance vpn1 peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
10.1.1.1 100 26 21 0 2 00:11:08 Established
(5) 在PE之間建立MP-IBGP對等體
# 在PE 1上配置MP-IBGP對等體,並對從PE 2接收的路由應用路由策略,將路由下一跳修改為PE 2的環回接口地址。
[PE1] route-policy pe-ibgp permit node 0
[PE1-route-policy] apply ip-address next-hop 3.3.3.9
[PE1-route-policy] quit
[PE1] bgp 100
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 3.3.3.9 route-policy pe-ibgp import
[PE1-bgp-af-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
# 在PE 2上配置MP-IBGP對等體,並對從PE 1接收的路由應用路由策略,將路由下一跳修改為PE 1的環回接口地址。
[PE2] route-policy pe-ibgp permit node 0
[PE2-route-policy] apply ip-address next-hop 1.1.1.9
[PE2-route-policy] quit
[PE2] bgp 100
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 1.1.1.9 route-policy pe-ibgp import
[PE2-bgp-af-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-af-vpnv4] quit
[PE2-bgp] quit
配置完成後,在PE設備上執行display bgp peer或display bgp vpnv4 all peer命令,可以看到PE之間的BGP對等體關係已建立,並達到Established狀態。
[PE1] display bgp peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.9 100 4 8 0 0 00:00:09 Established
(6) 配置完成後的檢驗
在PE設備上執行display ip routing-table vpn-instance命令,可以看到去往對端CE的路由。
以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
4.4.4.9/32 BGP 255 0 10.1.1.1 Vlan11
6.6.6.9/32 BGP 255 0 3.3.3.9 NULL0
10.1.1.0/24 Direct 0 0 10.1.1.2 Vlan11
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 BGP 255 0 3.3.3.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
[PE1] display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
5.5.5.9/32 BGP 255 0 10.2.1.1 Vlan12
7.7.7.9/32 BGP 255 0 3.3.3.9 NULL0
10.2.1.0/24 Direct 0 0 10.2.1.2 Vlan12
10.2.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.4.1.0/24 BGP 255 0 3.3.3.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
同一VPN的CE能夠相互Ping通,不同VPN的CE不能相互Ping通。
例如:CE 1能夠Ping通CE 3(6.6.6.9),但不能Ping通CE 4(7.7.7.9)。
[CE1] ping 6.6.6.9
PING 6.6.6.9: 56 data bytes, press CTRL_C to break
Reply from 6.6.6.9: bytes=56 Sequence=1 ttl=253 time=72 ms
Reply from 6.6.6.9: bytes=56 Sequence=2 ttl=253 time=34 ms
Reply from 6.6.6.9: bytes=56 Sequence=3 ttl=253 time=50 ms
Reply from 6.6.6.9: bytes=56 Sequence=4 ttl=253 time=50 ms
Reply from 6.6.6.9: bytes=56 Sequence=5 ttl=253 time=34 ms
--- 6.6.6.9 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 34/48/72 ms
[CE1] ping 7.7.7.9
PING 7.7.7.9: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 7.7.7.9 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
· Spoke-CE之間不能直接通信,隻能通過Hub-CE轉發Spoke-CE之間的流量。
· Spoke-CE與Spoke-PE之間、Hub-CE與Hub-PE之間配置EBGP交換VPN路由信息。
· Spoke-PE與Hub-PE之間配置OSPF實現PE內部的互通、配置MP-IBGP交換VPN路由信息。
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Spoke-CE 1 |
Vlan-int2 |
10.1.1.1/24 |
Hub-CE |
Vlan-int6 |
10.3.1.1/24 |
Spoke-PE 1 |
Loop0 |
1.1.1.9/32 |
|
Vlan-int7 |
10.4.1.1/24 |
|
Vlan-int2 |
10.1.1.2/24 |
Hub-PE |
Loop0 |
2.2.2.9/32 |
|
Vlan-int4 |
172.1.1.1/24 |
|
Vlan-int4 |
172.1.1.2/24 |
Spoke-CE 2 |
Vlan-int3 |
10.2.1.1/24 |
|
Vlan-int5 |
172.2.1.2/24 |
Spoke-PE 2 |
Loop0 |
3.3.3.9/32 |
|
Vlan-int6 |
10.3.1.2/24 |
|
Vlan-int3 |
10.2.1.2/24 |
|
Vlan-int7 |
10.4.1.2/24 |
|
Vlan-int3 |
10.2.1.2/24 |
|
Vlan-int7 |
10.4.1.2/24 |
|
Vlan-int5 |
172.2.1.1/24 |
|
|
|
(1) 在MPLS骨幹網上配置IGP協議,實現骨幹網Spoke-PE、Hub-PE之間的互通
# 配置Spoke-PE 1。
<Spoke-PE1> system-view
[Spoke-PE1] interface loopback 0
[Spoke-PE1-LoopBack0] ip address 1.1.1.9 32
[Spoke-PE1-LoopBack0] quit
[Spoke-PE1] interface vlan-interface 4
[Spoke-PE1-Vlan-interface4] ip address 172.1.1.1 24
[Spoke-PE1-Vlan-interface4] quit
[Spoke-PE1] ospf
[Spoke-PE1-ospf-1] area 0
[Spoke-PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[Spoke-PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[Spoke-PE1-ospf-1-area-0.0.0.0] quit
[Spoke-PE1-ospf-1] quit
# 配置Spoke-PE 2。
<Spoke-PE2> system-view
[Spoke-PE2] interface loopback 0
[Spoke-PE2-LoopBack0] ip address 3.3.3.9 32
[Spoke-PE2-LoopBack0] quit
[Spoke-PE2] interface vlan-interface 5
[Spoke-PE2-Vlan-interface5] ip address 172.2.1.1 24
[Spoke-PE2-Vlan-interface5] quit
[Spoke-PE2] ospf
[Spoke-PE2-ospf-1] area 0
[Spoke-PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[Spoke-PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[Spoke-PE2-ospf-1-area-0.0.0.0] quit
[Spoke-PE2-ospf-1] quit
# 配置Hub-PE。
<Hub-PE> system-view
[Hub-PE] interface loopback 0
[Hub-PE-LoopBack0] ip address 2.2.2.9 32
[Hub-PE-LoopBack0] quit
[Hub-PE] interface vlan-interface 4
[Hub-PE-Vlan-interface4] ip address 172.1.1.2 24
[Hub-PE-Vlan-interface4] quit
[Hub-PE] interface vlan-interface 5
[Hub-PE-Vlan-interface5] ip address 172.2.1.2 24
[Hub-PE-Vlan-interface5] quit
[Hub-PE] ospf
[Hub-PE-ospf-1] area 0
[Hub-PE-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[Hub-PE-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[Hub-PE-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[Hub-PE-ospf-1-area-0.0.0.0] quit
[Hub-PE-ospf-1] quit
配置完成後,Spoke-PE 1、Spoke-PE 2、Hub-PE之間應能建立OSPF鄰居,執行display ospf peer命令可以看到鄰居達到FULL狀態。執行display ip routing-table命令可以看到PE之間學習到對方的Loopback路由。
以Spoke-PE 1為例:
[Spoke-PE1] display ip routing-table
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 OSPF 10 1 172.1.1.2 Vlan4
3.3.3.9/32 OSPF 10 2 172.1.1.2 Vlan4
10.1.1.0/24 Direct 0 0 10.1.1.2 Vlan2
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
172.1.1.0/24 Direct 0 0 172.1.1.1 Vlan4
172.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
172.2.1.0/24 OSPF 10 1 172.1.1.2 Vlan4
[Spoke-PE1] display ospf peer verbose
OSPF Process 1 with Router ID 1.1.1.9
Neighbors
Area 0.0.0.0 interface 172.1.1.1(Vlan-interface4)'s neighbors
Router ID: 2.2.2.9 Address: 172.1.1.2 GR State: Normal
State: Full Mode:Nbr is Master Priority: 1
DR: 172.1.1.1 BDR: 172.1.1.2 MTU: 0
Dead timer due in 38 sec
Neighbor is up for 00:02:44
Authentication Sequence: [ 0 ]
Neighbor state change count: 5
(2) 在MPLS骨幹網上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置Spoke-PE 1。
[Spoke-PE1] mpls lsr-id 1.1.1.9
[Spoke-PE1] mpls
[Spoke-PE1-mpls] quit
[Spoke-PE1] mpls ldp
[Spoke-PE1-mpls-ldp] quit
[Spoke-PE1] interface vlan-interface 4
[Spoke-PE1-Vlan-interface4] mpls
[Spoke-PE1-Vlan-interface4] mpls ldp
[Spoke-PE1-Vlan-interface4] quit
# 配置Spoke-PE 2。
[Spoke-PE2] mpls lsr-id 3.3.3.9
[Spoke-PE2] mpls
[Spoke-PE2-mpls] quit
[Spoke-PE2] mpls ldp
[Spoke-PE2-mpls-ldp] quit
[Spoke-PE2] interface vlan-interface 5
[Spoke-PE2-Vlan-interface5] mpls
[Spoke-PE2-Vlan-interface5] mpls ldp
[Spoke-PE2-Vlan-interface5] quit
# 配置Hub-PE。
[Hub-PE] mpls lsr-id 2.2.2.9
[Hub-PE] mpls
[Hub-PE-mpls] quit
[Hub-PE] mpls ldp
[Hub-PE-mpls-ldp] quit
[Hub-PE] interface vlan-interface 4
[Hub-PE-Vlan-interface4] mpls
[Hub-PE-Vlan-interface4] mpls ldp
[Hub-PE-Vlan-interface4] quit
[Hub-PE] interface vlan-interface 5
[Hub-PE-Vlan-interface5] mpls
[Hub-PE-Vlan-interface5] mpls ldp
[Hub-PE-Vlan-interface5] quit
上述配置完成後,Spoke-PE 1、Spoke-PE 2、Hub-PE之間應能建立LDP會話,執行display mpls ldp session命令可以看到顯示結果中Status字段為Operational。執行display mpls ldp lsp命令,可以看到LDP LSP的建立情況。
以Spoke-PE 1為例:
[Spoke-PE1] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
---------------------------------------------------------------
2.2.2.9:0 Operational DU Passive Off Off 5/5
---------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[Spoke-PE1] display mpls ldp lsp
LDP LSP Information
------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------
1 1.1.1.9/32 3/NULL 127.0.0.1 -------/InLoop0
2 2.2.2.9/32 NULL/3 172.1.1.2 -------/Vlan-interface4
3 3.3.3.9/32 NULL/1024 172.1.1.2 -------/Vlan-interface4
------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
(3) 在Spoke-PE和Hub-PE設備上配置VPN實例,將CE接入PE
# 配置Spoke-PE 1。
[Spoke-PE1] ip vpn-instance vpn1
[Spoke-PE1-vpn-instance-vpn1] route-distinguisher 100:1
[Spoke-PE1-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity
[Spoke-PE1-vpn-instance-vpn1] vpn-target 222:2 export-extcommunity
[Spoke-PE1-vpn-instance-vpn1] quit
[Spoke-PE1] interface vlan-interface 2
[Spoke-PE1-Vlan-interface2] ip binding vpn-instance vpn1
[Spoke-PE1-Vlan-interface2] ip address 10.1.1.2 24
[Spoke-PE1-Vlan-interface2] quit
# 配置Spoke-PE 2。
[Spoke-PE2] ip vpn-instance vpn1
[Spoke-PE2-vpn-instance-vpn1] route-distinguisher 100:2
[Spoke-PE2-vpn-instance-vpn1] vpn-target 111:1 import-extcommunity
[Spoke-PE2-vpn-instance-vpn1] vpn-target 222:2 export-extcommunity
[Spoke-PE2-vpn-instance-vpn1] quit
[Spoke-PE2] interface vlan-interface 3
[Spoke-PE2-Vlan-interface3] ip binding vpn-instance vpn1
[Spoke-PE2-Vlan-interface3] ip address 10.2.1.2 24
[Spoke-PE2-Vlan-interface3] quit
# 配置Hub-PE。
[Hub-PE] ip vpn-instance vpn1-in
[Hub-PE-vpn-instance-vpn1-in] route-distinguisher 100:3
[Hub-PE-vpn-instance-vpn1-in] vpn-target 222:2 import-extcommunity
[Hub-PE-vpn-instance-vpn1-in] quit
[Hub-PE] ip vpn-instance vpn1-out
[Hub-PE-vpn-instance-vpn1-out] route-distinguisher 100:4
[Hub-PE-vpn-instance-vpn1-out] vpn-target 111:1 export-extcommunity
[Hub-PE-vpn-instance-vpn1-out] quit
[Hub-PE] interface vlan-interface 6
[Hub-PE-Vlan-interface6] ip binding vpn-instance vpn1-in
[Hub-PE-Vlan-interface6] ip address 10.3.1.2 24
[Hub-PE-Vlan-interface6] quit
[Hub-PE] interface vlan-interface 7
[Hub-PE-Vlan-interface7] ip binding vpn-instance vpn1-out
[Hub-PE-Vlan-interface7] ip address 10.4.1.2 24
[Hub-PE-Vlan-interface7] quit
# 按圖1-22配置各CE的接口IP地址,配置過程略。
配置完成後,在PE設備上執行display ip vpn-instance命令可以看到VPN實例的配置情況。各PE能ping通自己接入的CE。
以Spoke-PE 1和Spoke-CE 1為例:
[Spoke-PE1] display ip vpn-instance
Total VPN-Instances configured : 1
VPN-Instance Name RD Create time
vpn1 100:1 2009/04/08 10:55:07
[Spoke-PE1] ping -vpn-instance vpn1 10.1.1.1
PING 10.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.1.1: bytes=56 Sequence=1 ttl=255 time=56 ms
Reply from 10.1.1.1: bytes=56 Sequence=2 ttl=255 time=4 ms
Reply from 10.1.1.1: bytes=56 Sequence=3 ttl=255 time=4 ms
Reply from 10.1.1.1: bytes=56 Sequence=4 ttl=255 time=52 ms
Reply from 10.1.1.1: bytes=56 Sequence=5 ttl=255 time=3 ms
--- 10.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 3/23/56 ms
(4) 在PE與CE之間建立EBGP對等體,引入VPN路由
# 配置Spoke-CE 1。
<Spoke-CE1> system-view
[Spoke-CE1] bgp 65410
[Spoke-CE1-bgp] peer 10.1.1.2 as-number 100
[Spoke-CE1-bgp] import-route direct
[Spoke-CE1-bgp] quit
# 配置Spoke-CE 2。
<Spoke-CE2> system-view
[Spoke-CE2] bgp 65420
[Spoke-CE2-bgp] peer 10.2.1.2 as-number 100
[Spoke-CE2-bgp] import-route direct
[Spoke-CE2-bgp] quit
# 配置Hub-CE。
<Hub-CE> system-view
[Hub-CE] bgp 65430
[Hub-CE-bgp] peer 10.3.1.2 as-number 100
[Hub-CE-bgp] peer 10.4.1.2 as-number 100
[Hub-CE-bgp] import-route direct
[Hub-CE-bgp] quit
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp] ipv4-family vpn-instance vpn1
[Spoke-PE1-bgp-vpn1] peer 10.1.1.1 as-number 65410
[Spoke-PE1-bgp-vpn1] import-route direct
[Spoke-PE1-bgp-vpn1] quit
[Spoke-PE1-bgp] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp] ipv4-family vpn-instance vpn1
[Spoke-PE2-bgp-vpn1] peer 10.2.1.1 as-number 65420
[Spoke-PE2-bgp-vpn1] import-route direct
[Spoke-PE2-bgp-vpn1] quit
[Spoke-PE2-bgp] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp] ipv4-family vpn-instance vpn1-in
[Hub-PE-bgp-vpn1-in] peer 10.3.1.1 as-number 65430
[Hub-PE-bgp-vpn1-in] import-route direct
[Hub-PE-bgp-vpn1-in] quit
[Hub-PE-bgp] ipv4-family vpn-instance vpn1-out
[Hub-PE-bgp-vpn1-out] peer 10.4.1.1 as-number 65430
[Hub-PE-bgp-vpn1-out] peer 10.4.1.1 allow-as-loop
[Hub-PE-bgp-vpn1-out] import-route direct
[Hub-PE-bgp-vpn1-out] quit
[Hub-PE-bgp] quit
配置完成後,在PE設備上執行display bgp vpnv4 vpn-instance peer命令,可以看到PE與CE之間的BGP對等體關係已建立,並達到Established狀態。
以Spoke-PE 1與Spoke-CE 1的對等體關係為例:
[Spoke-PE1] display bgp vpnv4 vpn-instance vpn1 peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
10.1.1.1 65410 6 7 0 2 00:03:16 Established
(5) 在Spoke-PE和Hub-PE之間建立MP-IBGP對等體
# 配置Spoke-PE 1。
[Spoke-PE1] bgp 100
[Spoke-PE1-bgp] peer 2.2.2.9 as-number 100
[Spoke-PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE1-bgp] ipv4-family vpnv4
[Spoke-PE1-bgp-af-vpnv4] peer 2.2.2.9 enable
[Spoke-PE1-bgp-af-vpnv4] quit
[Spoke-PE1-bgp] quit
# 配置Spoke-PE 2。
[Spoke-PE2] bgp 100
[Spoke-PE2-bgp] peer 2.2.2.9 as-number 100
[Spoke-PE2-bgp] peer 2.2.2.9 connect-interface loopback 0
[Spoke-PE2-bgp] ipv4-family vpnv4
[Spoke-PE2-bgp-af-vpnv4] peer 2.2.2.9 enable
[Spoke-PE2-bgp-af-vpnv4] quit
[Spoke-PE2-bgp] quit
# 配置Hub-PE。
[Hub-PE] bgp 100
[Hub-PE-bgp] peer 1.1.1.9 as-number 100
[Hub-PE-bgp] peer 1.1.1.9 connect-interface loopback 0
[Hub-PE-bgp] peer 3.3.3.9 as-number 100
[Hub-PE-bgp] peer 3.3.3.9 connect-interface loopback 0
[Hub-PE-bgp] ipv4-family vpnv4
[Hub-PE-bgp-af-vpnv4] peer 1.1.1.9 enable
[Hub-PE-bgp-af-vpnv4] peer 3.3.3.9 enable
[Hub-PE-bgp-af-vpnv4] quit
[Hub-PE-bgp] quit
配置完成後,在PE設備上執行display bgp peer或display bgp vpnv4 all peer命令,可以看到PE之間的BGP對等體關係已建立,並達到Established狀態。
[Spoke-PE1] display bgp peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
2.2.2.9 100 6 5 0 0 00:00:32 Established
(6) 配置完成後的檢驗
# 在PE設備上執行display ip routing-table vpn-instance命令,可以看到去往各個CE的路由,且Spoke-PE上到達對端Spoke-CE的路由指向Hub-PE。以Spoke-PE 1為例:
[Spoke-PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
10.0.0.0/24 BGP 255 0 2.2.2.9 NULL0
10.1.1.0/24 Direct 0 0 10.1.1.2 Vlan2
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.0/24 BGP 255 0 2.2.2.9 NULL0
10.3.1.0/24 BGP 255 0 2.2.2.9 NULL0
10.4.1.0/24 BGP 255 0 2.2.2.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# Spoke-CE 1和Spoke-CE 2之間可以ping通。從TTL值可以推算出Spoke-CE 1到Spoke-CE 2經過6跳(255-250+1),即Spoke-CE 1和Spoke-CE 2之間的流量需要通過Hub-CE轉發。以Spoke-CE 1為例:
[Spoke-CE1] ping 10.2.1.1
PING 10.2.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.2.1.1: bytes=56 Sequence=1 ttl=250 time=3 ms
Reply from 10.2.1.1: bytes=56 Sequence=2 ttl=250 time=3 ms
Reply from 10.2.1.1: bytes=56 Sequence=3 ttl=250 time=2 ms
Reply from 10.2.1.1: bytes=56 Sequence=4 ttl=250 time=2 ms
Reply from 10.2.1.1: bytes=56 Sequence=5 ttl=250 time=2 ms
--- 10.2.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/2/3 ms
· CE 1和CE 2屬於同一個VPN。
· CE 1通過AS100的PE 1接入,CE 2通過AS200的PE 2接入。
· 采用OptionA方式實現跨域的MPLS L3VPN,即,采用VRF-to-VRF方式管理VPN路由。
· 同一個AS內部的MPLS骨幹網使用OSPF作為IGP。
圖1-23 配置跨域VPN-OptionA方式組網圖
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
|
CE 1 |
Vlan-int2 |
10.1.1.1/24 |
CE 2 |
Vlan-int2 |
10.2.1.1/24 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int2 |
10.1.1.2/24 |
|
Vlan-int2 |
10.2.1.2/24 |
|
Vlan-int1 |
172.1.1.2/24 |
|
Vlan-int1 |
162.1.1.2/24 |
ASBR-PE 1 |
Loop0 |
2.2.2.9/32 |
ASBR-PE 2 |
Loop0 |
3.3.3.9/32 |
|
Vlan-int1 |
172.1.1.1/24 |
|
Vlan-int1 |
162.1.1.1/24 |
|
Vlan-int2 |
192.1.1.1/24 |
|
Vlan-int2 |
192.1.1.2/24 |
(1) 在MPLS骨幹網上配置IGP協議,實現骨幹網內互通
本例中采用OSPF,具體配置步驟略。
需要將作為LSR ID的LoopBack接口的32位地址通過OSPF發布出去。
配置完成後,ASBR-PE與本AS的PE之間應能建立OSPF鄰居,執行display ospf peer命令可以看到鄰居達到FULL狀態,PE之間能學習到對方的Loopback地址。
ASBR-PE與本AS的PE之間能夠互相ping通。
(2) 在MPLS骨幹網上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1的MPLS基本能力,並在與ASBR-PE 1相連的接口上使能LDP。
<PE1> system-view
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] interface vlan-interface 1
[PE1-Vlan-interface1] mpls
[PE1-Vlan-interface1] mpls ldp
[PE1-Vlan-interface1] quit
# 配置ASBR-PE 1的MPLS基本能力,並在與PE 1相連的接口上使能LDP。
<ASBR-PE1> system-view
[ASBR-PE1] mpls lsr-id 2.2.2.9
[ASBR-PE1] mpls
[ASBR-PE1-mpls] quit
[ASBR-PE1] mpls ldp
[ASBR-PE1-mpls-ldp] quit
[ASBR-PE1] interface vlan-interface 1
[ASBR-PE1-Vlan-interface1] mpls
[ASBR-PE1-Vlan-interface1] mpls ldp
[ASBR-PE1-Vlan-interface1] quit
# 配置ASBR-PE 2的MPLS基本能力,並在與PE 2相連的接口上使能LDP。
<ASBR-PE2> system-view
[ASBR-PE2] mpls lsr-id 3.3.3.9
[ASBR-PE2] mpls
[ASBR-PE2-mpls] quit
[ASBR-PE2] mpls ldp
[ASBR-PE2-mpls-ldp] quit
[ASBR-PE2] interface vlan-interface 1
[ASBR-PE2-Vlan-interface1] mpls
[ASBR-PE2-Vlan-interface1] mpls ldp
[ASBR-PE2-Vlan-interface1] quit
# 配置PE 2的MPLS基本能力,並在與ASBR-PE 2相連的接口上使能LDP。
<PE2> system-view
[PE2] mpls lsr-id 4.4.4.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface vlan-interface 1
[PE2-Vlan-interface1] mpls
[PE2-Vlan-interface1] mpls ldp
[PE2-Vlan-interface1] quit
上述配置完成後,同一AS的PE和ASBR-PE之間應該建立起LDP鄰居,在各設備上執行display mpls ldp session命令可以看到顯示結果中Status字段為“Operational”。
(3) 在PE設備上配置VPN實例,將CE接入PE
同一AS內的ASBR-PE與PE的VPN實例的VPN Target應能匹配,不同AS的PE的VPN實例的VPN Target則不需要匹配。
# 配置CE 1。
<CE1> system-view
[CE1] interface vlan-interface 2
[CE1-Vlan-interface2] ip address 10.1.1.1 24
[CE1-Vlan-interface2] quit
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] interface vlan-interface 2
[PE1-Vlan-interface2] ip binding vpn-instance vpn1
[PE1-Vlan-interface2] ip address 10.1.1.2 24
[PE1-Vlan-interface2] quit
# 配置CE 2。
<CE2> system-view
[CE2] interface vlan-interface 2
[CE2-Vlan-interface2] ip address 10.2.1.1 24
[CE2-Vlan-interface2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance] route-distinguisher 200:2
[PE2-vpn-instance] vpn-target 100:1 both
[PE2-vpn-instance] quit
[PE2] interface vlan-interface 2
[PE2-Vlan-interface2] ip binding vpn-instance vpn1
[PE2-Vlan-interface2] ip address 10.2.1.2 24
[PE2-Vlan-interface2] quit
# 配置ASBR-PE 1:創建VPN實例,並將此實例綁定到連接ASBR-PE 2的接口(ASBR-PE 1認為ASBR-PE 2是自己的CE)。
[ASBR-PE1] ip vpn-instance vpn1
[ASBR-PE1-vpn-instance-vpn1] route-distinguisher 100:1
[ASBR-PE1-vpn-instance-vpn1] vpn-target 100:1 both
[ASBR-PE1-vpn-instance-vpn1] quit
[ASBR-PE1] interface vlan-interface 2
[ASBR-PE1-Vlan-interface2] ip binding vpn-instance vpn1
[ASBR-PE1-Vlan-interface2] ip address 192.1.1.1 24
[ASBR-PE1-Vlan-interface2] quit
# 配置ASBR-PE 2:創建VPN實例,並將此實例綁定到連接ASBR-PE 1的接口(ASBR-PE 2認為ASBR-PE 1是自己的CE)。
[ASBR-PE2] ip vpn-instance vpn1
[ASBR-PE2-vpn-vpn-vpn1] route-distinguisher 200:1
[ASBR-PE2-vpn-vpn-vpn1] vpn-target 100:1 both
[ASBR-PE2-vpn-vpn-vpn1] quit
[ASBR-PE2] interface vlan-interface 2
[ASBR-PE2-Vlan-interface2] ip binding vpn-instance vpn1
[ASBR-PE2-Vlan-interface2] ip address 192.1.1.2 24
[ASBR-PE2-Vlan-interface2] quit
上述配置完成後,在各PE設備上執行display ip vpn-instance命令能正確顯示VPN實例配置。
各PE能ping通CE。ASBR-PE之間也能互相ping通。
(4) 在PE與CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
[CE1] bgp 65001
[CE1-bgp] peer 10.1.1.2 as-number 100
[CE1-bgp] import-route direct
[CE1-bgp] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.1.1.1 as-number 65001
[PE1-bgp-vpn1] import-route direct
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE 2。
[CE2] bgp 65002
[CE2-bgp] peer 10.2.1.2 as-number 200
[CE2-bgp] import-route direct
[CE2-bgp] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] peer 10.2.1.1 as-number 65002
[PE2-bgp-vpn1] import-route direct
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
(5) PE與本AS的ASBR-PE之間建立IBGP對等體,ASBR-PE之間建立EBGP對等體
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp] peer 2.2.2.9 as-number 100
[PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 2.2.2.9 enable
[PE1-bgp-af-vpnv4] peer 2.2.2.9 next-hop-local
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
# 配置ASBR-PE 1。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp] ipv4-family vpn-instance vpn1
[ASBR-PE1-bgp-vpn1] peer 192.1.1.2 as-number 200
[ASBR-PE1-bgp-vpn1] quit
[ASBR-PE1-bgp] peer 1.1.1.9 as-number 100
[ASBR-PE1-bgp] peer 1.1.1.9 connect-interface loopback 0
[ASBR-PE1-bgp] ipv4-family vpnv4
[ASBR-PE1-bgp-af-vpnv4] peer 1.1.1.9 enable
[ASBR-PE1-bgp-af-vpnv4] peer 1.1.1.9 next-hop-local
[ASBR-PE1-bgp-af-vpnv4] quit
[ASBR-PE1-bgp] quit
# 配置ASBR-PE 2。
[ASBR-PE2] bgp 200
[ASBR-PE2-bgp] ipv4-family vpn-instance vpn1
[ASBR-PE2-bgp-vpn1] peer 192.1.1.1 as-number 100
[ASBR-PE2-bgp-vpn1] quit
[ASBR-PE2-bgp] peer 4.4.4.9 as-number 200
[ASBR-PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[ASBR-PE2-bgp] ipv4-family vpnv4
[ASBR-PE2-bgp-af-vpnv4] peer 4.4.4.9 enable
[ASBR-PE2-bgp-af-vpnv4] peer 4.4.4.9 next-hop-local
[ASBR-PE2-bgp-af-vpnv4] quit
[ASBR-PE2-bgp] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp] peer 3.3.3.9 as-number 200
[PE2-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 3.3.3.9 enable
[PE2-bgp-af-vpnv4] peer 3.3.3.9 next-hop-local
[PE2-bgp-af-vpnv4] quit
[PE2-bgp] quit
(6) 配置完成後的檢驗
上述配置完成後,CE之間能學習到對方的接口路由,CE 1和CE 2能夠相互ping通。
· Site 1和Site 2屬於同一個VPN,Site 1的CE 1通過AS 100的PE 1接入,Site 2的CE 2通過AS 600的PE 2接入;
· 同一自治係統內的PE設備之間運行IS-IS作為IGP;
· PE 1與ASBR-PE 1間通過MP-IBGP交換標簽IPv4路由;
· PE 2與ASBR-PE 2間通過MP-IBGP交換標簽IPv4路由;
· ASBR-PE 1與ASBR-PE 2間通過MP-EBGP交換標簽IPv4路由;
· ASBR上不對接收的VPN-IPv4路由進行VPN Target過濾。
圖1-24 配置跨域VPN-OptionB方式組網圖
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
|
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
Vlan-int2 |
30.0.0.1/8 |
|
Vlan-int2 |
20.0.0.1/8 |
|
Vlan-int1 |
1.1.1.2/8 |
|
Vlan-int1 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int1 |
1.1.1.1/8 |
|
Vlan-int1 |
9.1.1.1/8 |
|
Vlan-int2 |
11.0.0.2/8 |
|
Vlan-int2 |
11.0.0.1/8 |
(1) 配置PE 1
# 在PE 1上運行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.1111.1111.1111.1111.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置Vlan-interface1,在接口上運行IS-IS,並使能MPLS和LDP。
[PE1] interface vlan-interface 1
[PE1-Vlan-interface1] ip address 1.1.1.2 255.0.0.0
[PE1-Vlan-interface1] isis enable 1
[PE1-Vlan-interface1] mpls
[PE1-Vlan-interface1] mpls ldp
[PE1-Vlan-interface1] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 創建一個VPN實例,名為vpn1,配置RD和VPN Target屬性。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 將連接CE 1的接口綁定到創建的VPN實例。
[PE1] interface vlan-interface 2
[PE1-Vlan-interface2] ip binding vpn-instance vpn1
[PE1-Vlan-interface2] ip address 30.0.0.1 8
[PE1-Vlan-interface2] quit
# 在PE 1上運行BGP。
[PE1] bgp 100
# 配置IBGP對等體3.3.3.9為VPNv4對等體。
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 3.3.3.9 enable
[PE1-bgp-af-vpnv4] quit
# 將直連路由引入VPN1的VPN路由表。
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] import-route direct
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
(2) 配置ASBR-PE 1
# 在ASBR-PE 1上運行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.2222.2222.2222.2222.00
[ASBR-PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE1] mpls lsr-id 3.3.3.9
[ASBR-PE1] mpls
[ASBR-PE1-mpls] quit
[ASBR-PE1] mpls ldp
[ASBR-PE1-mpls-ldp] quit
# 配置接口Vlan-interface1,在接口上運行IS-IS,並使能MPLS和LDP。
[ASBR-PE1] interface vlan-interface1
[ASBR-PE1-Vlan-interface1] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-Vlan-interface1] isis enable 1
[ASBR-PE1-Vlan-interface1] mpls
[ASBR-PE1-Vlan-interface1] mpls ldp
[ASBR-PE1-Vlan-interface1] quit
# 配置接口Vlan-interface2,使能MPLS。
[ASBR-PE1] interface vlan-interface 2
[ASBR-PE1-Vlan-interface2] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-Vlan-interface2] mpls
[ASBR-PE1-Vlan-interface2] quit
# 創建Loopback0接口,並運行IS-IS。
[ASBR-PE1] interface loopback 0
[ASBR-PE1-LoopBack0] ip address 3.3.3.9 32
[ASBR-PE1-LoopBack0] isis enable 1
[ASBR-PE1-LoopBack0] quit
# 在ASBR-PE 1上運行BGP
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp] peer 11.0.0.1 as-number 600
# 不對接收的VPNv4路由進行Import VPN-target過濾。
[ASBR-PE1-bgp] ipv4-family vpnv4
[ASBR-PE1-bgp-af-vpnv4] undo policy vpn-target
# 將IBGP對等體2.2.2.9和EBGP對等體11.0.0.1都配置為VPNv4對等體。
[ASBR-PE1-bgp-af-vpnv4] peer 11.0.0.1 enable
[ASBR-PE1-bgp-af-vpnv4] peer 2.2.2.9 enable
[ASBR-PE1-bgp-af-vpnv4] quit
(3) 配置ASBR-PE 2
# 在ASBR-PE 2上運行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.3333.3333.3333.3333.00
[ASBR-PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE2] mpls lsr-id 4.4.4.9
[ASBR-PE2] mpls
[ASBR-PE2-mpls] quit
[ASBR-PE2] mpls ldp
[ASBR-PE2-mpls-ldp] quit
# 配置接口Vlan-interface1,在接口上運行IS-IS,並使能MPLS和LDP。
[ASBR-PE2] interface vlan-interface 1
[ASBR-PE2-Vlan-interface1] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-Vlan-interface1] isis enable 1
[ASBR-PE2-Vlan-interface1] mpls
[ASBR-PE2-Vlan-interface1] mpls ldp
[ASBR-PE2-Vlan-interface1] quit
# 配置接口Vlan-interface2,使能MPLS。
[ASBR-PE2] interface vlan-interface 2
[ASBR-PE2-Vlan-interface2] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-Vlan-interface2] mpls
[ASBR-PE2-Vlan-interface2] quit
# 創建Loopback0接口,並運行IS-IS。
[ASBR-PE2] interface loopback 0
[ASBR-PE2-LoopBack0] ip address 4.4.4.9 32
[ASBR-PE2-LoopBack0] isis enable 1
[ASBR-PE2-LoopBack0] quit
# 在ASBR-PE 2上運行BGP。
[ASBR-PE2] bgp 600
[ASBR-PE2-bgp] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp] peer 5.5.5.9 connect-interface loopback 0
# 不對接收的VPNv4路由進行Import VPN-target過濾。
[ASBR-PE2-bgp] ipv4-family vpnv4
[ASBR-PE2-bgp-af-vpnv4] undo policy vpn-target
# 將IBGP對等體5.5.5.9和EBGP對等體11.0.0.2都配置為VPNv4對等體。
[ASBR-PE2-bgp-af-vpnv4] peer 11.0.0.2 enable
[ASBR-PE2-bgp-af-vpnv4] peer 5.5.5.9 enable
[ASBR-PE2-bgp-af-vpnv4] quit
[ASBR-PE2-bgp] quit
(4) 配置PE 2
# 在PE 2上運行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.4444.4444.4444.4444.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置接口Vlan-interface1,在接口上運行IS-IS,並使能MPLS和LDP。
[PE2] interface vlan-interface 1
[PE2-Vlan-interface1] ip address 9.1.1.2 255.0.0.0
[PE2-Vlan-interface1] isis enable 1
[PE2-Vlan-interface1] mpls
[PE2-Vlan-interface1] mpls ldp
[PE2-Vlan-interface1] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 創建一個VPN實例,名為vpn1,配置RD和VPN Target屬性。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 12:12
[PE2-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 將連接CE 2的接口綁定到創建的VPN實例。
[PE2] interface Vlan-interface2
[PE2-Vlan-interface2] ip binding vpn-instance vpn1
[PE2-Vlan-interface2] ip address 20.0.0.1 8
[PE2-Vlan-interface2] quit
# 在PE 2上運行BGP。
[PE2] bgp 600
# 配置IBGP對等體4.4.4.9為VPNv4對等體。
[PE2-bgp] peer 4.4.4.9 as-number 600
[PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 4.4.4.9 enable
[PE2-bgp-af-vpnv4] quit
# 將直連路由引入VPN1的VPN路由表。
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] import-route direct
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
(5) 配置完成後的檢驗
# 配置完成後,在PE 2上對PE 1進行Ping操作,可以Ping通:
[PE2] ping –vpn-instance vpn1 30.0.0.1
# 在PE 1上對PE 2進行Ping操作,也可以Ping通:
[PE1] ping –vpn-instance vpn1 20.0.0.1
· Site 1和Site 2屬於同一個VPN,Site 1通過AS 100的PE 1接入,Site 2通過AS 600的PE 2接入;
· 同一自治係統內的PE設備之間運行IS-IS作為IGP;
· PE 1與ASBR-PE 1間通過MP-IBGP交換標簽IPv4路由;
· PE 2與ASBR-PE 2間通過MP-IBGP交換標簽IPv4路由;
· PE 1與PE 2建立MP-EBGP對等體;
· ASBR-PE 1和ASBR-PE 2上分別配置路由策略,對從對方接收的路由壓入標簽;
· ASBR-PE 1與ASBR-PE 2間通過MP-EBGP交換標簽IPv4路由。
圖1-25 配置跨域VPN-OptionC方式組網圖
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
|
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
Loop1 |
30.0.0.1/32 |
|
Loop1 |
20.0.0.1/32 |
|
Vlan-int1 |
1.1.1.2/8 |
|
Vlan-int1 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int1 |
1.1.1.1/8 |
|
Vlan-int1 |
9.1.1.1/8 |
|
Vlan-int2 |
11.0.0.2/8 |
|
Vlan-int2 |
11.0.0.1/8 |
(1) 配置PE 1
# 在PE 1上運行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.1111.1111.1111.1111.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置接口Vlan-interface1,在接口上運行IS-IS,並使能MPLS和LDP。
[PE1] interface vlan-interface 1
[PE1-Vlan-interface1] ip address 1.1.1.2 255.0.0.0
[PE1-Vlan-interface1] isis enable 1
[PE1-Vlan-interface1] mpls
[PE1-Vlan-interface1] mpls ldp
[PE1-Vlan-interface1] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 創建VPN實例,名稱為vpn1,為其配置RD和VPN Target屬性。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 創建Loopback1接口,並將此接口綁定到vpn1。
[PE1] interface loopback 1
[PE1-LoopBack1] ip binding vpn-instance vpn1
[PE1-LoopBack1] ip address 30.0.0.1 32
[PE1-LoopBack1] quit
# 在PE 1上運行BGP。
[PE1] bgp 100
# 配置PE 1向IBGP對等體3.3.3.9發布標簽路由及從3.3.3.9接收標簽路由的能力。
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] peer 3.3.3.9 label-route-capability
# 配置PE 1到EBGP對等體5.5.5.9的最大跳數為10。
[PE1-bgp] peer 5.5.5.9 as-number 600
[PE1-bgp] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp] peer 5.5.5.9 ebgp-max-hop 10
# 配置對等體5.5.5.9作為VPNv4對等體。
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 5.5.5.9 enable
[PE1-bgp-af-vpnv4] quit
# 將直連路由引入vpn1的路由表。
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] import-route direct
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
(2) 配置ASBR-PE1
# 在ASBR-PE 1上運行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.2222.2222.2222.2222.00
[ASBR-PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE1] mpls lsr-id 3.3.3.9
[ASBR-PE1] mpls
[ASBR-PE1-mpls] quit
[ASBR-PE1] mpls ldp
[ASBR-PE1-mpls-ldp] quit
# 配置接口Vlan-interface1,在接口上運行IS-IS,並使能MPLS和LDP。
[ASBR-PE1] interface vlan-interface 1
[ASBR-PE1-Vlan-interface1] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-Vlan-interface1] isis enable 1
[ASBR-PE1-Vlan-interface1] mpls
[ASBR-PE1-Vlan-interface1] mpls ldp
[ASBR-PE1-Vlan-interface1] quit
# 配置接口Vlan-interface2,並在接口上使能MPLS。
[ASBR-PE1] interface vlan-interface 2
[ASBR-PE1-Vlan-interface2] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-Vlan-interface2] mpls
[ASBR-PE1-Vlan-interface2] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[ASBR-PE1] interface loopback 0
[ASBR-PE1-LoopBack0] ip address 3.3.3.9 32
[ASBR-PE1-LoopBack0] isis enable 1
[ASBR-PE1-LoopBack0] quit
# 創建路由策略。
[ASBR-PE1] route-policy policy1 permit node 1
[ASBR-PE1-route-policy1] apply mpls-label
[ASBR-PE1-route-policy1] quit
[ASBR-PE1] route-policy policy2 permit node 1
[ASBR-PE1-route-policy2] if-match mpls-label
[ASBR-PE1-route-policy2] apply mpls-label
[ASBR-PE1-route-policy2] quit
# 在ASBR-PE 1上運行BGP,引入IS-IS進程1的路由。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp] import-route isis 1
# 對向IBGP對等體2.2.2.9發布的路由應用已配置的路由策略policy2。
[ASBR-PE1-bgp] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp] peer 2.2.2.9 route-policy policy2 export
# 向IBGP對等體2.2.2.9發布標簽路由及從2.2.2.9接收標簽路由的能力。
[ASBR-PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp] peer 2.2.2.9 label-route-capability
# 對向EBGP對等體11.0.0.1發布的路由應用已配置的路由策略policy1。
[ASBR-PE1-bgp] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp] peer 11.0.0.1 route-policy policy1 export
# 向EBGP對等體11.0.0.1發布標簽路由及從11.0.0.1接收標簽路由的能力。
[ASBR-PE1-bgp] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp] quit
(3) 配置ASBR-PE 2
# 在ASBR-PE 2上運行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.3333.3333.3333.3333.00
[ASBR-PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE2] mpls lsr-id 4.4.4.9
[ASBR-PE2] mpls
[ASBR-PE2-mpls] quit
[ASBR-PE2] mpls ldp
[ASBR-PE2-mpls-ldp] quit
# 配置接口Vlan-interface1,在接口上運行IS-IS,並在接口上使能MPLS和LDP。
[ASBR-PE2] interface vlan-interface 1
[ASBR-PE2-Vlan-interface1] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-Vlan-interface1] isis enable 1
[ASBR-PE2-Vlan-interface1] mpls
[ASBR-PE2-Vlan-interface1] mpls ldp
[ASBR-PE2-Vlan-interface1] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[ASBR-PE2] interface loopback 0
[ASBR-PE2-LoopBack0] ip address 4.4.4.9 32
[ASBR-PE2-LoopBack0] isis enable 1
[ASBR-PE2-LoopBack0] quit
# 配置接口Vlan-interface2,在接口上使能MPLS。
[ASBR-PE2] interface vlan-interface 2
[ASBR-PE2-Vlan-interface2] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-Vlan-interface2] mpls
[ASBR-PE2-Vlan-interface2] quit
# 創建路由策略。
[ASBR-PE2] route-policy policy1 permit node 1
New Sequence of this List
[ASBR-PE2-route-policy1] apply mpls-label
[ASBR-PE2-route-policy1] quit
[ASBR-PE2] route-policy policy2 permit node 1
[ASBR-PE2-route-policy2] if-match mpls-label
[ASBR-PE2-route-policy2] apply mpls-label
[ASBR-PE2-route-policy2] quit
# 在ASBR-PE 2上運行BGP,引入IS-IS進程1的路由。
[ASBR-PE2] bgp 600
[ASBR-PE2-bgp] import-route isis 1
# 向IBGP對等體5.5.5.9發布標簽路由及從5.5.5.9接收標簽路由的能力。
[ASBR-PE2-bgp] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp] peer 5.5.5.9 connect-interface loopback 0
[ASBR-PE2-bgp] peer 5.5.5.9 label-route-capability
# 對向IBGP對等體5.5.5.9發布的路由應用已配置的路由策略policy2。
[ASBR-PE2-bgp] peer 5.5.5.9 route-policy policy2 export
# 對向EBGP對等體11.0.0.2發布的路由應用已配置的路由策略policy1。
[ASBR-PE2-bgp] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp] peer 11.0.0.2 route-policy policy1 export
# 向EBGP對等體11.0.0.2發布標簽路由及從11.0.0.2接收標簽路由的能力。
[ASBR-PE2-bgp] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp] quit
(4) 配置PE 2
# 在PE 2上運行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.4444.4444.4444.4444.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置接口Vlan-interface1,在接口上運行IS-IS,並使能MPLS和LDP。
[PE2] interface vlan-interface 1
[PE2-Vlan-interface1] ip address 9.1.1.2 255.0.0.0
[PE2-Vlan-interface1] isis enable 1
[PE2-Vlan-interface1] mpls
[PE2-Vlan-interface1] mpls ldp
[PE2-Vlan-interface1] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 創建VPN實例,名稱為vpn1,為其配置RD和VPN Target屬性。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 11:11
[PE2-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 創建Loopback1接口,並將此接口綁定到vpn1。
[PE2] interface loopback 1
[PE2-LoopBack1] ip binding vpn-instance vpn1
[PE2-LoopBack1] ip address 20.0.0.1 32
[PE2-LoopBack1] quit
# 在PE 2上運行BGP。
[PE2] bgp 600
# 配置PE 2向IBGP對等體4.4.4.9發布標簽路由及從4.4.4.9接收標簽路由的能力。
[PE2-bgp] peer 4.4.4.9 as-number 600
[PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp] peer 4.4.4.9 label-route-capability
# 配置PE 2到EBGP對等體2.2.2.9的最大跳數為10。
[PE2-bgp] peer 2.2.2.9 as-number 100
[PE2-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp] peer 2.2.2.9 ebgp-max-hop 10
# 配置對等體2.2.2.9作為VPNv4對等體。
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 2.2.2.9 enable
[PE2-bgp-af-vpnv4] quit
# 將直連路由引入vpn1的路由表。
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] import-route direct
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
配置完成後,在PE2上對PE1進行Ping操作,可以Ping通:
[PE2] ping –vpn-instance vpn1 30.0.0.1
在PE1上對PE2進行Ping操作,也可以Ping通:
[PE1] ping –vpn-instance vpn1 20.0.0.1
在圖1-26中:
· PE 1和PE 2是一級運營商骨幹網的PE設備,為二級運營商提供VPN服務;
· CE 1和CE 2是同一個二級運營商的設備,作為CE接入一級運營商的骨幹網;
· PE 3和PE 4是二級運營商的PE設備,為二級運營商的客戶提供MPLS L3VPN服務;
· CE 3和CE 4是二級運營商的客戶。
配置運營商的運營商關鍵在於配置兩類路由的交換:
· 二級運營商VPN內部路由在一級運營商骨幹網上的交換:一級運營商將二級運營商作為自己的CE接入;
· 二級運營商本身客戶的VPN路由在二級運營商PE設備間的交換:需要在二級運營商PE設備(PE 3和PE 4)間建立MP-IBGP對等體關係。
圖1-26 配置Carriers’ carriers配置組網圖
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
|
CE 3 |
Vlan-int1 |
100.1.1.1/24 |
CE 4 |
Vlan-int1 |
120.1.1.1/24 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
Vlan-int1 |
100.1.1.2/24 |
|
Vlan-int1 |
120.1.1.2/24 |
|
Vlan-int2 |
10.1.1.1/24 |
|
Vlan-int2 |
20.1.1.2/24 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
Vlan-int2 |
10.1.1.2/24 |
|
Vlan-int1 |
21.1.1.2/24 |
|
Vlan-int1 |
11.1.1.1/24 |
|
Vlan-int2 |
20.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int1 |
11.1.1.2/24 |
|
Vlan-int2 |
30.1.1.2/24 |
|
Vlan-int2 |
30.1.1.1/24 |
|
Vlan-int1 |
21.1.1.1/24 |
(1) 配置一級運營商骨幹網的MPLS L3VPN,使用IS-IS作為骨幹網的IGP協議,PE 1和PE 2之間使能LDP,並建立MP-IBGP對等體關係
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 3.3.3.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
[PE1] interface vlan-interface 2
[PE1-Vlan-interface2] ip address 30.1.1.1 24
[PE1-Vlan-interface2] isis enable 1
[PE1-Vlan-interface2] mpls
[PE1-Vlan-interface2] mpls ldp
[PE1-Vlan-interface2] mpls ldp transport-address interface
[PE1-Vlan-interface2] quit
[PE1] bgp 100
[PE1-bgp] peer 4.4.4.9 as-number 100
[PE1-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
PE 2的配置與PE 1類似,配置過程省略。
配置完成後,在PE 1或PE 2上執行display mpls ldp session命令可以看到LDP會話建立成功;執行display bgp peer命令可以看到BGP對等體關係已建立,並達到Established狀態;執行display isis peer命令可以看到IS-IS鄰居關係已建立,狀態為up。
以PE1為例:
[PE1] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
----------------------------------------------------------------
4.4.4.9:0 Operational DU Active Off Off 378/378
----------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[PE1] display bgp peer
BGP local router ID : 3.3.3.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
4.4.4.9 100 162 145 0 0 02:12:47 Established
[PE1] display isis peer
Peer information for ISIS(1)
----------------------------
System Id: 0000.0000.0005
Interface: Vlan2 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 29s Type: L1(L1L2) PRI: --
System Id: 0000.0000.0005
Interface: Vlan2 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 29s Type: L2(L1L2) PRI: --
(2) 配置二級運營商網絡:使用IS-IS作為IGP協議,PE 3和CE 1、PE 4和CE 2之間分別使能LDP
# 配置PE 3。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 1.1.1.9 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 1.1.1.9
[PE3] mpls
[PE3-mpls] quit
[PE3] mpls ldp
[PE3-mpls-ldp] quit
[PE3] isis 2
[PE3-isis-2] network-entity 10.0000.0000.0000.0001.00
[PE3-isis-2] quit
[PE3] interface loopback 0
[PE3-LoopBack0] isis enable 2
[PE3-LoopBack0] quit
[PE3] interface vlan-interface 2
[PE3-Vlan-interface2] ip address 10.1.1.1 24
[PE3-Vlan-interface2] isis enable 2
[PE3-Vlan-interface2] mpls
[PE3-Vlan-interface2] mpls ldp
[PE3-Vlan-interface2] mpls ldp transport-address interface
[PE3-Vlan-interface2] quit
# 配置CE 1。
<CE1> system-view
[CE1] interface loopback 0
[CE1-LoopBack0] ip address 2.2.2.9 32
[CE1-LoopBack0] quit
[CE1] mpls lsr-id 2.2.2.9
[CE1] mpls
[CE1-mpls] quit
[CE1] mpls ldp
[CE1-mpls-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface vlan-interface 2
[CE1-Vlan-interface2] ip address 10.1.1.2 24
[CE1-Vlan-interface2] isis enable 2
[CE1-Vlan-interface2] mpls
[CE1-Vlan-interface2] mpls ldp
[CE1-Vlan-interface2] mpls ldp transport-address interface
[CE1-Vlan-interface2] quit
配置完成後,PE 3和CE 1之間應能建立LDP和IS-IS鄰居關係。
PE 4和CE 2之間的配置與PE 3和CE 1之間的配置類似,配置過程省略。
(3) 配置二級運營商CE接入到一級運營商的PE,並在PE上配置IS-IS引入BGP路由、BGP引入IS-IS路由
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] mpls ldp vpn-instance vpn1
[PE1-mpls-ldp-vpn-instance-vpn1] quit
[PE1] isis 2 vpn-instance vpn1
[PE1-isis-2] network-entity 10.0000.0000.0000.0003.00
[PE1-isis-2] import-route bgp allow-ibgp
[PE1-isis-2] quit
[PE1] interface vlan-interface1
[PE1-Vlan-interface1] ip binding vpn-instance vpn1
[PE1-Vlan-interface1] ip address 11.1.1.2 24
[PE1-Vlan-interface1] isis enable 2
[PE1-Vlan-interface1] mpls
[PE1-Vlan-interface1] mpls ldp
[PE1-Vlan-interface1] mpls ldp transport-address interface
[PE1-Vlan-interface1] quit
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] import isis 2
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE 1。
[CE1] interface vlan-interface1
[CE1-Vlan-interface1] ip address 11.1.1.1 24
[CE1-Vlan-interface1] isis enable 2
[CE1-Vlan-interface1] mpls
[CE1-Vlan-interface1] mpls ldp
[CE1-Vlan-interface1] mpls ldp transport-address interface
[CE1-Vlan-interface1] quit
配置完成後,PE 1和CE 1之間應能建立LDP和IS-IS鄰居關係。
PE 2和CE 2之間的配置與PE 1和CE 1之間的配置類似,配置過程省略。
(4) 配置二級運營商的客戶接入PE
# 配置CE 3。
<CE3> system-view
[CE3] interface vlan-interface1
[CE3-Vlan-interface1] ip address 100.1.1.1 24
[CE3-Vlan-interface1] quit
[CE3] bgp 65410
[CE3-bgp] peer 100.1.1.2 as-number 100
[CE3-bgp] import-route direct
[CE3-bgp] quit
# 配置PE 3。
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface Vlan-interface1
[PE3-Vlan-interface1] ip binding vpn-instance vpn1
[PE3-Vlan-interface1] ip address 100.1.1.2 24
[PE3-Vlan-interface1] quit
[PE3] bgp 100
[PE3-bgp] ipv4-family vpn-instance vpn1
[PE3-bgp-vpn1] peer 100.1.1.1 as-number 65410
[PE3-bgp-vpn1] import-route direct
[PE3-bgp-vpn1] quit
[PE3-bgp] quit
PE 4和CE 4之間的配置與PE 3和CE 3之間的配置類似,配置過程省略。
(5) 在二級運營商的PE之間建立MP-IBGP對等體關係,交換二級運營商的客戶的VPN路由
# 配置PE 3。
[PE3] bgp 100
[PE3-bgp] peer 6.6.6.9 as-number 100
[PE3-bgp] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp] ipv4-family vpnv4
[PE3-bgp-af-vpnv4] peer 6.6.6.9 enable
[PE3-bgp-af-vpnv4] quit
[PE3-bgp] quit
PE 4的配置與PE 3類似,配置過程省略。
(6) 配置完成後的檢驗
所有配置完成後,在PE 1和PE 2上執行display ip routing-table命令,可以看到PE 1和PE 2的公網路由表中隻有一級運營商網絡的路由。以PE 1為例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.9/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.9/32 ISIS 15 10 30.1.1.2 Vlan2
30.1.1.0/24 Direct 0 0 30.1.1.1 Vlan2
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.2/32 Direct 0 0 30.1.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 1和PE 2上執行display ip routing-table vpn-instance命令,可以看到VPN路由表中有二級運營商網絡的內部路由,但沒有二級運營商維護的VPN路由。以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 20 11.1.1.1 Vlan1
2.2.2.9/32 ISIS 15 10 11.1.1.1 Vlan1
5.5.5.9/32 BGP 255 0 4.4.4.9 NULL0
6.6.6.9/32 BGP 255 0 4.4.4.9 NULL0
10.1.1.0/24 ISIS 15 20 11.1.1.1 Vlan1
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan1
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 Vlan1
20.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.2/32 BGP 255 0 4.4.4.9 NULL0
在CE 1和CE 2上執行display ip routing-table命令,可以看到公網路由表中有二級運營商網絡的內部路由,但沒有二級運營商維護的VPN路由。以CE 1為例:
[CE1] display ip routing-table
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 10 10.1.1.2 Vlan2
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.9/32 ISIS 15 74 11.1.1.2 Vlan1
6.6.6.9/32 ISIS 15 74 11.1.1.2 Vlan1
10.1.1.0/24 Direct 0 0 10.1.1.2 Vlan2
10.1.1.1/32 Direct 0 0 10.1.1.1 Vlan2
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan1
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 Vlan1
20.1.1.0/24 ISIS 15 74 11.1.1.2 Vlan1
21.1.1.0/24 ISIS 15 74 11.1.1.2 Vlan1
21.1.1.2/32 ISIS 15 74 11.1.1.2 Vlan1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 3和PE 4上執行display ip routing-table命令,可以看到公網路由表中有二級運營商網絡的內部路由。以PE 3為例:
[PE3] display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 ISIS 15 10 10.1.1.2 Vlan2
5.5.5.9/32 ISIS 15 84 10.1.1.2 Vlan2
6.6.6.9/32 ISIS 15 84 10.1.1.2 Vlan2
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan2
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.2/32 Direct 0 0 10.1.1.2 Vlan2
11.1.1.0/24 ISIS 15 20 10.1.1.2 Vlan2
20.1.1.0/24 ISIS 15 84 10.1.1.2 Vlan2
21.1.1.0/24 ISIS 15 84 10.1.1.2 Vlan2
21.1.1.2/32 ISIS 15 84 10.1.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 3和PE 4上執行display ip routing-table vpn-instance命令,可以看到VPN路由表中有遠端VPN客戶的路由。以PE 3為例:
[PE3] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost NextHop Interface
100.1.1.0/24 Direct 0 0 100.1.1.2 Vlan1
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 BGP 255 0 6.6.6.9 NULL0
PE 3和PE 4可以相互Ping通:
[PE3] ping 20.1.1.2
PING 20.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 20.1.1.2: bytes=56 Sequence=1 ttl=252 time=127 ms
Reply from 20.1.1.2: bytes=56 Sequence=2 ttl=252 time=97 ms
Reply from 20.1.1.2: bytes=56 Sequence=3 ttl=252 time=83 ms
Reply from 20.1.1.2: bytes=56 Sequence=4 ttl=252 time=70 ms
Reply from 20.1.1.2: bytes=56 Sequence=5 ttl=252 time=60 ms
--- 20.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 60/87/127 ms
CE 3和CE 4可以互相Ping通。
[CE3] ping 120.1.1.1
PING 120.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 120.1.1.1: bytes=56 Sequence=1 ttl=252 time=102 ms
Reply from 120.1.1.1: bytes=56 Sequence=2 ttl=252 time=69 ms
Reply from 120.1.1.1: bytes=56 Sequence=3 ttl=252 time=105 ms
Reply from 120.1.1.1: bytes=56 Sequence=4 ttl=252 time=88 ms
Reply from 120.1.1.1: bytes=56 Sequence=5 ttl=252 time=87 ms
--- 120.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 69/90/105 ms
二級運營商向自己的客戶提供MPLS L3VPN服務。
在圖1-27中:
· PE 1和PE 2是一級運營商骨幹網的PE設備;
· CE 1和CE 2是二級運營商的設備,作為CE接入一級運營商的骨幹網;
· PE 3和PE 4是二級運營商的設備,為二級運營商的客戶提供接入;
· CE 3和CE 4是二級運營商的客戶。
運營商的運營商的配置關鍵在於理解兩類路由的交換過程,即:
· 二級運營商VPN內部路由在一級運營商骨幹網上的交換:一級運營商將二級運營商作為自己的CE接入;
· 二級運營商本身客戶的VPN路由在二級運營商PE設備間的交換:需要在二級運營商PE設備(PE 3和PE 4)間建立MP-IBGP對等體關係。
圖1-27 配置Carriers’ carriers配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 3 |
Vlan-int1 |
100.1.1.1/24 |
CE 4 |
Vlan-int1 |
120.1.1.1/24 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
Vlan-int1 |
100.1.1.2/24 |
|
Vlan-int1 |
120.1.1.2/24 |
|
Vlan-int2 |
10.1.1.1/24 |
|
Vlan-int2 |
20.1.1.2/24 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
Vlan-int2 |
10.1.1.2/24 |
|
Vlan-int1 |
21.1.1.2/24 |
|
Vlan-int1 |
11.1.1.1/24 |
|
Vlan-int2 |
20.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int1 |
11.1.1.2/24 |
|
Vlan-int2 |
30.1.1.2/24 |
|
Vlan-int2 |
30.1.1.1/24 |
|
Vlan-int1 |
21.1.1.1/24 |
(1) 配置一級運營商骨幹網的MPLS L3VPN,使用IS-IS作為骨幹網的IGP協議,PE 1和PE 2之間使能LDP,並建立MP-IBGP對等體關係
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 3.3.3.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
[PE1] interface vlan-interface 2
[PE1-Vlan-interface2] ip address 30.1.1.1 24
[PE1-Vlan-interface2] isis enable 1
[PE1-Vlan-interface2] mpls
[PE1-Vlan-interface2] mpls ldp
[PE1-Vlan-interface2] mpls ldp transport-address interface
[PE1-Vlan-interface2] quit
[PE1] bgp 100
[PE1-bgp] peer 4.4.4.9 as-number 100
[PE1-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
PE 2的配置與PE 1類似,配置過程省略。
配置完成後,在PE 1或PE 2上執行display mpls ldp session命令可以看到LDP會話建立成功;執行display bgp peer命令可以看到BGP對等體關係已建立,並達到Established狀態;執行display isis peer命令可以看到IS-IS鄰居關係已建立,狀態為up。
以PE1為例:
[PE1] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
----------------------------------------------------------------
4.4.4.9:0 Operational DU Active Off Off 378/378
----------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[PE1] display bgp peer
BGP local router ID : 3.3.3.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
4.4.4.9 100 162 145 0 0 02:12:47 Established
[PE1] display isis peer
Peer information for ISIS(1)
----------------------------
System Id: 0000.0000.0005
Interface: Vlan2 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 29s Type: L1(L1L2) PRI: --
System Id: 0000.0000.0005
Interface: Vlan2 Circuit Id: 0000.0000.0001.01
State: Up HoldTime: 29s Type: L2(L1L2) PRI: --
(2) 配置二級運營商網絡:使用IS-IS作為IGP協議,PE 3和CE 1、PE 4和CE 2之間分別使能LDP
# 配置PE 3。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 1.1.1.9 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 1.1.1.9
[PE3] mpls
[PE3-mpls] quit
[PE3] mpls ldp
[PE3-mpls-ldp] quit
[PE3] isis 2
[PE3-isis-2] network-entity 10.0000.0000.0000.0001.00
[PE3-isis-2] quit
[PE3] interface loopback 0
[PE3-LoopBack0] isis enable 2
[PE3-LoopBack0] quit
[PE3] interface vlan-interface 2
[PE3-Vlan-interface2] ip address 10.1.1.1 24
[PE3-Vlan-interface2] isis enable 2
[PE3-Vlan-interface2] mpls
[PE3-Vlan-interface2] mpls ldp
[PE3-Vlan-interface2] mpls ldp transport-address interface
[PE3-Vlan-interface2] quit
# 配置CE 1。
<CE1> system-view
[CE1] interface loopback 0
[CE1-LoopBack0] ip address 2.2.2.9 32
[CE1-LoopBack0] quit
[CE1] mpls lsr-id 2.2.2.9
[CE1] mpls
[CE1-mpls] quit
[CE1] mpls ldp
[CE1-mpls-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface vlan-interface 2
[CE1-Vlan-interface2] ip address 10.1.1.2 24
[CE1-Vlan-interface2] isis enable 2
[CE1-Vlan-interface2] mpls
[CE1-Vlan-interface2] mpls ldp
[CE1-Vlan-interface2] mpls ldp transport-address interface
[CE1-Vlan-interface2] quit
配置完成後,PE 3和CE 1之間應能建立LDP和IS-IS鄰居關係。
PE 4和CE 2之間的配置與PE 3和CE 1之間的配置類似,配置過程省略。
(3) 配置二級運營商CE接入到一級運營商的PE
# 配置PE 1和路由策略。
[PE1] route-policy policy1 permit node 10
[PE1-route-policy] apply mpls-label
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface vlan-interface1
[PE1-Vlan-interface1] ip binding vpn-instance vpn1
[PE1-Vlan-interface1] ip address 11.1.1.2 24
[PE1-Vlan-interface1] mpls
[PE1-Vlan-interface1] quit
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] import direct
[PE1-bgp-vpn1] peer 11.1.1.1 as-number 65410
[PE1-bgp-vpn1] peer 11.1.1.1 route-policy policy1 export
[PE1-bgp-vpn1] peer 11.1.1.1 label-route-capability
[PE1-bgp-vpn1] peer 11.1.1.1 substitute-as
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE 1。
[CE1] route-policy policy1 permit node 10
[CE1-route-policy] apply mpls-label
[CE1] interface vlan-interface1
[CE1-Vlan-interface1] ip address 11.1.1.1 24
[CE1-Vlan-interface1] mpls
[CE1-Vlan-interface1] quit
[CE1] bgp 65410
[CE1-bgp] import-route direct
[CE1-bgp] import-route isis 2
[CE1-bgp] peer 11.1.1.2 as-number 100
[CE1-bgp] peer 11.1.1.2 route-policy policy1 export
[CE1-bgp] peer 11.1.1.2 label-route-capability
[CE1-bgp] quit
配置完成後,PE 1和CE 1之間應能建立BGP鄰居關係。
PE 2和CE 2之間的配置與PE 1和CE 1之間的配置類似,配置過程省略。
(4) 配置二級運營商的客戶接入PE
# 配置CE 3。
<CE3> system-view
[CE3] interface vlan-interface1
[CE3-Vlan-interface1] ip address 100.1.1.1 24
[CE3-Vlan-interface1] quit
[CE3] bgp 65411
[CE3-bgp] peer 100.1.1.2 as-number 65410
[CE3-bgp] import-route direct
[CE3-bgp] quit
# 配置PE 3。
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface Vlan-interface1
[PE3-Vlan-interface1] ip binding vpn-instance vpn1
[PE3-Vlan-interface1] ip address 100.1.1.2 24
[PE3-Vlan-interface1] quit
[PE3] bgp 65410
[PE3-bgp] ipv4-family vpn-instance vpn1
[PE3-bgp-vpn1] peer 100.1.1.1 as-number 65411
[PE3-bgp-vpn1] import-route direct
[PE3-bgp-vpn1] quit
[PE3-bgp] quit
PE 4和CE 4之間的配置與PE 3和CE 3之間的配置類似,配置過程省略。
(5) 在二級運營商的PE之間建立MP-IBGP對等體關係,交換二級運營商的客戶的VPN路由
# 配置PE 3。
[PE3] bgp 65410
[PE3-bgp] peer 6.6.6.9 as-number 65410
[PE3-bgp] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp] ipv4-family vpnv4
[PE3-bgp-af-vpnv4] peer 6.6.6.9 enable
[PE3-bgp-af-vpnv4] quit
[PE3-bgp] quit
PE 4的配置與PE 3類似,配置過程省略。
(6) 配置完成後的檢驗
所有配置完成後,在PE 1和PE 2上執行display ip routing-table命令,可以看到PE 1和PE 2的公網路由表中隻有一級運營商網絡的路由。以PE 1為例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.9/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.9/32 ISIS 15 10 30.1.1.2 Vlan2
30.1.1.0/24 Direct 0 0 30.1.1.1 Vlan2
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.2/32 Direct 0 0 30.1.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 1和PE 2上執行display ip routing-table vpn-instance命令,可以看到VPN路由表中有二級運營商網絡的內部路由,但沒有二級運營商維護的VPN路由。以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 20 11.1.1.1 Vlan1
2.2.2.9/32 ISIS 15 10 11.1.1.1 Vlan1
5.5.5.9/32 BGP 255 0 4.4.4.9 NULL0
6.6.6.9/32 BGP 255 0 4.4.4.9 NULL0
10.1.1.0/24 ISIS 15 20 11.1.1.1 Vlan1
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan1
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 Vlan1
20.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.2/32 BGP 255 0 4.4.4.9 NULL0
在CE 1和CE 2上執行display ip routing-table命令,可以看到公網路由表中有二級運營商網絡的內部路由,但沒有二級運營商維護的VPN路由。以CE 1為例:
[CE1] display ip routing-table
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 10 10.1.1.2 Vlan2
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.9/32 ISIS 15 74 11.1.1.2 Vlan1
6.6.6.9/32 ISIS 15 74 11.1.1.2 Vlan1
10.1.1.0/24 Direct 0 0 10.1.1.2 Vlan2
10.1.1.1/32 Direct 0 0 10.1.1.1 Vlan2
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan1
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 Vlan1
20.1.1.0/24 ISIS 15 74 11.1.1.2 Vlan1
21.1.1.0/24 ISIS 15 74 11.1.1.2 Vlan1
21.1.1.2/32 ISIS 15 74 11.1.1.2 Vlan1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 3和PE 4上執行display ip routing-table命令,可以看到公網路由表中有二級運營商網絡的內部路由。以PE 3為例:
[PE3] display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 ISIS 15 10 10.1.1.2 Vlan2
5.5.5.9/32 ISIS 15 84 10.1.1.2 Vlan2
6.6.6.9/32 ISIS 15 84 10.1.1.2 Vlan2
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan2
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.2/32 Direct 0 0 10.1.1.2 Vlan2
11.1.1.0/24 ISIS 15 20 10.1.1.2 Vlan2
20.1.1.0/24 ISIS 15 84 10.1.1.2 Vlan2
21.1.1.0/24 ISIS 15 84 10.1.1.2 Vlan2
21.1.1.2/32 ISIS 15 84 10.1.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 3和PE 4上執行display ip routing-table vpn-instance命令,可以看到VPN路由表中有遠端VPN客戶的路由。以PE 3為例:
[PE3] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost NextHop Interface
100.1.1.0/24 Direct 0 0 100.1.1.2 Vlan1
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 BGP 255 0 6.6.6.9 NULL0
PE 3和PE 4可以相互Ping通:
[PE3] ping 20.1.1.2
PING 20.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 20.1.1.2: bytes=56 Sequence=1 ttl=252 time=127 ms
Reply from 20.1.1.2: bytes=56 Sequence=2 ttl=252 time=97 ms
Reply from 20.1.1.2: bytes=56 Sequence=3 ttl=252 time=83 ms
Reply from 20.1.1.2: bytes=56 Sequence=4 ttl=252 time=70 ms
Reply from 20.1.1.2: bytes=56 Sequence=5 ttl=252 time=60 ms
--- 20.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 60/87/127 ms
CE 3和CE 4可以互相Ping通。
[CE3] ping 120.1.1.1
PING 120.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 120.1.1.1: bytes=56 Sequence=1 ttl=252 time=102 ms
Reply from 120.1.1.1: bytes=56 Sequence=2 ttl=252 time=69 ms
Reply from 120.1.1.1: bytes=56 Sequence=3 ttl=252 time=105 ms
Reply from 120.1.1.1: bytes=56 Sequence=4 ttl=252 time=88 ms
Reply from 120.1.1.1: bytes=56 Sequence=5 ttl=252 time=87 ms
--- 120.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 69/90/105 ms
運營商向客戶提供嵌套VPN服務。如圖1-28所示:
· PE 1和PE 2是運營商骨幹網的PE設備,支持嵌套VPN功能;
· CE 1和CE 2是VPN用戶的CE設備,接入運營商的骨幹網,該CE設備支持發送VPNv4路由;
· PE 3和PE 4是用戶網絡內部的PE設備,支持MPLS L3VPN;
· CE 3、CE 4、CE 5和CE 6是用戶網絡內部的子VPN的CE設備;
配置嵌套VPN的關鍵在於理解子VPN路由在運營商PE設備上的處理過程:
· 運營商PE(PE 1和PE 2)收到用戶CE(CE 1和CE 2)發送來的VPNv4路由時,需要將該VPNv4路由的RD更換為用戶CE所處VPN的RD,同時將用戶CE所處VPN的ERT添加到路由的擴展團體屬性列表中,然後再按照一般的VPNv4路由發送出去;
· 為了實現用戶網絡內部子VPN的路由在用戶PE和運營商PE間交換,需要在運營商PE和用戶CE間建立MP-EBGP對等體關係。
圖1-28 嵌套VPN組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
Vlan-int1 |
11.1.1.1/24 |
|
Vlan-int1 |
21.1.1.2/24 |
|
Vlan-int2 |
10.1.1.2/24 |
|
Vlan-int2 |
20.1.1.1/24 |
CE 3 |
Vlan-int1 |
100.1.1.1/24 |
CE 4 |
Vlan-int1 |
120.1.1.1/24 |
CE 5 |
Vlan-int3 |
110.1.1.1/24 |
CE 6 |
Vlan-int3 |
130.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int1 |
11.1.1.2/24 |
|
Vlan-int1 |
21.1.1.1/24 |
|
Vlan-int2 |
30.1.1.1/24 |
|
Vlan-int2 |
30.1.1.2/24 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
Vlan-int1 |
100.1.1.2/24 |
|
Vlan-int1 |
120.1.1.2/24 |
|
Vlan-int2 |
10.1.1.1/24 |
|
Vlan-int2 |
20.1.1.2/24 |
|
Vlan-int3 |
110.1.1.2/24 |
|
Vlan-int3 |
130.1.1.2/24 |
(1) 配置運營商骨幹網的MPLS L3VPN,使用IS-IS作為骨幹網的IGP協議,PE 1和PE 2之間使能LDP,並建立MP-IBGP對等體關係
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 3.3.3.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
[PE1] interface vlan-interface 2
[PE1-Vlan-interface2] ip address 30.1.1.1 24
[PE1-Vlan-interface2] isis enable 1
[PE1-Vlan-interface2] mpls
[PE1-Vlan-interface2] mpls ldp
[PE1-Vlan-interface2] quit
[PE1] bgp 100
[PE1-bgp] peer 4.4.4.9 as-number 100
[PE1-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
PE 2的配置與PE 1類似,配置過程省略。
配置完成後,在PE 1或PE 2上執行display mpls ldp session命令可以看到LDP會話建立成功;執行display bgp peer命令可以看到BGP對等體關係已建立,並達到Established狀態;執行display isis peer命令可以看到IS-IS鄰居關係已建立,狀態為up。
以PE 1為例:
[PE1] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
----------------------------------------------------------------
4.4.4.9:0 Operational DU Active Off Off 378/378
----------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[PE1] display bgp peer
BGP local router ID : 3.3.3.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
4.4.4.9 100 162 145 0 0 02:12:47 Established
[PE1] display isis peer
Peer information for ISIS(1)
----------------------------
System Id Interface Circuit Id State HoldTime Type PRI
0000.0000.0005 Vlan-interface2 001 Up 29s L1L2 --
(2) 配置用戶網絡:使用IS-IS作為IGP協議,PE 3和CE 1、PE 4和CE 2之間分別使能LDP
# 配置PE 3。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 1.1.1.9 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 1.1.1.9
[PE3] mpls
[PE3-mpls] quit
[PE3] mpls ldp
[PE3-mpls-ldp] quit
[PE3] isis 2
[PE3-isis-2] network-entity 10.0000.0000.0000.0001.00
[PE3-isis-2] quit
[PE3] interface loopback 0
[PE3-LoopBack0] isis enable 2
[PE3-LoopBack0] quit
[PE3-Vlan-interface2] ip address 10.1.1.1 24
[PE3-Vlan-interface2] isis enable 2
[PE3-Vlan-interface2] mpls
[PE3-Vlan-interface2] mpls ldp
[PE3-Vlan-interface2] quit
# 配置CE 1。
<CE1> system-view
[CE1] interface loopback 0
[CE1-LoopBack0] ip address 2.2.2.9 32
[CE1-LoopBack0] quit
[CE1] mpls lsr-id 2.2.2.9
[CE1] mpls
[CE1-mpls] quit
[CE1] mpls ldp
[CE1-mpls-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface vlan-interface 2
[CE1-Vlan-interface2] ip address 10.1.1.2 24
[CE1-Vlan-interface2] isis enable 2
[CE1-Vlan-interface2] mpls
[CE1-Vlan-interface2] mpls ldp
[CE1-Vlan-interface2] quit
配置完成後,PE 3和CE 1之間可以建立LDP和IS-IS鄰居關係。
PE 4和CE 2之間的配置與PE 3和CE 1之間的配置類似,配置過程省略。
(3) 配置用戶CE接入到運營商的PE
# 配置PE 1
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface vlan-interface1
[PE1-Vlan-interface1] ip binding vpn-instance vpn1
[PE1-Vlan-interface1] ip address 11.1.1.2 24
[PE1-Vlan-interface1] mpls
[PE1-Vlan-interface1] quit
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 11.1.1.1 as-number 200
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE 1。
[CE1] interface vlan-interface 1
[CE1-Vlan-interface1] ip address 11.1.1.1 24
[CE1-Vlan-interface1] mpls
[CE1-Vlan-interface1] quit
[CE1] bgp 200
[CE1-bgp] peer 11.1.1.2 as-number 100
[CE1-bgp] import isis 2
[CE1-bgp] quit
PE 2和CE 2之間的配置與PE 1和CE 1之間的配置類似,配置過程省略。
(4) 配置子VPN的CE接入用戶網絡的PE
# 配置CE 3。
<CE3> system-view
[CE3] interface vlan-interface1
[CE3-Vlan-interface1] ip address 100.1.1.1 24
[CE3-Vlan-interface1] quit
[CE3] bgp 65410
[CE3-bgp] peer 100.1.1.2 as-number 200
[CE3-bgp] import-route direct
[CE3-bgp] quit
# 配置CE 5。
<CE5> system-view
[CE5] interface vlan-interface 3
[CE5-Vlan-interface3] ip address 110.1.1.1 24
[CE5-Vlan-interface3] quit
[CE5] bgp 65411
[CE5-bgp] peer 110.1.1.2 as-number 200
[CE5-bgp] import-route direct
[CE5-bgp] quit
# 配置PE 3。
[PE3] ip vpn-instance SUB_VPN1
[PE3-vpn-instance-SUB_VPN1] route-distinguisher 100:1
[PE3-vpn-instance-SUB_VPN1] vpn-target 2:1
[PE3-vpn-instance-SUB_VPN1] quit
[PE3] interface vlan-interface 1
[PE3-Vlan-interface1] ip binding vpn-instance SUB_VPN1
[PE3-Vlan-interface1] ip address 100.1.1.2 24
[PE3-Vlan-interface1] quit
[PE3] ip vpn-instance SUB_VPN2
[PE3-vpn-instance-SUB_VPN2] route-distinguisher 101:1
[PE3-vpn-instance-SUB_VPN2] vpn-target 2:2
[PE3-vpn-instance-SUB_VPN2] quit
[PE3] interface vlan-interface 3
[PE3-Vlan-interface3] ip binding vpn-instance SUB_VPN2
[PE3-Vlan-interface3] ip address 110.1.1.2 24
[PE3-Vlan-interface3] quit
[PE3] bgp 200
[PE3-bgp] ipv4-family vpn-instance SUB_VPN1
[PE3-bgp-SUB_VPN1] peer 100.1.1.1 as-number 65410
[PE3-bgp-SUB_VPN1] import-route direct
[PE3-bgp-SUB_VPN1] quit
[PE3-bgp] ipv4-family vpn-instance SUB_VPN2
[PE3-bgp-SUB_VPN2] peer 100.1.1.1 as-number 65411
[PE3-bgp-SUB_VPN2] import-route direct
[PE3-bgp-SUB_VPN2] quit
[PE3-bgp] quit
PE 4和CE 4,CE 6之間的配置與PE 3和CE 3,CE 5之間的配置類似,配置過程省略。
(5) 在運營商的PE和用戶的CE之間建立MP-EBGP對等體關係,交換用戶的VPNv4路由
# 配置PE 1,使能嵌套VPN特性。
[PE1] bgp 100
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] nesting-vpn
[PE1-bgp-af-vpnv4] peer 11.1.1.1 vpn-instance vpn1 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
# 配置CE 1,使能VPNv4能力,使之與PE 1建立VPNv4鄰居關係。
[CE1] bgp 200
[CE1-bgp] ipv4-family vpnv4
[CE1-bgp-af-vpnv4] peer 11.1.1.2 enable
# 配置允許本地AS號在所接收的路由的AS_PATH屬性中出現。
[CE1-bgp-af-vpnv4] peer 11.1.1.2 allow-as-loop 2
# 配置接收所有VPNv4路由。
[CE1-bgp-af-vpnv4] undo policy vpn-target
[CE1-bgp-af-vpnv4] quit
[CE1-bgp] quit
PE 2和CE 2之間的配置與PE 1和CE 1之間的配置類似,配置過程省略。
(6) 在用戶網絡內部的PE和CE之間建立MP-IBGP對等體關係,交換用戶內部子VPN的VPNv4路由
# 配置PE 3。
[PE3] bgp 200
[PE3-bgp] peer 2.2.2.9 as-number 200
[PE3-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE3-bgp] ipv4-family vpnv4
[PE3-bgp-af-vpnv4] peer 2.2.2.9 enable
# 配置允許本地AS號在所接收的路由的AS_PATH屬性中出現。
[PE3-bgp-af-vpnv4] peer 2.2.2.9 allow-as-loop 2
[PE3-bgp-af-vpnv4] quit
[PE3-bgp] quit
# 配置CE 1。
[CE1] bgp 200
[CE1-bgp] peer 1.1.1.9 as-number 200
[CE1-bgp] peer 1.1.1.9 connect-interface loopback 0
[CE1-bgp] ipv4-family vpnv4
[CE1-bgp-af-vpnv4] peer 1.1.1.9 enable
[CE1-bgp-af-vpnv4]undo policy vpn-target
[CE1-bgp-af-vpnv4] quit
[CE1-bgp] quit
PE 4和CE 2之間的配置與PE 3和CE 1之間的配置類似,配置過程省略。
(7) 配置完成後的檢驗
所有配置完成後,在PE 1和PE 2上執行display ip routing-table命令,可以看到PE 1和PE 2的公網路由表中隻有運營商網絡的路由。以PE 1為例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.9/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.9/32 ISIS 15 10 30.1.1.2 Vlan2
30.1.1.0/24 Direct 0 0 30.1.1.1 Vlan2
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.2/32 Direct 0 0 30.1.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 1和PE 2上執行display ip routing-table vpn-instance命令,可以看到VPN路由表中有用戶子VPN網絡的路由。以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan1
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 Vlan1
100.1.1.0/24 BGP 255 0 11.1.1.1 NULL0
110.1.1.0/24 BGP 255 0 11.1.1.1 NULL0
120.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
130.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
在CE 1和CE 2上執行display bgp vpnv4 all routing-table命令,可以看到用戶網絡中VPNv4路由表中有子VPN網絡的內部路由。以CE 1為例:
[CE1] display bgp vpnv4 all routing-table
BGP Local router ID is 11.11.11.11
Status codes: * - valid, ^ - VPN best, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? – incomplete
Total number of routes from all PE: 4
Route Distinguisher: 100:1
Network NextHop In/Out Label MED LocPrf
*> 100.1.1.0/24 1.1.1.9 1024/1024
Route Distinguisher: 101:1
Network NextHop In/Out Label MED LocPrf
*^ 100.1.1.0/24 1.1.1.9 1024/1024
Route Distinguisher: 101:1
Network NextHop In/Out Label MED LocPrf
* > 110.1.1.0/24 1.1.1.9 1025/1025
Route Distinguisher: 200:1
Network NextHop In/Out Label MED LocPrf
* > 120.1.1.0/24 11.1.1.2 1026/1027
Route Distinguisher: 201:1
Network NextHop In/Out Label MED LocPrf
* > 130.1.1.0/24 11.1.1.2 1027/1028
在PE 3和PE 4上執行display ip routing-table vpn-instance SUB_VPN1命令,可以看到私網路由表中有從運營商PE發布到用戶網絡子VPN內部的路由。以PE 3為例:
[PE3] display ip routing-table vpn-instance SUB_VPN1
Routing Tables: SUB_VPN1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
100.1.1.0/24 Direct 0 0 100.1.1.2 Vlan1
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 BGP 255 0 2.2.2.9 NULL0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在CE 3和CE 4上執行display ip routing-table命令,可以看到路由表中有遠端子VPN的路由。以CE 3為例:
[CE3] display ip routing-table
Routing Tables: Public
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
100.1.1.0/24 Direct 0 0 100.1.1.1 Vlan1
100.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 BGP 255 0 100.1.1.2 Vlan1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在CE 5和CE 6上執行display ip routing-table命令,可以看到路由表中有遠端子VPN的路由。以CE 5為例:
[CE5] display ip routing-table
Routing Tables: Public
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
110.1.1.0/24 Direct 0 0 110.1.1.1 Vlan1
110.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
130.1.1.0/24 BGP 255 0 110.1.1.2 Vlan1
CE 3和CE 4可以互相Ping通。
[CE3] ping 120.1.1.1
PING 120.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 120.1.1.1: bytes=56 Sequence=1 ttl=252 time=102 ms
Reply from 120.1.1.1: bytes=56 Sequence=2 ttl=252 time=69 ms
Reply from 120.1.1.1: bytes=56 Sequence=3 ttl=252 time=105 ms
Reply from 120.1.1.1: bytes=56 Sequence=4 ttl=252 time=88 ms
Reply from 120.1.1.1: bytes=56 Sequence=5 ttl=252 time=87 ms
--- 120.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 69/90/105 ms
CE 5和CE 6可以互相Ping通。
[CE5] ping 130.1.1.1
PING 130.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 130.1.1.1: bytes=56 Sequence=1 ttl=252 time=102 ms
Reply from 130.1.1.1: bytes=56 Sequence=2 ttl=252 time=69 ms
Reply from 130.1.1.1: bytes=56 Sequence=3 ttl=252 time=105 ms
Reply from 130.1.1.1: bytes=56 Sequence=4 ttl=252 time=88 ms
Reply from 130.1.1.1: bytes=56 Sequence=5 ttl=252 time=87 ms
--- 130.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 69/90/105 ms
CE 3和CE 6不能互相Ping通。
[CE3] ping 130.1.1.1
PING 130.1.1.1: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 130.1.1.1 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
以一個包括省骨幹和地市的MPLS VPN網絡為例:
· SPE作為省網的PE設備,接入地市的MPLS VPN網絡;
· UPE作為下層地市網絡的PE設備,最終接入VPN客戶。對UPE的性能要求低於對SPE的性能要求。
· SPE將通過路由策略的路由發送給UPE,限製不同Site之間的互相訪問權限,使得VPN 1內的CE 1和CE 3可以互相訪問,VPN 2內的CE 2和CE 4不能互相訪問。
圖1-29 配置HoVPN組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
Vlan-int1 |
10.2.1.1/24 |
CE 3 |
Vlan-int1 |
10.1.1.1/24 |
CE 2 |
Vlan-int1 |
10.4.1.1/24 |
CE 4 |
Vlan-int1 |
10.3.1.1/24 |
UPE 1 |
Loop0 |
1.1.1.9/32 |
UPE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int1 |
172.1.1.1/24 |
|
Vlan-int1 |
172.2.1.1/24 |
|
Vlan-int2 |
10.2.1.2/24 |
|
Vlan-int2 |
10.1.1.2/24 |
|
Vlan-int3 |
10.4.1.2/24 |
|
Vlan-int3 |
10.3.1.2/24 |
SPE 1 |
Loop0 |
2.2.2.9/32 |
SPE 2 |
Loop0 |
3.3.3.9/32 |
|
Vlan-int1 |
172.1.1.2/24 |
|
Vlan-int1 |
172.2.1.2/24 |
|
Vlan-int2 |
180.1.1.1/24 |
|
Vlan-int2 |
180.1.1.2/24 |
(1) 配置UPE 1
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<UPE1> system-view
[UPE1] interface loopback 0
[UPE1-LoopBack0] ip address 1.1.1.9 32
[UPE1-LoopBack0] quit
[UPE1] mpls lsr-id 1.1.1.9
[UPE1] mpls
[UPE1-mpls] quit
[UPE1] mpls ldp
[UPE1-mpls-ldp] quit
[UPE1] interface vlan-interface 1
[UPE1-Vlan-interface1] ip address 172.1.1.1 24
[UPE1-Vlan-interface1] mpls
[UPE1-Vlan-interface1] mpls ldp
[UPE1-Vlan-interface1] quit
# 配置IGP協議,以OSPF為例。
[UPE1] ospf
[UPE1-ospf-1] area 0
[UPE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[UPE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[UPE1-ospf-1-area-0.0.0.0] quit
[UPE1-ospf-1] quit
# 配置VPN實例vpn1和vpn2,將CE 1和CE 2接入UPE 1。
[UPE1] ip vpn-instance vpn1
[UPE1-vpn-instance-vpn1] route-distinguisher 100:1
[UPE1-vpn-instance-vpn1] vpn-target 100:1 both
[UPE1-vpn-instance-vpn1] quit
[UPE1] ip vpn-instance vpn2
[UPE1-vpn-instance-vpn2] route-distinguisher 100:2
[UPE1-vpn-instance-vpn2] vpn-target 100:2 both
[UPE1-vpn-instance-vpn2] quit
[UPE1] interface vlan-interface 2
[UPE1-Vlan-interface2] ip binding vpn-instance vpn1
[UPE1-Vlan-interface2] ip address 10.2.1.2 24
[UPE1-Vlan-interface2] quit
[UPE1] interface vlan-interface 3
[UPE1-Vlan-interface3] ip binding vpn-instance vpn2
[UPE1-Vlan-interface3] ip address 10.4.1.2 24
[UPE1-Vlan-interface3] quit
# 配置UPE 1與SPE 1建立MP-IBGP對等體,並引入VPN路由。
[UPE1] bgp 100
[UPE1-bgp] peer 2.2.2.9 as-number 100
[UPE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[UPE1-bgp] ipv4-family vpnv4
[UPE1-bgp-af-vpnv4] peer 2.2.2.9 enable
[UPE1-bgp-af-vpnv4] quit
[UPE1-bgp] ipv4-family vpn-instance vpn1
[UPE1-bgp-vpn1] peer 10.2.1.1 as-number 65410
[UPE1-bgp-vpn1] import-route direct
[UPE1-bgp-vpn1] quit
[UPE1-bgp] ipv4-family vpn-instance vpn2
[UPE1-bgp-vpn1] peer 10.4.1.1 as-number 65420
[UPE1-bgp-vpn1] import-route direct
[UPE1-bgp-vpn1] quit
[UPE1-bgp] quit
(2) 配置CE 1
<CE1> system-view
[CE1] interface vlan-interface 1
[CE1-Vlan-interface1] ip address 10.2.1.1 255.255.255.0
[CE1-Vlan-interface1] quit
[CE1] bgp 65410
[CE1-bgp] peer 10.2.1.2 as-number 100
[CE1-bgp] import-route direct
[CE1] quit
(3) 配置CE 2
<CE2> system-view
[CE2] interface vlan-interface 1
[CE2-Vlan-interface1] ip address 10.4.1.1 255.255.255.0
[CE2-Vlan-interface1] quit
[CE2] bgp 65420
[CE2-bgp] peer 10.4.1.2 as-number 100
[CE2-bgp] import-route direct
[CE2] quit
(4) 配置UPE 2
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<UPE2> system-view
[UPE2] interface loopback 0
[UPE2-Loopback0] ip address 4.4.4.9 32
[UPE2-Loopback0] quit
[UPE2] mpls lsr-id 4.4.4.9
[UPE2] mpls
[UPE2-mpls] quit
[UPE2] mpls ldp
[UPE2-mpls-ldp] quit
[UPE2] interface vlan-interface 1
[UPE2-Vlan-interface1] ip address 172.2.1.1 24
[UPE2-Vlan-interface1] mpls
[UPE2-Vlan-interface1] mpls ldp
[UPE2-Vlan-interface1] quit
# 配置IGP協議,以OSPF為例。
[UPE2] ospf
[UPE2-ospf-1] area 0
[UPE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[UPE2-ospf-1-area-0.0.0.0] network 4.4.4.9 0.0.0.0
[UPE2-ospf-1-area-0.0.0.0] quit
[UPE2-ospf-1] quit
# 配置VPN實例vpn1和vpn2,將CE 3和CE 4接入UPE 2。
[UPE2] ip vpn-instance vpn1
[UPE2-vpn-instance-vpn1] route-distinguisher 300:1
[UPE2-vpn-instance-vpn1] vpn-target 100:1 both
[UPE2-vpn-instance-vpn1] quit
[UPE2] ip vpn-instance vpn2
[UPE2-vpn-instance-vpn2] route-distinguisher 400:2
[UPE2-vpn-instance-vpn2] vpn-target 100:2 both
[UPE2-vpn-instance-vpn2] quit
[UPE2] interface vlan-interface 2
[UPE2-Vlan-interface2] ip binding vpn-instance vpn1
[UPE2-Vlan-interface2] ip address 10.1.1.2 24
[UPE2-Vlan-interface2] quit
[UPE2] interface vlan-interface 3
[UPE2-Vlan-interface3] ip binding vpn-instance vpn2
[UPE2-Vlan-interface3] ip address 10.3.1.2 24
[UPE2-Vlan-interface3] quit
# 配置UPE 2與SPE 2建立MP-IBGP對等體,並引入VPN路由。
[UPE2] bgp 100
[UPE2-bgp] peer 3.3.3.9 as-number 100
[UPE2-bgp] peer 3.3.3.9 connect-interface loopback 0
[UPE2-bgp] ipv4-family vpnv4
[UPE2-bgp-af-vpnv4] peer 3.3.3.9 enable
[UPE2-bgp-af-vpnv4] quit
[UPE2-bgp] ipv4-family vpn-instance vpn1
[UPE2-bgp-vpn1] peer 10.1.1.1 as-number 65430
[UPE2-bgp-vpn1] import-route direct
[UPE2-bgp-vpn1] quit
[UPE2-bgp] ipv4-family vpn-instance vpn2
[UPE2-bgp-vpn1] peer 10.3.1.1 as-number 65440
[UPE2-bgp-vpn1] import-route direct
[UPE2-bgp-vpn1] quit
[UPE2-bgp] quit
(5) 配置CE 3
<CE3> system-view
[CE3] interface vlan-interface 1
[CE3-Vlan-interface1] ip address 10.1.1.1 255.255.255.0
[CE3-Vlan-interface1] quit
[CE3] bgp 65430
[CE3-bgp] peer 10.1.1.2 as-number 100
[CE3-bgp] import-route direct
[CE3] quit
(6) 配置CE 4
<CE4> system-view
[CE4] interface vlan-interface 1
[CE4-Vlan-interface1] ip address 10.3.1.1 255.255.255.0
[CE4-Vlan-interface1] quit
[CE4] bgp 65440
[CE4-bgp] peer 10.3.1.2 as-number 100
[CE4-bgp] import-route direct
[CE4] quit
(7) 配置SPE 1
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<SPE1> system-view
[SPE1] interface loopback 0
[SPE1-LoopBack0] ip address 2.2.2.9 32
[SPE1-LoopBack0] quit
[SPE1] mpls lsr-id 2.2.2.9
[SPE1] mpls
[SPE1-mpls] quit
[SPE1] mpls ldp
[SPE1-mpls-ldp] quit
[SPE1] interface vlan-interface 1
[SPE1-Vlan-interface1] ip address 172.1.1.2 24
[SPE1-Vlan-interface1] mpls
[SPE1-Vlan-interface1] mpls ldp
[SPE1-Vlan-interface1] quit
[SPE1] interface vlan-interface 2
[SPE1-Vlan-interface2] ip address 180.1.1.1 24
[SPE1-Vlan-interface2] mpls
[SPE1-Vlan-interface2] mpls ldp
[SPE1-Vlan-interface2] quit
# 配置IGP協議,以OSPF為例。
[SPE1] ospf
[SPE1-ospf-1] area 0
[SPE1-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[SPE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[SPE1-ospf-1-area-0.0.0.0] network 180.1.1.0 0.0.0.255
[SPE1-ospf-1-area-0.0.0.0] quit
[SPE1-ospf-1] quit
# 配置VPN實例vpn1和vpn2。
[SPE1] ip vpn-instance vpn1
[SPE1-vpn-instance-vpn1] route-distinguisher 500:1
[SPE1-vpn-instance-vpn1 ] vpn-target 100:1 both
[SPE1-vpn-instance-vpn1] quit
[SPE1] ip vpn-instance vpn2
[SPE1-vpn-instance-vpn2] route-distinguisher 700:1
[SPE1-vpn-instance-vpn2] vpn-target 100:2 both
[SPE1-vpn-instance-vpn2] quit
# 配置SPE 1與UPE 1建立MP-IBGP對等體,指定UPE 1,並引入VPN路由。
[SPE1] bgp 100
[SPE1-bgp] peer 1.1.1.9 as-number 100
[SPE1-bgp] peer 1.1.1.9 connect-interface loopback 0
[SPE1-bgp] peer 1.1.1.9 next-hop-local
[SPE1-bgp] peer 3.3.3.9 as-number 100
[SPE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[SPE1-bgp] ipv4-family vpnv4
[SPE1-bgp-af-vpnv4] peer 3.3.3.9 enable
[SPE1-bgp-af-vpnv4] peer 1.1.1.9 enable
[SPE1-bgp-af-vpnv4] peer 1.1.1.9 upe
[SPE1-bgp-af-vpnv4] quit
[SPE1-bgp]ipv4-family vpn-instance vpn1
[SPE1-bgp-vpn1] quit
[SPE1-bgp]ipv4-family vpn-instance vpn2
[SPE1-bgp-vpn2] quit
[SPE1-bgp] quit
# 配置SPE 1向UPE 1發送通過策略的路由信息,允許CE 3的路由發送給UPE 1。
[SPE1] ip ip-prefix hope index 10 permit 10.1.1.1 24
[SPE1] route-policy hope permit node 0
[SPE1-route-policy] if-match ip-prefix hope
[SPE1-route-policy] quit
[SPE1] bgp 100
[SPE1-bgp] ipv4-family vpnv4
[SPE1-bgp-af-vpnv4] peer 1.1.1.9 upe route-policy hope export
(8) 配置SPE 2
# 配置MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<SPE2> system-view
[SPE2] interface loopback 0
[SPE2-LoopBack0] ip address 3.3.3.9 32
[SPE2-LoopBack0] quit
[SPE2] mpls lsr-id 3.3.3.9
[SPE2] mpls
[SPE2-mpls] quit
[SPE2] mpls ldp
[SPE2-mpls-ldp] quit
[SPE2] interface vlan-interface 2
[SPE2-Vlan-interface2] ip address 180.1.1.2 24
[SPE2-Vlan-interface2] mpls
[SPE2-Vlan-interface2] mpls ldp
[SPE2-Vlan-interface2] quit
[SPE2] interface vlan-interface 1
[SPE2-Vlan-interface1] ip address 172.2.1.2 24
[SPE2-Vlan-interface1] mpls
[SPE2-Vlan-interface1] mpls ldp
[SPE2-Vlan-interface1] quit
# 配置IGP協議,以OSPF為例。
[SPE2] ospf
[SPE2-ospf-1] area 0
[SPE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[SPE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[SPE2-ospf-1-area-0.0.0.0] network 180.1.1.0 0.0.0.255
[SPE2-ospf-1-area-0.0.0.0] quit
[SPE2-ospf-1] quit
# 配置VPN實例vpn1和vpn2。
[SPE2] ip vpn-instance vpn1
[SPE2-vpn-instance-vpn1] route-distinguisher 600:1
[SPE2-vpn-instance-vpn1 ] vpn-target 100:1 both
[SPE2-vpn-instance-vpn1] quit
[SPE2] ip vpn-instance vpn2
[SPE2-vpn-instance-vpn2] route-distinguisher 800:1
[SPE2-vpn-instance-vpn2] vpn-target 100:2 both
[SPE2-vpn-instance-vpn2] quit
# 配置SPE 2與UPE 2建立MP-IBGP對等體,指定UPE 2,並引入VPN路由。
[SPE2] bgp 100
[SPE2-bgp] peer 4.4.4.9 as-number 100
[SPE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[SPE2-bgp] peer 4.4.4.9 next-hop-local
[SPE2-bgp] peer 2.2.2.9 as-number 100
[SPE2-bgp] peer 2.2.2.9 connect-interface loopback 0
[SPE2-bgp] ipv4-family vpnv4
[SPE2-bgp-af-vpnv4] peer 2.2.2.9 enable
[SPE2-bgp-af-vpnv4] peer 4.4.4.9 enable
[SPE2-bgp-af-vpnv4] peer 4.4.4.9 upe
[SPE2-bgp-af-vpnv4] quit
[SPE2-bgp]ipv4-family vpn-instance vpn1
[SPE2-bgp-vpn1] quit
[SPE2-bgp]ipv4-family vpn-instance vpn2
[SPE2-bgp-vpn2] quit
[SPE2-bgp] quit
# 配置SPE 2向UPE 2發送通過策略的路由信息,允許CE 1的路由發送給UPE 2。
[SPE2] ip ip-prefix hope index 10 permit 10.2.1.1 24
[SPE2] route-policy hope permit node 0
[SPE2-route-policy] if-match ip-prefix hope
[SPE2-route-policy] quit
[SPE2] bgp 100
[SPE2-bgp] ipv4-family vpnv4
[SPE2-bgp-af-vpnv4] peer 4.4.4.9 upe route-policy hope export
· CE 1和CE 2都屬於VPN 1,它們分別接入PE 1和PE 2;
· CE 1和CE 2在同一個OSPF區域中;
· CE 1與CE 2之間的VPN流量通過MPLS骨幹網轉發,不使用OSPF的區域內路由。
圖1-30 OSPF偽連接配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
Vlan-int1 |
100.1.1.1/24 |
CE 2 |
Vlan-int1 |
120.1.1.1/24 |
|
Vlan-int2 |
20.1.1.1/24 |
|
Vlan-int2 |
30.1.1.2/24 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
2.2.2.9/32 |
|
Loop1 |
3.3.3.3/32 |
|
Loop1 |
5.5.5.5/32 |
|
Vlan-int1 |
100.1.1.2/24 |
|
Vlan-int1 |
120.1.1.2/24 |
|
Vlan-int2 |
10.1.1.1/24 |
|
Vlan-int2 |
10.1.1.2/24 |
Switch A |
Vlan-int1 |
20.1.1.2/24 |
|
|
|
|
Vlan-int2 |
30.1.1.1/24 |
|
|
|
(1) 配置用戶網絡上的OSPF
在CE 1、Switch A、CE 2上配置普通OSPF,發布圖1-30中所示各接口的網段地址。具體配置過程略。
配置完成後,CE 1和CE 2應學到到對端Vlan-interface1接口的OSPF路由。
以CE 1為例:
<CE1> display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
20.1.1.0/24 Direct 0 0 20.1.1.1 Vlan2
20.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.2/32 Direct 0 0 20.1.1.2 Vlan2
30.1.1.0/24 OSPF 10 3124 20.1.1.2 Vlan2
100.1.1.0/24 Direct 0 0 100.1.1.1 Vlan1
100.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 OSPF 10 3125 20.1.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(2) 在骨幹網上配置MPLS L3VPN
# 配置PE 1。
# 配置PE 1的MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] interface vlan-interface 2
[PE1-Vlan-interface2] ip address 10.1.1.1 24
[PE1-Vlan-interface2] mpls
[PE1-Vlan-interface2] mpls ldp
[PE1-Vlan-interface2] quit
# 配置PE 1的MP-IBGP對等體為PE2。
[PE1] bgp 100
[PE1-bgp] peer 2.2.2.9 as-number 100
[PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 2.2.2.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
# 配置PE 1的OSPF。
[PE1] ospf 1
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置PE 2的MPLS基本能力和MPLS LDP能力,建立LDP LSP。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.9 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 2.2.2.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface vlan-interface 2
[PE2-Vlan-interface2] ip address 10.1.1.2 24
[PE2-Vlan-interface2] mpls
[PE2-Vlan-interface2] mpls ldp
[PE2-Vlan-interface2] quit
# 配置PE 2的MP-IBGP對等體為PE1。
[PE2] bgp 100
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 1.1.1.9 enable
[PE2-bgp-af-vpnv4] quit
[PE2-bgp] quit
# 配置PE 2的OSPF。
[PE2]ospf 1
[PE2-ospf-1]area 0
[PE2-ospf-1-area-0.0.0.0]network 2.2.2.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0]quit
[PE2-ospf-1]quit
(3) 配置PE接入CE
# 配置PE 1接入CE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface vlan-interface 1
[PE1-Vlan-interface1] ip binding vpn-instance vpn1
[PE1-Vlan-interface1] ip address 100.1.1.2 24
[PE1-Vlan-interface1] quit
[PE1] ospf 100 vpn-instance vpn1
[PE1-ospf-100] domain-id 10
[PE1-ospf-100] area 1
[PE1-ospf-100-area-0.0.0.1] network 100.1.1.0 0.0.0.255
[PE1-ospf-100-area-0.0.0.1] quit
[PE1-ospf-100] quit
[PE2] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] import-route ospf 100
[PE1-bgp-vpn1] import-route direct
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置PE 2接入CE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:2
[PE2-vpn-instance-vpn1] vpn-target 1:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface vlan-interface 1
[PE2-Vlan-interface1] ip binding vpn-instance vpn1
[PE2-Vlan-interface1] ip address 120.1.1.2 24
[PE2-Vlan-interface1] quit
[PE2] ospf 100 vpn-instance vpn1
[PE2-ospf-100] domain-id 10
[PE2-ospf-100] area 1
[PE2-ospf-100-area-0.0.0.1] network 120.1.1.0 0.0.0.255
[PE2-ospf-100-area-0.0.0.1] quit
[PE2-ospf-100] quit
[PE2] bgp 100
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] import-route ospf 100
[PE2-bgp-vpn1] import-route direct
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
完成上述配置後,在PE設備上執行display ip routing-table vpn-instance命令,可以看到去往對端CE的路由是通過用戶網絡的OSPF路由,不是通過骨幹網的BGP路由。
以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
20.1.1.0/24 OSPF 10 1563 100.1.1.1 Vlan1
30.1.1.0/24 OSPF 10 3125 100.1.1.1 Vlan1
100.1.1.0/24 Direct 0 0 100.1.1.2 Vlan1
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 OSPF 10 3126 100.1.1.1 Vlan1
(4) 配置Sham-link
# 配置PE 1。
[PE1] interface loopback 1
[PE1-LoopBack1] ip binding vpn-instance vpn1
[PE1-LoopBack1] ip address 3.3.3.3 32
[PE1-LoopBack1] quit
[PE1] ospf 100
[PE1-ospf-100] area 1
[PE1-ospf-100-area-0.0.0.1] sham-link 3.3.3.3 5.5.5.5 cost 10
[PE1-ospf-100-area-0.0.0.1] quit
[PE1-ospf-100] quit
# 配置PE 2。
[PE2] interface loopback 1
[PE2-LoopBack1] ip binding vpn-instance vpn1
[PE2-LoopBack1] ip address 5.5.5.5 32
[PE2-LoopBack1] quit
[PE2] ospf 100
[PE2-ospf-100] area 1
[PE2-ospf-100-area-0.0.0.1] sham-link 5.5.5.5 3.3.3.3 cost 10
[PE2-ospf-100-area-0.0.0.1] quit
[PE2-ospf-100] quit
完成上述配置後,在PE設備上再次執行display ip routing-table vpn-instance命令,可以看到去往對端CE的路由變成了通過骨幹網的BGP路由,並且有去往Sham-link目的地址的路由。
以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.3/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.5/32 BGP 255 0 2.2.2.9 NULL0
20.1.1.0/24 OSPF 10 1563 100.1.1.1 Vlan1
100.1.1.0/24 Direct 0 0 100.1.1.2 Vlan1
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 BGP 255 0 2.2.2.9 NULL0
在CE設備上執行display ip routing-table命令,可以看到去往對端CE的OSPF路由開銷變為10(為Sham-link配置的開銷),下一跳變為接入PE的Vlan-interface1接口,即去往對端的VPN流量將通過骨幹網轉發。
以CE 1為例:
[CE1] display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
20.1.1.0/24 Direct 0 0 20.1.1.1 Vlan2
20.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.2/32 Direct 0 0 20.1.1.2 Vlan2
30.1.1.0/24 OSPF 10 1574 100.1.1.2 Vlan1
100.1.1.0/24 Direct 0 0 100.1.1.1 Vlan1
100.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
120.1.1.0/24 OSPF 10 12 100.1.1.2 Vlan1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE上執行display ospf sham-link命令可以看到Sham-link的建立情況。
以PE 1為例:
[PE1] display ospf sham-link
OSPF Process 100 with Router ID 100.1.1.2
Sham Link:
Area RouterId Source-IP Destination-IP State Cost
0.0.0.1 100.1.1.2 3.3.3.3 5.5.5.5 P-2-P 10
執行display ospf sham-link area命令可以看到對端狀態為Full。
[PE1] display ospf sham-link area 1
OSPF Process 100 with Router ID 100.1.1.2
Sham-Link: 3.3.3.3 --> 5.5.5.5
Neighbour State: Full
Area: 0.0.0.1
Cost: 10 State: P-2-P, Type: Sham
Timers: Hello 10 , Dead 40 , Retransmit 5 , Transmit Delay 1
如圖所示,CE 1和CE 2同屬於VPN 1,分別接入PE 1和PE 2,並且CE 1和CE 2複用AS號600。
圖1-31 BGP的AS號替換組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
Vlan-int1 |
10.1.1.1/24 |
P |
Loop0 |
2.2.2.9/32 |
|
Vlan-int2 |
100.1.1.1/24 |
|
Vlan-int1 |
30.1.1.1/24 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
Vlan-int2 |
20.1.1.2/24 |
|
Vlan-int1 |
10.1.1.2/24 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
Vlan-int2 |
20.1.1.1/24 |
|
Vlan-int1 |
30.1.1.2/24 |
CE 2 |
Vlan-int1 |
10.2.1.1/24 |
|
Vlan-int2 |
10.2.1.2/24 |
|
Vlan-int2 |
200.1.1.1/24 |
|
|
|
(1) 配置基本MPLS L3VPN
· 在MPLS骨幹網上配置OSPF,PE和P之間能夠學到對方Loopback接口的路由;
· 在MPLS骨幹網上配置MPLS基本能力和MPLS LDP,建立LDP LSP;
· PE之間建立MP-IBGP對等體關係,發布VPN-IPv4路由;
· 在PE 2上配置VPN 1的VPN實例,接入CE 2;
· 在PE 1上配置VPN 1的VPN實例,接入CE 1;
· PE 1和CE 1、PE 2和CE 2之間配置BGP,將CE的路由引入PE。
完成上述配置後,在CE 2上執行display ip routing-table命令,可以看到CE 2能夠學到CE 1接入PE 1的接口所在網段(10.1.1.0/24)的路由,但沒有到達CE 1內部VPN(100.1.1.0/24)的路由。CE 1上也存在同樣的現象。
<CE2> display ip routing-table
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 10.2.1.2 Vlan1
10.1.1.1/32 BGP 255 0 10.2.1.2 Vlan1
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan1
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.2/32 Direct 0 0 10.2.1.2 Vlan1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.0/24 Direct 0 0 200.1.1.1 InLoop0
200.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE上執行display ip routing-table vpn-instance命令,可以看到PE的VPN實例中有到達對端CE內部VPN的路由。
以PE 2為例:
<PE2> display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 1.1.1.9 NULL0
10.1.1.1/32 BGP 255 0 1.1.1.9 NULL0
10.2.1.0/24 Direct 0 0 10.2.1.2 Vlan1
10.2.1.1/32 Direct 0 0 10.2.1.1 Vlan1
10.2.1.2/32 Direct 0 0 127.0.0.1 InLoop0
100.1.1.1/32 BGP 255 0 1.1.1.9 NULL0
200.1.1.1/32 BGP 255 0 10.2.1.1 Vlan1
在CE 2上執行display bgp routing-table peer received-routes命令,可以看到CE 2沒有接收100.1.1.1/32的路由。
<CE2> display bgp routing-table peer 10.2.1.2 received-routes
Total Number of Routes: 4
BGP Local router ID is 10.2.1.1
Status codes: * - valid, ^ - VPN best, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.0/24 10.2.1.2 0 100?
*> 10.1.1.1/32 10.2.1.2 0 100?
* 10.2.1.0/24 10.2.1.2 0 0 100?
* 10.2.1.1/32 10.2.1.2 0 0 100?
(2) 配置BGP的AS號替換功能
# 在PE 2上配置BGP的AS號替換功能。
<PE2> system-view
[PE2] bgp 100
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] peer 10.2.1.1 substitute-as
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
可以看到PE 2向CE2發布的路由中,100.1.1.1/32的AS路徑信息由“100 600”變為“100 100”:
*0.13498737 PE2 RM/7/RMDEBUG:
BGP.vpn1: Send UPDATE to 10.2.1.1 for following destinations :
Origin : Incomplete
AS Path : 100 100
Next Hop : 10.2.1.2
100.1.1.1/32
再次查看CE 2接收的路由信息和路由表:
<CE2> display bgp routing-table peer 10.2.1.2 received-routes
Total Number of Routes: 5
BGP Local router ID is 10.2.1.1
Status codes: * - valid, ^ - VPN best, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.0/24 10.2.1.2 0 100?
*> 10.1.1.1/32 10.2.1.2 0 100?
* 10.2.1.0/24 10.2.1.2 0 0 100?
* 10.2.1.1/32 10.2.1.2 0 0 100?
*> 100.1.1.1/32 10.2.1.2 0 100 100?
<CE2> display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 10.2.1.2 Vlan1
10.1.1.1/32 BGP 255 0 10.2.1.2 Vlan1
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan1
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.2/32 Direct 0 0 10.2.1.2 Vlan1
100.1.1.1/32 BGP 255 0 10.2.1.2 Vlan1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 1上也配置BGP的AS號替換功能後,CE 1和CE 2的VLAN接口能夠相互Ping通。
<CE1> ping –a 100.1.1.1 200.1.1.1
PING 200.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 200.1.1.1: bytes=56 Sequence=1 ttl=253 time=109 ms
Reply from 200.1.1.1: bytes=56 Sequence=2 ttl=253 time=67 ms
Reply from 200.1.1.1: bytes=56 Sequence=3 ttl=253 time=66 ms
Reply from 200.1.1.1: bytes=56 Sequence=4 ttl=253 time=85 ms
Reply from 200.1.1.1: bytes=56 Sequence=5 ttl=253 time=70 ms
--- 200.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 66/79/109 ms
· 設備CE1和CE3屬於VPN1,CE2屬於VPN2。
· PC2通過CE2接入,其IP地址為172.16.0.1。PC2作為多角色主機,既可以訪問VPN2,也可以訪問VPN1。
圖1-32 多角色主機組網圖
(1) 在MPLS骨幹網上配置IGP協議OSPF。
# 在PE1上配置OSPF。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] vlan 110
[PE1-vlan110] interface vlan-interface 110
[PE1-Vlan-interface110] ip address 192.168.1.1 24
[PE1-Vlan-interface110] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在PE2上配置OSPF。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.9 32
[PE2-LoopBack0] quit
[PE2] vlan 110
[PE2-vlan110] interface vlan-interface 110
[PE1-Vlan-interface110] ip address 192.168.1.2 24
[PE2-Vlan-interface110] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
(2) 配置MPLS基本能力,並創建VPN實例。
# 在PE1上配置MPLS基本能力。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls
[PE1-mpls] lsp-trigger all
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] vlan 110
[PE1-vlan110]interface vlan-interface 110
[PE1-Vlan-interface110] mpls
[PE1-Vlan-interface110] mpls ldp
[PE1-Vlan-interface110] quit
# 在PE1上創建VPN1和VPN2的VPN實例,並將VLAN310接口地址綁定到VPN1,將VLAN210接口地址綁定到VPN2。
[PE1] ip vpn-instance vpn1
[PE1-vpn-vpn1] route-distinguisher 100:1
[PE1-vpn-vpn1] vpn-target 100:1 both
[PE1-vpn-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-vpn2] route-distinguisher 100:2
[PE1-vpn-vpn2] vpn-target 100:2 both
[PE1-vpn-vpn2] quit
[PE1] vlan 310
[PE1-vlan310] interface vlan-interface 310
[PE1-Vlan-interface310] ip binding vpn-instance vpn1
[PE1-Vlan-interface310] ip address 20.2.1.2 24
[PE1-Vlan-interface310] quit
[PE1] vlan 210
[PE1-vlan210] interface vlan-interface 210
[PE1-Vlan-interface210] ip binding vpn-instance vpn2
[PE1-Vlan-interface210] ip address 20.1.1.2 24
[PE1-Vlan-interface210] quit
# 在PE2上配置MPLS基本能力。
[PE2] mpls lsr-id 2.2.2.9
[PE2] mpls
[PE2-mpls] lsp-trigger all
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] vlan 110
[PE2-vlan110] interface vlan-interface 110
[PE2-Vlan-interface110] mpls
[PE2-Vlan-interface110] mpls ldp
[PE2-Vlan-interface110] quit
# 在PE2上創建VPN1的VPN實例,並將VLAN210接口地址綁定到VPN1。
[PE2] ip vpn-instance vpn1
[PE2-vpn-vpn1] route-distinguisher 300:1
[PE2-vpn-vpn1] vpn-target 100:1 both
[PE2-vpn-vpn1] quit
[PE2] vlan 210
[PE2-vlan210] interface vlan-interface 210
[PE2-Vlan-interface210] ip binding vpn-instance vpn1
[PE2-Vlan-interface210] ip address 20.3.1.2 24
[PE2-Vlan-interface210] quit
配置BGP。
# 配置CE1。
[CE1] vlan 310
[CE1-vlan310] interface vlan-interface 310
[CE1-Vlan-interface310] ip address 20.2.1.1 24
[CE1-Vlan-interface310] quit
[CE1] bgp 65410
[CE1-bgp] import-route direct
[CE1-bgp] group 10 external
[CE1-bgp] peer 20.2.1.2 group 10 as-number 100
[CE1-bgp] quit
# 配置CE2。
[CE2] vlan 210
[CE2-vlan210] interface vlan-interface 210
[CE2-Vlan-interface210] ip address 20.1.1.1 24
[CE2-Vlan-interface210] quit
# 配置CE3。
[CE3] vlan 210
[CE3-vlan210] interface vlan-interface 210
[CE3-Vlan-interface210] ip address 20.3.1.1 24
[CE3-Vlan-interface210] quit
[CE3] bgp 65430
[CE3-bgp] import-route direct
[CE3-bgp] group 10 external
[CE3-bgp] peer 20.3.1.2 group 10 as-number 100
[CE3-bgp] quit
# 配置PE1:與PE2在BGP-VPNv4子地址族視圖下建立IBGP對等體關係,與CE1在BGP的VPN1實例視圖下建立EBGP對等體關係。CE2與PE1通過配置靜態路由實現互訪,在BGP的VPN2實例視圖下引入靜態路由發布給遠端PE。
[PE1] bgp 100
[PE1-bgp] group 10
[PE1-bgp] peer 2.2.2.9 group 10
[PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpn] peer 10 enable
[PE1-bgp-af-vpn] peer 2.2.2.9 group 10
[PE1-bgp-af-vpn] quit
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-af-vpn-instance] import-route direct
[PE1-bgp-af-vpn-instance] group 20 external
[PE1-bgp-af-vpn-instance] peer 20.2.1.1 group 20 as-number 65410
[PE1-bgp-af-vpn-instance] quit
[PE1-bgp] ipv4-family vpn-instance vpn2
[PE1-bgp-af-vpn-instance] import-route direct
[PE1-bgp-af-vpn-instance] import-route static
# 配置PE2:與PE1在BGP-VPNv4子地址族視圖下建立IBGP對等體關係,與CE3在BGP-VPN實例視圖下建立EBGP對等體關係。
[PE2] bgp 100
[PE2-bgp] group 10
[PE2-bgp] peer 1.1.1.9 group 10
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpn] peer 10 enable
[PE2-bgp-af-vpn] peer 1.1.1.9 group 10
[PE2-bgp-af-vpn] quit
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-af-vpn-instance] import-route direct
[PE2-bgp-af-vpn-instance] group 20 external
[PE2-bgp-af-vpn-instance] peer 20.3.1.1 group 20 as-number 65430
[PE2-bgp-af-vpn-instance] quit
[PE2-bgp] quit
配置多角色主機特性:如果CE2和PE1之間使用路由協議,配置PE1不向CE2發布任何路由,防止形成路由環。如下示例給出的配置靜態路由隻是方法之一,可以采用其它配置。在PE1和CE2之間無任何路由協議,在PE1上直接配置PC2的靜態路由。
# 在CE2上配置一條指向PE1的缺省路由。
[CE2] ip route-static 0.0.0.0 0.0.0.0 20.1.1.2
# 在PE1上配置多角色主機路由。
[PE1] ip route-static vpn-instance vpn1 172.16.0.0 16 vpn-instance vpn2 20.1.1.1
# 用RT屬性把圖中VPN1的路由引入到VPN2。
[PE1] ip vpn-instance vpn2
[PE1-vpn-vpn2] vpn-target 100:1 import-extcommunity
· CE 1、CE 2和CE 3同屬於VPN 1,分別接入PE 1、PE 2和PE 3。
· CE 1和CE 2位於同一個站點。
· CE 1、CE 2和CE 3複用AS號600。
· 為了避免路由丟失,在PE上配置AS號替換;為了避免路由在CE 1和CE 2之間產生環路,在PE 1和PE 2上分別通過路由策略為從CE 1和CE 2學習到的路由添加SOO屬性。
圖1-33 BGP的AS號替換和SOO屬性組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
Loop0 |
100.1.1.1/32 |
CE 3 |
Loop0 |
200.1.1.1/32 |
|
Vlan-int2 |
10.1.1.1/24 |
|
Vlan-int7 |
10.3.1.1/24 |
CE 2 |
Vlan-int2 |
10.2.1.1/24 |
PE 2 |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
Vlan-int2 |
10.2.1.2/24 |
|
Vlan-int2 |
10.1.1.2/24 |
|
Vlan-int4 |
20.1.1.2/24 |
|
Vlan-int3 |
30.1.1.1/24 |
|
Vlan-int5 |
40.1.1.1/24 |
|
Vlan-int4 |
20.1.1.1/24 |
P |
Loop0 |
3.3.3.9/32 |
PE 3 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int3 |
30.1.1.2/24 |
|
Vlan-int6 |
50.1.1.2/24 |
|
Vlan-int5 |
40.1.1.2/24 |
|
Vlan-int7 |
10.3.1.2/24 |
|
Vlan-int6 |
50.1.1.1/24 |
(1) 配置基本MPLS L3VPN
· 在MPLS骨幹網上配置OSPF,PE和P之間能夠學到對方Loopback接口的路由;(配置過程略)
· 在MPLS骨幹網上配置MPLS基本能力和MPLS LDP,建立LDP LSP;(配置過程略)
· PE之間建立MP-IBGP對等體關係,發布VPN-IPv4路由;(配置過程略)
· 在PE 1上配置VPN 1的VPN實例,接入CE 1;(配置過程略)
· 在PE 2上配置VPN 1的VPN實例,接入CE 2;(配置過程略)
· 在PE 3上配置VPN 1的VPN實例,接入CE 3;(配置過程略)
· PE 1和CE 1、PE 2和CE 2、PE 3和CE 3之間配置BGP,將CE的路由引入PE。(配置過程略)
(2) 配置BGP的AS號替換功能
# 在PE 1、PE 2和PE 3上配置BGP的AS號替換功能,具體配置參見“1.13.12 配置BGP的AS號替換”。
# 查看CE 2接收的路由信息和路由表,可以看到CE 1發來的路由100.1.1.1/32。可見,由於CE 1和CE 2位於同一站點,造成了路由環路。
<CE2> display bgp routing-table peer 10.2.1.2 received-routes
Total Number of Routes: 8
BGP Local router ID is 10.2.1.1
Status codes: * - valid, ^ - VPN best, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.0/24 10.2.1.2 0 100?
*> 10.1.1.1/32 10.2.1.2 0 100?
* 10.2.1.0/24 10.2.1.2 0 0 100?
* 10.2.1.1/32 10.2.1.2 0 0 100?
* 10.3.1.0/24 10.2.1.2 0 100?
* 10.3.1.1/32 10.2.1.2 0 100?
*> 100.1.1.1/32 10.2.1.2 0 100 100?
*> 200.1.1.1/32 10.2.1.2 0 100 100?
<CE2> display ip routing-table
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 10.2.1.2 Vlan2
10.1.1.1/32 BGP 255 0 10.2.1.2 Vlan2
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan2
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 BGP 255 0 10.2.1.2 Vlan2
10.3.1.1/32 BGP 255 0 10.2.1.2 Vlan2
100.1.1.1/32 BGP 255 0 10.2.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.1/32 BGP 255 0 10.2.1.2 Vlan2
(3) 配置BGP的SOO屬性
# 在PE 1上配置路由策略soo,為路由添加SOO屬性1:100。
<PE1> system-view
[PE1] route-policy soo permit node 10
[PE1-route-policy] apply extcommunity soo 1:100 additive
[PE1-route-policy] quit
# 在PE 1上為從CE 1學習的路由應用路由策略soo。
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.1.1.1 route-policy soo import
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 在PE 2上配置路由策略soo,為路由添加SOO屬性1:100。
<PE2> system-view
[PE2] route-policy soo permit node 10
[PE2-route-policy] apply extcommunity soo 1:100 additive
[PE2-route-policy] quit
# 在PE 2上為從CE 2學習的路由應用路由策略soo。
[PE2] bgp 100
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] peer 10.2.1.1 route-policy soo import
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
# 由於配置的SOO屬性相同,PE 2不會將CE 1發過來的路由發布給CE 2。查看CE 2路由表,不會再看到100.1.1.1/32路由。
<CE2> display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 10.2.1.2 Vlan2
10.1.1.1/32 BGP 255 0 10.2.1.2 Vlan2
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan2
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 BGP 255 0 10.2.1.2 Vlan2
10.3.1.1/32 BGP 255 0 10.2.1.2 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
200.1.1.1/32 BGP 255 0 10.2.1.2 Vlan2
MPLS L3VPN應用於IPv4組網環境,利用BGP在服務提供商骨幹網上發布VPN的IPv4路由,利用MPLS在服務提供商骨幹網上轉發VPN的IPv4報文。
IPv6 MPLS L3VPN的原理與MPLS L3VPN相同,所不同的是IPv6 MPLS L3VPN利用BGP在服務提供商骨幹網上發布VPN的IPv6路由,利用MPLS在服務提供商骨幹網上轉發VPN的IPv6報文。
IPv6 MPLS L3VPN的典型組網環境如圖2-1所示。目前,IPv6 MPLS L3VPN組網中服務提供商骨幹網應為IPv4網絡。VPN內部及CE和PE之間運行IPv6協議,骨幹網中PE和P設備之間運行IPv4協議。PE需要同時支持IPv4和IPv6協議,連接CE的接口上使用IPv6協議,連接骨幹網的接口上使用IPv4協議。
圖2-1 IPv6 MPLS L3VPN應用組網圖
圖2-2 IPv6 MPLS L3VPN報文轉發示意圖
如圖2-2所示,IPv6 MPLS L3VPN的報文轉發過程為:
(1) Site 1發出一個目的地址為2001:2::1的IPv6報文,由CE 1將報文發送至PE 1。
(2) PE 1根據報文到達的接口及目的地址查找VPN實例的路由表項,匹配後將報文轉發出去,同時打上內層和外層兩個標簽。
(3) MPLS網絡利用報文的外層標簽,將報文傳送到PE 2。(報文在到達PE 2前一跳時已經被剝離外層標簽,到達PE 2時僅含內層標簽)
(4) PE 2根據內層標簽和目的地址查找VPN實例的路由表項,確定報文的出接口,將報文轉發至CE 2。
(5) CE 2根據正常的IPv6轉發過程將報文傳送到目的地。
VPN路由信息的發布過程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到遠端CE。完成這三部分後,本地CE與遠端CE之間將建立可達路由,VPN私網路由信息能夠在骨幹網上發布。
CE與直接相連的PE建立鄰接關係後,把本站點的VPN IPv6路由發布給PE。
CE與PE之間可以使用IPv6靜態路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP路由協議。無論使用哪種路由協議,CE發布給PE的都是標準的IPv6路由。
PE從CE學到VPN的IPv6路由信息後,為這些標準IPv6路由增加RD和VPN Target屬性,形成VPN-IPv6路由,存放到為CE創建的VPN實例的路由表中,並觸發MPLS為其分配私網標簽。
入口PE通過MP-BGP把VPN-IPv6路由發布給出口PE。出口PE根據VPN-IPv6路由的Export Target屬性與自己維護的VPN實例的Import Target屬性,決定是否將該路由加入到VPN實例的路由表。
PE之間通過IGP來保證內部的連通性。
與本地CE到入口PE的路由信息交換相同,遠端CE有多種方式可以從出口PE學習VPN路由,包括IPv6靜態路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP路由協議。
目前,IPv6 MPLS L3VPN支持如下組網方案及功能:
· 基本的VPN組網方案
· 跨域VPN-OptionA
· 跨域VPN-OptionC
· 運營商的運營商
· Multi-VPN-Instance CE
表2-1 IPv6 MPLS L3VPN配置任務簡介
配置任務 |
詳細配置 |
說明 |
配置基本IPv6 MPLS L3VPN |
完成基本IPv6 MPLS L3VPN配置後,即可實現通過MPLS技術構建簡單的IPv6 VPN網絡 如果部署一些特殊的IPv6 MPLS L3VPN組網方案,例如跨域VPN,除了配置基本IPv6 MPLS L3VPN外,還需要根據相應章節進行其他的配置 |
|
配置IPv6跨域VPN |
||
配置Multi-VPN-Instance CE |
配置IPv6 MPLS L3VPN的關鍵在於管理VPN私網路由在MPLS骨幹網上的發布,包括PE-CE間的路由發布管理以及PE-PE間的路由發布管理。
表2-2 基本IPv6 MPLS L3VPN配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
配置VPN實例 |
創建VPN實例 |
必選 |
|
配置VPN實例與接口關聯 |
必選 |
||
配置VPN實例的路由相關屬性 |
可選 |
||
配置VPN實例的隧道策略 |
可選 |
||
配置LDP實例 |
可選 |
||
配置PE-CE間的路由交換 |
必選 |
||
配置PE-PE間的路由交換 |
必選 |
||
配置BGP-VPNv6子地址族下的路由特性 |
可選 |
在配置基本IPv6 MPLS L3VPN之前,需完成以下任務:
· 對MPLS骨幹網(PE、P)配置IGP,實現骨幹網的IP連通性
· 對MPLS骨幹網(PE、P)配置MPLS基本能力
· 對MPLS骨幹網(PE、P)配置MPLS LDP,建立LDP LSP
VPN實例不僅可以隔離VPN私網路由與公網路由,還可以隔離不同VPN實例的路由,這一特點使得VPN實例的使用不限於MPLS L3VPN。
配置VPN實例的操作是在PE或MCE設備上進行的。
VPN實例在實現中與Site關聯。VPN實例不是直接對應於VPN,一個VPN實例綜合了和它所對應Site的VPN成員關係和路由規則。
表2-3 創建VPN實例
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建VPN實例,並進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
必選 |
配置VPN實例的保留VLAN |
reserve-vlan vlan-id |
必選 |
配置VPN實例的RD |
route-distinguisher route-distinguisher |
必選 一個VPN實例隻有配置了RD後才生效 |
配置VPN實例的描述信息 |
description text |
可選 描述信息用於描述VPN實例,可以用來記錄VPN實例與某個VPN的關係等信息 |
· 保留VLAN的配置僅在係統工作模式為標準模式時才有效。關於係統工作模式的詳細介紹,請參見“基礎配置指導”中的“設備管理”。
· 當係統工作模式為標準模式時,如果創建的VPN實例,不需要接入CE設備、需要配置組播VPN功能或綁定IP 隧道,則必須配置保留VLAN。
· 當係統工作模式為標準模式時,保留VLAN必須在RD之前配置,否則該VPN實例的功能將無法正常使用,隻能刪除該VPN實例再按照正確的配置順序重新創建。在配置RD之前,除允許配置保留VLAN外,不允許配置VPN實例的其他任何參數。
· 保留VLAN上不允許配置其他業務,否則將影響對應的MPLS L3VPN的正常使用,用戶隻能刪除該VPN實例,然後按照正確的配置順序重新創建。
· 保留VLAN上,所有普通VLAN的功能(如VLAN鏡像)都無法正常使用。
· 當係統工作模式為標準模式時,如果VPN實例沒有配置保留VLAN,則該VPN實例關聯的私網VLAN接口上不能配置URPF功能。
· 一旦配置了保留VLAN,就無法將其和VPN實例解除關聯。要想重新關聯,必須刪除VPN實例,在重新創建VPN實例。
VPN實例配置完成後,還需要與連接CE的接口進行關聯。支持MPLS LDP能力的接口類型都可以與VPN實例相關聯。具體接口類型請參見“MPLS配置指導”中的“MPLS基礎”。
表2-4 配置VPN實例與接口關聯
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入要關聯接口的接口視圖 |
interface interface-type interface-number |
- |
將當前接口與VPN實例關聯 |
ip binding vpn-instance vpn-instance-name |
必選 缺省情況下,接口不關聯任何VPN實例 |
執行ip binding vpn-instance命令將刪除接口上已經配置的IPv6地址,因此需要重新配置接口的IPv6地址。
VPN路由的發布控製過程如下:
· 當從CE學習到的一條VPN路由引入BGP時,BGP為它關聯一個VPN Target擴展團體屬性列表,通常這個列表是與CE相關聯的VPN實例的輸出路由屬性列表。
· VPN實例根據VPN Target中import-extcommunity確定可被接受並引入此VPN實例的路由。
· VPN實例根據VPN Target中的export-extcommunity對向外發布的路由進行VPN Target屬性的修改。
表2-5 配置VPN實例的路由相關屬性
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
- |
進入IPv6 VPN視圖 |
ipv6-family |
可選 |
配置VPN Target |
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] |
必選 |
配置支持的最大路由數 |
routing-table limit number { warn-threshold | simply-alert } |
可選 |
應用入方向路由策略 |
import route-policy route-policy |
可選 缺省情況下,接收所有VPN Target屬性匹配的路由 |
應用出方向路由策略 |
export route-policy route-policy |
可選 缺省情況下,不對發布的路由進行過濾 |
l VPN實例視圖下配置的路由相關屬性既可以用於IPv4 VPN,也可以用於IPv6 VPN。
l 既可以在VPN實例視圖下,也可以在IPv6 VPN視圖下,配置IPv6 VPN的路由相關屬性。如果同時在兩個視圖下配置了路由相關屬性,則IPv6 VPN采用IPv6 VPN視圖下配置的路由相關屬性。
l 命令vpn-target最多可以配置8個VPN Target;一個VPN實例最多可以配置64個VPN Target。
l 可以配置一個VPN實例支持的最大路由數,以防止PE路由器的入接口有過多的路由。
l 為VPN實例配置路由策略之前必須已經創建了路由策略,否則無法對接收和發布的路由進行過濾。
在網絡中存在多條、多種類型的隧道時,可以通過配置隧道策略對選擇的隧道種類和隧道數目進行限製。
通過tunnel select-seq命令,可以配置隧道的優先級順序和負載分擔條數。
通過preferred-path命令可以配置優選路徑,每條優選路徑對應一個隧道接口,指定通過哪個隧道接口轉發流量。
應用隧道策略後,隧道的選擇方式為:
(1) 從編號最小的優選路徑開始匹配,如果對端PE地址和任何優選路徑的隧道目的地址都不同,則根據tunnel select-seq命令配置的隧道優先級順序和負載分擔條數選擇隧道。如果沒有配置tunnel select-seq命令,則根據缺省的隧道策略選擇隧道,即按照LSP隧道-> CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1。
(2) 如果對端PE地址和某條優選路徑的隧道目的地址相同,則匹配成功。此優選路徑指定的隧道可用時,不再匹配後續的隧道策略規則,使用該優選路徑指定的隧道接口轉發流量。
(3) 匹配的優選路徑指定的隧道不可用時(例如,隧道接口down、隧道下配置的ACL規則不允許轉發該流量等原因導致隧道不可用),如果該優選路徑中沒有指定disable-fallback參數,則繼續匹配後續的隧道策略規則;如果該優選路徑中指定了disable-fallback參數,則不再匹配後續的隧道策略規則,隧道查找失敗。
表2-6 配置VPN實例的隧道策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建隧道策略,並進入隧道策略視圖 |
tunnel-policy tunnel-policy-name |
必選 |
配置通過隧道接口轉發報文的優選路徑 |
preferred-path number interface tunnel tunnel-number [ disable-fallback ] |
可選 缺省情況下,不存在任何優選路徑 |
配置隧道的優先級順序和負載分擔條數 |
tunnel select-seq { cr-lsp | lsp } * load-balance-number number |
可選 缺省情況下,按照LSP隧道->CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1 |
退回係統視圖 |
quit |
- |
進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
必選 |
進入IPv6 VPN視圖 |
ipv6-family |
可選 |
配置VPN實例的隧道策略 |
tnl-policy tunnel-policy-name |
必選 缺省情況下,按照LSP隧道->CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1 |
l 一個隧道策略下最多可以配置64條優選路徑。不同優選路徑對應的隧道接口的目的地址可以相同。隧道接口的隧道類型必須為MPLS TE。
l 在配置隧道優先級順序時,隧道類型越靠近關鍵字select-seq的,其優先級越高。例如:如果配置了命令tunnel select-seq lsp cr-lsp load-balance-number 1,在沒有LSP的情況下,VPN將使用CR-LSP隧道,當LSP建立後,VPN將選用LSP。
l VPN實例視圖下配置的隧道策略既可以用於IPv4 VPN,也可以用於IPv6 VPN。
l 既可以在VPN實例視圖下,也可以在IPv6 VPN視圖下,配置IPv6 VPN的隧道策略。如果同時在兩個視圖下配置了隧道策略,則IPv6 VPN采用IPv6 VPN視圖下配置的隧道策略。
l 為VPN實例配置隧道策略之前必須先創建隧道策略,否則將采用缺省策略,即按照LSP隧道->CR-LSP隧道的優先級順序選擇隧道,負載分擔條數為1。
LDP實例應用於運營商的運營商(Carriers’ carriers)組網模型中。
本配置任務用來使能VPN實例的LDP能力,創建LDP實例,並在MPLS-LDP-VPN實例視圖下為VPN實例配置LDP參數。
LDP實例的配置方法,請參見“1.3.3 5. 配置LDP實例”。
PE-CE間路由交換可以使用IPv6靜態路由、RIPng、OSPFv3、IPv6 IS-IS和EBGP路由協議。根據實際組網情況選擇一種進行配置即可。
在配置PE-CE間路由交換之前,需要先完成以下任務:
· 在CE上配置連接PE接口的IPv6地址
· 在PE上配置連接CE接口的IPv6地址
表2-7 配置PE-CE間使用IPv6靜態路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為指定VPN實例配置IPv6靜態路由 |
ipv6 route-static ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | next-hop-address | vpn-instance d-vpn-instance-name nexthop-address } [ preference preference-value ] |
二者必選其一 該配置在PE上進行,CE上的配置方法與普通IPv6靜態路由相同 |
ipv6 route-static vpn-instance s-vpn-instance-name&<1-6> ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | nexthop-address [ public ] | vpn-instance d-vpn-instance-name nexthop-address } [ preference preference-value ] |
有關IPv6靜態路由的配置請參見“三層技術-IP路由配置指導”中的“IPv6靜態路由”。
一個RIPng進程隻能屬於一個VPN實例。如果在啟動RIPng進程時不綁定到VPN實例,則該進程屬於公網進程。
表2-8 配置PE-CE間使用RIPng
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建PE-CE間的RIPng實例,並進入RIPng視圖 |
ripng [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在PE上進行,CE上配置普通RIPng即可 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
在指定的網絡接口上使能RIPng |
ripng process-id enable |
必選 缺省情況下,接口禁用RIPng |
有關RIPng的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“RIPng”。
一個OSPFv3進程隻能屬於一個VPN實例。如果在啟動OSPFv3進程時不綁定到VPN實例,則該進程屬於公網進程。
表2-9 配置PE-CE間使用OSPFv3
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建PE-CE間的OSPFv3實例,並進入OSPFv3視圖 |
ospfv3 [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在PE上進行,CE上配置普通OSPFv3即可 |
配置Router ID |
router-id router-id |
必選 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
必選 缺省情況下,接口上沒有使能OSPFv3 該配置在PE上進行 |
· 刪除VPN實例後,相關的所有OSPFv3進程也將全部被刪除。
· 有關OSPFv3的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“OSPFv3”。
一個IPv6 IS-IS進程隻能屬於一個VPN實例。如果在啟動IPv6 IS-IS進程時不綁定到VPN實例,則該進程屬於公網進程。
表2-10 配置PE-CE間使用IPv6 IS-IS
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建PE-CE間的IPv6 IS-IS實例,並進入IS-IS視圖 |
isis [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在PE上進行,CE上配置普通IPv6 IS-IS即可 |
配置網絡實體名稱 |
network-entity net |
必選 缺省情況下,沒有配置網絡實體名稱 |
使能IS-IS進程的IPv6能力 |
ipv6 enable |
必選 缺省情況下,沒有使能IS-IS路由進程的IPv6能力 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能接口IS-IS路由進程的IPv6能力,並指定要關聯的IS-IS進程號 |
isis ipv6 enable [ process-id ] |
必選 缺省情況下,接口上沒有使能IS-IS路由進程的IPv6能力 |
有關IPv6 IS-IS的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“IPv6 IS-IS”。
(1) PE上的配置
表2-11 PE上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入IPv6 BGP-VPN實例視圖 |
ipv6-family vpn-instance vpn-instance-name |
必選 |
將CE配置為VPN私網EBGP對等體 |
peer ipv6-address as-number as-number |
必選 |
引入本端CE路由 |
import-route protocol [ process-id ] [ med med-value | route-policy route-policy-name ] * |
必選 PE需要將到本端CE的路由引入VPN路由表中,以發布給對端PE |
配置對發布的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } export [ direct | isisv6 process-id | ripng process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
(2) CE上的配置
表2-12 CE上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入IPv6 BGP子地址族視圖 |
ipv6-family |
必選 |
將PE配置為EBGP對等體 |
peer ipv6-address as-number as-number |
必選 |
配置路由引入 |
import-route protocol [ process-id ] [ med med-value | route-policy route-policy-name ] * |
可選 CE需要將自己所能到達的VPN網段地址發布給接入的PE,通過PE發布給對端CE |
l 配置IPv6 BGP-VPN實例後,VPN實例中的BGP路由交換與普通的BGP相同。
l IPv6 BGP-VPN實例視圖下的配置命令與IPv6 BGP子地址族視圖下的配置命令相同。上文隻列舉了部分配置命令,更多的配置命令請參見“三層技術-IP路由配置指導”中的“IPv6 BGP”。
表2-13 配置PE-PE間的路由交換
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
進入BGP視圖 |
bgp as-number |
必選 |
|
將對端PE配置為對等體 |
peer ip-address as-number as-number |
必選 |
|
指定路由更新報文的源接口 |
peer { group-name | ip-address } connect-interface interface-type interface-number |
必選 缺省情況下,BGP使用最佳路由更新報文的源接口 |
|
進入BGP-VPNv6子地址族視圖 |
ipv6-family vpnv6 |
必選 |
|
使能對等體交換BGP-VPNv6路由信息 |
peer ip-address enable |
必選 缺省情況下,BGP對等體之間隻能交換IPv4路由信息 |
|
BGP-VPNv6子地址族下的很多路由特性都與BGP IPv6單播路由的特性相同。這些特性根據組網的需求來決定是否選擇。
表2-14 配置BGP-VPNv6子地址族的路由特性
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
將對端PE配置為對等體 |
peer ip-address as-number as-number |
必選 |
指定建立TCP連接的接口 |
peer ip-address connect-interface interface-type interface-number |
必選 |
進入BGP-VPNv6子地址族視圖 |
ipv6-family vpnv6 |
- |
配置本地優先級的缺省值 |
default local-preference value |
可選 缺省情況下,本地優先級的值為100 |
配置係統MED的缺省值 |
default med med-value |
可選 缺省情況下,係統MED的缺省值為0 |
配置對發布的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } export [ direct | isisv6 process-id | ripng process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
配置為指定對等體應用過濾策略 |
peer ip-address filter-policy acl6-number { export | import } |
可選 缺省情況下,沒有為對等體應用過濾策略 |
為指定對等體應用基於IPv6地址前綴列表的路由過濾策略 |
peer ip-address ipv6-prefix prefix-name { export | import } |
可選 缺省情況下,對等體上不應用基於IPv6地址前綴列表的路由過濾策略 |
為從對等體接收的路由分配首選值 |
peer ip-address preferred-value value |
可選 缺省情況下,從對等體接收的路由的首選值為0 |
配置發送BGP更新報文時不攜帶私有自治係統號 |
peer ip-address public-as-only |
可選 缺省情況下,發送BGP更新報文時,攜帶私有自治係統號 |
為指定對等體配置路由策略 |
peer ip-address route-policy route-policy-name { export | import } |
可選 缺省情況下,對等體沒有應用路由策略 |
對接收到的BGP-VPNv6子地址族的BGP路由使能VPN-Target過濾功能 |
policy vpn-target |
可選 缺省情況下,對接收到的BGP-VPNv6子地址族的BGP路由使能VPN-Target過濾功能 |
配置將本機作為路由反射器,並將對等體作為路由反射器的客戶 |
peer ip-address reflect-client |
可選 缺省情況下,沒有配置路由反射器及其客戶 |
允許客戶到客戶的路由反射 |
reflect between-clients |
可選 缺省情況下,允許客戶到客戶的路由反射 |
為路由反射器配置群ID |
reflector cluster-id { cluster-id | ip-address } |
可選 缺省情況下,每個路由反射器都使用自己的Router ID作為群ID 如果一個群中配置了多個路由反射器,請使用本命令為所有的路由反射器配置相同的群ID,以避免產生路由環路 |
創建路由反射器的反射策略 |
rr-filter extended-community-list-number |
可選 缺省情況下,路由反射器不會對反射的路由進行過濾 執行本命令後,隻有與本命令配置的擴展團體屬性號匹配的IBGP路由才會被反射 通過在不同的路由反射器上配置不同的反射策略,可以實現路由反射器之間的負載分擔 |
有關IPv6 BGP的路由特性請參見“三層技術-IP路由配置指導”中的“IPv6 BGP”。
如果承載IPv6 VPN路由的MPLS骨幹網跨越多個AS,就需要配置跨域VPN。
跨域VPN有三種解決方案,具體介紹請參見“1.1.6 跨域VPN”。目前,IPv6 MPLS L3VPN隻支持VPN-OptionA和VPN-OptionC。
在配置跨域VPN之前,需完成以下任務:
· 為各AS的MPLS骨幹網分別配置IGP,實現同一AS內骨幹網的IP連通性
· 為各AS的MPLS骨幹網分別配置MPLS基本能力
· 為各AS的MPLS骨幹網分別配置MPLS LDP,建立LDP LSP
請根據實際應用的IPv6跨域VPN方式,選擇下述配置任務中的對應項。
IPv6跨域VPN-OptionA的實現比較簡單,當PE上的VPN數量及VPN路由數量都比較少時可以采用這種方案。
IPv6跨域VPN-OptionA的配置可以描述為:
· 對各AS分別進行基本IPv6 MPLS L3VPN配置。
· 對於ASBR-PE,將對端ASBR-PE看作自己的CE配置即可。即:IPv6跨域VPN-OptionA方式需要在PE和ASBR-PE上分別配置IPv6 VPN實例,前者用於接入CE,後者用於接入對端ASBR-PE。
具體配置方法,請參見“2.3 配置基本IPv6 MPLS L3VPN”。
在IPv6跨域VPN-OptionA方式中,對於同一個IPv6 VPN,同一AS內的ASBR-PE和PE上配置的VPN Target應能匹配,即VPN Target的配置應能保證PE(或ASBR-PE)發送的VPN路由能夠被ASBR-PE(或PE)接受;不同AS的PE上配置的VPN Target則不需要匹配。
同一AS內的PE和ASBR-PE之間建立普通的IBGP對等體關係,不同AS的PE之間建立MP-EBGP對等體關係。
同一AS內的PE和ASBR-PE之間應能夠交換帶標簽的路由。
表2-15 配置PE
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
配置本AS的ASBR-PE為IBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
配置與本AS的ASBR-PE之間能夠交換帶標簽的路由 |
peer { group-name | ip-address } label-route-capability |
必選 缺省情況下,不向IPv4對等體/對等體組發送標簽路由 |
將另一AS的PE配置為EBGP對等體 |
peer { group-name | ip-address } as-number as-number |
必選 |
進入BGP-VPNv6子地址族視圖 |
ipv6-family vpnv6 |
- |
使能EBGP對等體交換BGP-VPNv6路由信息 |
peer ip-address enable |
必選 |
在跨域VPN-OptionC方式中,需要建立一條跨域的VPN LSP,相關PE、ASBR之間發布公網路由時攜帶MPLS標簽信息。此跨域VPN LSP的建立同IPv4 MPLS VPN相同,配置方式參見“1.4.4 配置跨域VPN-OptionC”。
配置在ASBR-PE上應用路由策略:
· 對於從本AS的PE接收的路由,在向對端ASBR-PE發布時,分配MPLS標簽;
· 對於向本AS的PE發布的路由,如果是帶標簽的路由,為其分配新的MPLS標簽。
IPv6跨域VPN路由策略的配置與IPv4 MPLS VPN相同,配置方式參見“1.4.4 配置跨域VPN-OptionC”。
Multi-VPN-Instance CE可以看作一種通過路由隔離實現業務隔離的組網方案。配置MCE的關鍵為:
· 配置MCE與站點之間的路由交換
· 配置MCE與PE之間的路由交換
在MCE組網方案中,路由計算時需要關閉PE上的路由環路檢測功能,防止路由丟失;同時禁止各路由協議互操作功能,以節省係統資源。
在配置Multi-VPN-Instance CE之前,需完成以下任務:
· 創建VPN實例、在MCE上將連接站點和PE的接口與VPN實例綁定
· 配置相關接口的鏈路層協議和網絡層協議,保證路由可達
MCE可以通過IPv6靜態路由與Site連接。傳統CE配置的IPv6靜態路由對全局生效,無法解決多VPN間的地址重疊問題。以太網交換機提供的MCE功能可以將IPv6靜態路由與VPN實例相綁定,將各IPv6 VPN之間的IPv6靜態路由進行隔離。
表2-16 配置MCE與站點之間使用IPv6靜態路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為指定VPN實例配置IPv6靜態路由 |
ipv6 route-static ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | next-hop-address | vpn-instance d-vpn-instance-name nexthop-address } [ preference preference-value ] |
二者必選其一 該配置在MCE上進行,站點上的配置方法與普通IPv6靜態路由相同 |
ipv6 route-static vpn-instance s-vpn-instance-name&<1-6> ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | nexthop-address [ public ] | vpn-instance d-vpn-instance-name nexthop-address } [ preference preference-value ] |
||
配置IPv6靜態路由的缺省優先級 |
ipv6 route-static default-preference default-preference-value |
可選 缺省情況下,IPv6靜態路由的缺省優先級為60 |
一個RIPng進程隻能屬於一個IPv6 VPN實例。如果在啟動RIPng進程時不綁定到IPv6 VPN實例,則該進程屬於公網進程。通過在MCE上將RIPng進程與IPv6 VPN實例綁定,可以使不同IPv6 VPN內的私網路由通過不同的RIPng進程在Site和MCE間進行交互,保證了私網路由的隔離和安全。
表2-17 配置MCE與站點之間使用RIPng
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與站點間的RIPng實例,並進入RIPng視圖 |
ripng [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在MCE上進行,站點上配置普通RIPng即可 |
引入由PE發布的遠端站點的路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name ] * |
必選 缺省情況下,RIPng未引入其它路由 |
配置引入路由的缺省度量值 |
default cost value |
可選 缺省情況下,引入路由的缺省度量值為0 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
在指定的網絡接口上使能RIPng |
ripng process-id enable |
必選 缺省情況下,接口禁用RIPng |
有關RIPng的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“RIPng”。
一個OSPFv3進程隻能屬於一個IPv6 VPN實例。如果在啟動OSPFv3進程時不綁定到IPv6 VPN實例,則該進程屬於公網進程。
通過在MCE上將OSPFv3進程與IPv6 VPN實例綁定,可以使不同IPv6 VPN內的私網路由通過不同的OSPFv3進程在Site和MCE間進行交互,保證了私網路由的隔離和安全。
表2-18 配置MCE與站點之間使用OSPFv3
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與站點間的OSPFv3實例,並進入OSPFv3視圖 |
ospfv3 [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在MCE上進行,站點上配置普通OSPFv3即可 |
配置Router ID |
router-id router-id |
必選 |
引入由PE發布的遠端站點的路由 |
import-route protocol [ process-id | allow-ibgp ] [ cost value | route-policy route-policy-name | type type ] * |
必選 缺省情況下,沒有引入其他協議的路由信息 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
必選 缺省情況下,接口上沒有使能OSPFv3 |
· 刪除VPN實例後,相關的所有OSPFv3進程也將全部被刪除。
· 有關OSPFv3的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“OSPFv3”。
一個IPv6 IS-IS進程隻能屬於一個IPv6 VPN實例。如果在啟動IPv6 IS-IS進程時不綁定到IPv6 VPN實例,則該進程屬於公網進程。
通過在MCE上將IPv6 IS-IS進程與IPv6 VPN實例綁定,可以使不同IPv6 VPN內的私網路由通過不同的IPv6 IS-IS進程在Site和MCE間進行交互,保證了私網路由的隔離和安全。
表2-19 配置MCE與站點之間使用IPv6 IS-IS
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與站點間的IPv6 IS-IS實例,並進入IS-IS視圖 |
isis [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在MCE上進行,站點上配置普通IPv6 IS-IS即可 |
配置網絡實體名稱 |
network-entity net |
必選 缺省情況下,沒有配置網絡實體名稱 |
使能IS-IS進程的IPv6能力 |
ipv6 enable |
必選 缺省情況下,沒有使能IS-IS路由進程的IPv6能力 |
引入由PE發布的遠端站點的路由 |
ipv6 import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
可選 缺省情況下,IPv6 IS-IS不引入其它協議的路由信息 如果ipv6 import-route命令中不指定引入的級別,則默認為引入路由到Level-2路由表中 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能接口IS-IS路由進程的IPv6能力,並指定要關聯的IS-IS進程號 |
isis ipv6 enable [ process-id ] |
必選 缺省情況下,接口上沒有使能IS-IS路由進程的IPv6能力 |
有關IPv6 IS-IS的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“IPv6 IS-IS”。
MCE與站點間使用EBGP交換路由信息時,需要在MCE上為每個IPv6 VPN實例配置IPv6 BGP對等體,並在站點上引入相應IPv6 VPN內的IGP路由信息。
MCE使用EBGP交換路由信息時,還可以通過Filter-policy對接收/發布的路由進行過濾。
(1) MCE上的配置
表2-20 配置MCE與站點之間使用EBGP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入IPv6 BGP-VPN實例視圖 |
ipv6-family vpn-instance vpn-instance-name |
必選 |
配置IPv6 BGP對等體的AS號 |
peer ipv6-address as-number as-number |
必選 |
引入由PE發布的遠端站點的路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
必選 缺省情況下,BGP不引入且不通告其它協議的路由 |
配置對發布的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ip-prefix-name } export [ direct | isisv6 process-id | ripng process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
配置IPv6 BGP VPN實例後,IPv6 VPN實例中的IPv6 BGP路由交換與普通的IPv6 BGP相同。有關IPv6 BGP協議的配置,請參見“三層技術-IP路由配置指導”中的“IPv6 BGP”。
(2) 站點上的配置
表2-21 站點上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入IPv6地址族視圖 |
ipv6-family |
- |
將MCE配置為EBGP對等體 |
peer ipv6-address as-number as-number |
必選 |
引入VPN內的IGP路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
必選 缺省情況下,BGP不引入且不通告其它協議的路由 站點需要將自己所能到達的IPv6 VPN網段地址發布給接入的MCE |
由於在MCE設備上已經將站點內的私網路由信息與IPv6 VPN實例進行了綁定,因此,隻需要在MCE與PE之間將接口與IPv6 VPN實例進行綁定、進行簡單的路由配置、並將MCE上維護的站點內的IPv6 VPN路由引入到MCE-PE間的路由協議中,便可以實現私網VPN路由信息的傳播。
本節中的配置均在MCE上進行,PE上的配置與基本IPv6 MPLS L3VPN組網中PE上的配置相同,詳細介紹請參見“2.3.4 配置PE-CE間的路由交換”。
表2-22 配置MCE與PE之間使用IPv6靜態路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
為指定VPN實例配置IPv6靜態路由 |
ipv6 route-static ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | next-hop-address | vpn-instance d-vpn-instance-name nexthop-address } [ preference preference-value ] |
二者必選其一 |
ipv6 route-static vpn-instance s-vpn-instance-name&<1-6> ipv6-address prefix-length { interface-type interface-number [ next-hop-address ] | nexthop-address [ public ] | vpn-instance d-vpn-instance-name nexthop-address } [ preference preference-value ] |
||
配置IPv6靜態路由的缺省優先級 |
ipv6 route-static default-preference default-preference-value |
可選 缺省情況下,IPv6靜態路由的缺省優先級為60 |
表2-23 配置MCE與PE之間使用RIPng
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與PE間的RIPng實例,並進入RIPng視圖 |
ripng [ process-id ] vpn-instance vpn-instance-name |
必選 |
引入站點內的VPN路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name ] * |
必選 缺省情況下,RIPng未引入其它路由 |
配置引入路由的缺省度量值 |
default cost value |
可選 缺省情況下,引入路由的缺省度量值為0 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
在指定的網絡接口上使能RIPng |
ripng process-id enable |
必選 缺省情況下,接口禁用RIPng |
有關RIPng的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“RIPng”。
表2-24 配置MCE與PE之間使用OSPFv3
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與PE間的OSPFv3實例,並進入OSPFv3視圖 |
ospfv3 [ process-id ] vpn-instance vpn-instance-name |
必選 |
配置Router ID |
router-id router-id |
必選 |
引入站點內的VPN路由 |
import-route protocol [ process-id | allow-ibgp ] [ cost value | route-policy route-policy-name | type type ] * |
必選 缺省情況下,沒有引入其他協議的路由信息 |
配置對引入的路由進行過濾 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } export [ bgp4+ | direct | isisv6 process-id | ospfv3 process-id | ripng process-id | static ] |
可選 缺省情況下,沒有對引入的路由信息進行過濾 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
必選 缺省情況下,接口上沒有使能OSPFv3 |
有關OSPFv3的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“OSPFv3”。
表2-25 配置MCE與PE之間使用IPv6 IS-IS
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建MCE與PE間的IPv6 IS-IS實例,並進入IS-IS視圖 |
isis [ process-id ] vpn-instance vpn-instance-name |
必選 |
配置網絡實體名稱 |
network-entity net |
必選 缺省情況下,沒有配置網絡實體名稱 |
使能IS-IS進程的IPv6能力 |
ipv6 enable |
必選 缺省情況下,沒有使能IS-IS路由進程的IPv6能力 |
引入站點內的VPN路由 |
ipv6 import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | [ level-1 | level-1-2 | level-2 ] | route-policy route-policy-name | tag tag ] * |
可選 缺省情況下,IPv6 IS-IS不引入其它協議的路由信息 如果ipv6 import-route命令中不指定引入的級別,則默認為引入路由到Level-2路由表中 |
對引入的路由進行過濾 |
ipv6 filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name | route-policy route-policy-name } export [ protocol [ process-id ] ] |
可選 缺省情況下,IPv6 IS-IS不對引入的路由信息進行過濾 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
使能接口IS-IS路由進程的IPv6能力,並指定要關聯的IS-IS進程號 |
isis ipv6 enable [ process-id ] |
必選 缺省情況下,接口上沒有使能IS-IS路由進程的IPv6能力 |
有關IPv6 IS-IS的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“IPv6 IS-IS”。
表2-26 配置MCE與PE之間使用EBGP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入IPv6 BGP-VPN實例視圖 |
ipv6-family vpn-instance vpn-instance-name |
必選 |
將PE配置為EBGP對等體 |
peer ipv6-address as-number as-number |
必選 |
引入站點內的VPN路由 |
import-route protocol [ process-id [ med med-value | route-policy route-policy-name ] * ] |
必選 缺省情況下,BGP不引入且不通告其它協議的路由 |
配置對發布的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ip-prefix-name } export [ direct | isisv6 process-id | ripng process-id | static ] |
可選 缺省情況下,不對發布的路由信息進行過濾 |
配置對接收的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ip-prefix-name } import |
可選 缺省情況下,不對接收的路由信息進行過濾 |
配置IPv6 BGP VPN實例後,IPv6 VPN實例中的IPv6 BGP路由交換與普通的IPv6 BGP相同。有關IPv6 BGP協議的配置,請參見“三層技術-IP路由配置指導”中的“IPv6 BGP”。
當BGP配置變化後,可以通過軟複位或複位BGP連接使新的配置生效。軟複位需要BGP對等體具備路由刷新能力(支持ROUTE-REFRESH消息)。
軟複位BGP連接是指在不斷開BGP鄰居關係的情況下,更新BGP路由信息;複位BGP連接是指斷開並重新建立BGP鄰居關係的情況下,更新BGP路由信息。
請在用戶視圖下進行下列操作。
表2-27 複位BGP連接
操作 |
命令 |
軟複位指定VPN實例的IPv6 BGP連接 |
refresh bgp ipv6 vpn-instance vpn-instance-name { ipv6-address | all | external } { export | import } |
軟複位BGP的VPNv6連接 |
refresh bgp vpnv6 { ip-address | all | external | internal } { export | import } |
複位指定VPN實例的IPv6 BGP連接 |
reset bgp ipv6 vpn-instance vpn-instance-name { as-number | ipv6-address | all | external } |
複位BGP的VPNv6連接 |
reset bgp vpnv6 { as-number | ip-address | all | external | internal } |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後IPv6 MPLS L3VPN的運行情況,通過查看顯示信息驗證配置的效果。
表2-28 顯示IPv6 MPLS L3VPN的運行狀態
操作 |
命令 |
顯示與VPN實例相關聯的IPv6路由表 |
display ipv6 routing-table vpn-instance vpn-instance-name [ verbose ] [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例的IPv6 FIB信息 |
display ipv6 fib vpn-instance vpn-instance-name [ acl6 acl6-number | ipv6-prefix ipv6-prefix-name ] [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例中與指定目的IPv6地址匹配的IPv6 FIB信息 |
display ipv6 fib vpn-instance vpn-instance-name ipv6-address [ prefix-length ] [ | { begin | exclude | include } regular-expression ] |
顯示PE與PE之間建立的BGP VPNv6對等體的信息 |
display bgp vpnv6 all peer [ ipv4-address verbose | verbose ] [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例中PE與CE之間建立的IPv6 BGP對等體的信息 |
display bgp vpnv6 vpn-instance vpn-instance-name peer [ ipv6-address verbose | verbose ] [ | { begin | exclude | include } regular-expression ] |
顯示所有BGP VPNv6路由信息 |
display bgp vpnv6 all routing-table [ network-address prefix-length [ longer-prefixes ] | peer ip-address { advertised-routes | received-routes } [ statistic ] | statistic ] [ | { begin | exclude | include } regular-expression ] |
顯示指定路由標識符的BGP VPNv6路由信息 |
display bgp vpnv6 route-distinguisher route-distinguisher routing-table [ network-address prefix-length ] [ | { begin | exclude | include } regular-expression ] |
顯示指定VPN實例的BGP VPNv6路由信息 |
display bgp vpnv6 vpn-instance vpn-instance-name routing-table [ network-address prefix-length [ longer-prefixes ] | peer ipv6-address { advertised-routes | received-routes } ] [ | { begin | exclude | include } regular-expression ] |
有關查看路由表的命令介紹請參見“三層技術-IP路由命令參考”中的“IP路由基礎命令”。
· CE 1、CE 3屬於VPN 1,CE 2、CE 4屬於VPN 2;
· VPN 1使用的VPN Target屬性為111:1,VPN 2使用的VPN Target屬性為222:2。不同VPN用戶之間不能互相訪問;
· CE與PE之間配置EBGP交換VPN路由信息;
· PE與PE之間配置OSPF實現PE內部的互通、配置MP-IBGP交換VPN路由信息。
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
Vlan-int11 |
2001:1::1/96 |
P |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
Vlan-int12 |
172.2.1.1/24 |
|
Vlan-int11 |
2001:1::2/96 |
|
Vlan-int13 |
172.1.1.2/24 |
|
Vlan-int13 |
172.1.1.1/24 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
Vlan-int12 |
2001:2::2/96 |
|
Vlan-int12 |
172.2.1.2/24 |
CE 2 |
Vlan-int12 |
2001:2::1/96 |
|
Vlan-int11 |
2001:3::2/96 |
CE 3 |
Vlan-int11 |
2001:3::1/96 |
|
Vlan-int13 |
2001:4::2/96 |
CE 4 |
Vlan-int13 |
2001:4::1/96 |
|
|
|
(1) 在MPLS骨幹網上配置IGP協議,實現骨幹網PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface vlan-interface 13
[PE1-Vlan-interface13] ip address 172.1.1.1 24
[PE1- Vlan-interface13] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface vlan-interface 13
[P-Vlan-interface13] ip address 172.1.1.2 24
[P- Vlan-interface13] quit
[P] interface vlan-interface 12
[P-Vlan-interface12] ip address 172.2.1.1 24
[P-Vlan-interface12] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface vlan-interface 12
[PE2-Vlan-interface12] ip address 172.2.1.2 24
[PE2-Vlan-interface12] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成後,PE 1、P、PE 2之間應能建立OSPF鄰居,執行display ospf peer命令可以看到鄰居達到FULL狀態。執行display ip routing-table命令可以看到PE之間學習到對方的Loopback路由。
以PE 1為例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 OSPF 10 1 172.1.1.2 Vlan13
3.3.3.9/32 OSPF 10 2 172.1.1.2 Vlan13
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
172.1.1.0/24 Direct 0 0 172.1.1.1 Vlan13
172.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
172.1.1.2/32 Direct 0 0 172.1.1.2 Vlan13
172.2.1.0/24 OSPF 10 1 172.1.1.2 Vlan13
[PE1] display ospf peer verbose
OSPF Process 1 with Router ID 1.1.1.9
Neighbors
Area 0.0.0.0 interface 172.1.1.1(Vlan-interface13)'s neighbors
Router ID: 172.1.1.2 Address: 172.1.1.2 GR State: Normal
State: Full Mode:Nbr is Master Priority: 1
DR: None BDR: None MTU: 1500
Dead timer due in 38 sec
Neighbor is up for 00:02:44
Authentication Sequence: [ 0 ]
Neighbor state change count: 5
(2) 在MPLS骨幹網上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] interface vlan-interface 13
[PE1-Vlan-interface13] mpls
[PE1-Vlan-interface13] mpls ldp
[PE1-Vlan-interface13] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls
[P-mpls] quit
[P] mpls ldp
[P-mpls-ldp] quit
[P] interface vlan-interface 13
[P-Vlan-interface13] mpls
[P-Vlan-interface13] mpls ldp
[P-Vlan-interface13] quit
[P] interface vlan-interface 12
[P-Vlan-interface12] mpls
[P-Vlan0interface12] mpls ldp
[P-Vlan-interface12] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface vlan-interface 12
[PE2-Vlan-interface12] mpls
[PE2-Vlan-interface12] mpls ldp
[PE2-Vlan-interface12] quit
上述配置完成後,PE 1、P、PE 2之間應能建立LDP會話,執行display mpls ldp session命令可以看到顯示結果中Status字段為Operational。執行display mpls ldp lsp命令,可以看到LDP LSP的建立情況。
以PE 1為例:
[PE1] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
---------------------------------------------------------------
2.2.2.9:0 Operational DU Passive Off Off 5/5
---------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[PE1] display mpls ldp lsp
LDP LSP Information
------------------------------------------------------------------
SN DestAddress/Mask In/OutLabel Next-Hop In/Out-Interface
------------------------------------------------------------------
1 1.1.1.9/32 3/NULL 127.0.0.1 Vlan-interface13/InLoop0
2 2.2.2.9/32 NULL/3 172.1.1.2 -------/Vlan-interface13
3 3.3.3.9/32 NULL/1024 172.1.1.2 -------/Vlan-interface13
------------------------------------------------------------------
A '*' before an LSP means the LSP is not established
A '*' before a Label means the USCB or DSCB is stale
(3) 在PE設備上配置VPN實例,將CE接入PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface vlan-interface 11
[PE1-Vlan-interface11] ip binding vpn-instance vpn1
[PE1-Vlan-interface11] ipv6 address 2001:1::2 96
[PE1-Vlan-interface11] quit
[PE1] interface vlan-interface 12
[PE1-Vlan-interface12] ip binding vpn-instance vpn2
[PE1-Vlan-interface12] ipv6 address 2001:2::2 96
[PE1-Vlan-interface12] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface vlan-interface 11
[PE2-Vlan-interface11] ip binding vpn-instance vpn1
[PE2-Vlan-interface11] ipv6 address 2001:3::2 96
[PE2-Vlan-interface11] quit
[PE2] interface vlan-interface 13
[PE2-Vlan-interface13] ip binding vpn-instance vpn2
[PE2-Vlan-interface13] ipv6 address 2001:4::2 96
[PE2-Vlan-interface13] quit
# 按圖2-3配置各CE的接口IP地址,配置過程略。
配置完成後,在PE設備上執行display ip vpn-instance命令可以看到VPN實例的配置情況。各PE能ping通自己接入的CE。
以PE 1和CE 1為例:
[PE1] display ip vpn-instance
Total VPN-Instances configured : 2
VPN-Instance Name RD Create Time
vpn1 100:1 2006/08/13 09:32:45
vpn2 100:2 2006/08/13 09:42:59
[PE1] ping ipv6 -vpn-instance vpn1 2001:1::1
PING 2001:1::1 : 56 data bytes, press CTRL_C to break
Reply from 2001:1::1
bytes=56 Sequence=1 hop limit=64 time = 1 ms
Reply from 2001:1::1
bytes=56 Sequence=2 hop limit=64 time = 1 ms
Reply from 2001:1::1
bytes=56 Sequence=3 hop limit=64 time = 1 ms
Reply from 2001:1::1
bytes=56 Sequence=4 hop limit=64 time = 1 ms
Reply from 2001:1::1
bytes=56 Sequence=5 hop limit=64 time = 1 ms
--- 2001:1::1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/1 ms
(4) 在PE與CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp] ipv6-family
[CE1-bgp-af-ipv6] peer 2001:1::2 as-number 100
[CE1-bgp-af-ipv6] import-route direct
[CE1-bgp-af-ipv6] quit
另外3個CE設備(CE 2~CE 4)配置與CE 1設備配置類似,配置過程省略。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp] ipv6-family vpn-instance vpn1
[PE1-bgp-ipv6-vpn1] peer 2001:1::1 as-number 65410
[PE1-bgp-ipv6-vpn1] import-route direct
[PE1-bgp-ipv6-vpn1] quit
[PE1-bgp] ipv6-family vpn-instance vpn2
[PE1-bgp-ipv6-vpn2] peer 2001:2::1 as-number 65420
[PE1-bgp-ipv6-vpn2] import-route direct
[PE1-bgp-ipv6-vpn2] quit
[PE1-bgp] quit
PE 2的配置與PE 1類似,配置過程省略。
配置完成後,在PE設備上執行display bgp vpnv6 vpn-instance peer命令,可以看到PE與CE之間的BGP對等體關係已建立,並達到Established狀態。
以PE 1與CE 1的對等體關係為例:
[PE1] display bgp vpnv6 vpn-instance vpn1 peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
2001:1::1 65410 11 9 0 1 00:06:37 Established
(5) 在PE之間建立MP-IBGP對等體
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] ipv6-family vpnv6
[PE1-bgp-af-vpnv6] peer 3.3.3.9 enable
[PE1-bgp-af-vpnv6] quit
[PE1-bgp] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp] peer 1.1.1.9 as-number 100
[PE2-bgp] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp] ipv6-family vpnv6
[PE2-bgp-af-vpnv6] peer 1.1.1.9 enable
[PE2-bgp-af-vpnv6] quit
[PE2-bgp] quit
配置完成後,在PE設備上執行display bgp peer或display bgp vpnv6 all peer命令,可以看到PE之間的BGP對等體關係已建立,並達到Established狀態。
[PE1] display bgp peer
BGP local router ID : 1.1.1.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.9 100 2 6 0 0 00:00:12 Established
(6) 配置完成後的檢驗
在PE設備上執行display ipv6 routing-table vpn-instance命令,可以看到去往對端CE的路由。
以PE 1為例:
[PE1] display ipv6 routing-table vpn-instance vpn1
Routing Table :
Destinations : 3 Routes : 3
Destination: 2001:1::/96 Protocol : Direct
NextHop : 2001:1::2 Preference: 0
Interface : Vlan11 Cost : 0
Destination: 2001:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/96 Protocol : BGP4+
NextHop : ::FFFF:303:309 Preference: 0
Interface : NULL0 Cost : 0
[PE1] display ipv6 routing-table vpn-instance vpn2
Routing Table :
Destinations : 3 Routes : 3
Destination: 2001:3::/96 Protocol : Direct
NextHop : 2001:3::2 Preference: 0
Interface : Vlan12 Cost : 0
Destination: 2001:3::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:4::/96 Protocol : BGP4+
NextHop : ::FFFF:303:309 Preference: 0
Interface : NULL0 Cost : 0
同一VPN的CE能夠相互Ping通,不同VPN的CE不能相互Ping通。
例如:CE 1能夠Ping通CE 3(2001:3::1),但不能Ping通CE 4(2001:4::1)。
[CE1] ping ipv6 2001:3::1
PING 2001:3::1 : 56 data bytes, press CTRL_C to break
Reply from 2001:3::1
bytes=56 Sequence=1 hop limit=64 time = 1 ms
Reply from 2001:3::1
bytes=56 Sequence=2 hop limit=64 time = 1 ms
Reply from 2001:3::1
bytes=56 Sequence=3 hop limit=64 time = 1 ms
Reply from 2001:3::1
bytes=56 Sequence=4 hop limit=64 time = 1 ms
Reply from 2001:3::1
bytes=56 Sequence=5 hop limit=64 time = 1 ms
--- 2001:3::1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/1 ms
[CE1] ping ipv6 2001:4::1
PING 2001:4::1 : 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 2001:4::1 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
round-trip min/avg/max = 0/0/0 ms
· CE 1和CE 2屬於同一個VPN。
· CE 1通過AS100的PE 1接入,CE 2通過AS200的PE 2接入。
· 采用OptionA方式實現跨域的IPv6 MPLS L3VPN,即采用VRF-to-VRF方式管理VPN路由。
· 同一個AS內部的MPLS骨幹網使用OSPF作為IGP。
圖2-4 配置跨域VPN-OptionA方式組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
Vlan-int12 |
2001:1::1/96 |
CE 2 |
Vlan-int12 |
2001:2::1/96 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int12 |
2001:1::2/96 |
|
Vlan-int12 |
2001:2::2/96 |
|
Vlan-int11 |
172.1.1.2/24 |
|
Vlan-int11 |
162.1.1.2/24 |
ASBR-PE 1 |
Loop0 |
2.2.2.9/32 |
ASBR-PE 2 |
Loop0 |
3.3.3.9/32 |
|
Vlan-int11 |
172.1.1.1/24 |
|
Vlan-int11 |
162.1.1.1/24 |
|
Vlan-int12 |
2002:1::1/96 |
|
Vlan-int12 |
2002:1::2/96 |
(1) 在MPLS骨幹網上配置IGP協議,實現骨幹網內互通
本例中采用OSPF,具體配置步驟略。
需要將作為LSR ID的LoopBack接口的32位地址通過OSPF發布出去。
配置完成後,ASBR-PE與本AS的PE之間應能建立OSPF鄰居,執行display ospf peer命令可以看到鄰居達到FULL狀態,ASBR-PE與本AS的PE之間能學習到對方的Loopback地址。
ASBR-PE與本AS的PE之間能夠互相ping通。
(2) 在MPLS骨幹網上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1的MPLS基本能力,並在與ASBR-PE 1相連的接口上使能LDP。
<PE1> system-view
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] interface vlan-interface 11
[PE1-Vlan-interface11] mpls
[PE1-Vlan-interface11] mpls ldp
[PE1-Vlan-interface11] quit
# 配置ASBR-PE 1的MPLS基本能力,並在與PE 1相連的接口上使能LDP。
<ASBR-PE1> system-view
[ASBR-PE1] mpls lsr-id 2.2.2.9
[ASBR-PE1] mpls
[ASBR-PE1-mpls] quit
[ASBR-PE1] mpls ldp
[ASBR-PE1-mpls-ldp] quit
[ASBR-PE1] interface vlan-interface 11
[ASBR-PE1-Vlan-interface11] mpls
[ASBR-PE1-Vlan-interface11] mpls ldp
[ASBR-PE1-Vlan-interface11] quit
# 配置ASBR-PE 2的MPLS基本能力,並在與PE 2相連的接口上使能LDP。
<ASBR-PE2> system-view
[ASBR-PE2] mpls lsr-id 3.3.3.9
[ASBR-PE2] mpls
[ASBR-PE2-mpls] quit
[ASBR-PE2] mpls ldp
[ASBR-PE2-mpls-ldp] quit
[ASBR-PE2] interface vlan-interface 11
[ASBR-PE2-Vlan-interface11] mpls
[ASBR-PE2-Vlan-interface11] mpls ldp
[ASBR-PE2-Vlan-interface11] quit
# 配置PE 2的MPLS基本能力,並在與ASBR-PE 2相連的接口上使能LDP。
<PE2> system-view
[PE2] mpls lsr-id 4.4.4.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
[PE2] interface vlan-interface 11
[PE2-Vlan-interface11] mpls
[PE2-Vlan-interface11] mpls ldp
[PE2-Vlan-interface11] quit
上述配置完成後,同一AS的PE和ASBR-PE之間應該建立起LDP鄰居,在各設備上執行display mpls ldp session命令可以看到顯示結果中Status字段為“Operational”。
(3) 在PE設備上配置VPN實例,將CE接入PE
同一AS內的ASBR-PE與PE的VPN實例的VPN Target應能匹配,不同AS的PE的VPN實例的VPN Target則不需要匹配。
# 配置CE 1。
<CE1> system-view
[CE1] interface vlan-interface 12
[CE1-Vlan-interface12] ipv6 address 2001:1::1 96
[CE1-Vlan-interface12] quit
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1 both
[PE1-vpn-instance-vpn1] quit
[PE1] interface vlan-interface 12
[PE1-Vlan-interface12] ip binding vpn-instance vpn1
[PE1-Vlan-interface12] ipv6 address 2001:1::2 96
[PE1-Vlan-interface12] quit
# 配置CE 2。
<CE2> system-view
[CE2] interface vlan-interface 12
[CE2-Vlan-interface12] ipv6 address 2001:2::1 96
[CE2-Vlan-interface12] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance] route-distinguisher 200:2
[PE2-vpn-instance] vpn-target 100:1 both
[PE2-vpn-instance] quit
[PE2] interface vlan-interface 12
[PE2-Vlan-interface12] ip binding vpn-instance vpn1
[PE2-Vlan-interface12] ipv6 address 2001:2::2 96
[PE2-Vlan-interface12] quit
# 配置ASBR-PE 1:創建VPN實例,並將此實例綁定到連接ASBR-PE 2的接口(ASBR-PE 1認為ASBR-PE 2是自己的CE)。
[ASBR-PE1] ip vpn-instance vpn1
[ASBR-PE1-vpn-instance-vpn1] route-distinguisher 100:1
[ASBR-PE1-vpn-instance-vpn1] vpn-target 100:1 both
[ASBR-PE1-vpn-instance-vpn1] quit
[ASBR-PE1] interface vlan-interface 12
[ASBR-PE1-Vlan-interface12] ip binding vpn-instance vpn1
[ASBR-PE1-Vlan-interface12] ipv6 address 2002:1::1 96
[ASBR-PE1-Vlan-interface12] quit
# 配置ASBR-PE 2:創建VPN實例,並將此實例綁定到連接ASBR-PE 1的接口(ASBR-PE 2認為ASBR-PE 1是自己的CE)。
[ASBR-PE2] ip vpn-instance vpn1
[ASBR-PE2-vpn-vpn-vpn1] route-distinguisher 200:1
[ASBR-PE2-vpn-vpn-vpn1] vpn-target 100:1 both
[ASBR-PE2-vpn-vpn-vpn1] quit
[ASBR-PE2] interface vlan-interface 12
[ASBR-PE2-Vlan-interface12] ip binding vpn-instance vpn1
[ASBR-PE2-Vlan-interface12] ipv6 address 2002:1::2 96
[ASBR-PE2-Vlan-interface12] quit
上述配置完成後,在各PE設備上執行display ip vpn-instance命令能正確顯示VPN實例配置。
各PE能ping通CE。ASBR-PE之間也能互相ping通。
(4) 在PE與CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
[CE1] bgp 65001
[CE1-bgp] ipv6-family
[CE1-bgp-af-ipv6] peer 2001:1::2 as-number 100
[CE1-bgp-af-ipv6] import-route direct
[CE1-bgp-af-ipv6] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp] ipv6-family vpn-instance vpn1
[PE1-bgp-ipv6-vpn1] peer 2001:1::1 as-number 65001
[PE1-bgp-ipv6-vpn1] import-route direct
[PE1-bgp-ipv6-vpn1] quit
[PE1-bgp] quit
# 配置CE 2。
[CE2] bgp 65002
[CE1-bgp] ipv6-family
[CE2-bgp-af-ipv6] peer 2001:2::2 as-number 200
[CE2-bgp-af-ipv6] import-route direct
[CE2-bgp-af-ipv6] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp] ipv6-family vpn-instance vpn1
[PE2-bgp-ipv6-vpn1] peer 2001:2::1 as-number 65002
[PE2-bgp-ipv6-vpn1] import-route direct
[PE2-bgp-ipv6-vpn1] quit
[PE2-bgp] quit
(5) PE與本AS的ASBR-PE之間建立IBGP對等體,ASBR-PE之間建立EBGP對等體
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp] peer 2.2.2.9 as-number 100
[PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp] ipv6-family vpnv6
[PE1-bgp-af-vpnv6] peer 2.2.2.9 enable
[PE1-bgp-af-vpnv6] quit
[PE1-bgp] quit
# 配置ASBR-PE 1。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp] ipv6-family vpn-instance vpn1
[ASBR-PE1-bgp-ipv6-vpn1] peer 2002:1::2 as-number 200
[ASBR-PE1-bgp-ipv6-vpn1] quit
[ASBR-PE1-bgp] peer 1.1.1.9 as-number 100
[ASBR-PE1-bgp] peer 1.1.1.9 connect-interface loopback 0
[ASBR-PE1-bgp] ipv6-family vpnv6
[ASBR-PE1-bgp-af-vpnv6] peer 1.1.1.9 enable
[ASBR-PE1-bgp-af-vpnv6] quit
[ASBR-PE1-bgp] quit
# 配置ASBR-PE 2。
[ASBR-PE2] bgp 200
[ASBR-PE2-bgp] ipv6-family vpn-instance vpn1
[ASBR-PE2-bgp-ipv6-vpn1] peer 2002:1::1 as-number 100
[ASBR-PE2-bgp-ipv6-vpn1] quit
[ASBR-PE2-bgp] peer 4.4.4.9 as-number 200
[ASBR-PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[ASBR-PE2-bgp] ipv6-family vpnv6
[ASBR-PE2-bgp-af-vpnv6] peer 4.4.4.9 enable
[ASBR-PE2-bgp-af-vpnv6] quit
[ASBR-PE2-bgp] quit
# 配置PE 2。
[PE2] bgp 200
[PE2-bgp] peer 3.3.3.9 as-number 200
[PE2-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE2-bgp] ipv6-family vpnv6
[PE2-bgp-af-vpnv6] peer 3.3.3.9 enable
[PE2-bgp-af-vpnv6] quit
[PE2-bgp] quit
(6) 配置完成後的檢驗
上述配置完成後,CE之間能學習到對方的接口路由,CE 1和CE 2能夠相互ping通。
· Site 1和Site 2屬於同一個VPN,Site 1通過AS 100的PE 1接入,Site 2通過AS 600的PE 2接入;
· 同一自治係統內的PE設備之間運行IS-IS作為IGP;
· PE 1與ASBR-PE 1間通過MP-IBGP交換帶標簽的IPv4路由;
· PE 2與ASBR-PE 2間通過MP-IBGP交換帶標簽的IPv4路由;
· PE 1與PE 2建立MP-EBGP對等體;
· ASBR-PE 1和ASBR-PE 2上分別配置路由策略,對從對方接收的路由壓入標簽;
· ASBR-PE 1與ASBR-PE 2間通過MP-EBGP交換帶標簽的IPv4路由。
圖2-5 IPv6跨域VPN-OptionC方式組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
PE 1 |
Loop0 |
2.2.2.9/32 |
PE 2 |
Loop0 |
5.5.5.9/32 |
|
Loop1 |
2001:1::1/128 |
|
Loop1 |
2001:1::2/128 |
|
Vlan-int11 |
1.1.1.2/8 |
|
Vlan-int11 |
9.1.1.2/8 |
ASBR-PE 1 |
Loop0 |
3.3.3.9/32 |
ASBR-PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int11 |
1.1.1.1/8 |
|
Vlan-int11 |
9.1.1.1/8 |
|
Vlan-int12 |
11.0.0.2/8 |
|
Vlan-int12 |
11.0.0.1/8 |
(1) 配置PE 1
# 在PE 1上運行IS-IS。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] network-entity 10.111.111.111.111.00
[PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE1] mpls lsr-id 2.2.2.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
# 配置接口Vlan-interface11,在接口上運行IS-IS,並使能MPLS和LDP。
[PE1] interface vlan-interface 11
[PE1-Vlan-interface11] ip address 1.1.1.2 255.0.0.0
[PE1-Vlan-interface11] isis enable 1
[PE1-Vlan-interface11] mpls
[PE1-Vlan-interface11] mpls ldp
[PE1-Vlan-interface11] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 2.2.2.9 32
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
# 創建VPN實例,名稱為vpn1,為其配置RD和VPN Target屬性。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 11:11
[PE1-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE1-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE1-vpn-instance-vpn1] quit
# 創建Loopback1接口,並將此接口綁定到vpn1。
[PE1] interface loopback 1
[PE1-LoopBack1] ip binding vpn-instance vpn1
[PE1-LoopBack1] ipv6 address 2001:1::1 128
[PE1-LoopBack1] quit
# 在PE 1上運行BGP。
[PE1] bgp 100
# 配置PE 1向IBGP對等體3.3.3.9發布標簽路由及從3.3.3.9接收標簽路由的能力。
[PE1-bgp] peer 3.3.3.9 as-number 100
[PE1-bgp] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp] peer 3.3.3.9 label-route-capability
# 配置PE 1到EBGP對等體5.5.5.9的最大跳數為10。
[PE1-bgp] peer 5.5.5.9 as-number 600
[PE1-bgp] peer 5.5.5.9 connect-interface loopback 0
[PE1-bgp] peer 5.5.5.9 ebgp-max-hop 10
# 配置對等體5.5.5.9作為VPNv6對等體。
[PE1-bgp] ipv6-family vpnv6
[PE1-bgp-af-vpnv6] peer 5.5.5.9 enable
[PE1-bgp-af-vpnv6] quit
# 將直連路由引入vpn1的路由表。
[PE1-bgp] ipv6-family vpn-instance vpn1
[PE1-bgp-ipv6-vpn1] import-route direct
[PE1-bgp-ipv6-vpn1] quit
[PE1-bgp] quit
(2) 配置ASBR-PE1
# 在ASBR-PE 1上運行IS-IS。
<ASBR-PE1> system-view
[ASBR-PE1] isis 1
[ASBR-PE1-isis-1] network-entity 10.222.222.222.222.00
[ASBR-PE1-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE1] mpls lsr-id 3.3.3.9
[ASBR-PE1] mpls
[ASBR-PE1-mpls] quit
[ASBR-PE1] mpls ldp
[ASBR-PE1-mpls-ldp] quit
# 配置接口Vlan-interface11,在接口上運行IS-IS,並使能MPLS和LDP。
[ASBR-PE1] interface vlan-interface 11
[ASBR-PE1-Vlan-interface11] ip address 1.1.1.1 255.0.0.0
[ASBR-PE1-Vlan-interface11] isis enable 1
[ASBR-PE1-Vlan-interface11] mpls
[ASBR-PE1-Vlan-interface11] mpls ldp
[ASBR-PE1-Vlan-interface11] quit
# 配置接口Vlan-interface12,並在接口上使能MPLS。
[ASBR-PE1] interface vlan-interface 12
[ASBR-PE1-Vlan-interface12] ip address 11.0.0.2 255.0.0.0
[ASBR-PE1-Vlan-interface12] mpls
[ASBR-PE1-Vlan-interface12] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[ASBR-PE1] interface loopback 0
[ASBR-PE1-LoopBack0] ip address 3.3.3.9 32
[ASBR-PE1-LoopBack0] isis enable 1
[ASBR-PE1-LoopBack0] quit
# 創建路由策略。
[ASBR-PE1] route-policy policy1 permit node 1
[ASBR-PE1-route-policy1] apply mpls-label
[ASBR-PE1-route-policy1] quit
[ASBR-PE1] route-policy policy2 permit node 1
[ASBR-PE1-route-policy2] if-match mpls-label
[ASBR-PE1-route-policy2] apply mpls-label
[ASBR-PE1-route-policy2] quit
# 在ASBR-PE 1上運行BGP,引入IS-IS進程1的路由。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp] import-route isis 1
# 對向IBGP對等體2.2.2.9發布的路由應用已配置的路由策略policy2。
[ASBR-PE1-bgp] peer 2.2.2.9 as-number 100
[ASBR-PE1-bgp] peer 2.2.2.9 route-policy policy2 export
# 向IBGP對等體2.2.2.9發布標簽路由及從2.2.2.9接收標簽路由的能力。
[ASBR-PE1-bgp] peer 2.2.2.9 connect-interface loopback 0
[ASBR-PE1-bgp] peer 2.2.2.9 label-route-capability
# 對向EBGP對等體11.0.0.1發布的路由應用已配置的路由策略policy1。
[ASBR-PE1-bgp] peer 11.0.0.1 as-number 600
[ASBR-PE1-bgp] peer 11.0.0.1 route-policy policy1 export
# 向EBGP對等體11.0.0.1發布標簽路由及從11.0.0.1接收標簽路由的能力。
[ASBR-PE1-bgp] peer 11.0.0.1 label-route-capability
[ASBR-PE1-bgp] quit
(3) 配置ASBR-PE 2
# 在ASBR-PE 2上運行IS-IS。
<ASBR-PE2> system-view
[ASBR-PE2] isis 1
[ASBR-PE2-isis-1] network-entity 10.333.333.333.333.00
[ASBR-PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[ASBR-PE2] mpls lsr-id 4.4.4.9
[ASBR-PE2] mpls
[ASBR-PE2-mpls] quit
[ASBR-PE2] mpls ldp
[ASBR-PE2-mpls-ldp] quit
# 配置接口Vlan-interface11,在接口上運行IS-IS,並在接口上使能MPLS和LDP。
[ASBR-PE2] interface vlan-interface 11
[ASBR-PE2-Vlan-interface11] ip address 9.1.1.1 255.0.0.0
[ASBR-PE2-Vlan-interface11] isis enable 1
[ASBR-PE2-Vlan-interface11] mpls
[ASBR-PE2-Vlan-interface11] mpls ldp
[ASBR-PE2-Vlan-interface11] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[ASBR-PE2] interface loopback 0
[ASBR-PE2-LoopBack0] ip address 4.4.4.9 32
[ASBR-PE2-LoopBack0] isis enable 1
[ASBR-PE2-LoopBack0] quit
# 配置接口Vlan-interface12,在接口上使能MPLS。
[ASBR-PE2] interface vlan-interface 12
[ASBR-PE2-Vlan-interface12] ip address 11.0.0.1 255.0.0.0
[ASBR-PE2-Vlan-interface12] mpls
[ASBR-PE2-Vlan-interface12] quit
# 創建路由策略。
[ASBR-PE2] route-policy policy1 permit node 1
[ASBR-PE2-route-policy1] apply mpls-label
[ASBR-PE2-route-policy1] quit
[ASBR-PE2] route-policy policy2 permit node 1
[ASBR-PE2-route-policy2] if-match mpls-label
[ASBR-PE2-route-policy2] apply mpls-label
[ASBR-PE2-route-policy2] quit
# 在ASBR-PE 2上運行BGP,引入IS-IS進程1的路由。
[ASBR-PE2] bgp 600
[ASBR-PE2-bgp] import-route isis 1
# 向IBGP對等體5.5.5.9發布標簽路由及從5.5.5.9接收標簽路由的能力。
[ASBR-PE2-bgp] peer 5.5.5.9 as-number 600
[ASBR-PE2-bgp] peer 5.5.5.9 connect-interface loopback 0
[ASBR-PE2-bgp] peer 5.5.5.9 label-route-capability
# 對向IBGP對等體5.5.5.9發布的路由應用已配置的路由策略policy2。
[ASBR-PE2-bgp] peer 5.5.5.9 route-policy policy2 export
# 對向EBGP對等體11.0.0.2發布的路由應用已配置的路由策略policy1。
[ASBR-PE2-bgp] peer 11.0.0.2 as-number 100
[ASBR-PE2-bgp] peer 11.0.0.2 route-policy policy1 export
# 向EBGP對等體11.0.0.2發布標簽路由及從11.0.0.2接收標簽路由的能力。
[ASBR-PE2-bgp] peer 11.0.0.2 label-route-capability
[ASBR-PE2-bgp] quit
(4) 配置PE 2
# 在PE 2上運行IS-IS。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] network-entity 10.444.444.444.444.00
[PE2-isis-1] quit
# 配置LSR ID,使能MPLS和LDP。
[PE2] mpls lsr-id 5.5.5.9
[PE2] mpls
[PE2-mpls] quit
[PE2] mpls ldp
[PE2-mpls-ldp] quit
# 配置接口Vlan-interface11,在接口上運行IS-IS,並使能MPLS和LDP。
[PE2] interface vlan-interface 11
[PE2-Vlan-interface11] ip address 9.1.1.2 255.0.0.0
[PE2-Vlan-interface11] isis enable 1
[PE2-Vlan-interface11] mpls
[PE2-Vlan-interface11] mpls ldp
[PE2-Vlan-interface11] quit
# 創建Loopback0接口,在接口上運行IS-IS。
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 5.5.5.9 32
[PE2-LoopBack0] isis enable 1
[PE2-LoopBack0] quit
# 創建VPN實例,名稱為vpn1,為其配置RD和VPN Target屬性。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 11:11
[PE2-vpn-instance-vpn1] vpn-target 3:3 import-extcommunity
[PE2-vpn-instance-vpn1] vpn-target 3:3 export-extcommunity
[PE2-vpn-instance-vpn1] quit
# 創建Loopback1接口,並將此接口綁定到vpn1。
[PE2] interface loopback 1
[PE2-LoopBack1] ip binding vpn-instance vpn1
[PE2-LoopBack1] ipv6 address 2001:1::2 128
[PE2-LoopBack1] quit
# 在PE 2上運行BGP。
[PE2] bgp 600
# 配置PE 2向IBGP對等體4.4.4.9發布標簽路由及從4.4.4.9接收標簽路由的能力。
[PE2-bgp] peer 4.4.4.9 as-number 600
[PE2-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE2-bgp] peer 4.4.4.9 label-route-capability
# 配置PE 2到EBGP對等體2.2.2.9的最大跳數為10。
[PE2-bgp] peer 2.2.2.9 as-number 100
[PE2-bgp] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp] peer 2.2.2.9 ebgp-max-hop 10
# 配置對等體2.2.2.9作為VPNv6對等體。
[PE2-bgp] ipv6-family vpnv6
[PE2-bgp-af-vpnv6] peer 2.2.2.9 enable
[PE2-bgp-af-vpnv6] quit
# 將直連路由引入vpn1的路由表。
[PE2-bgp] ipv6-family vpn-instance vpn1
[PE2-bgp-ipv6-vpn1] import-route direct
[PE2-bgp-ipv6-vpn1] quit
[PE2-bgp] quit
配置完成後,在PE2上對PE1進行Ping操作,可以Ping通:
[PE2] ping ipv6 –vpn-instance vpn1 2001:1::1
PING 2001:1::1 : 56 data bytes, press CTRL_C to break
Reply from 2001:1::1
bytes=56 Sequence=1 hop limit=64 time = 1 ms
Reply from 2001:1::1
bytes=56 Sequence=2 hop limit=64 time = 1 ms
Reply from 2001:1::1
bytes=56 Sequence=3 hop limit=64 time = 1 ms
Reply from 2001:1::1
bytes=56 Sequence=4 hop limit=64 time = 1 ms
Reply from 2001:1::1
bytes=56 Sequence=5 hop limit=64 time = 1 ms
--- 2001:1::1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/1 ms
在PE1上對PE2進行Ping操作,也可以Ping通:
[PE1] ping ipv6 –vpn-instance vpn1 2001:1::2
PING 2001:1::2 : 56 data bytes, press CTRL_C to break
Reply from 2001:1::2
bytes=56 Sequence=1 hop limit=64 time = 1 ms
Reply from 2001:1::2
bytes=56 Sequence=2 hop limit=64 time = 1 ms
Reply from 2001:1::2
bytes=56 Sequence=3 hop limit=64 time = 1 ms
Reply from 2001:1::2
bytes=56 Sequence=4 hop limit=64 time = 1 ms
Reply from 2001:1::2
bytes=56 Sequence=5 hop limit=64 time = 1 ms
--- 2001:1::2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/1 ms
在圖2-6中:
· PE 1和PE 2是一級運營商骨幹網的PE設備,為二級運營商提供VPN服務;
· CE 1和CE 2是同一個二級運營商的設備,作為CE接入一級運營商的骨幹網;
· PE 3和PE 4是二級運營商的PE設備,為二級運營商的客戶提供IPv6 MPLS L3VPN服務;
· CE 3和CE 4是二級運營商的客戶。
配置運營商的運營商關鍵在於配置兩類路由的交換:
· 二級運營商VPN內部路由在一級運營商骨幹網上的交換:一級運營商將二級運營商作為自己的CE接入;
· 二級運營商本身客戶的VPN路由在二級運營商PE設備間的交換:需要在二級運營商PE設備(PE 3和PE 4)間建立MP-IBGP對等體關係。
圖2-6 配置Carriers’ carriers組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 3 |
Vlan-int11 |
2001:1::1/96 |
CE 4 |
Vlan-int11 |
2001:2::1/96 |
PE 3 |
Loop0 |
1.1.1.9/32 |
PE 4 |
Loop0 |
6.6.6.9/32 |
|
Vlan-int11 |
2001:1::2/96 |
|
Vlan-int11 |
2001:2::2/96 |
|
Vlan-int12 |
10.1.1.1/24 |
|
Vlan-int12 |
20.1.1.2/24 |
CE 1 |
Loop0 |
2.2.2.9/32 |
CE 2 |
Loop0 |
5.5.5.9/32 |
|
Vlan-int12 |
10.1.1.2/24 |
|
Vlan-int11 |
21.1.1.2/24 |
|
Vlan-int11 |
11.1.1.1/24 |
|
Vlan-int12 |
20.1.1.1/24 |
PE 1 |
Loop0 |
3.3.3.9/32 |
PE 2 |
Loop0 |
4.4.4.9/32 |
|
Vlan-int11 |
11.1.1.2/24 |
|
Vlan-int12 |
30.1.1.2/24 |
|
Vlan-int12 |
30.1.1.1/24 |
|
Vlan-int11 |
21.1.1.1/24 |
(1) 配置一級運營商骨幹網的MPLS L3VPN,使用IS-IS作為骨幹網的IGP協議,PE 1和PE 2之間使能LDP,並建立MP-IBGP對等體關係
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 3.3.3.9 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] isis 1
[PE1-isis-1] network-entity 10.0000.0000.0000.0004.00
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] isis enable 1
[PE1-LoopBack0] quit
[PE1] interface vlan-interface 12
[PE1-Vlan-interface12] ip address 30.1.1.1 24
[PE1-Vlan-interface12] isis enable 1
[PE1-Vlan-interface12] mpls
[PE1-Vlan-interface12] mpls ldp
[PE1-Vlan-interface12] mpls ldp transport-address interface
[PE1-Vlan-interface12] quit
[PE1] bgp 100
[PE1-bgp] peer 4.4.4.9 as-number 100
[PE1-bgp] peer 4.4.4.9 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 4.4.4.9 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
PE 2的配置與PE 1類似,配置過程省略。
配置完成後,在PE 1或PE 2上執行display mpls ldp session命令可以看到LDP會話建立成功;執行display bgp peer命令可以看到BGP對等體關係已建立,並達到Established狀態;執行display isis peer命令可以看到IS-IS鄰居關係已建立,狀態為up。
以PE 1為例:
[PE1] display mpls ldp session
LDP Session(s) in Public Network
Total number of sessions: 1
----------------------------------------------------------------
Peer-ID Status LAM SsnRole FT MD5 KA-Sent/Rcv
----------------------------------------------------------------
4.4.4.9:0 Operational DU Active Off Off 378/378
----------------------------------------------------------------
LAM : Label Advertisement Mode FT : Fault Tolerance
[PE1] display bgp peer
BGP local router ID : 3.3.3.9
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
4.4.4.9 100 162 145 0 0 02:12:47 Established
[PE1] display isis peer
Peer information for ISIS(1)
----------------------------
System Id Interface Circuit Id State HoldTime Type PRI
0000.0000.0005 Vlan-interface12 001 Up 29s L1L2 --
(2) 配置二級運營商網絡:使用IS-IS作為IGP協議,PE 3和CE 1、PE 4和CE 2之間分別使能LDP
# 配置PE 3。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 1.1.1.9 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 1.1.1.9
[PE3] mpls
[PE3-mpls] quit
[PE3] mpls ldp
[PE3-mpls-ldp] quit
[PE3] isis 2
[PE3-isis-2] network-entity 10.0000.0000.0000.0001.00
[PE3-isis-2] quit
[PE3] interface loopback 0
[PE3-LoopBack0] isis enable 2
[PE3-LoopBack0] quit
[PE3] interface vlan-interface 12
[PE3-Vlan-interface12] ip address 10.1.1.1 24
[PE3-Vlan-interface12] isis enable 2
[PE3-Vlan-interface12] mpls
[PE3-Vlan-interface12] mpls ldp
[PE3-Vlan-interface12] mpls ldp transport-address interface
[PE3-Vlan-interface12] quit
# 配置CE 1。
<CE1> system-view
[CE1] interface loopback 0
[CE1-LoopBack0] ip address 2.2.2.9 32
[CE1-LoopBack0] quit
[CE1] mpls lsr-id 2.2.2.9
[CE1] mpls
[CE1-mpls] quit
[CE1] mpls ldp
[CE1-mpls-ldp] quit
[CE1] isis 2
[CE1-isis-2] network-entity 10.0000.0000.0000.0002.00
[CE1-isis-2] quit
[CE1] interface loopback 0
[CE1-LoopBack0] isis enable 2
[CE1-LoopBack0] quit
[CE1] interface vlan-interface 12
[CE1-Vlan-interface12] ip address 10.1.1.2 24
[CE1-Vlan-interface12] isis enable 2
[CE1-Vlan-interface12] mpls
[CE1-Vlan-interface12] mpls ldp
[CE1-Vlan-interface12] mpls ldp transport-address interface
[CE1-Vlan-interface12] quit
配置完成後,PE 3和CE 1之間應能建立LDP和IS-IS鄰居關係。
PE 4和CE 2之間的配置與PE 3和CE 1之間的配置類似,配置過程省略。
(3) 配置二級運營商CE接入到一級運營商的PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 200:1
[PE1-vpn-instance-vpn1] vpn-target 1:1
[PE1-vpn-instance-vpn1] quit
[PE1] mpls ldp vpn-instance vpn1
[PE1-mpls-ldp-vpn-instance-vpn1] quit
[PE1] isis 2 vpn-instance vpn1
[PE1-isis-2] network-entity 10.0000.0000.0000.0003.00
[PE1-isis-2] import-route bgp allow-ibgp
[PE1-isis-2] quit
[PE1] interface vlan-interface11
[PE1-Vlan-interface11] ip binding vpn-instance vpn1
[PE1-Vlan-interface11] ip address 11.1.1.2 24
[PE1-Vlan-interface11] isis enable 2
[PE1-Vlan-interface11] mpls
[PE1-Vlan-interface11] mpls ldp
[PE1-Vlan-interface11] mpls ldp transport-address interface
[PE1-Vlan-interface11] quit
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] import isis 2
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# 配置CE 1。
[CE1] interface vlan-interface11
[CE1-Vlan-interface11] ip address 11.1.1.1 24
[CE1-Vlan-interface11] isis enable 2
[CE1-Vlan-interface11] mpls
[CE1-Vlan-interface11] mpls ldp
[CE1-Vlan-interface11] mpls ldp transport-address interface
[CE1-Vlan-interface11] quit
配置完成後,PE 1和CE 1之間應能建立LDP和IS-IS鄰居關係。
PE 2和CE 2之間的配置與PE 1和CE 1之間的配置類似,配置過程省略。
(4) 配置二級運營商的客戶接入PE
# 配置CE 3。
<CE3> system-view
[CE3] interface vlan-interface11
[CE3-Vlan-interface11] ipv6 address 2001:1::1 96
[CE3-Vlan-interface11] quit
[CE3] bgp 65410
[CE3-bgp] ipv6-family
[CE3-bgp-af-ipv6] peer 2001:1::2 as-number 100
[CE3-bgp-af-ipv6] import-route direct
[CE3-bgp-af-ipv6] quit
# 配置PE 3。
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 1:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface Vlan-interface11
[PE3-Vlan-interface11] ip binding vpn-instance vpn1
[PE3-Vlan-interface11] ipv6 address 2001:1::2 96
[PE3-Vlan-interface11] quit
[PE3] bgp 100
[PE3-bgp] ipv6-family vpn-instance vpn1
[PE3-bgp-ipv6-vpn1] peer 2001:1::1 as-number 65410
[PE3-bgp-ipv6-vpn1] import-route direct
[PE3-bgp-ipv6-vpn1] quit
[PE3-bgp] quit
PE 4和CE 4之間的配置與PE 3和CE 3之間的配置類似,配置過程省略。
(5) 在二級運營商的PE之間建立MP-IBGP對等體關係,交換二級運營商的客戶的VPN路由
# 配置PE 3。
[PE3] bgp 100
[PE3-bgp] peer 6.6.6.9 as-number 100
[PE3-bgp] peer 6.6.6.9 connect-interface loopback 0
[PE3-bgp] ipv6-family vpnv6
[PE3-bgp-af-vpnv6] peer 6.6.6.9 enable
[PE3-bgp-af-vpnv6] quit
[PE3-bgp] quit
PE 4的配置與PE 3類似,配置過程省略。
(6) 配置完成後的檢驗
所有配置完成後,在PE 1和PE 2上執行display ip routing-table命令,可以看到PE 1和PE 2的公網路由表中隻有一級運營商網絡的路由。以PE 1為例:
[PE1] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.9/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.9/32 ISIS 15 10 30.1.1.2 Vlan12
30.1.1.0/24 Direct 0 0 30.1.1.1 Vlan12
30.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
30.1.1.2/32 Direct 0 0 30.1.1.2 Vlan12
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 1和PE 2上執行display ip routing-table vpn-instance命令,可以看到VPN路由表中有二級運營商網絡的內部路由。執行display ipv6 routing-table vpn-instance命令,可以看到沒有二級運營商維護的VPN路由。以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 20 11.1.1.1 Vlan11
2.2.2.9/32 ISIS 15 10 11.1.1.1 Vlan11
5.5.5.9/32 BGP 255 0 4.4.4.9 NULL0
6.6.6.9/32 BGP 255 0 4.4.4.9 NULL0
10.1.1.0/24 ISIS 15 20 11.1.1.1 Vlan11
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan11
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 Vlan11
20.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.0/24 BGP 255 0 4.4.4.9 NULL0
21.1.1.2/32 BGP 255 0 4.4.4.9 NULL0
在CE 1和CE 2上執行display ip routing-table命令,可以看到公網路由表中有二級運營商網絡的內部路由。執行display ipv6 routing-table vpn-instance命令可以看到沒有二級運營商維護的VPN路由。以CE 1為例:
[CE1] display ip routing-table
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 ISIS 15 10 10.1.1.2 Vlan12
2.2.2.9/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.9/32 ISIS 15 74 11.1.1.2 Vlan11
6.6.6.9/32 ISIS 15 74 11.1.1.2 Vlan11
10.1.1.0/24 Direct 0 0 10.1.1.2 Vlan12
10.1.1.1/32 Direct 0 0 10.1.1.1 Vlan12
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.0/24 Direct 0 0 11.1.1.1 Vlan11
11.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
11.1.1.2/32 Direct 0 0 11.1.1.2 Vlan11
20.1.1.0/24 ISIS 15 74 11.1.1.2 Vlan11
21.1.1.0/24 ISIS 15 74 11.1.1.2 Vlan11
21.1.1.2/32 ISIS 15 74 11.1.1.2 Vlan11
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
在PE 3和PE 4上執行display ip routing-table命令,可以看到公網路由表中有二級運營商網絡的內部路由。以PE 3為例:
[PE3] display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.9/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.9/32 ISIS 15 10 10.1.1.2 Vlan12
5.5.5.9/32 ISIS 15 84 10.1.1.2 Vlan12
6.6.6.9/32 ISIS 15 84 10.1.1.2 Vlan12
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan12
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.2/32 Direct 0 0 10.1.1.2 Vlan12
11.1.1.0/24 ISIS 15 20 10.1.1.2 Vlan12
20.1.1.0/24 ISIS 15 84 10.1.1.2 Vlan12
21.1.1.0/24 ISIS 15 84 10.1.1.2 Vlan12
21.1.1.2/32 ISIS 15 84 10.1.1.2 Vlan12
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
PE 3和PE 4可以相互Ping通:
[PE3] ping 20.1.1.2
PING 20.1.1.2: 56 data bytes, press CTRL_C to break
Reply from 20.1.1.2: bytes=56 Sequence=1 ttl=252 time=127 ms
Reply from 20.1.1.2: bytes=56 Sequence=2 ttl=252 time=97 ms
Reply from 20.1.1.2: bytes=56 Sequence=3 ttl=252 time=83 ms
Reply from 20.1.1.2: bytes=56 Sequence=4 ttl=252 time=70 ms
Reply from 20.1.1.2: bytes=56 Sequence=5 ttl=252 time=60 ms
--- 20.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 60/87/127 ms
CE 3和CE 4可以互相Ping通。
[CE3] ping ipv6 2001:2::1
PING 2001:2::1 : 56 data bytes, press CTRL_C to break
Reply from 2001:2::1
bytes=56 Sequence=1 hop limit=64 time = 1 ms
Reply from 2001:2::1
bytes=56 Sequence=2 hop limit=64 time = 1 ms
Reply from 2001:2::1
bytes=56 Sequence=3 hop limit=64 time = 1 ms
Reply from 2001:2::1
bytes=56 Sequence=4 hop limit=64 time = 1 ms
Reply from 2001:2::1
bytes=56 Sequence=5 hop limit=64 time = 1 ms
--- 2001:2::1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/1 ms
· MCE設備通過Vlan-interface10接口(IPv6地址為2001:1::1/96)連接到私網地址範圍為2012:1::/64的VPN 1;通過Vlan-interface20接口(IPv6地址為2002:1::1/96)連接到私網地址範圍為2012::/64的VPN 2,VPN 2內運行RIPng路由協議。
· 要求MCE設備能夠將VPN之間的路由隔離,並通過OSPFv3將各VPN的路由發布到PE 1。
圖2-7 配置MCE組網圖
為區分設備,假設MCE係統名為“MCE”,VPN 1和VPN 2的邊緣設備分別名為“VR1”和“VR2”,PE 1係統名為“PE1”。
(1) 在MCE和PE 1上配置VPN實例
# 在MCE設備上配置VPN實例,名稱分別為VPN1和VPN2,RD分別取值為10:1和20:1,VPN Target取值與RD取相同數值,Export和Import均取此值。
<MCE> system-view
[MCE] ip vpn-instance vpn1
[MCE-vpn-instance-vpn1] route-distinguisher 10:1
[MCE-vpn-instance-vpn1] vpn-target 10:1
[MCE-vpn-instance-vpn1] quit
[MCE] ip vpn-instance vpn2
[MCE-vpn-instance-vpn2] route-distinguisher 20:1
[MCE-vpn-instance-vpn2] vpn-target 20:1
[MCE-vpn-instance-vpn2] quit
# 創建VLAN10,將端口GigabitEthernet3/0/1加入VLAN 10,並創建Vlan-interface10接口。
[MCE] vlan 10
[MCE-vlan10] port GigabitEthernet 3/0/1
[MCE-vlan10] quit
# 配置Vlan-interface10接口與VPN 1實例vpn1綁定,並配置接口的IPv6地址。
[MCE] interface vlan-interface 10
[MCE-Vlan-interface10] ip binding vpn-instance vpn1
[MCE-Vlan-interface10] ipv6 address 2001:1::1 64
[MCE-Vlan-interface10] quit
# 使用類似步驟配置VLAN20,將端口GigabitEthernet3/0/2加入VLAN 20,配置接口與VPN實例 vpn2綁定,並配置接口的IPv6地址。
[MCE] vlan 20
[MCE-vlan20] port GigabitEthernet 3/0/2
[MCE-vlan20] quit
[MCE] interface vlan-interface 20
[MCE-Vlan-interface20] ip binding vpn-instance vpn2
[MCE-Vlan-interface20] ipv6 address 2002:1::1 64
[MCE-Vlan-interface20] quit
# 在PE 1上配置VPN實例,名稱分別為VPN1和VPN2,RD分別取值為30:1和40:1,VPN Target取值分別為10:1和20:1,Export和Import均取此值。
<PE1> system-view
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 30:1
[PE1-vpn-instance-vpn1] vpn-target 10:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 40:1
[PE1-vpn-instance-vpn2] vpn-target 20:1
[PE1-vpn-instance-vpn2] quit
(2) MCE與Site間路由配置
MCE與VPN 1直接相連,且VPN 1內未使用路由協議,因此可以使用IPv6靜態路由進行配置。
# 配置VR1與MCE連接的接口地址為2001:1::2/64,連接VPN 1接口的地址為2012:1::2/64。向VLAN中增加端口和接口IP地址的配置過程省略。
# 在VR1上配置缺省路由,指定出方向報文的下一跳地址為2001:1::1。
<VR1> system-view
[VR1] ipv6 route-static :: 0 2001:1::1
# 在MCE上指定IPv6靜態路由,去往2012:1::/64網段的報文,下一跳地址為2001:1::2,並將此路由與VPN 1實例綁定。
[MCE] ipv6 route-static vpn-instance vpn1 2012:1:: 64 vpn-instance vpn1 2001:1::2
# VPN 2內運行RIPng,在MCE上配置RIPng進程20,並與VPN實例vpn2綁定,以便將VPN 2內的路由學習到VPN實例vpn2的路由表中。
[MCE] ripng 20 vpn-instance vpn2
# 配置RIPng發布2002:1::/64網段路由。
[MCE] interface vlan-interface 20
[MCE-Vlan-interface20] ripng 20 enable
[MCE-Vlan-interface20] quit
# 在VR 2上,配置與MCE連接的接口地址為2002:1::2/64,連接VPN 2接口的地址為2012::2/64(配置過程略)。
# 在VR 2上配置RIPng發布2012::/64和2002:1::/64網段路由。
<VR2> system-view
[VR2] ripng 20
[VR2-ripng-20] quit
[VR2] interface vlan-interface 20
[VR2-Vlan-interface20] ripng 20 enable
[VR2-Vlan-interface20] quit
[VR2] interface vlan-interface 21
[VR2-Vlan-interface21] ripng 20 enable
[VR2-Vlan-interface21] quit
# 在MCE上查看VPN實例vpn1和vpn2的路由信息。
[MCE] display ipv6 routing-table vpn-instance vpn1
Routing Table : vpn1
Destinations : 5 Routes : 5
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/64 Protocol : Direct
NextHop : 2001:1::1 Preference: 0
Interface : Vlan10 Cost : 0
Destination: 2001:1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012:1::/64 Protocol : Static
NextHop : 2001:1::2 Preference: 60
Interface : Vlan10 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
[MCE] display ipv6 routing-table vpn-instance vpn2
Routing Table : vpn2
Destinations : 5 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2002:1::/64 Protocol : Direct
NextHop : 2002:1::1 Preference: 0
Interface : Vlan20 Cost : 0
Destination: 2002:1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012::/64 Protocol : RIPng
NextHop : FE80::200:5EFF:FE01:1C03 Preference: 100
Interface : Vlan20 Cost : 1
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
可以看到,MCE已經通過RIPng學習到了VPN 2內的私網路由,並與VPN 1內的路由信息分別維護在兩個路由表內,有效進行了隔離。
(3) MCE與PE間路由配置
# MCE使用GigabitEthernet3/0/3端口連接到PE 1的GigabitEthernet3/0/1端口,需要配置這兩個端口為Trunk端口,並允許VLAN 10和VLAN 20的報文攜帶Tag通過。
[MCE] interface GigabitEthernet 3/0/3
[MCE-GigabitEthernet3/0/3] port link-type trunk
[MCE-GigabitEthernet3/0/3] port trunk permit vlan 30 40
[MCE-GigabitEthernet3/0/3] quit
# 配置PE 1的GigabitEthernet3/0/1端口。
<PE1> system-view
[PE1] interface GigabitEthernet 3/0/1
[PE1-GigabitEthernet3/0/1] port link-type trunk
[PE1-GigabitEthernet3/0/1] port trunk permit vlan 30 40
[PE1-GigabitEthernet3/0/1] quit
# 在MCE上創建VLAN 30和接口Vlan-interface30,配置接口與VPN實例vpn1綁定,並配置接口的IPv6地址。
[MCE] vlan 30
[MCE-vlan30] quit
[MCE] interface vlan-interface 30
[MCE-Vlan-interface30] ip binding vpn-instance vpn1
[MCE-Vlan-interface30] ipv6 address 30::1 64
[MCE-Vlan-interface30] quit
# 在MCE上創建VLAN 40和接口Vlan-interface40,配置接口與VPN實例vpn2綁定,並配置接口的IPv6地址。
[MCE] vlan 40
[MCE-vlan40] quit
[MCE] interface vlan-interface 40
[MCE-Vlan-interface40] ip binding vpn-instance vpn2
[MCE-Vlan-interface40] ipv6 address 40::1 64
[MCE-Vlan-interface40] quit
# 在PE 1上創建VLAN 30和接口Vlan-interface30,配置接口與VPN實例vpn1綁定,並配置接口的IPv6地址。
[PE1] vlan 30
[PE1-vlan30] quit
[PE1] interface vlan-interface 30
[PE1-Vlan-interface30] ip binding vpn-instance vpn1
[PE1-Vlan-interface30] ipv6 address 30::2 64
[PE1-Vlan-interface30] quit
# 在PE 1上創建VLAN 40和接口Vlan-interface40,配置接口與VPN實例vpn2綁定,並配置接口的IPv6地址。
[PE1] vlan 40
[PE1-vlan40] quit
[PE1] interface vlan-interface 40
[PE1-Vlan-interface40] ip binding vpn-instance vpn2
[PE1-Vlan-interface40] ipv6 address 40::2 64
[PE1-Vlan-interface40] quit
# 配置MCE和PE 1的Loopback0接口,用於指定MCE和PE 1的Router ID,地址分別為101.101.10.1和100.100.10.1。配置步驟這裏省略。
# 配置MCE啟動IPv6 ISIS進程10,綁定到VPN1實例,並引入VPN 1的IPv6靜態路由。
# 配置MCE啟動OSPFv3進程10,綁定到VPN實例vpn1,並引入VPN 1的IPv6靜態路由。
[MCE] ospfv3 10 vpn-instance vpn1
[MCE-ospf-10] router-id 101.101.10.1
[MCE-ospf-10] import-route static
[MCE-ospf-10] quit
# 在Vlan-interface30中使能OSPFv3。
[MCE] interface vlan-interface 30
[MCE-Vlan-interface30] ospfv3 10 area 0.0.0.0
[MCE-Vlan-interface30] quit
# 配置PE 1啟動OSPFv3進程10,綁定到VPN實例vpn1。
[PE1] ospfv3 10 vpn-instance vpn1
[PE1-ospf-10] router-id 100.100.10.1
[PE1-ospf-10] quit
# 在Vlan-interface30中使能OSPFv3。
[PE1] interface vlan-interface 30
[PE1-Vlan-interface30] ospfv3 10 area 0.0.0.0
[PE1-Vlan-interface30] quit
# 顯示PE 1上的VPN 1路由信息。
[PE1] display ipv6 routing-table vpn-instance vpn1
Routing Table : vpn1
Destinations : 5 Routes : 5
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 30::/64 Protocol : Direct
NextHop : 30::2 Preference: 0
Interface : Vlan30 Cost : 0
Destination: 30::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012:1::/64 Protocol : ISISv6
NextHop : FE80::200:5EFF:FE01:1C05 Preference: 15
Interface : Vlan10 Cost : 10
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
可以看到,PE 1通過OSPFv3學習到了VPN1內的私網路由。
MCE與PE 1間配置OSPFv3進程20,引入VPN實例vpn2的路由信息的過程與上麵介紹的配置基本一致,不同的是在MCE的OSPFv3中配置引入的是RIPng進程10的路由,這裏不再贅述。通過下麵的顯示信息可以看出,PE 1通過OSPFv3學習到了VPN2內的私網路由。
[PE1] display ipv6 routing-table vpn-instance vpn2
Routing Table : vpn2
Destinations : 5 Routes : 5
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 40::/64 Protocol : Direct
NextHop : 40::2 Preference: 0
Interface : Vlan40 Cost : 0
Destination: 40::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2012::/64 Protocol : ISISv6
NextHop : FE80::200:5EFF:FE01:1C06 Preference: 15
Interface : Vlan20 Cost : 10
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
至此,通過配置,已經將兩個VPN實例內的路由信息完整地傳播到PE 1中,配置完成。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!