04-IP L3VPN over SRv6配置
本章節下載: 04-IP L3VPN over SRv6配置 (451.43 KB)
目 錄
1.6 配置PE-PE間交互BGP VPNv4/VPNv6路由
1.8 配置為BGP私網路由按下一跳分配End.DX4 SID/End.DX6 SID
1.9.2 控製BGP VPNv4/VPNv6路由的接收和保存
1.12 配置IP L3VPN over SRv6快速重路由
1.14.1 顯示IP L3VPN over SRv6的配置及運行狀態
1.15.1 IPv4 L3VPN over SRv6 BE配置舉例
IP L3VPN over SRv6是指通過SRv6隧道承載IP L3VPN業務,通過IPv6網絡透明傳輸用戶三層數據,實現屬於同一個VPN、位於不同地理位置的用戶互通。MPLS L3VPN的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN”。
如圖1-1所示,通過BGP協議在IPv6骨幹網上發布用戶站點的IPv4/IPv6私網路由,使用PE間的SRv6隧道承載私網報文,在骨幹網上根據IGP計算的最優路徑轉發私網報文,從而實現通過IPv6骨幹網連接屬於同一個VPN、位於不同地理位置的用戶。
IPv4 L3VPN over SRv6和IPv6 L3VPN over SRv6的路由發布過程類似,以IPv4 L3VPN over SRv6為例,如圖1-1所示,CE 1路由發布到CE 2的過程為:
(1) CE 1使用靜態路由、RIP、OSPF、IS-IS、EBGP或IBGP,將本站點的私網路由發布給PE 1。
(2) PE 1從CE 1學習到路由信息後,PE 1將私網路由存放到相應的VPN實例1的路由表中。PE 1為私網路由增加RD和RT屬性,並按VPN實例為這些路由分配私網標簽End.DT4 SID、End.DT46 SID(即同一VPN實例的所有私網路由分配相同的End.DT4 SID),形成VPNv4路由。PE 1通過MP-BGP把VPNv4路由發布給PE 2。
(3) PE 2收到PE 1發布的VPNv4路由後,將該路由加入到VPN實例1的路由表中並將VPNv4路由轉換成IPv4路由發布給CE 2。
(4) CE 2收到路由後,學習到路由表中,即CE 2學習到CE 1的路由。
IPv4 L3VPN over SRv6和IPv6 L3VPN over SRv6的報文轉發過程類似,以IPv4 L3VPN over SRv6、站點網絡屬於私網為例,完成路由發布後,報文從CE 2到CE 1的轉發過程為:
(1) CE 2發送IPv4報文給PE 2。
(2) PE 2從綁定了VPN實例的接口上收到私網報文後,在VPN實例1的路由表中查找匹配IPv4目的地址的路由,找到對應的End.DT4 SID或End.DT46 SID。然後為報文封裝IPv6報文頭,在IPv6報文頭中End.DT4 SID或End.DT46 SID作為其目的地址。
(3) PE 2根據End.DT4 SID或End.DT46 SID查找IPv6路由表,通過最優IGP路由將報文轉發給P。
(4) P根據End.DT4 SID或End.DT46 SID查找IPv6路由表,通過最優IGP路由將報文轉發給PE 1。
(5) PE 1接收到報文後,根據End.DT4 SID或End.DT46 SID查找Local SID表,執行End.DT4 SID或End.DT46 SID對應的轉發動作,即解封裝報文去掉IPv6報文頭和SRH,並根據End.DT4 SID或End.DT46 SID匹配VPN實例1,在VPN實例1的路由表中,查表轉發,將報文發送給CE 1。
僅站點網絡屬於私網的IP L3VPN over SRv6支持快速重路由。
IP L3VPN over SRv6快速重路由功能用來在CE雙歸屬(即一個CE同時連接兩個PE)的組網環境下,通過為流量轉發的主路徑指定一條備份路徑,並通過靜態BFD檢測主路徑的狀態,實現當主路徑出現故障時,將流量迅速切換到備份路徑,大大縮短了故障恢複時間。在使用備份路徑轉發報文的同時,會重新進行路由優選,優選完畢後,使用新的最優路由來轉發報文。
目前,IP L3VPN over SRv6快速重路由的路徑備份方式為VPNv4路由備份VPNv4路由和VPNv6路由備份VPNv6路由。
圖1-2 VPNv4路由備份VPNv4路由示意圖
IPv4 L3VPN over SRv6和IPv6 L3VPN over SRv6的快速重路由功能類似,以VPNv4路由備份VPNv4路由為例。如圖1-2所示,在入節點PE 1上指定VPN 1的FRR備份下一跳為PE 3,則PE 1接收到PE 2和PE 3發布的到達CE 2的VPNv4路由後,PE 1會記錄這兩條VPNv4路由,並將PE 2發布的VPNv4路由當作主路徑,PE 3發布的VPNv4路由當作備份路徑。
在PE 1上配置靜態BFD檢測,通過BFD檢測PE 1到PE 2之間公網隧道的狀態。當公網隧道正常工作時,CE 1和CE 2通過主路徑CE 1—PE 1—PE 2—CE 2通信。當PE 1檢測到該公網隧道出現故障時,PE 1將通過備份路徑CE 1—PE 1—PE 3—CE 2轉發CE 1訪問CE 2的流量。
在這種備份方式中,PE 1負責主路徑檢測和流量切換。
有關靜態BFD功能的詳細介紹,請參見“可靠性配置指導”中“BFD”。
IP L3VPN over SRv6配置任務如下:
(1) 配置VPN實例並綁定PE連接CE的接口
在PE設備上執行本配置,配置方法請參見“MPLS配置指導”中的“MPLS L3VPN”。
(2) 配置PE-CE間的路由交換
在PE-CE間配置IPv4路由協議(包括靜態路由、RIP、OSPF、IS-IS、EBGP或IBGP)或IPv6路由協議(包括IPv6靜態路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP或IBGP)
CE使用IPv4路由協議或IPv6路由協議,將本站點的VPN路由發布給PE。在PE上需要為路由協議關聯指定VPN實例,在CE上配置普通路由協議即可。關於各個路由協議的具體配置,請參見“三層技術-IP路由配置指導”。
(3) 配置PE-PE間的路由交換
a. 配置SRv6 SID
本功能用來靜態配置End.DT4 SID、End.DT6 SID、End.DT46 SID、End.DX4 SID或End.DX6 SID。
通過引用Locator段後,BGP路由才可以通告Locator段內的SRv6 SID。
c. 配置PE-PE間交互BGP VPNv4/VPNv6路由
隻有配置本功能後,PE設備之間交換VPNv4/VPNv6路由時才可以交換私網標簽End.DT4 SID/End.DT6 SID/End.DT46 SID/End.DX4 SID/End.DX6 SID。
e. (可選)配置為BGP私網路由按下一跳分配End.DX4 SID/End.DX6 SID
配置本功能後,PE設備可以為BGP路由按下一跳分配End.DX4 SID/End.DX6 SID。
f. (可選)配置BGP VPNv4/VPNv6路由
(4) 配置路由迭代方式
(5) 配置封裝的IPv6報文頭的源地址
本功能用來指定IP L3VPN over SRv6骨幹網中報文封裝的IPv6報文頭的源地址。
(6) (可選)配置IP L3VPN over SRv6快速重路由
(7) (可選)配置VPN實例關聯的隧道對TTL的處理模式
PE之間傳遞BGP VPNv4/VPNv6路由信息時,配置Opcode段必須指定VPN實例。
(1) 進入係統視圖。
system-view
(2) 開啟SRv6功能,並進入SRv6視圖。
segment-routing ipv6
(3) 配置Locator段,並進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 配置Opcode段。
¡ 配置End.DT4 SID。
opcode { opcode | hex hex-opcode } end-dt4 [ vpn-instance vpn-instance-name ]
指定的VPN實例必須已經存在。不同VPN實例不能配置相同End.DT4 SID。
¡ 配置End.DT6 SID。
opcode { opcode | hex hex-opcode } end-dt6 [ vpn-instance vpn-instance-name ]
指定的VPN實例必須已經存在。不同VPN實例不能配置相同End.DT6 SID。
¡ 配置End.DT46 SID。
opcode { opcode | hex hex-opcode } end-dt46 [ vpn-instance vpn-instance-name ]
指定的VPN實例必須已經存在。不同VPN實例不能配置相同End.DT46 SID。
¡ 配置End.DX4 SID。
opcode { opcode | hex hex-opcode } end-dx4 interface interface-type interface-number nexthop nexthop-ipv4-address [ vpn-instance vpn-instance-name ]
指定的VPN實例必須已經存在。不同下一跳和出接口不能配置相同End.DX4 SID。
¡ 配置End.DX6 SID。
opcode { opcode | hex hex-opcode } end-dx6 interface interface-type interface-number nexthop nexthop-ipv6-address [ vpn-instance vpn-instance-name ]
指定的VPN實例必須已經存在。不同下一跳和出接口不能配置相同End.DX6 SID。
在IP L3VPN over SRv6組網場景中,在指定VPN實例的BGP-VPN IPv4/IPv6單播地址族視圖下配置本功能後,PE設備將為指定VPN實例的私網路由在引用的Locator段內申請SRv6 SID。
使用End.DT4 SID/End.DT6 SID/End.DT46 SID/End.DX4 SID/End.DX6 SID時,都需要執行本配置。
配置本功能前,必須滿足以下條件:
· 指定的Locator必須存在。
· End.DT4 SID/End.DT6 SID/End.DT46 SID/End.DX4 SID/End.DX6 SID所在VPN實例與私網的VPN實例必須相同。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP-VPN實例視圖。
ip vpn-instance vpn-instance-name
(4) 進入BGP-VPN IPv4單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 進入BGP-VPN IPv4單播地址族視圖。
address-family ipv4 [ unicast ]
¡ 進入BGP-VPN IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(5) 配置BGP引用Locator段。
segment-routing ipv6 locator locator-name [ auto-sid-disable ]
缺省情況下,未引用Locator段。
本節所有命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。
PE之間不能同時建立IPv4和IPv6對等體,否則影響路由優選,無法通過SRv6隧道轉發流量。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 將對端PE配置為IPv6對等體。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(4) 指定與IPv6對等體/對等體組創建BGP會話時建立TCP連接使用的源接口。
peer { group-name | ipv6-address [ prefix-length ] } connect-interface interface-type interface-number
缺省情況下,BGP使用到達BGP對等體的最佳路由的出接口作為與對等體/對等體組創建BGP會話時建立TCP連接的源接口。
(5) 進入BGP VPNv4地址族視圖或BGP VPNv6地址族視圖。
¡ 創建BGP VPNv4地址族,並進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 創建BGP VPNv6地址族,並進入BGP VPNv6地址族視圖。
address-family vpnv6
(6) 使能本地路由器與指定IPv6對等體交換VPNv4/VPNv6路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情況下,本地路由器不能與對等體交換VPNv4/VPNv6路由信息。
配置本功能後,IPv6對等體之間可以通過VPNv4/VPNv6/IPv4單播/IPv6單播路由交換SRv6 SID信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP VPNv4地址族視圖、BGP VPNv6地址族視圖。
¡ 進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 進入BGP VPNv6地址族視圖。
address-family vpnv6
(4) 配置與指定IPv6對等體之間交換SRv6 SID信息。
peer { group-name | ipv6-address [ prefix-length ] } prefix-sid
缺省情況下,IPv6對等體之間不能交換SRv6 SID信息。
在IP L3VPN over SRv6場景中,缺省情況下,PE根據VPN實例為BGP私網路由分配相同SID。PE對接收到的報文解封裝後,會在SID標識的VPN實例內查找路由表,將報文轉發給CE。
如果希望不查路由表,直接快速地將報文轉發給下一跳,則可以基於下一跳地址為BGP路由分配End.DX4/End.DX6 SID。
本功能不會為直連路由分配End.DX4 SID或者End.DX6 SID。
配置本功能前,必須先在BGP-VPN IPv4單播地址族視圖或BGP-VPN IPv6單播地址族引用Locator段。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP-VPN實例視圖。
ip vpn-instance vpn-instance-name
(4) 進入BGP-VPN IPv4單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 進入BGP-VPN IPv4單播地址族視圖。
address-family ipv4 [ unicast ]
¡ 進入BGP-VPN IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
(5) 配置根據下一跳分配End.DX4 SID或End.DX6 SID。請選擇其中一項進行配置。
¡ 配置BGP私網路由為所有下一跳分配End.DX4/End.DX6 SID。
segment-routing ipv6 apply-sid all-nexthop
¡ 依次執行以下命令,配置BGP私網路由為指定下一跳分配End.DX4/End.DX6 SID。
segment-routing ipv6 apply-sid specify-nexthop
nexthop nexthop-address interface interface-type interface-number
缺省情況下,根據VPN實例為私網路由分配SID。
本節所有命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP VPNv4地址族視圖或BGP VPNv6地址族視圖。
¡ 進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 進入BGP VPNv6地址族視圖。
address-family vpnv6
(4) 設置允許從指定對等體/對等體組收到的路由數量。
peer { group-name | ipv6-address [ prefix-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情況下,不限製從對等體/對等體組接收的路由數量。
(5) 保存所有來自指定對等體/對等體組的原始路由更新信息,不管這些路由是否通過了路由策略的過濾。
peer { group-name | ipv6-address [ prefix-length ] } keep-all-routes
缺省情況下,不保存來自對等體/對等體組的原始路由更新信息。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP VPNv4地址族視圖或BGP VPNv6地址族視圖。
¡ 進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 進入BGP VPNv6地址族視圖。
address-family vpnv6
(4) 為從指定對等體/對等體組接收的路由分配首選值。
peer { group-name | ipv6-address [ prefix-length ] } preferred-value value
缺省情況下,從對等體/對等體組接收的路由的首選值為0。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP VPNv4地址族視圖或BGP VPNv6地址族視圖。
¡ 進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 進入BGP VPNv6地址族視圖。
address-family vpnv6
(4) 配置將本機作為路由反射器,並將對等體或對等體組作為路由反射器的客戶。
peer { group-name | ipv6-address [ prefix-length ] } reflect-client
缺省情況下,未配置路由反射器及其客戶。
(5) (可選)允許路由反射器在客戶機之間反射路由。
reflect between-clients
缺省情況下,允許路由反射器在客戶機之間反射路由。
(6) (可選)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ip-address }
缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。
(7) (可選)創建路由反射器的反射策略。
rr-filter { ext-comm-list-number | ext-comm-list-name }
缺省情況下,路由反射器不會對反射的路由進行過濾。
(8) (可選)允許路由反射器反射路由時修改路由屬性。
reflect change-path-attribute
缺省情況下,不允許路由反射器反射路由時修改路由屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP VPNv4地址族視圖或BGP VPNv6地址族視圖。
¡ 進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 進入BGP VPNv6地址族視圖。
address-family vpnv6
(4) 配置NEXT_HOP屬性,向對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址。
peer { group-name | ipv6-address [ prefix-length ] } next-hop-local
缺省情況下,向對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址。
(5) 配置AS_PATH屬性。
¡ 配置對於從對等體/對等體組接收的路由,允許本地AS號在接收路由的AS_PATH屬性中出現,並配置允許出現的次數。
peer { group-name | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
缺省情況下,不允許本地AS號在接收路由的AS_PATH屬性中出現。
¡ 配置向指定EBGP對等體/對等體組發送BGP更新消息時隻攜帶公有AS號,不攜帶私有AS號。
peer { group-name | ipv6-address [ prefix-length ] } public-as-only
缺省情況下,向EBGP對等體/對等體組發送BGP更新消息時,既可以攜帶公有AS號,又可以攜帶私有AS號。
(6) 配置向對等體/對等體組發布團體屬性。
peer { group-name | ipv6-address [ prefix-length ] } advertise-community
缺省情況下,不向對等體/對等體組發布團體屬性。
(7) 為BGP對等體/對等體組配置SoO屬性。
peer { group-name | ipv6-address [ prefix-length ] } soo site-of-origin
缺省情況下,沒有為BGP對等體/對等體組配置SoO屬性。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP VPNv4地址族視圖或BGP VPNv6地址族視圖。
¡ 進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 進入BGP VPNv6地址族視圖。
address-family vpnv6
(4) 配置對發布的路由信息進行過濾。
filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list prefix-list-name } export [ protocol process-id ]
缺省情況下,不對發布的路由信息進行過濾。
(5) 配置對接收的路由信息進行過濾。
filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list prefix-list-name } import
缺省情況下,不對接收的路由信息進行過濾。
(6) 為對等體/對等體組設置基於地址前綴列表的BGP路由過濾策略。
peer { group-name | ipv6-address [ prefix-length ] } prefix-list prefix-list-name { export | import }
缺省情況下,未配置基於地址前綴列表的BGP路由過濾策略。
(7) 對來自對等體/對等體組的路由或發布給對等體/對等體組的路由應用路由策略。
peer { group-name | ipv6-address [ prefix-length ] } route-policy route-policy-name { export | import }
缺省情況下,沒有為對等體/對等體組指定路由策略。
(8) 配置對接收到的VPNv4/VPNv6路由進行Route Target過濾。
policy vpn-target
缺省情況下,對接收到的VPNv4/VPNv6路由進行Route Target過濾,即隻將Export Route Target屬性與本地Import Route Target屬性匹配的VPNv4/VPNv6路由加入到路由表。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP VPNv4地址族視圖或BGP VPNv6地址族視圖。
¡ 進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 進入BGP VPNv6地址族視圖。
address-family vpnv6
(4) 配置Add-Path功能。
peer { group-name | ipv6-address [ prefix-length ] } additional-paths { receive | send } *
缺省情況下,未配置Add-Path功能。
(5) 配置向指定對等體/對等體組發送的Add-Path優選路由的最大條數。
peer { group-name | ipv6-address [ prefix-length ] } advertise additional-paths best number
缺省情況下,向指定對等體/對等體組發送的Add-Path優選路由的最大條數為1。
(6) (可選)配置路由延遲優選時間。
route-select delay delay-value
缺省情況下,延遲時間為0秒,即路由優選不延遲。
IP L3VPN over SRv6網絡中,設備為用戶流量封裝SRv6 SID後,可以根據如下路由迭代方式為封裝後的報文查找轉發路徑:
· SRv6 BE方式:又稱為基於SID的轉發方式。該方式根據封裝的End.DT4 SID/End.DT6 SID/End.DT46 SID查找IPv6路由表進行轉發。
· SRv6 TE方式:又稱為基於SRv6 TE Policy的轉發方式。該方式根據報文屬性查找匹配的SRv6 TE Policy,為報文添加攜帶End.DT4 SID/End.DT6 SID/End.DT46 SID和SRv6 TE Policy SID列表的SRH頭後,通過SRv6 TE Policy轉發該報文。有關基於SRv6 TE Policy的轉發方式的詳細介紹,請參見“Segment Routing配置指導”中的“SRv6 TE Policy”。
· SRv6 TE/SRv6 BE混合方式:優先通過SRv6 TE方式選擇轉發路徑;如果SR-TE方式未找到可用的SRv6 TE Policy,則通過SRv6 BE方式選擇轉發路徑。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP-VPN實例視圖。
ip vpn-instance vpn-instance-name
(4) 進入BGP-VPN IPv4單播地址族視圖或BGP-VPN IPv6單播地址族視圖。
¡ 進入BGP-VPN IPv4單播地址族視圖。
address-family ipv4 [ unicast ]
¡ 進入BGP-VPN IPv6單播地址族視圖。
address-family ipv6 [ unicast ]
segment-routing ipv6 { best-effort | traffic-engineering | traffic-engineering best-effort }
缺省情況下,根據路由的下一跳地址查找IPv6路由表進行轉發。
在IP L3VPN over SRv6組網環境中,必須指定封裝的IPv6報文頭的源地址。否則,無法通過SRv6轉發數據流量。
配置源地址時,不能為環回地址、鏈路本地地址、組播地址和未指定地址。指定的源地址必須為本機地址,且已經由路由協議發布,建議指定本設備的Loopback接口地址。
(1) 進入係統視圖。
system-view
(2) 進入SRv6視圖。
segment-routing ipv6
(3) 配置封裝的IPv6報文頭的源地址。
encapsulation source-address ipv6-address [ ip-ttl ttl-value ]
缺省情況下,未指定封裝的IPv6報文頭的源地址。
IP L3VPN over SRv6快速重路由功能可以通過開啟指定地址族的快速重路由功能實現。采用這種方式時,設備會為當前VPN實例的所有BGP路由自動計算備份下一跳,即隻要從不同BGP對等體學習到了到達同一目的網絡的路由,且這些路由不等價,就會生成主備兩條路由。
在某些組網情況下,執行pic命令開啟該地址族的快速重路由功能,為所有BGP路由生成備份下一跳後,可能會導致路由環路,請謹慎使用本命令。
(1) 進入係統視圖。
system-view
(2) 配置靜態BFD檢測。
bfd static session-name [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] source-ipv6 ipv6-address [ discriminator local local-value remote remote-value ] [ track-interface interface-type interface-number ] ]
(3) 退回係統視圖。
quit
(4) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(5) 配置通過Echo方式的BFD會話檢測主路由的下一跳是否可達。
primary-path-detect bfd echo
缺省情況下,通過ARP檢測主路由的下一跳是否可達。
本命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。
(6) 進入BGP-VPN IPv4單播地址族視圖或BGP VPNv4地址族視圖或BGP-VPN IPv6單播地址族視圖或BGP VPNv6地址族視圖。
¡ 依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。
ip vpn-instance vpn-instance-name
address-family ipv4 [ unicast ]
¡ 進入BGP VPNv4地址族視圖。
address-family vpnv4
¡ 依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。
ip vpn-instance vpn-instance-name
address-family ipv6 [ unicast ]
¡ 進入BGP VPNv6地址族視圖。
address-family vpnv6
(7) 開啟當前地址族的快速重路由功能。
pic
缺省情況下,快速重路由功能處於關閉狀態。
本命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。
VPN實例關聯的隧道對報文TTL有如下兩種處理方式:
· Pipe模式:當IP(或IPv6)報文進入該VPN實例的隧道時,Ingress設備會為原始報文添加外層報文頭部,使用缺省值255(或在SRv6視圖下通過執行encapsulation source-address ip-ttl命令指定的TTL值)作為外層IP報文的TTL(或IPv6報文的Hop Limit);離開該VPN實例的隧道時,Egress設備不修改原始IP報文的TTL(或IPv6報文的Hop Limit)。使用這種方式時,公網中的節點對用戶網絡的報文不可見。公網Tracert的結果不包括每一跳信息,從而隱藏公網的結構。
· Uniform模式:當IP(或IPv6)報文進入該VPN實例的隧道時,Ingress設備會為原始報文添加外層報文頭部,將原始報文的TTL(或Hop Limit)值複製到外層IP報文的TTL(或IPv6報文的Hop Limit)域;離開該VPN實例的隧道時,Egress設備再將外層IP報文的TTL(或IPv6報文的Hop Limit)複製到原始IP報文的TTL(或IPv6報文的Hop Limit)域。使用這種方式時,公網中的節點對用戶網絡的報文可見。報文沿著隧道傳輸的過程中,TTL逐跳遞減,Tracert的結果將反映報文實際經過的路徑。
目前僅支持配置VPN實例關聯的SRv6隧道對TTL的處理模式。
(1) 進入係統視圖。
system-view
(2) 進入VPN實例視圖。
ip vpn-instance vpn-instance-name [ index vpn-index ]
(3) 配置VPN實例關聯的隧道對TTL的處理模式。
ttl-mode { pipe | uniform }
缺省情況下,VPN實例關聯的隧道對TTL的處理模式是Pipe模式。
本命令的詳細介紹,請參見“MPLS配置指導”中的“MPLS L3VPN”。
本節所有命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP基礎”。
可在任意視圖下執行以下命令:
· 顯示BGP VPNv4對等體信息。
display bgp [ instance instance-name ] peer vpnv4 { ipv6-address prefix-length | ipv6-address { log-info | verbose } }
· 顯示BGP VPNv4地址族下打包組的相關信息。
display bgp [ instance instance-name ] update-group vpnv4 ipv6-address
· 顯示BGP VPNv6對等體信息。
display bgp [ instance instance-name ] peer vpnv6 [ vpn-instance vpn-instance-name ] [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ]
· 顯示BGP VPNv6地址族下打包組的相關信息。
display bgp [ instance instance-name ] update-group vpnv6 [ vpn-instance vpn-instance-name ] [ ipv6-address ]
當BGP配置變化後,可以通過軟複位或複位BGP會話使新的配置生效。軟複位BGP會話是指在不斷開BGP鄰居關係的情況下,更新BGP路由信息;複位BGP會話是指斷開並重新建立BGP鄰居關係的情況下,更新BGP路由信息。軟複位需要BGP對等體具備路由刷新能力(支持ROUTE-REFRESH消息)。
本節所有命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP基礎”。
請在用戶視圖下執行以下命令:
· 手工對VPNv4地址族下的BGP會話進行軟複位
refresh bgp [ instance instance-name ] ipv6-address [ prefix-length ] { export | import } vpnv4
· 複位VPNv4地址族下的BGP會話
reset bgp [ instance instance-name ] ipv6-address [ prefix-length ] vpnv4
請在用戶視圖下執行以下命令,清除BGP VPNv4路由的震蕩統計信息。
reset bgp [ instance instance-name ] flap-info vpnv4 [ ipv4-address [ mask | mask-length ] | as-path-acl as-path-acl-number | peer ipv6-address [ prefix-length ] ]
如圖1-3所示,核心網為IPv6網絡,私網為IPv4網絡,在IPv6網絡中PE設備之間部署IP L3VPN over SRv6 BE,通過SRv6隧道傳遞VPNv4數據。
· CE 1和CE 2均屬於VPN 1。
· CE與PE之間配置EBGP交換VPN路由信息。
· 同一自治係統內的PE設備之間運行IS-IS實現IPv6網絡互通,配置MP-IBGP交換VPNv4路由信息。
圖1-3 IPv4 L3VPN over SRv6 BE配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
CE 1 |
GE0/0/1 |
10.1.1.2/24 |
PE 2 |
Loop0 |
3::3/128 |
PE 1 |
Loop0 |
1::1/128 |
|
GE0/0/1 |
10.2.1.1/24 |
|
GE0/0/1 |
10.1.1.1/24 |
|
GE0/0/2 |
2002::1/96 |
|
GE0/0/2 |
2001::1/96 |
CE 2 |
GE0/0/1 |
10.2.1.2/24 |
P |
Loop0 |
2::2/128 |
|
|
|
|
GE0/0/1 |
2001::2/96 |
|
|
|
|
GE0/0/2 |
2002::2/96 |
|
|
|
(1) 在PE和P設備上配置IPv6 IS-IS,實現骨幹網PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] is-level level-1
[PE1-isis-1] cost-style wide
[PE1-isis-1] network-entity 10.1111.1111.1111.00
[PE1-isis-1] address-family ipv6 unicast
[PE1-isis-1-ipv6] quit
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] ipv6 address 1::1 128
[PE1-LoopBack0] isis ipv6 enable 1
[PE1-LoopBack0] quit
[PE1] interface gigabitethernet 0/0/2
[PE1-GigabitEthernet0/0/2] ipv6 address 2001::1 96
[PE1-GigabitEthernet0/0/2] isis ipv6 enable
[PE1-GigabitEthernet0/0/2] quit
# 配置P。
<P> system-view
[P] isis
[P-isis-1] is-level level-1
[P-isis-1] cost-style wide
[P-isis-1] network-entity 10.2222.2222.2222.00
[P-isis-1] address-family ipv6 unicast
[P-isis-1-ipv6] quit
[P-isis-1] quit
[P] interface loopback 0
[P-LoopBack0] ipv6 address 2::2 128
[P-LoopBack0] isis ipv6 enable
[P-LoopBack0] quit
[P] interface gigabitethernet 0/0/1
[P-GigabitEthernet0/0/1] ipv6 address 2001::2 96
[P-GigabitEthernet0/0/1] isis ipv6 enable
[P-GigabitEthernet0/0/1] quit
[P] interface gigabitethernet 0/0/2
[P-GigabitEthernet0/0/2] ipv6 address 2002::2 96
[P-GigabitEthernet0/0/2] isis ipv6 enable
[P-GigabitEthernet0/0/2] quit
# 配置PE 2。
<PE2> system-view
[PE2] isis
[PE2-isis-1] is-level level-1
[PE2-isis-1] cost-style wide
[PE2-isis-1] network-entity 10.3333.3333.3333.00
[PE2-isis-1] address-family ipv6 unicast
[PE2-isis-1-ipv6] quit
[PE2-isis-1] quit
[PE2] interface loopback 0
[PE2-LoopBack0] ipv6 address 3::3 128
[PE2-LoopBack0] isis ipv6 enable
[PE2-LoopBack0] quit
[PE2] interface gigabitethernet 0/0/2
[PE2-GigabitEthernet0/0/2] ipv6 address 2002::1 96
[PE2-GigabitEthernet0/0/2] isis ipv6 enable
[PE2-GigabitEthernet0/0/2] quit
配置完成後,PE 1、P、PE 2之間應能建立IPv6 IS-IS鄰居,執行display isis peer命令可以看到鄰居達到Up狀態。執行display isis route ipv6命令可以看到PE之間學習到對方的Loopback接口的路由。
(2) 在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] interface gigabitethernet 0/0/1
[PE1-GigabitEthernet0/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet0/0/1] ip address 10.1.1.1 24
[PE1-GigabitEthernet0/0/1] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface gigabitethernet 0/0/1
[PE2-GigabitEthernet0/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet0/0/1] ip address 10.2.1.1 24
[PE2-GigabitEthernet0/0/1] quit
# 按圖1-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 : 1
Total IPv4 VPN-Instances configured : 1
Total IPv6 VPN-Instances configured : 1
VPN-Instance Name RD Address family Create time
vpn1 100:1 N/A 2019/08/12 13:59:39
[PE1] ping -vpn-instance vpn1 10.1.1.2
Ping 10.1.1.2 (10.1.1.2): 56 data bytes, press CTRL+C to break
56 bytes from 10.1.1.2: icmp_seq=0 ttl=255 time=2.000 ms
56 bytes from 10.1.1.2: icmp_seq=1 ttl=255 time=0.000 ms
56 bytes from 10.1.1.2: icmp_seq=2 ttl=255 time=1.000 ms
56 bytes from 10.1.1.2: icmp_seq=3 ttl=255 time=0.000 ms
56 bytes from 10.1.1.2: icmp_seq=4 ttl=255 time=0.000 ms
--- Ping statistics for 10.1.1.2 in VPN instance vpn1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.600/2.000/0.800 ms
(3) 在PE與CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 10.1.1.1 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.1 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# CE 2配置與CE 1設備配置類似,配置過程省略。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] router-id 1.1.1.1
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10.1.1.2 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.2 enable
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
# PE 2配置與PE 1設備配置類似,配置過程省略。
配置完成後,在PE設備上執行display bgp peer ipv4 vpn-instance命令,可以看到PE與CE之間的BGP對等體關係已建立,並達到Established狀態。
(4) 在PE之間建立MP-IBGP對等體
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 3::3 as-number 100
[PE1-bgp-default] peer 3::3 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3::3 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 1::1 as-number 100
[PE2-bgp-default] peer 1::1 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 1::1 enable
[PE2-bgp-default-vpnv4] quit
[PE2-bgp-default] quit
配置完成後,在PE設備上執行display bgp peer vpnv4命令,可以看到PE之間的BGP對等體關係已建立,並達到Established狀態。
(5) 在PE設備上配置IP L3VPN over SRv6封裝的IPv6報文頭的源地址
# 配置PE 1。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] encapsulation source-address 11::11
# 配置PE 2。
[PE2] segment-routing ipv6
[PE2-segment-routing-ipv6] encapsulation source-address 33::33
(6) 在PE設備上配置IP L3VPN over SRv6封裝的IPv6報文頭的目的地址End.DT4 SID
# 配置PE 1。
[PE1-segment-routing-ipv6] locator aaa ipv6-prefix 1:2::1:0 96 static 8
[PE1-segment-routing-ipv6-locator-aaa] quit
[PE1-segment-routing-ipv6] quit
[PE1] isis 1
[PE1-isis-1] address-family ipv6 unicast
[PE1-isis-1-ipv6] segment-routing ipv6 locator aaa
[PE1-isis-1-ipv6] quit
[PE1-isis-1] quit
# 配置PE 2。
[PE2-segment-routing-ipv6] locator bbb ipv6-prefix 6:5::1:0 96 static 8
[PE2-segment-routing-ipv6-locator-bbb] quit
[PE2-segment-routing-ipv6] quit
[PE2] isis 1
[PE2-isis-1] address-family ipv6 unicast
[PE2-isis-1-ipv6] segment-routing ipv6 locator bbb
[PE2-isis-1-ipv6] quit
[PE2-isis-1] quit
配置完成後,在PE設備上執行display ipv6 routing-table命令,可以看到已經將End.DT4 SID引入路由表中,並生成SRv6路由。
以PE 1為例:
[PE1] display ipv6 routing-table protocol srv6
Summary count : 1
SRv6 Routing table status : <Active>
Summary count : 1
Destination: 1:2::101/128 Protocol : SRv6
NextHop : ::1 Preference: 4
Interface : InLoop0 Cost : 0
SRv6 Routing table status : <Inactive>
Summary count : 0
(7) 在PE設備上配置為私網路由添加End.DT4 SID
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 locator aaa
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 locator bbb
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
(8) 在PE設備上配置IPv6對等體之間交換End.DT4 SID,同時允許將私網路由迭代到End.DT4 SID的路由條目上
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3::3 prefix-sid
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 best-effort
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 1::1 prefix-sid
[PE2-bgp-default-vpnv4] quit
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 best-effort
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
配置完成後,在PE設備上執行display bgp routing-table vpnv4命令查看對端PE發送的路由詳細信息,可以看到對端PE發送的路由攜帶SID屬性數據。
以PE 1為例:
[PE1] display bgp routing-table vpnv4 10.2.1.0
BGP local router ID: 1.1.1.1
Local AS number: 100
Route distinguisher: 100:1(vpn1)
Total number of routes: 1
Paths: 1 available, 1 best
BGP routing table information of 10.2.1.0/24:
From : 3::3 (3.3.3.3)
Rely nexthop : FE80::2A96:34FF:FE9D:216
Original nexthop: 3::3
Out interface : GigabitEthernet0/0/2
Route age : 00h14m23s
OutLabel : 3
Ext-Community : <RT: 111:1>
RxPathID : 0x0
TxPathID : 0x0
PrefixSID : End.DT4 SID <6:5::101>
AS-path : 65420
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0
State : valid, internal, best
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
Tunnel policy : NULL
Rely tunnel IDs : N/A
# 在PE設備上執行display ip routing-table vpn-instance命令,可以看到去往對端CE的路由,並且路由下一跳值為路由攜帶的End.DT4 SID。
以PE 1為例:
[PE1] display ip routing-table vpn-instance vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 Direct 0 0 10.1.1.1 GE0/0/1
10.1.1.0/32 Direct 0 0 10.1.1.1 GE0/0/1
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.1 GE0/0/1
10.2.1.0/24 BGP 255 0 6:5::101 GE0/0/2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
CE 1和CE 2之間能夠ping通。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!