14-MCE配置
本章節下載: 14-MCE配置 (668.3 KB)
目 錄
:
· 本章所指的路由器代表了一般意義下的路由器,以及運行了路由協議的三層交換機。為提高可讀性,在手冊的描述中將不另行說明。
· 本章隻涉及MCE的介紹和配置,涉及到的各種路由協議的介紹和配置請參見“三層技術-IP路由配置指導”中的相關內容。
· 本章中提到的三層以太網接口是指工作模式被配置成三層模式的以太網端口,有關以太網端口工作模式切換的操作,請參見“二層技術-以太網交換配置指導”中的“以太網端口配置”部分。
· 僅S5500-EI係列交換機支持MCE功能。
MPLS L3VPN是服務提供商VPN解決方案中一種基於PE的L3VPN技術,它使用BGP在服務提供商骨幹網上發布VPN路由,使用MPLS在服務提供商骨幹網上轉發VPN報文。
MPLS L3VPN組網方式靈活、可擴展性好,並能夠方便地支持MPLS QoS和MPLS TE,因此得到越來越多的應用。
MPLS L3VPN模型由三部分組成:CE、PE和P。
· 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的劃分主要是根據SP與用戶的管理範圍,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)的含義可以從下述幾個方麵理解:
· 站點是指相互之間具備IP連通性的一組IP係統,並且,這組IP係統的IP連通性不需通過服務提供商網絡實現;
· 站點的劃分是根據設備的拓撲關係,而不是地理位置,盡管在大多數情況下一個站點中的設備地理位置相鄰;
· 一個站點中的設備可以屬於多個VPN,換言之,一個站點可以屬於多個VPN;
· 站點通過CE連接到服務提供商網絡,一個站點可以包含多個CE,但一個CE隻屬於一個站點。
對於多個連接到同一服務提供商網絡的站點,通過製定策略,可以將它們劃分為不同的集合(set),隻有屬於相同集合的站點之間才能通過服務提供商網絡互訪,這種集合就是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為每個直接相連的站點建立並維護專門的VPN實例。VPN實例中包含對應站點的VPN成員關係和路由規則。如果一個站點中的用戶同時屬於多個VPN,則該站點的VPN實例中將包括所有這些VPN的信息。
為保證VPN數據的獨立性和安全性,PE上每個VPN實例都有相對獨立的路由表和LFIB(Label Forwarding Information Base,標簽轉發表)。
具體來說,VPN實例中的信息包括:標簽轉發表、IP路由表、與VPN實例綁定的接口以及VPN實例的管理信息。VPN實例的管理信息包括RD(Route Distinguisher,路由標識符)、路由過濾策略、成員接口列表等。
傳統BGP無法正確處理地址空間重疊的VPN的路由。假設VPN 1和VPN 2都使用了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地址。
MPLS L3VPN使用BGP擴展團體屬性——VPN Target(也稱為Route Target)來控製VPN路由信息的發布。
PE路由器上的VPN實例有兩類VPN Target屬性:
· Export Target屬性:在本地PE將從與自己直接相連的站點學到的VPN-IPv4路由發布給其它PE之前,為這些路由設置Export Target屬性;
· Import Target屬性:PE在接收到其它PE路由器發布的VPN-IPv4路由時,檢查其Export Target屬性,隻有當此屬性與PE上VPN實例的Import Target屬性匹配時,才把路由加入到相應的VPN路由表中。
也就是說,VPN Target屬性定義了一條VPN-IPv4路由可以為哪些站點所接收,PE路由器可以接收哪些站點發送來的路由。
與RD類似,VPN Target也有三種格式:
· 16bits自治係統號:32bits用戶自定義數字,例如:100:1。
· 32bits IPv4地址:16bits用戶自定義數字,例如:172.1.1.1:1。
· 32bits自治係統號:16bits用戶自定義數字,其中的自治係統號最小值為65536。例如:65536:1。
BGP/MPLS VPN以隧道的方式解決了在公網中傳送私網數據的問題,但傳統的BGP/MPLS VPN架構要求每個VPN實例單獨使用一個CE與PE相連,如圖1-1所示。
隨著用戶業務的不斷細化和安全需求的提高,很多情況下一個私有網絡內的用戶需要劃分成多個VPN,不同VPN用戶間的業務需要完全隔離。此時,為每個VPN單獨配置一台CE將加大用戶的設備開支和維護成本;而多個VPN共用一台CE,使用同一個路由表項,又無法保證數據的安全性。
使用本係列交換機提供的MCE(Multi-VPN-Instance CE,具備多VPN實例功能的CE)功能,可以有效解決多VPN網絡帶來的用戶數據安全與網絡成本之間的矛盾,它使用CE設備本身的VLAN接口編號與網絡內的VPN進行綁定,並為每個VPN創建和維護獨立的路由轉發表(Multi-VRF)。這樣不但能夠隔離私網內不同VPN的報文轉發路徑,而且通過與PE間的配合,也能夠將每個VPN的路由正確發布至對端PE,保證VPN報文在公網內的傳輸。
下麵以圖1-3為例介紹MCE對多個VPN的路由表項進行維護,並與PE交互VPN路由的過程。
圖1-3 MCE工作原理示意圖
如圖1-3所示,左側私網內有兩個VPN站點:站點1和站點2,分別通過MCE設備接入MPLS骨幹網,其中VPN1和VPN2的用戶,需要分別與遠端站點2內的VPN1用戶和站點1內的VPN2用戶建立VPN隧道。
通過配置MCE功能,可以在MCE設備上為VPN1和VPN2創建不同的VPN實例,為其維護各自獨立的路由表,並使用Vlan-interface2接口與VPN1進行綁定、Vlan-interface3與VPN2進行綁定。在接收路由信息時,MCE設備根據接收接口的編號,即可判斷該路由信息的來源,並將其維護到對應VPN實例的路由轉發表中。
同時,MCE需要通過不同的路由協議或進程來向PE發布VPN1和VPN2的路由,以便PE能夠識別並分別維護不同VPN的路由。因此,MCE需要通過兩個接口連接到PE,並創建兩個VPN實例與兩個接口分別綁定。在向PE發布VPN路由時,將不同的路由協議或進程與VPN實例綁定,並在不同的協議或進程中分別引入VPN1和VPN2內的路由。
通過上述過程,MCE即可將兩個VPN內的路由信息分別發布到PE設備。
通過接口與VPN實例的綁定,MCE與PE已經能夠正確判斷報文的來源,參考對應VPN實例的路由信息對報文進行轉發。下麵介紹一下MCE設備如何將多個VPN實例的私網路由信息準確傳播到PE設備。
MCE可以使用如下的路由協議與站點交換VPN私網路由:
· 靜態路由
· RIP
· OSPF
· IS-IS
· IBGP
· EBGP
下文隻介紹各路由協議與MCE功能配合的配置思路,有關路由協議的基本原理,請參見“三層技術-IP路由配置指導”中的相關介紹。
MCE可以通過靜態路由與站點連接。傳統CE配置的靜態路由對全局生效,無法解決多VPN間的地址重疊問題。本係列交換機提供的MCE功能可以將靜態路由與VPN實例相綁定,將各VPN之間的靜態路由進行隔離。
本係列交換機提供了將RIP進程與VPN實例綁定的方法,通過在MCE上配置RIP進程與VPN實例的綁定關係,使不同VPN內的私網路由可以通過不同的RIP進程在站點和MCE間進行交互,保證了私網路由的隔離和安全。
本係列交換機提供了將OSPF進程與VPN實例綁定的功能,用來在MCE上隔離不同VPN的路由。
需要注意的是:
在VPN實例所綁定的OSPF進程中,將不會使用在係統視圖下配置的公網Router ID,需要用戶在啟動進程時手工配置Router ID。
一個OSPF進程隻能綁定一個VPN實例,但一個VPN實例可以使用多個OSPF進程為其傳播私網路由。同一VPN實例內的OSPF進程應配置有相同的域ID,以保證路由發布的正確性。
對於標準的BGP/OSPF互相引用功能,當在MCE設備上配置引入BGP路由到OSPF中時,該路由的原OSPF屬性將無法恢複,造成該路由與從其他域引入的路由無法區分。為了區分原屬於不同OSPF域的路由,需要在遠端PE將OSPF路由引入到BGP時攜帶標識域的屬性,即OSPF的域ID(Domain ID)。OSPF進程的域ID包含在此進程生成的路由中,在將OSPF路由引入BGP中時,域ID被附加到BGP VPN路由上,作為BGP的擴展團體屬性傳遞。
在某些情況下,同一個VPN可能會連接多個MCE設備,當其中一個MCE將從BGP學到的路由向VPN內發布時,可能會被另外的MCE設備學到,造成路由環。為避免路由環路,可以在MCE上為不同的VPN實例配置Route Tag,建議在多個MCE上為同一個VPN配置相同的Route Tag。
MCE和站點之間使用IS-IS傳播私網路由的方式與使用OSPF時類似,將進程與VPN實例進行綁定。一個IS-IS進程隻能屬於一個VPN實例。
當MCE和站點之間使用IBGP傳播私網路由時,需要在MCE上為每個VPN實例配置IBGP對等體,並引入相應VPN內的IGP路由信息。當MCE同時與屬於同一VPN的多個站點進行連接時,可以將MCE設備配置為路由反射器,站點的出口路由器配置為客戶端,使MCE在多個站點之間傳遞(反射)路由信息,而站點之間不需要建立BGP連接,減少了BGP連接數量,簡化了網絡配置。
當MCE和站點之間使用EBGP傳播私網路由時,需要在MCE上為每個VPN實例配置EBGP對等體,並引入相應VPN內的IGP路由信息。由於一般情況下各個站點處於不同的AS內,因此應使用EBGP進行路由的傳播。
(1) 配置EBGP引入各站點內的IGP路由
為正確的將私網路由發布到PE,需要MCE首先將與其直連站點內的IGP路由引入到自己的BGP路由表中。
(2) 為每個VPN實例配置對等體組
為準確地與各站點交換路由信息,可以在BGP的IPv4地址族視圖下,為每個VPN實例配置對等體組,並指定對等體組的AS編號。
(3) 通過Filter-policy對路由進行過濾
為正確地將路由信息傳播到站點和PE設備,在指定對等體後,還需要使用Filter-policy對接收/發布的路由進行過濾。
由於在MCE設備上已經將路由信息與VPN實例進行了綁定,因此,隻需要在MCE與PE之間將接口與VPN實例進行綁定,再進行簡單的路由配置,便可以將MCE的VPN路由表項引入到MCE-PE間的路由協議中,實現私網VPN路由信息的傳播。
MCE與PE之間可以使用以下的路由協議進行路由交換:
· 靜態路由
· RIP
· OSPF
· IS-IS
· IBGP
· EBGP
各路由協議的配置方法及引入路由的操作,請參考“三層技術-IP路由配置指導”中的介紹。
VPN實例用於將VPN私網路由與公網路由隔離,在所有MCE組網方案中,都需要配置VPN實例。
VPN實例不僅可以將VPN私網路由與公網路由隔離,不同VPN實例的路由之間也是相互隔離的,這一特點使得VPN實例的使用不限於MCE。
VPN實例在實現中與站點關聯。VPN實例不是直接對應於VPN,一個VPN實例綜合了和它所對應站點的VPN成員關係和路由規則。
一個VPN實例隻有配置了RD後才生效。在配置RD之前,除了描述信息外,不能配置VPN實例的其他任何參數。
描述信息用於描述VPN實例,可以用來記錄VPN實例與某個VPN的關係等信息。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建VPN實例,並進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
必選 |
配置VPN實例的RD |
route-distinguisher route-distinguisher |
必選 |
配置VPN實例的描述信息 |
description text |
可選 |
為方便記憶和管理,建議用戶在MCE設備和PE設備上為同一個VPN實例配置相同的RD。
· 在MPLS L3VPN環境中,需要將VPN實例與連接PE設備的接口進行關聯。
· 在隧道環境中,需要將VPN實例與連接對端MCE設備(或CE設備)的隧道接口進行關聯。
VPN實例配置完成後,還需要與連接各個VPN 站點的接口進行關聯。
表1-2 配置VPN實例與接口關聯
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入要關聯接口的VLAN接口視圖或三層以太網接口視圖 |
interface interface-type interface-number |
- |
將當前接口與VPN實例關聯 |
ip binding vpn-instance vpn-instance-name |
必選 缺省情況下,接口不關聯任何VPN實例 |
執行ip binding vpn-instance命令將刪除接口上已經配置的IP地址,因此需要重新配置接口的IP地址。
MCE設備對VPN路由的發布控製過程如下:
· 當從VPN 站點內學習到的一條VPN路由引入BGP時,BGP為它關聯一個VPN Target擴展團體屬性列表,通常這個列表是與該站點相關聯的VPN實例的輸出路由屬性列表。
· VPN實例根據VPN Target中import-extcommunity決定可被接受並引入此VPN實例的路由。
· VPN實例根據VPN Target中的export-extcommunity對向外發布的路由進行VPN Target屬性的修改。
表1-3 配置VPN實例的路由相關屬性
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
必選 |
進入IPv4 VPN視圖 |
ipv4-family |
可選 |
將當前VPN實例與一個或多個VPN Target相關聯 |
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] |
必選 |
配置VPN實例支持的最大路由數 |
routing-table limit number { warn-threshold | simply-alert } |
可選 缺省情況下,沒有配置當前VPN實例支持的最多路由數 |
對當前VPN實例應用入方向路由策略 |
import route-policy route-policy |
可選 缺省情況下,允許所有VPN Target屬性匹配的路由通過 |
對當前VPN實例應用出方向路由策略 |
export route-policy route-policy |
可選 缺省情況下,允許所有VPN Target屬性匹配的路由通過 |
· 隻有當MCE與PE間運行BGP時,VPN Target屬性才會隨路由發布到PE,否則配置該屬性沒有意義。
· 既可以在VPN實例視圖下,也可以在IPv4 VPN視圖下,配置IPv4 VPN的路由相關屬性。如果同時在兩個視圖下配置了路由相關屬性,則IPv4 VPN采用IPv4 VPN視圖下配置的路由相關屬性。
· 命令vpn-target最多可以配置8個VPN Target;一個VPN實例最多可以配置64個VPN Target。
· 可以配置一個VPN實例可以支持的最大路由數,以防止PE路由器的入接口有過多的路由。
· 為VPN實例配置路由策略之前必須已經創建了路由策略,否則將采用缺省路由策略。
MCE可以看作一種通過路由隔離實現業務隔離的組網方案。配置MCE的關鍵為:
· 配置MCE與站點之間的路由交換
· 配置MCE與PE之間的路由交換
在MCE組網方案中,路由計算時需要關閉PE上的路由環路檢測功能,防止路由丟失;同時禁止各路由協議互操作功能,以節省係統資源。
在配置MCE之前,需完成以下任務:
· 創建VPN實例、在MCE上將連接站點和PE的接口與VPN實例綁定
· 配置相關接口的鏈路層協議和網絡層協議,保證路由可達
MCE可以通過靜態路由與Site連接。傳統CE配置的靜態路由對全局生效,無法解決多VPN間的地址重疊問題。以太網交換機提供的MCE功能可以將靜態路由與VPN實例相綁定,將各VPN之間的靜態路由進行隔離。
表1-4 配置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-5 配置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-6 配置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即可 |
配置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 |
配置route tag |
route-tag tag-value |
可選 缺省情況下,未配置route tag 在某些組網環境中,同一個VPN可能會連接多個MCE設備,當其中一個MCE將從BGP學到的路由向VPN內發布時,可能會被另外的MCE設備學到,造成路由環路。為避免路由環路,可以在MCE上為不同的VPN實例配置Route Tag,建議在多個MCE上為同一個VPN配置相同的route tag |
引入由PE發布的遠端站點的路由 |
import-route protocol [ process-id | allow-ibgp ] [ cost cost | type type | tag tag | route-policy route-policy-name ] * |
必選 缺省情況下,沒有引入其他協議的路由信息 |
配置OSPF引入缺省路由 |
default-route-advertise summary cost cost |
可選 缺省情況下,不引入缺省路由 該命令用於以Type-3 LSA引入缺省路由,MCE設備會將引入的缺省路由發布給站點內部 |
配置OSPF區域,進入OSPF區域視圖 |
area area-id |
必選 缺省情況下,沒有配置OSPF區域 |
配置區域所包含的網段並在指定網段的接口上使能OSPF |
network ip-address wildcard-mask |
必選 缺省情況下,接口不屬於任何區域且OSPF功能處於關閉狀態 |
l VPN實例綁定的OSPF進程中不使用係統視圖下配置的公網Router ID,因此用戶需要在啟動進程時手工配置Router ID。同一VPN的所有OSPF進程應配置相同的域ID,以保證路由發布的正確性。
l 一個OSPF進程隻能屬於一個VPN實例,但一個VPN實例可以使用多個OSPF進程為其傳播私網路由。同一VPN實例內的OSPF進程應配置有相同的域ID,以保證路由發布的正確性。
l 有關OSPF協議的配置,請參見“三層技術-IP路由配置指導”中的“OSPF”。
一個IS-IS進程隻能屬於一個VPN實例。如果在啟動IS-IS進程時不綁定到VPN實例,則該進程屬於公網進程。
通過在MCE上將IS-IS進程與VPN實例綁定,可以使不同VPN內的私網路由通過不同的IS-IS進程在Site和MCE間進行交互,保證了私網路由的隔離和安全。
表1-7 配置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-8 配置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 |
可選 缺省情況下,不對接收的路由信息進行過濾 |
l 通常情況下,BGP通過AS號檢測路由環路。如果在MCE和Site之間運行EBGP,當MCE將路由信息通告給Site時帶上本自治係統的AS號,再從Site接收路由更新時,路由更新消息中會帶有本自治係統的AS號,這樣MCE就不能接收這條路由更新信息,此時需要配置允許路由環路。
l 對於標準的BGP/OSPF互相引用功能,當在MCE設備上配置引入BGP路由到OSPF中時,該路由的原OSPF屬性將無法恢複,造成該路由與從其他域引入的路由無法區分。為了區分原屬於不同OSPF域的路由,需要在遠端PE將OSPF路由引入到BGP時攜帶標識域的屬性,即OSPF的域ID(Domain ID)。OSPF進程的域ID包含在此進程生成的路由中,在將OSPF路由引入BGP中時,域ID被附加到BGP VPN路由上,作為BGP的擴展團體屬性傳遞。
l 配置BGP VPN實例後,VPN實例中的BGP路由交換與普通的BGP相同。有關BGP協議的配置,請參見“三層技術-IP路由配置指導”中的“BGP”。
(2) 站點上的配置
表1-9 站點上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
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-10 配置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-11 站點上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
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路由信息的傳播。
表1-12 配置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-13 配置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-14 配置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-15 配置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-16 配置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-17 配置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不引入且不通告其它協議的路由 |
將站點出口路由器配置為路由反射器的客戶端 |
peer { group-name | ip-address } reflect-client |
可選 缺省情況下,沒有配置路由反射器及其客戶端 |
配置允許客戶端到客戶端的路由反射 |
reflect between-clients |
可選 缺省情況下,允許客戶端到客戶端的路由反射 如果客戶之間是全連接的,則不需要配置路由反射 |
配置路由反射器的集群ID |
reflector cluster-id cluster-id |
可選 缺省情況下,每個路由反射器都使用自己的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 |
可選 缺省情況下,不對接收的路由信息進行過濾 |
當BGP配置變化後,可以通過軟複位或複位BGP連接使新的配置生效。軟複位需要BGP對等體具備路由刷新能力(支持ROUTE-REFRESH消息)。
請在用戶視圖下進行下列操作。
操作 |
命令 |
軟複位指定VPN實例的BGP連接 |
refresh bgp vpn-instance vpn-instance-name { ip-address | all | external | group group-name } { export | import } |
複位指定VPN實例的BGP連接 |
reset bgp vpn-instance vpn-instance-name { as-number | ip-address | all | external | group group-name } |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後MPLS L3VPN的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除路由振蕩衰減信息。
表1-19 顯示MCE的運行狀態
操作 |
命令 |
顯示與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 VPNv4對等體組信息 |
display bgp vpnv4 vpn-instance vpn-instance-name group [ group-name ] [ | { begin | exclude | include } regular-expression ] |
顯示引入的BGP VPNv4路由信息 |
display bgp vpnv4 vpn-instance vpn-instance-name network [ | { begin | exclude | include } regular-expression ] |
顯示BGP VPNv4的AS路徑信息 |
display bgp vpnv4 vpn-instance vpn-instance-name paths [ as-regular-expression | { | { begin | exclude | include } regular-expression } ] |
顯示BGP VPNv4對等體信息 |
display bgp vpnv4 vpn-instance vpn-instance-name peer [ group-name log-info | ip-address { log-info | verbose } | verbose ] [ | { begin | exclude | include } 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 [ whole-match ] | adv-community-list-number }&<1-16> | 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 ] |
清除指定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路由基礎”。
· MCE設備通過Vlan-interface10接口(IP地址10.214.10.3)連接到地址範圍為192.168.0.0/24的VPN 1,通過Vlan-interface20接口(IP地址10.214.20.3)連接到地址範圍為192.168.10.0/24的VPN 2,其中VPN 2內運行RIP路由協議。
· 要求MCE設備能夠將VPN之間的路由隔離,並通過OSPF將各VPN的路由發布到PE 1。
圖1-4 MCE和PE間使用OSPF引入VPN路由組網示意圖
為區分設備,假設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,將端口GigabitEthernet1/0/1加入VLAN10,並創建Vlan-interface10接口。
[MCE] vlan 10
[MCE-vlan10] port gigabitethernet 1/0/1
[MCE-vlan10] quit
[MCE] interface vlan-interface 10
# 配置Vlan-interface10接口與VPN實例vpn1綁定,並配置接口的IP地址。
[MCE-Vlan-interface10] ip binding vpn-instance vpn1
[MCE-Vlan-interface10] ip address 10.214.10.3 24
# 使用類似步驟配置VLAN20,將端口GigabitEthernet1/0/2加入VLAN20,配置接口與VPN實例vpn2綁定並配置IP地址。
[MCE-Vlan-interface10] quit
[MCE] vlan 20
[MCE-vlan20] port gigabitethernet 1/0/2
[MCE-vlan20] quit
[MCE] interface vlan-interface 20
[MCE-Vlan-interface20] ip binding vpn-instance vpn2
[MCE-Vlan-interface20] ip address 10.214.20.3 24
[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內未使用路由協議,因此可以使用靜態路由進行配置。
# 配置VR1與MCE連接的接口地址為10.214.10.2/24,連接VPN1接口的地址為192.168.0.1/24。向VLAN中增加端口和配置接口IP地址的過程省略。
# 在VR1上配置缺省路由,指定出方向報文的下一跳地址為10.214.10.3。
<VR1> system-view
[VR1] ip route-static 0.0.0.0 0.0.0.0 10.214.10.3
# 在MCE上指定靜態路由,去往192.168.0.0/24網段的報文,下一跳地址為10.214.10.2,並將此路由與VPN實例vpn1綁定。
[MCE] ip route-static vpn-instance vpn1 192.168.0.0 24 10.214.10.2
# 顯示MCE上為VPN實例vpn1維護的路由信息。
[MCE] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.214.10.0/24 Direct 0 0 10.214.10.3 Vlan10
10.214.10.3/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
192.168.0.0/24 Static 60 0 10.214.10.2 Vlan10
可以看到,已經在MCE上為VPN 1指定了靜態路由。
# VPN 2內運行RIP,在MCE上配置RIP進程20,並與VPN實例vpn2綁定,以便將VPN 2內的路由學習到VPN實例vpn2的路由表中。
[MCE] rip 20 vpn-instance vpn2
# 發布網段10.214.20.0的路由。
[MCE-rip-20] network 10.214.20.0
[MCE-rip-20] quit
# 在VR2上,配置與MCE連接的接口地址為10.214.20.2/24,連接VPN 2接口的地址為192.168.10.1/24。(配置過程略)
# 配置RIP,發布網段192.168.10.0和10.214.20.0的路由。
<VR2> system-view
[VR2] rip 20
[VR2-rip-20] network 192.168.10.0
[VR2-rip-20] network 10.214.20.0
# 在MCE上查看VPN實例vpn2的路由信息。
[MCE] display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.214.20.0/24 Direct 0 0 10.214.20.3 Vlan20
10.214.20.3/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
192.168.10.0/24 RIP 100 1 10.214.20.2 Vlan20
可以看到,MCE已經通過RIP學習到了VPN 2內的私網路由,並與VPN 1內的192.168.0.0路由信息分別維護在兩個路由表內,有效進行了隔離。
(3) MCE與PE間路由配置
# MCE使用GigabitEthernet1/0/3端口連接到PE 1的GigabitEthernet1/0/1端口,需要配置這兩個端口為Trunk端口,並允許VLAN 30和VLAN 40的報文攜帶Tag通過。
[MCE] interface gigabitethernet 1/0/3
[MCE-GigabitEthernet1/0/3] port link-type trunk
[MCE-GigabitEthernet1/0/3] port trunk permit vlan 30 40
[MCE-GigabitEthernet1/0/3] quit
# 配置PE 1的GigabitEthernet1/0/1端口。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] port link-type trunk
[PE1-GigabitEthernet1/0/1] port trunk permit vlan 30 40
[PE1-GigabitEthernet1/0/1] quit
# 在MCE上創建VLAN 30和接口Vlan-interface30,配置接口與VPN實例vpn1綁定,並配置接口的IP地址。
[MCE] vlan 30
[MCE-vlan30] quit
[MCE] interface vlan-interface 30
[MCE-Vlan-interface30] ip binding vpn-instance vpn1
[MCE-Vlan-interface30] ip address 30.1.1.1 24
[MCE-Vlan-interface30] quit
# 在MCE上創建VLAN 40和接口Vlan-interface40,配置接口與VPN實例vpn2綁定,並配置接口的IP地址。
[MCE] vlan 40
[MCE-vlan40] quit
[MCE] interface vlan-interface 40
[MCE-Vlan-interface40] ip binding vpn-instance vpn2
[MCE-Vlan-interface40] ip address 40.1.1.1 24
[MCE-Vlan-interface40] quit
# 在PE 1上創建VLAN 30和接口Vlan-interface30,配置接口與VPN實例vpn1綁定,並配置接口的IP地址。
[PE1] vlan 30
[PE1-vlan30] quit
[PE1] interface vlan-interface 30
[PE1-Vlan-interface30] ip binding vpn-instance vpn1
[PE1-Vlan-interface30] ip address 30.1.1.2 24
[PE1-Vlan-interface30] quit
# 在PE 1上創建VLAN 40和接口Vlan-interface40,配置接口與VPN實例vpn2綁定,並配置接口的IP地址。
[PE1] vlan 40
[PE1-vlan40] quit
[PE1] interface vlan-interface 40
[PE1-Vlan-interface40] ip binding vpn-instance vpn2
[PE1-Vlan-interface40] ip address 40.1.1.2 24
[PE1-Vlan-interface40] quit
# 配置MCE和PE 1的Loopback0接口,用於指定MCE和PE 1的Router ID,地址分別為101.101.10.1和100.100.10.1。配置步驟這裏省略。
# 配置MCE啟動OSPF進程10,配置綁定到VPN實例vpn1,域ID設置為10。
[MCE] ospf 10 router-id 101.101.10.1 vpn-instance vpn1
[MCE-ospf-10] vpn-instance-capability simple
[MCE-ospf-10] domain-id 10
# 在Area0區域發布30.1.1.0網段,並引入VPN 1的靜態路由。
[MCE-ospf-10] area 0
[MCE-ospf-10-area-0.0.0.0] network 30.1.1.0 0.0.0.255
[MCE-ospf-10-area-0.0.0.0] quit
[MCE-ospf-10] import-route static
# 配置PE 1啟動OSPF進程10,綁定到VPN實例vpn1,域ID為10,在Area0區域發布30.1.1.0網段。
[PE1] ospf 10 router-id 100.100.10.1 vpn-instance vpn1
[PE1-ospf-10] domain-id 10
[PE1-ospf-10] area 0
[PE1-ospf-10-area-0.0.0.0] network 30.1.1.0 0.0.0.255
[PE1-ospf-10-area-0.0.0.0] quit
[PE1-ospf-10] quit
# 顯示PE 1上的VPN 1路由信息。
[PE1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
30.1.1.0/24 Direct 0 0 30.1.1.2 Vlan30
30.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
192.168.0.0/24 O_ASE 150 1 30.1.1.1 Vlan30
可以看到,VPN 1內的靜態路由已經引入到MCE與PE 1間的OSPF路由表中。
MCE與PE 1間配置OSPF進程20,導入VPN實例vpn2的路由信息的過程與上麵介紹的配置基本一致,不同的是在MCE的OSPF中配置導入的是RIP進程20的路由,這裏不再贅述,隻以顯示信息為例表示導入成功後的結果。
[PE1] display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
40.1.1.0/24 Direct 0 0 40.1.1.2 Vlan40
40.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
192.168.10.0/24 O_ASE 150 1 40.1.1.1 Vlan40
至此,通過配置,已經將兩個VPN實例內的路由信息完整地傳播到PE 1中,配置完成。
· 使用本係列交換機作為MCE設備,將站點1和站點2內的VPN路由發布到PE 1,使MPLS骨幹網絡兩端的VPN能夠正常通信。
· 站點1和站點2內部均使用OSPF協議,MCE與PE間使用EBGP協議。
圖1-5 MCE和PE間使用BGP引入VPN路由組網示意圖
(1) VPN實例配置
# 在MCE和PE 1上創建VPN實例,並與接口綁定的配置與“1.6.1 MCE和PE間使用OSPF引入VPN路由”中的配置類似,這裏不再贅述。
(2) MCE與Site間路由配置
# 配置兩個VPN實例內的設備啟動OSPF進程,發布各網段的路由,操作與普通OSPF配置相同,這裏不再贅述。
# 配置MCE的OSPF協議,進程10與VPN實例vpn1綁定,學習VPN 1內的路由。
<MCE> system-view
[MCE] ospf router-id 10.214.10.3 10 vpn-instance vpn1
[MCE-ospf-10] area 0
[MCE-ospf-10-area-0.0.0.0] network 10.214.10.0 0.0.0.255
# 顯示VPN 1的路由信息。
[MCE-ospf-10-area-0.0.0.0] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.214.10.0/24 Direct 0 0 10.214.10.3 Vlan10
10.214.10.3/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
192.168.0.0/24 OSPF 10 1 10.214.10.2 Vlan10
可以看到,MCE已經通過OSPF進程10學習到了VPN 1內的路由。
# 配置MCE的OSPF進程20與VPN實例vpn2綁定,學習VPN 2內的路由,配置與上麵配置OSPF進程10類似。這裏直接顯示配置結果。
[MCE] display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.214.20.0/24 Direct 0 0 10.214.20.3 Vlan20
10.214.20.3/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
192.168.10.0/24 OSPF 10 1 10.214.20.2 Vlan20
(3) MCE與PE間路由配置
# 配置MCE與PE 1間通過Trunk端口進行連接,配置與“1.6.1 MCE和PE間使用OSPF引入VPN路由”中的配置類似,這裏不再贅述。
# 配置MCE啟動BGP進程100,並進入VPN實例vpn1的IPv4地址族視圖。
[MCE] bgp 100
[MCE-bgp] ipv4-family vpn-instance vpn1
# 指定PE 1(PE 1與實例vpn1綁定的接口地址為30.1.1.2/24,BGP進程為200)為EBGP對等體,並引入OSPF進程10的路由信息。
[MCE-bgp-vpn1] peer 30.1.1.2 as-number 200
[MCE-BGP-vpn1] import-route ospf 10
# 在PE 1上配置BGP200,並指定MCE為EBGP對等體。
<PE1> system-view
[PE1] bgp 200
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 30.1.1.1 as-number 100
# 顯示PE 1上VPN實例vpn1的路由信息。
[PE1-bgp-vpn1] display ip routing-table vpn-instance vpn1
Routing Tables: vpn1
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
30.1.1.0/24 Direct 0 0 30.1.1.2 Vlan30
30.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
192.168.0.0/24 BGP 255 2 30.1.1.1 Vlan30
# 對於VPN 2,在MCE和PE 1上進行類似的配置,將VPN實例vpn2的OSPF路由信息引入到EBGP路由中。這裏不再敘述配置過程,直接顯示配置結果。
[PE1-bgp-vpn1] display ip routing-table vpn-instance vpn2
Routing Tables: vpn2
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
40.1.1.0/24 Direct 0 0 40.1.1.2 Vlan40
40.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
192.168.10.0/24 BGP 255 2 40.1.1.1 Vlan40
至此,MCE設備已經將兩個VPN實例內的OSPF路由全部引入PE 1的EBGP路由表中,配置完成。
僅S5500-EI係列交換機支持IPv6 MCE功能。
在MPLS L3VPN組網環境中,MCE利用靜態或動態路由協議在VPN站點和PE之間發布IPv4路由,並交互IPv4報文。
在IPv6 MPLS L3VPN組網環境中,IPv6 MCE在VPN站點和PE之間發布IPv6路由,並交互IPv6報文。IPv6 MCE的工作原理與MCE相同,詳細內容請參見1.1.4 MCE工作原理。
VPN實例不僅可以隔離VPN私網路由與公網路由,還可以隔離不同VPN實例的路由,這一特點使得VPN實例的使用不限於MPLS L3VPN。
VPN實例在實現中與Site關聯。VPN實例不是直接對應於VPN,一個VPN實例綜合了和它所對應Site的VPN成員關係和路由規則。
一個VPN實例隻有配置了RD後才生效。
描述信息用於描述VPN實例,可以用來記錄VPN實例與某個VPN的關係等信息。
表2-1 創建VPN實例
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建VPN實例,並進入VPN實例視圖 |
ip vpn-instance vpn-instance-name |
必選 |
配置VPN實例的RD |
route-distinguisher route-distinguisher |
必選 |
配置VPN實例的描述信息 |
description text |
可選 |
VPN實例配置完成後,需要與連接各個VPN站點以及連接PE的接口進行關聯。
表2-2 配置VPN實例與接口關聯
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入要關聯接口的接口視圖 |
interface interface-type interface-number |
- |
將當前接口與VPN實例關聯 |
ip binding vpn-instance vpn-instance-name |
必選 缺省情況下,接口不關聯任何VPN實例 |
執行ip binding vpn-instance命令將刪除接口上已經配置的IPv6地址,因此需要重新配置接口的IPv6地址。
MCE設備對VPN路由的發布控製過程如下:
· 當從VPN站點內學習到的一條VPN路由引入BGP時,BGP為它關聯一個VPN Target擴展團體屬性列表,通常這個列表是與該站點相關聯的VPN實例的輸出路由屬性列表。
· VPN實例根據VPN Target中import-extcommunity確定可被接受並引入此VPN實例的路由。
· VPN實例根據VPN Target中的export-extcommunity對向外發布的路由進行VPN Target屬性的修改。
表2-3 配置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路由器的入接口有過多的路由。一個PE路由器最多可以支持的路由條數與具體產品有關。
l 為VPN實例配置路由策略之前必須已經創建了路由策略,否則無法對接收和發布的路由進行過濾。
IPv6 MCE可以看作一種通過路由隔離實現業務隔離的組網方案。配置IPv6 MCE的關鍵為:
· 配置IPv6 MCE與站點之間的路由交換
· 配置IPv6 MCE與PE之間的路由交換
在IPv6 MCE組網方案中,路由計算時需要關閉PE上的路由環路檢測功能,防止路由丟失;同時禁止各路由協議互操作功能,以節省係統資源。
在配置IPv6 MCE之前,需完成以下任務:
· 創建VPN實例、在IPv6 MCE上將連接站點和PE的接口與VPN實例綁定
· 配置相關接口的鏈路層協議和網絡層協議,保證路由可達
IPv6 MCE可以通過IPv6靜態路由與Site連接。傳統CE配置的IPv6靜態路由對全局生效,無法解決多VPN間的地址重疊問題。以太網交換機提供的IPv6 MCE功能可以將IPv6靜態路由與VPN實例相綁定,將各IPv6 VPN之間的IPv6靜態路由進行隔離。
表2-4 配置IPv6 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 ] |
二者必選其一 該配置在IPv6 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 ] |
一個RIPng進程隻能屬於一個IPv6 VPN實例。如果在啟動RIPng進程時不綁定到IPv6 VPN實例,則該進程屬於公網進程。通過在IPv6 MCE上將RIPng進程與IPv6 VPN實例綁定,可以使不同IPv6 VPN內的私網路由通過不同的RIPng進程在Site和IPv6 MCE間進行交互,保證了私網路由的隔離和安全。
表2-5 配置IPv6 MCE與站點之間使用RIPng
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv6 MCE與站點間的RIPng實例,並進入RIPng視圖 |
ripng [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在IPv6 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實例,則該進程屬於公網進程。
通過在IPv6 MCE上將OSPFv3進程與IPv6 VPN實例綁定,可以使不同IPv6 VPN內的私網路由通過不同的OSPFv3進程在Site和IPv6 MCE間進行交互,保證了私網路由的隔離和安全。
表2-6 配置IPv6 MCE與站點之間使用OSPFv3
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv6 MCE與站點間的OSPFv3實例,並進入OSPFv3視圖 |
ospfv3 [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在IPv6 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 |
l 刪除VPN實例後,相關的所有OSPFv3進程也將全部被刪除。
l 有關OSPFv3的介紹和詳細配置,請參見“三層技術-IP路由配置指導”中的“OSPFv3”。
一個IPv6 IS-IS進程隻能屬於一個IPv6 VPN實例。如果在啟動IPv6 IS-IS進程時不綁定到IPv6 VPN實例,則該進程屬於公網進程。
通過在IPv6 MCE上將IPv6 IS-IS進程與IPv6 VPN實例綁定,可以使不同IPv6 VPN內的私網路由通過不同的IPv6 IS-IS進程在Site和IPv6 MCE間進行交互,保證了私網路由的隔離和安全。
表2-7 配置IPv6 MCE與站點之間使用IPv6 IS-IS
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv6 MCE與站點間的IPv6 IS-IS實例,並進入IS-IS視圖 |
isis [ process-id ] vpn-instance vpn-instance-name |
必選 該配置在IPv6 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”。
IPv6 MCE與站點間使用EBGP交換路由信息時,需要在IPv6 MCE上為每個IPv6 VPN實例配置IPv6 BGP對等體,並在站點上引入相應IPv6 VPN內的IGP路由信息。
IPv6 MCE使用EBGP交換路由信息時,還可以通過Filter-policy對接收/發布的路由進行過濾。
(1) IPv6 MCE上的配置
表2-8 配置IPv6 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-9 站點上的配置
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入BGP視圖 |
bgp as-number |
- |
進入IPv6地址族視圖 |
ipv6-family |
- |
將IPv6 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網段地址發布給接入的IPv6 MCE |
由於在IPv6 MCE設備上已經將站點內的私網路由信息與IPv6 VPN實例進行了綁定,因此,隻需要在IPv6 MCE與PE之間將接口與IPv6 VPN實例進行綁定、進行簡單的路由配置、並將IPv6 MCE上維護的站點內的IPv6 VPN路由引入到IPv6 MCE-PE間的路由協議中,便可以實現私網VPN路由信息的傳播。
表2-10 配置IPv6 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 ] |
表2-11 配置IPv6 MCE與PE之間使用RIPng
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv6 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-12 配置IPv6 MCE與PE之間使用OSPFv3
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv6 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-13 配置IPv6 MCE與PE之間使用IPv6 IS-IS
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建IPv6 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-14 配置IPv6 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消息)。
請在用戶視圖下進行下列操作。
表2-15 複位BGP連接
操作 |
命令 |
軟複位指定VPN實例的IPv6 BGP連接 |
refresh bgp ipv6 vpn-instance vpn-instance-name { ipv6-address | all | external } { export | import } |
複位指定VPN實例的IPv6 BGP連接 |
reset bgp ipv6 vpn-instance vpn-instance-name { as-number | ipv6-address | all | external } |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後MCE的運行情況,通過查看顯示信息驗證配置的效果。
表2-16 顯示IPv6 MCE的運行狀態
操作 |
命令 |
顯示指定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 ] |
顯示指定VPN實例中PE與CE之間建立的IPv6 BGP對等體的信息 |
display bgp vpnv6 vpn-instance vpn-instance-name peer [ ipv6-address verbose | verbose ] [ | { 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路由基礎”。
· IPv6 MCE設備通過Vlan-interface10接口(IPv6地址為2001:1::1/64)連接到VPN 1,地址範圍為2012:1::/64;通過Vlan-interface20接口(IPv6地址為2002:1::1/64)連接到VPN 2,VPN 2內運行RIPng路由協議,地址範圍為2012::/64。
· 要求IPv6 MCE設備能夠將VPN之間的路由隔離,並通過OSPFv3將各VPN的路由發布到PE1設備。
圖2-1 配置IPv6 MCE典型配置舉例一組網示意圖
為區分設備,假設IPv6 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,將端口GigabitEthernet1/0/1加入VLAN 10,並創建Vlan-interface10接口。
[MCE] vlan 10
[MCE-vlan10] port gigabitethernet 1/0/1
[MCE-vlan10] quit
# 配置Vlan-interface10接口與VPN實例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,將端口GigabitEthernet1/0/2加入VLAN 20,配置接口與VPN實例vpn2綁定,並配置接口的IPv6地址。
[MCE] vlan 20
[MCE-vlan20] port gigabitethernet 1/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 : 5
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::20F:E2FF:FE3E:9CA2 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使用GigabitEthernet1/0/3端口連接到PE 1的GigabitEthernet1/0/1端口,需要配置這兩個端口為Trunk端口,並允許VLAN 30和VLAN 40的報文攜帶Tag通過。
[MCE] interface gigabitethernet 1/0/3
[MCE-GigabitEthernet1/0/3] port link-type trunk
[MCE-GigabitEthernet1/0/3] port trunk permit vlan 30 40
[MCE-GigabitEthernet1/0/3] quit
# 配置PE 1的GigabitEthernet1/0/1端口。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] port link-type trunk
[PE1-GigabitEthernet1/0/1] port trunk permit vlan 30 40
[PE1-GigabitEthernet1/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啟動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 : OSPFv3
NextHop : FE80::202:FF:FE02:2 Preference: 150
Interface : Vlan30 Cost : 1
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
可以看到,PE 1通過OSPFv3學習到了VPN 1內的私網路由。
MCE與PE 1間配置OSPFv3進程20,引入VPN實例vpn2的路由信息的過程與上麵介紹的配置基本一致,不同的是在MCE的OSPFv3中配置引入的是RIPng進程10的路由,這裏不再贅述。通過下麵的顯示信息可以看出,PE 1通過OSPFv3學習到了VPN 2內的私網路由。
[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 : OSPFv3
NextHop : FE80::200:FF:FE0F:5 Preference: 150
Interface : Vlan40 Cost : 1
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
至此,通過配置,已經將兩個VPN實例內的路由信息完整地傳播到PE 1中,配置完成。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!