• 產品與解決方案
  • 行業解決方案
  • 服務
  • 支持
  • 合作夥伴
  • 關於我們

IPv6 SR典型配置

1 IPv6 SR· 1-1

1.1 IPv6 SR簡介·· 1-1

1.1.1 IPv6 SR基本概念·· 1-1

1.1.2 IPv6 SR報文·· 1-2

1.1.3 IPv6 SR報文轉發過程·· 1-3

1.1.4 SRv6 VPN· 1-4

1.1.5 引流到IPv6 SR隧道·· 1-5

1.1.6 協議規範·· 1-6

1.2 IPv6 SR配置配置限製和指導·· 1-6

1.3 IPv6 SR配置任務簡介·· 1-6

1.4 IPv6 SR配置準備·· 1-7

1.5 配置SRv6 SID· 1-7

1.6 配置通過IGP通告SRv6 SID· 1-8

1.7 配置IPv6 SR隧道·· 1-8

1.7.1 配置IPv6 SR SID列表·· 1-8

1.7.2 配置IPv6 SR隧道引用SID列表·· 1-9

1.7.3 配置隧道轉發類·· 1-9

1.7.4 開啟IPv6 SR隧道echo模式的BFD檢測功能·· 1-10

1.8 配置SRv6 VPN· 1-10

1.8.1 SRv6 VPN配置任務簡介·· 1-10

1.8.2 配置為私網路由添加End.DT4 SID· 1-11

1.8.3 配置PE-PE間交互BGP VPNv4路由·· 1-12

1.8.4 配置IPv6對等體之間交換End.DT4 SID· 1-12

1.8.5 配置BGP VPNv4路由·· 1-13

1.8.6 配置SRv6 VPN封裝的IPv6報文頭的源地址·· 1-16

1.8.7 配置私網路由根據SID屬性迭代·· 1-16

1.9 配置流量轉發·· 1-17

1.9.1 配置靜態路由使流量沿IPv6 SR隧道轉發·· 1-17

1.9.2 配置自動發布靜態路由使流量沿IPv6 SR隧道轉發·· 1-17

1.9.3 配置自動發布IGP路由使流量沿IPv6 SR隧道轉發·· 1-17

1.10 IPv6 SR顯示和維護·· 1-18

1.10.1 複位BGP會話·· 1-18

1.10.2 顯示和維護IPv6 SR的運行狀態·· 1-19

1.10.3 顯示和維護SRv6 VPN的運行狀態·· 1-19

1.11 IPv6 SR典型配置舉例·· 1-20

1.11.1 IPv6 SR基本配置舉例·· 1-20

1.11.2 IPv6 SR隧道自動路由發布配置舉例·· 1-23

1.11.3 SRv6 VPN配置舉例·· 1-27


1 IPv6 SR

1.1 IPv6 SR簡介

SR(Segment Routing,段路由)采用源節點路徑選擇機製,預先在源節點封裝好路徑所要經過段的SID(Segment Identifier,段標識),當報文經過SR節點時,該節點根據報文的SID對報文進行轉發。除源節點外,其它節點無需維護路徑狀態。IPv6 SR(SRv6)是指在IPv6網絡中使用SR、將IPv6地址作為SID對報文進行轉發。

1.1.1 IPv6 SR基本概念

1. SR節點

支持IPv6 SR功能的設備被稱為SR節點。其中,負責選擇路徑,並將路徑轉換成一個有序的SID列表封裝到擴展報文頭中的節點稱為源節點;負責傳輸封裝報文的節點稱為中間節點;負責剝離封裝的擴展報文頭、並將報文轉發給目的網絡的出口節點稱為尾節點。

2. SID

在IPv6 SR中,SID分為兩種:

· 采用接口的IPv6地址作為SID。

· 定義某種網絡功能、代表網絡指令的SID。這種SID采用IPv6地址形式,但不與任何設備上的接口地址對應。該SID被稱為SRv6 SID。

如圖1-1所示,SRv6 SID由Locator和Function兩部分組成:

· Locator:標識路由能力,指導流量在指定的節點轉發。Locator在SR域內唯一。

· Function:標識設備的網絡功能,例如轉發報文、執行特定業務等。SR域內指定節點收到流量後,根據SRv6 SID的Funciton字段執行相關操作。

圖1-1 SRv6 SID

根據SRv6 SID功能的不同,SRv6 SID分為:

· End SID:用於標識網絡中的某個目的地址前綴。

· End.X SID:用於標識網絡中的某條鏈路。

· End.DT4 SID:用於標識網絡中的某個IPv4 VPN。

通過IGP協議通告SR節點的SRv6 SID後,其他SR節點可以根據收到的路由協議報文生成到達該SRv6 SID的路由轉發表項。

3. Local SID表

運行SRv6的節點維護一個Local SID表,記錄本節點生成的SRv6 SID信息。Local SID表主要用於:

· 保存本地生成的SRv6 SID轉發信息。

· 存儲對SRv6 SID的操作方式。

4. Segment List

Segment List是包含報文轉發路徑信息的SID列表。

5. IPv6 SR隧道

IPv6 SR通過在源節點對IPv6數據報文進行封裝,使封裝後的報文在開啟IPv6 SR功能的網絡中進行傳輸。封裝後的數據報文在網絡中傳輸的路徑,稱為IPv6 SR隧道。IPv6 SR隧道是從源節點到尾節點的一個虛擬的點對點連接,其兩端的設備分別對數據報文進行封裝及解封裝。

1.1.2 IPv6 SR報文

IPv6 SR的報文封裝格式為:在原始三層數據報文前麵添加新的IPv6基本頭和SRH(Segment Identifier Header,IPv6 SR報文頭)。SRH是路由類型取值為4的一種路由擴展頭。如圖1-2所示,IPv6基本頭中Next Header取值為43,表明下一個報文頭為路由擴展頭。路由擴展頭的路由類型字段取值為4,表明該路由擴展頭為SRH。SRH主要包含以下幾個部分:

· Next Header:8bits,用來標識下一個報文頭的類型。

· Hdr Ext Len:8bits,表示以8個字節為單位的SRH頭的長度,不包括前8個字節。

· Routing Type:8bits,路由類型字段,取值為4,表示攜帶的是SRH。

· Segments Left:8bits,標識需要查看的下一個SID的編號,初始取值為n-1(n表示路由擴展頭中SID的數目),每經過一個節點減1。

· Last Entry:8bits,SRH頭中報文轉發路徑最後一個SID的編號,取值為0。

· Flags:8bits,標誌位信息。

· Tag:16bits,用來標記具有相同特性的一組報文。

· Segment List:SID列表。按照報文轉發路徑上節點從遠到近的順序進行排列,即Segment List [0]表示路徑的最後一個SID,Segment List [1]表示路徑的倒數第二個SID,以此類推。

圖1-2 IPv6 SR的報文封裝示意圖

1.1.3 IPv6 SR報文轉發過程

如圖1-3所示,IPv6 SR隧道報文轉發過程如下:

(1) 源節點Device A收到IPv6報文後,查找路由表判定此報文需要通過IPv6 SR隧道模式的Tunnel接口轉發,並將報文發給相應的Tunnel接口。

(2) Tunnel接口收到此IPv6報文後,執行如下操作對報文進行封裝:

¡ 封裝SRH頭。由於從Ingress到Egress的跳數為3,因此,SRH中SL為跳數-1,即SL=2。封裝的SID列表信息為Segment List [0]=D、Segment List [1]=C、Segment List [2]=B,即按照節點由遠及近的順序進行排列。

¡ 封裝IPv6頭。IPv6頭中的源地址為隧道的源端地址,目的地址為SL指示的地址,即SL為2時表示SRH中Segment List [2]對應的地址(本例中為Device B的地址)。

(3) Device A根據封裝的IPv6頭中的目的地址查找路由表,將封裝後的報文轉發給Device B。

(4) Device B收到報文後,首先檢查IPv6頭中目的地址的SID類型:

¡ 對於End.X SID,根據End.X SID獲取出接口和下一跳信息。

¡ 對於其他類型SID,無任何操作。

然後檢查SRH頭中的SL值,並將SL值減1,同時查找Segment List [1]對應的地址,即Device C的地址,並使用Device C的地址替換IPv6頭中的目的地址。

(5) 對於End.X SID,Device B根據獲取的出接口和下一跳信息,直接將封裝後的報文轉發給Device C。對於其他類型SID,Device B根據封裝的IPv6頭中的目的地址查找路由表,將封裝後的報文轉發給Device C。

(6) Device C收到報文後,執行(4)、(5)步的操作,將報文發給Device D。

(7) 尾節點Device D收到報文後,檢查SRH頭中的SL值,發現SL=0。對報文進行解封裝,刪除封裝報文頭,根據原始報文的目的地址進行報文轉發。

圖1-3 IPv6 SR隧道報文轉發示意圖

1.1.4 SRv6 VPN

SRv6 VPN即IPv4 VPN over IPv6 SR,是指通過IPv6 SR隧道傳遞IPv4 VPN數據。

如圖1-4所示,通過MP-BGP在IPv6骨幹網上發布用戶站點的IPv4私網路由,使用PE間的單跳IPv6 SR隧道承載私網報文,在骨幹網上根據IGP計算的最優路徑轉發私網報文,從而實現通過IPv6骨幹網連接屬於同一個VPN、位於不同地理位置的用戶。

圖1-4 SRv6 VPN組網示意圖

2. 路由發布

如圖1-4所示,CE 1路由發布到CE 2的過程為:

(1) CE 1使用靜態路由、RIP、OSPF、IS-IS、EBGP或IBGP,將本站點的私網路由發布給PE 1。

(2) PE 1從CE 1學習到私網路由信息後,將其存放到相應的VPN實例1的路由表中。PE 1為私網路由增加RD和RT屬性,並為這些路由分配私網標簽End.DT4 SID,形成VPNv4路由。PE 1通過MP-BGP把VPNv4路由發布給PE 2。

(3) PE 2收到VPNv4路由後,將該路由加入到VPN實例1的路由表中並將VPNv4路由轉換成IPv4路由發布給CE 2。

(4) CE 2收到路由後,學習到路由表中,即CE 2學習到CE 1的路由。

3. 報文轉發

完成路由發布後,報文從CE 2到CE 1的轉發過程為:

(1) CE 2發送IPv4報文給PE 2。

(2) PE 2從綁定了VPN實例的接口上收到私網報文後,在VPN實例1的路由表中查找匹配IPv4目的地址的路由,找到對應的End.DT4 SID。然後為報文封裝IPv6報文頭和SRH:

¡ 在IPv6報文頭中End.DT4 SID作為其目的地址。

¡ 在SRH中,Segments Left=0且Segment list[0]=End.DT4 SID。

(3) PE 2根據End.DT4 SID查找IPv6路由表,通過最優IGP路由將報文轉發給P。

(4) P根據End.DT4 SID查找IPv6路由表,通過最優IGP路由將報文轉發給PE 1。

(5) PE 1根據End.DT4 SID查找Local SID表,執行End.DT4 SID對應的轉發動作,即解封裝報文去掉IPv6報文頭和SRH,並根據End.DT4 SID匹配VPN實例1,在VPN實例1的路由表中,查表轉發,將報文發送給CE 1。

1.1.5 引流到IPv6 SR隧道

當IPv6 SR隧道建立之後,流量不會自動通過IPv6 SR隧道轉發,需要通過如下方法配置流量沿IPv6 SR隧道轉發。

1. 靜態路由

使用靜態路由轉發流量,是指在源節點定義一條通過Tunnel接口到達目的網絡地址的靜態路由,把流量引入到IPv6 SR隧道上進行轉發。

靜態路由是將流量引入IPv6 SR隧道的最簡便、直觀的方法。該方法的缺點是:如果多個目的網絡的流量都需要引入到IPv6 SR隧道上,則需要配置多條靜態路由,配置和維護難度比較大。

有關靜態路由的介紹請參見“三層技術-IP路由配置指導”中的“靜態路由”。

2. 自動路由發布

自動路由發布是指將IPv6 SR隧道發布到IGP中,讓IPv6 SR隧道參與IGP路由的計算,使得流量可以通過IPv6 SR隧道轉發。自動路由發布包括以下兩種方式:

· IGP Shortcut:也稱為自動路由宣告(AutoRoute Announce),該功能將IPv6 SR隧道當作一條直接連接隧道Ingress節點(頭節點)和Egress節點(尾節點)的鏈路,在隧道的Ingress節點上進行IGP路由計算時考慮該IPv6 SR隧道。

· 轉發鄰接:該功能將IPv6 SR隧道當作一條直接連接隧道Ingress節點和Egress節點的鏈路,通過IGP路由協議將該鏈路發布到網絡中,以便網絡中的節點在路由計算時使用IPv6 SR隧道。

說明

目前僅支持IGP Shortcut功能。

IGP Shortcut和轉發鄰接功能的區別在於:

· 在隧道的Ingress節點上開啟IGP Shortcut功能後,隻有Ingress節點計算IGP路由時會考慮IPv6 SR隧道。IGP Shortcut功能不會通過IGP路由協議將IPv6 SR隧道作為一條鏈路發布出去。因此,其他設備在路由計算時不會考慮IPv6 SR隧道。

· 在隧道的Ingress節點上開啟轉發鄰接功能後,Ingress節點會通過IGP路由協議將IPv6 SR隧道作為一條鏈路發布出去。因此,IGP網絡中的所有設備在路由計算時都會考慮IPv6 SR隧道。

圖1-5 IGP Shortcut與轉發鄰接示意圖

在圖1-5中,Device D到Device C之間存在一條IPv6 SR隧道,IGP Shortcut隻能使Ingress節點Device D在計算IGP路由時利用這條隧道,Device A並不能利用這條隧道到達Device C。如果配置了轉發鄰接功能,則Device A也能夠知道這條IPv6 SR隧道的存在,從而可以利用該隧道將到Device C的流量轉發到Device D上。

1.1.6 協議規範

與IPv6 segment routing相關的協議規範有:

· draft-previdi-6man-segment-routing-header

· draft-ietf-6man-segment-routing-header

· draft-filsfils-spring-segment-routing

· draft-filsfils-spring-srv6-network-programming

1.2 IPv6 SR配置配置限製和指導

支持SDN控製器批量下發SRv6 Poilicy隧道,且下發隧道數≥1K。

僅sdn-wan工作模式支持本特性。有關係統工作模式的介紹,請參見“基礎配置指導”中的“設備管理”。

1.3 IPv6 SR配置任務簡介

IPv6 SR配置任務如下:

(1) 配置SRv6 SID

通過SRv6 SID建立路由轉發表項時,本功能必選。

(2) 配置通過IGP通告SRv6 SID

通過SRv6 SID建立路由轉發表項時,本功能必選。

(3) 配置IPv6 SR隧道

在IPv6 SR隧道的源節點上配置IPv6 SR隧道。

a. 配置IPv6 SR SID列表

b. 配置IPv6 SR隧道引用SID列表

c. (可選)配置隧道轉發類

d. (可選)開啟IPv6 SR隧道echo模式的BFD檢測功能

(4) 配置SRv6 VPN

使用IPv6 SR隧道傳遞VPN數據時,本功能必選。

(5) 配置流量轉發

1.4 IPv6 SR配置準備

在配置IPv6 SR之前,需完成以下任務:

· 確定IPv6 SR隧道的源節點、中間節點和尾節點。

· 規劃節點的IP地址。

1.5 配置SRv6 SID

1. 功能簡介

SRv6 SID分為Locator段和Opcode段(即Function),二者組成唯一的SRv6 SID,用於生成對應的Local SID表。

SRv6 SID生成方式如下:SRv6 SID=ipv6-prefix+opcode+0。其中ipv6-prefix為配置Locator時指定的IPv6地址前綴,所占位數為prefix-length;opcode為配置的Opcode段,所占位數為static-length。如果IPv6地址前綴和Opcode段位數之和不足128,則其餘位全部為0。例如配置情況如下:

· locator test1 ipv6-prefix 100:: 64 static 32

· opcode 64 end

則SRv6 SID為100::40:0:0。

2. 配置限製和指導

不同Locator的名稱不能相同。

不能為不同Locator配置相同的IPv6地址前綴和前綴長度,且不同Locator的IPv6地址前綴不能有重疊部分。

3. 配置步驟

(1) 進入係統視圖。

system-view

(2) 開啟IPv6 SR功能,並進入SRv6視圖。

segment-routing ipv6

(3) 配置Locator段,並進入SRv6 Locator視圖。

locator locator-name ipv6-prefix ipv6-address prefix-length static static-length

(4) 配置Opcode段。

¡ 配置End SID。

opcode opcode end

¡ 配置End.X SID。

opcode opcode end-x interface interface-type interface-number nexthop nexthop-address

¡ 配置End.DT4 SID。

opcode opcode end-dt4 vpn-instance vpn-instance-name

不同VPN實例不能配置相同End.DT4 SID。

1.6 配置通過IGP通告SRv6 SID

1. 功能簡介

通過引用Locator段,IGP協議可以通告Locator段內的SRv6 SID。

2. 配置準備

配置通過IGP通告SRv6 SID前,需要確保IS-IS開銷值的類型為wide、compatible或wide-compatible。關於IS-IS開銷值類型的配置請參見“三層技術-IP路由配置指導”中的“IS-IS”。

3. 配置步驟

(1) 進入係統視圖。

system-view

(2) 進入IS-IS視圖。

isis [ process-id ] [ vpn-instance vpn-instance-name ]

(3) 進入IS-IS IPv6地址族視圖。

address-family ipv6 [ unicast ]

(4) 引用Locator段。

segment-routing ipv6 locator locator-name [ level-1 | level-2 ]

缺省情況下,未引用Locator段。

多次配置本功能,可以引用多個Locator段,從而通告多個SRv6 SID。

1.7 配置IPv6 SR隧道

1.7.1 配置IPv6 SR SID列表

1. 功能簡介

IPv6 SR SID列表中的節點采用索引值唯一標識,並按照索引值從小到大的順序形成報文轉發路徑。在封裝SID列表時,IPv6 SR會根據索引值自動分配SID編號,最小的索引值對應最大的SID編號,最大的索引值對應最小的SID編號。

2. 配置限製和指導

配置SID列表時,請注意:

· 如果手工指定節點索引值,請確保離源節點越近的節點索引值越小。

· 如果不指定索引值,設備會按照配置順序為節點自動分配索引值,最先配置的節點索引值最小。配置時,請先配置離源節點最近的SID。

3. 配置步驟

(1) 進入係統視圖。

system-view

(2) 創建IPv6 SR的SID列表,並進入對應的列表視圖。

ipv6 segment-routing sid-list list-name

(3) 配置SID列表中的節點。

sid [ index index-number ] ipv6-address

當節點使用接口的IPv6地址作為SID時,需要通過IGP協議通告該接口的IPv6地址,使得路由可達。

當節點使用SRv6 SID時,需要配置IGP協議通告該SRv6 SID,使得路由可達。

1.7.2 配置IPv6 SR隧道引用SID列表

(1) 進入係統視圖。

system-view

(2) 創建IPv6 SR模式的隧道接口,並進入對應的隧道接口視圖。

interface tunnel tunnel-number mode sr ipv6

(3) 指定隧道引用的SID列表。

tunnel sid-list list-name [ backup ]

缺省情況下,IPv6 SR隧道未引用任何SID列表。

1.7.3 配置隧道轉發類

1. 功能簡介

通過配置隧道轉發類,與隧道轉發類匹配的流量可以選擇相對應的隧道進行轉發,以便根據業務的不同提供不同的轉發服務。

配置本功能後:

· 設備會優先選擇與流量的隧道轉發類值相同的隧道轉發該流量。

· 如果存在多條與流量的隧道轉發類值相同的隧道,隻有一條流且為逐流轉發則隨機選擇一條隧道轉發;有多條流或者一條流但是為逐包轉發則相同轉發類的隧道進行負載分擔。

· 如果沒有與流量的隧道轉發類值相同的隧道,從比流量的轉發類值小的隧道中選擇轉發類值最大的隧道進行轉發。

2. 配置步驟

(1) 進入係統視圖。

system-view

(2) 進入模式為IPv6 SR隧道的Tunnel接口視圖。

interface tunnel tunnel-number [ mode sr ipv6 ]

(3) 配置隧道轉發類。

service-class class-value

缺省情況下,未配置隧道轉發類。

1.7.4 開啟IPv6 SR隧道echo模式的BFD檢測功能

1. 功能簡介

通過配置本命令,設備通過BFD會話檢測IPv6 SR隧道,以便設備能夠快速發現隧道故障,及時進行相應地處理,如將流量切換到備份路徑。

開啟IPv6 SR隧道echo模式的BFD檢測功能後,當BFD會話狀態為down時,IPv6 SR隧道狀態為down;當BFD會話狀態為up時,IPv6 SR隧道狀態為up。

2. 配置步驟

(1) 進入係統視圖。

system-view

(2) 配置echo報文的源IPv6地址。

bfd echo-source-ipv6 ipv6-address

缺省情況下,未配置echo報文的源IPv6地址。,

為了避免對端發送大量的ICMP重定向報文造成網絡擁塞,建議不要將echo報文的源IPv6地址配置為屬於該設備任何一個接口所在網段。關於本命令的詳細介紹請參見“可靠性配置指導”中的“BFD”。

(3) 進入模式為IPv6 SR隧道的Tunnel接口視圖。

interface tunnel tunnel-number [ mode sr ipv6 ]

(4) 開啟echo模式的BFD檢測功能。

tunnel bfd enable echo

缺省情況下,IPv6 SR隧道echo模式BFD檢測功能處於關閉狀態。

1.8 配置SRv6 VPN

1.8.1 SRv6 VPN配置任務簡介

SRv6 VPN配置任務如下:

(1) 配置VPN實例

在PE設備上執行本配置,配置方法請參見“MPLS配置指導”中的“MPLS L3VPN”。

(2) 配置PE-CE間的路由交換

a. 在PE-CE間配置靜態路由、RIP、OSPF、IS-IS、EBGP或IBGP

CE使用靜態路由、RIP、OSPF、IS-IS、EBGP或IBGP,將本站點的VPN路由發布給PE。在PE上需要為路由協議關聯指定VPN實例,在CE上配置普通路由協議即可。關於各個路由協議的具體配置,請參見“三層技術-IP路由配置指導”。

b. 配置為私網路由添加End.DT4 SID

隻有配置本功能後,PE設備才能為私網路由添加私網標簽End.DT4 SID。

(3) 配置PE-PE間的路由交換

a. 配置PE-PE間交互BGP VPNv4路由

b. 配置IPv6對等體之間交換End.DT4 SID

隻有配置本功能後,PE設備之間交換VPNv4路由時才可以交換私網標簽End.DT4 SID。

c. (可選)配置BGP VPNv4路由

(4) 配置SRv6 VPN封裝的IPv6報文頭的源地址

本功能用來指定SRv6 VPN骨幹網中報文封裝的IPv6報文頭的源地址。

(5) 配置SRv6 SID

本功能用來指定SRv6 VPN骨幹網中報文封裝的IPv6報文頭的目的地址End.DT4 SID。

(6) 配置私網路由根據SID屬性迭代

隻有配置本功能後,PE設備才能將私網路由迭代到End.DT4 SID對應的路由表項上,以便在骨幹網上根據IGP計算的最優路徑轉發私網報文。

1.8.2 配置為私網路由添加End.DT4 SID

1. 功能簡介

在SRv6 VPN組網場景中,通過BGP Update消息發布私網路由時,需要攜帶End.DT4 SID。在指定VPN實例的BGP-VPN IPv4單播地址族視圖下配置本功能後,PE設備將為該VPN實例內的私網路由添加指定的End.DT4 SID,通過End.DT4 SID標識該VPN實例的報文。

2. 配置限製和指導

配置本功能前,必須滿足以下條件:

· 指定的Locator必須存在。

· End.DT4 SID所在VPN實例與私網的VPN實例必須相同。

3. 配置步驟

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP-VPN實例視圖。

ip vpn-instance vpn-instance-name

(4) 進入BGP-VPN IPv4單播地址族視圖。

address-family ipv4 [ unicast ]

(5) 配置私網路由轉變為VPNv4路由時攜帶SID屬性。

segment-routing ipv6 locator locator-name

缺省情況下,私網路由轉變為VPNv4路由時不攜帶SID屬性。

1.8.3 配置PE-PE間交互BGP VPNv4路由

1. 配置限製和指導

本節所有命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。

2. 配置步驟

(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 VPNv4地址族視圖。

address-family vpnv4

(6) 使能本地路由器與指定IPv6對等體交換VPNv4路由信息的能力。

peer { group-name | ipv6-address [ prefix-length ] } enable

缺省情況下,本地路由器不能與對等體交換VPNv4路由信息。

1.8.4 配置IPv6對等體之間交換End.DT4 SID

1. 功能簡介

配置本功能後,IPv6對等體之間可以通過VPNv4路由交換End.DT4 SID信息。

2. 配置步驟

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP VPNv4地址族視圖。

address-family vpnv4

(4) 配置與指定IPv6對等體之間交換End.DT4 SID信息。

peer { group-name | ipv6-address [ prefix-length ] } prefix-sid

缺省情況下,IPv6對等體之間不能交換End.DT4 SID信息。

1.8.5 配置BGP VPNv4路由

1. 配置限製和指導

本節所有命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。

2. 控製BGP VPNv4路由的接收和保存

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP VPNv4地址族視圖。

address-family vpnv4

(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

缺省情況下,不保存來自對等體/對等體組的原始路由更新信息。

3. 配置BGP VPNv4路由的首選值

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP VPNv4地址族視圖。

address-family vpnv4

(4) 為從指定對等體/對等體組接收的路由分配首選值。

peer { group-name | ipv6-address [ prefix-length ] } preferred-value value

缺省情況下,從對等體/對等體組接收的路由的首選值為0。

4. 配置BGP VPNv4路由反射

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP VPNv4地址族視圖。

address-family vpnv4

(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

缺省情況下,不允許路由反射器反射路由時修改路由屬性。

5. 配置BGP VPNv4路由屬性

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP VPNv4地址族視圖。

address-family vpnv4

(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屬性。

6. 配置BGP VPNv4路由過濾

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP VPNv4地址族視圖。

address-family vpnv4

(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路由進行Route Target過濾。

policy vpn-target

缺省情況下,對接收到的VPNv4路由進行Route Target過濾,即隻將Export Route Target屬性與本地Import Route Target屬性匹配的VPNv4路由加入到路由表。

7. 配置BGP Add-Path

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP VPNv4地址族視圖。

address-family vpnv4

(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秒,即路由優選不延遲。

1.8.6 配置SRv6 VPN封裝的IPv6報文頭的源地址

1. 配置限製和指導

在SRv6 VPN組網環境中,必須指定封裝的IPv6報文頭的源地址。否則,無法通過SRv6 VPN轉發數據流量。

配置源地址時,可以指定任意IPv6地址。建議指定為本設備上未使用的IPv6地址。

2. 配置步驟

(1) 進入係統視圖。

system-view

(2) 進入SRv6視圖。

segment-routing ipv6

(3) 配置SRv6 VPN封裝的IPv6報文頭的源地址。

encapsulation source-address ipv6-address [ ip-ttl ttl-value ]

缺省情況下,未指定SRv6 VPN封裝的IPv6報文頭的源地址。

1.8.7 配置私網路由根據SID屬性迭代

1. 功能簡介

在SRv6 VPN組網場景中,PE設備為私網報文添加End.DT4 SID後,需要根據報文的End.DT4 SID查找路由表進行轉發。配置本功能後,PE設備才能將私網路由迭代到End.DT4 SID對應的路由表項上,才能通過IGP計算出到達End.DT4 SID的最優路徑。

2. 配置步驟

(1) 進入係統視圖。

system-view

(2) 進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3) 進入BGP-VPN實例視圖。

ip vpn-instance vpn-instance-name

(4) 進入BGP-VPN IPv4單播地址族視圖。

address-family ipv4 [ unicast ]

(5) 配置私網路由根據路由攜帶的SID屬性進行迭代。

segment-routing ipv6 sid-route-recursion

缺省情況下,PE設備不能將私網路由迭代到End.DT4 SID對應的路由表項上,直接查找路由表進行轉發。

1.9 配置流量轉發

1.9.1 配置靜態路由使流量沿IPv6 SR隧道轉發

通過配置靜態路由使流量沿IPv6 SR隧道轉發,靜態路由命令的詳細介紹請參見“三層技術-IP路由命令參考”中的“靜態路由”。命令中指定的接口為IPv6 SR隧道模式的Tunnel接口。

1.9.2 配置自動發布靜態路由使流量沿IPv6 SR隧道轉發

1. 功能簡介

在Tunnel接口下配置本功能後,將會自動生成一條靜態路由,靜態路由目的地址是隧道的目的IP,出接口是配置本命令的Tunnel接口。

2. 配置步驟

(1) 進入係統視圖。

system-view

(2) 進入模式為IPv6 SR隧道的Tunnel接口視圖。

interface tunnel tunnel-number [ mode sr ipv6 ]

(3) 配置自動發布靜態路由功能。

tunnel route-static [ preference preference-value ]

缺省情況下,設備不會自動發布靜態路由。

1.9.3 配置自動發布IGP路由使流量沿IPv6 SR隧道轉發

1. 功能簡介

為了將IPv6 SR隧道發布到IGP中,並參與IGP路由的計算,使得流量可以通過IPv6 SR隧道轉發,需要部署以下功能:

· IPv6 Route ID

IPv6 Route ID決定了發布到IGP路由中的IPv6 SR隧道的源地址和目的地址。其中,IPv6 SR隧道接口的源地址必須與源節點的IPv6 Route ID相同;IPv6 SR隧道接口的目的地址必須與目的節點的IPv6 Route ID相同。

配置IPv6 Route ID後,會同時開啟IPv6 TE功能,即IPv6 SR隧道參與IGP路由的計算後,流量可以通過IPv6 SR隧道轉發。

· 自動路由發布

自動路由發布是指將IPv6 SR隧道發布到IGP中,讓IPv6 SR隧道參與IGP路由的計算。

2. 配置限製和指導

IPv6 Router ID在IPv6網絡中必須唯一。

配置IS-IS的IPv6 Router ID前,需要確保IS-IS開銷值的類型為wide、compatible或wide-compatible。關於IS-IS開銷值類型的配置請參見“三層技術-IP路由配置指導”中的“IS-IS”。

在環形組網中,為了避免IPv6 SR隧道上某條鏈路Down而產生路由環路,建議將IPv6 SR隧道引用的SID列表中的SID配置為128位掩碼的主機路由,IGP協議不會將該SID對應的主機路由出接口設置為該IPv6 SR隧道接口,從而避免環路的產生。

3. 配置準備

配置自動路由發布前,需要在IPv6 SR隧道接口上開啟IGP協議的IPv6能力。

4. 配置IPv6 Router ID並開啟IPv6 TE功能

(1) 進入係統視圖。

system-view

(2) 進入IS-IS視圖。

isis [ process-id ] [ vpn-instance vpn-instance-name ]

(3) 進入IS-IS IPv6地址族視圖。

address-family ipv6 [ unicast ]

(4) 配置IS-IS的IPv6 Router ID並開啟IPv6 TE功能。

router-id ipv6-address

缺省情況下,未配置IS-IS的IPv6 router ID,IPv6 TE功能處於關閉狀態。

5. 配置IGP Shortcut

(1) 進入係統視圖。

system-view

(2) 進入模式為IPv6 SR隧道的Tunnel接口視圖。

interface tunnel tunnel-number mode sr ipv6

(3) 開啟IGP Shortcut功能。

srv6 igp shortcut [ ospf | isis ]

缺省情況下,IGP Shortcut功能處於關閉狀態。

目前隻有IS-IS協議支持IGP Shortcut功能。

(4) 配置IPv6 SR隧道的度量值。

srv6 igp metric { absolute value | relative value }

缺省情況下,IPv6 SR隧道的度量值等於其IGP度量值。

1.10 IPv6 SR顯示和維護

1.10.1 複位BGP會話

當BGP配置變化後,可以通過軟複位或複位BGP會話使新的配置生效。軟複位BGP會話是指在不斷開BGP鄰居關係的情況下,更新BGP路由信息;複位BGP會話是指斷開並重新建立BGP鄰居關係的情況下,更新BGP路由信息。軟複位需要BGP對等體具備路由刷新能力(支持ROUTE-REFRESH消息)。

請在用戶視圖下進行下列操作。下表中各命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。

表1-1 複位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

1.10.2 顯示和維護IPv6 SR的運行狀態

在完成上述配置後,在任意視圖下執行display命令,可以顯示配置的SID列表信息。

表1-2 顯示與維護IPv6 SR的運行狀態

操作

命令

顯示SID列表信息

display ipv6 segment-routing sid-list [ list-name ]

顯示IS-IS SRv6能力信息

display isis segment-routing ipv6 capability [ level-1 | level-2 ] [ process-id ]

顯示IS-IS SRv6 Tunnel接口信息

display isis srv6 tunnel [ level-1 | level-2 ] [ process-id ]

顯示SRv6的Local SID列表信息

display segment-routing ipv6 local-sid { end | end-dt4 | end-x } [ sid ]

顯示SRv6的Locator信息

display segment-routing ipv6 locator [ locator-name ]

顯示SRv6轉發表項信息

(獨立運行模式)

display srv6 forwarding-table [ remote ipv6-address ] [ slot slot-number cpu cpu-number ]

(IRF模式)

display srv6 forwarding-table [ remote ipv6-address ] [ chassis chassis-number slot slot-number cpu cpu-number ]

1.10.3 顯示和維護SRv6 VPN的運行狀態

在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SRv6 VPN的運行情況,通過查看顯示信息驗證配置的效果。

在用戶視圖下執行reset命令清除BGP VPNv4路由的相關信息。

display bgp peer vpnv4、display bgp update-group vpnv4和reset bgp flap-info命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。

表1-3 顯示和維護SRv6 VPN的運行狀態

操作

命令

顯示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 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.11 IPv6 SR典型配置舉例

1.11.1 IPv6 SR基本配置舉例

1. 組網需求

· 設備Router A、Router B、Router C和Router D運行OSPFv3。

· 建立一條從Router A到Router D的IPv6 SR隧道,實現兩個IP網絡通過IPv6 SR隧道傳輸數據流量。主路徑為Router A->Router B->Router D,備路徑為Router A->Router C->Router D。

2. 組網圖

圖1-6 IPv6 SR配置組網圖

設備

接口

IP地址

設備

接口

IP地址

Router A

Loop0

1::11/128

Router B

Loop0

2::22/128

GE3/1/1

100::1/128

GE3/1/1

1::2/128

GE3/1/2

1::1/128

GE3/1/2

2::1/128

GE3/1/3

11::1/128

Router D

Loop0

4::44/128

Router C

Loop0

3::33/128

GE3/1/1

200::1/128

GE3/1/1

11::2/128

GE3/1/2

2::2/128

GE3/1/2

22::1/128

GE3/1/3

22::2/128

3. 配置步驟

(1) 配置各接口的IP地址和掩碼,具體配置過程略

(2) 配置OSPFv3協議發布接口所在網段的路由,包括Loopback接口,具體配置過程略

配置完成後,在各設備上執行display ipv6 routing-table命令,可以看到相互之間都學到了到對方的路由,包括Loopback接口對應的主機路由。

(3) 配置IPv6 SR隧道

# 在Router A上配置到Router D的IPv6 SR隧道Tunnel1:源地址為Router A的Loopback0(1::11/128);配置Tunnel1引用的SID列表aa為主路徑,bb為備路徑。

<RouterA> system-view

[RouterA] ipv6 segment-routing sid-list aa

[RouterA-srv6-sid-list-aa] sid 2::22

[RouterA-srv6-sid-list-aa] sid 4::44

[RouterA-srv6-sid-list-aa] quit

[RouterA] ipv6 segment-routing sid-list bb

[RouterA-srv6-sid-list-bb] sid 3::33

[RouterA-srv6-sid-list-bb] sid 4::44

[RouterA-srv6-sid-list-bb] quit

[RouterA] interface tunnel 1 mode sr ipv6

[RouterA-Tunnel1] tunnel sid-list aa

[RouterA-Tunnel1] tunnel sid-list bb backup

[RouterA-Tunnel1] source loopback 0

[RouterA-Tunnel1] ipv6 address 6::6 64

[RouterA-Tunnel1] destination 4::44

[RouterA-Tunnel1] ospfv3 1 area 0

(4) 配置自動發布靜態路由功能

# 在Router A上配置自動發布靜態路由功能,使得到達網絡4::44的流量通過IPv6 SR隧道接口Tunnel1轉發。

[RouterA-Tunnel1] tunnel route-static preference 1

[RouterA-Tunnel1] quit

(5) 開啟IPv6 SR隧道echo模式的BFD檢測功能

[RouterA] bfd echo-source-ipv6 37::45

[RouterA] interface tunnel 1

[RouterA-Tunnel1] tunnel bfd enable echo

[RouterA-Tunnel1] quit

4. 驗證配置

# 在Router A上執行tracert ipv6命令,可以看到IPv6流量轉發路徑為aa。

[RouterA] tracert ipv6 4::44

traceroute to 4::44 (4::44), 30 hops at most, 60 byte packets, press CTRL_C to break

1 1::2 0.719 ms 0.821 ms 0.884 ms

2 2::2 1.006 ms 1.859 ms 1.064 ms

# 在Router A的GigabitEthernet3/1/2上執行shutdown,然後使用tracert ipv6命令,查看IPv6報文從源端傳到目的端所經過的路徑,可以看到流量已切換到備份路徑bb上。

[RouterA] tracert ipv6 4::44

traceroute to 4::44 (4::44), 30 hops at most, 60 byte packets, press CTRL_C to break

1 11::2 0.719 ms 0.821 ms 0.884 ms

2 22::2 1.006 ms 1.859 ms 1.064 ms

# 在Router A的GigabitEthernet3/1/2上執行undo shutdown,然後通過display bfd session verbose命令查看BFD會話的詳細信息。

[RouterA] display bfd session verbose

Total sessions: 2 Up sessions: 2 Init mode: Active

IPv6 SR session working in echo mode:

Local discr: 34306

Source IP: 1::11

Destination IP: 4::44

Session state: Up

Interface: Tunnel1

Hold time: 2360ms Actual Tx interval: 500ms

Min Rx interval: 500ms Detection time: 2500ms

Rx count: 377 Tx count: 377

Connection type: Indirect Up duration: 00:02:43

Detection mode: Async Slot: 0

Protocol: SRv6

Version: 1

Diag info: No Diagnostic

Hardware mode: Disable

Local discr: 34307

Source IP: 1::11

Destination IP: 4::44

Session state: Up

Interface: Tunnel1

Hold time: 2015ms Actual Tx interval: 500ms

Min Rx interval: 500ms Detection time: 2500ms

Rx count: 373 Tx count: 373

Connection type: Indirect Up duration: 00:02:43

Detection mode: Async Slot: 0

Protocol: SRv6

Version: 1

Diag info: No Diagnostic

Hardware mode: Disable

# 在Router A執行display ipv6 segment-routing sid-list命令,可以看到IPv6 SR SID列表的信息。

[RouterA] display ipv6 segment-routing sid-list

SID list name: aa

SID information:

SID index Address

1 2::22

6 4::44

SID list usage on tunnels:

Tunnel number SID list role

1 Primary

SID list name: bb

SID information:

SID index Address

1 3::33

6 4::44

SID list usage on tunnels:

Tunnel number SID list role

1 Backup

1.11.2 IPv6 SR隧道自動路由發布配置舉例

1. 組網需求

· 設備Router A、Router B、Router C和Router D運行IS-IS。

· 建立一條從Router A到Router D的IPv6 SR隧道,實現兩個IPv6網絡通過IPv6 SR隧道傳輸數據流量。主路徑為Router A->Router B->Router D,備路徑為Router A->Router C->Router D。

· 將IPv6 SR隧道發布到IS-IS中,讓IPv6 SR隧道參與IS-IS路由計算,使得流量可以通過IPv6 SR隧道轉發。

2. 組網圖

圖1-7 IPv6 SR隧道自動路由發布配置組網圖

設備

接口

IP地址

設備

接口

IP地址

Router A

Loop0

1::11/128

Router B

Loop0

2::22/128

GE3/1/1

100::1/128

GE3/1/1

1::2/128

GE3/1/2

1::1/128

GE3/1/2

2::1/128

GE3/1/3

11::1/128

Router D

Loop0

4::44/128

Router C

Loop0

3::33/128

GE3/1/1

200::1/128

GE3/1/1

11::2/128

GE3/1/2

2::2/128

GE3/1/2

22::1/128

GE3/1/3

22::2/128

3. 配置步驟

(1) 配置各接口的IP地址和掩碼,具體配置過程略

(2) 配置Router A

# 配置IS-IS協議發布接口所在網段的路由,包括Loopback接口。

<RouterA> system-view

[RouterA] isis 1

[RouterA-isis-1] is-level level-1

[RouterA-isis-1] cost-style wide

[RouterA-isis-1] network-entity 00.0000.0000.0000.0001.00

[RouterA-isis-1] quit

[RouterA] interface gigabitethernet 3/1/1

[RouterA-GigabitEthernet3/1/1] isis ipv6 enable 1

[RouterA-GigabitEthernet3/1/1] quit

[RouterA] interface gigabitethernet 3/1/2

[RouterA-GigabitEthernet3/1/2] isis ipv6 enable 1

[RouterA-GigabitEthernet3/1/2] quit

[RouterA] interface gigabitethernet 3/1/3

[RouterA-GigabitEthernet3/1/3] isis ipv6 enable 1

[RouterA-GigabitEthernet3/1/3] quit

[RouterA] interface loopback 0

[RouterA-LoopBack0] isis ipv6 enable 1

[RouterA-LoopBack0] quit

# 配置IPv6 Route ID,並開啟IPv6 TE功能。

[RouterA] isis 1

[RouterA-isis-1] address-family ipv6

[RouterA--isis-1-ipv6] router-id 1::11

[RouterA-isis-1-ipv6] quit

[RouterA-isis-1] quit

# 在Router A上配置到Router D的IPv6 SR隧道Tunnel1:源地址為Router A的Loopback0接口地址1::11/128,目的地址為Router D的IPv6 Router ID;配置Tunnel1引用的SID列表aa為主路徑,bb為備路徑。

[RouterA] ipv6 segment-routing sid-list aa

[RouterA-srv6-sid-list-aa] sid 2::22

[RouterA-srv6-sid-list-aa] sid 4::44

[RouterA-srv6-sid-list-aa] quit

[RouterA] ipv6 segment-routing sid-list bb

[RouterA-srv6-sid-list-bb] sid 3::33

[RouterA-srv6-sid-list-bb] sid 4::44

[RouterA-srv6-sid-list-bb] quit

[RouterA] interface tunnel 1 mode sr ipv6

[RouterA-Tunnel1] tunnel sid-list aa

[RouterA-Tunnel1] tunnel sid-list bb backup

[RouterA-Tunnel1] source loopback 0

[RouterA-Tunnel1] ipv6 address 6::6 64

[RouterA-Tunnel1] destination 4::44

# 在Router A上配置自動路由發布功能,並以絕對值方式指定IPv6 SR隧道的度量值為1,使得到達網絡4::44的流量通過IPv6 SR隧道接口Tunnel1轉發。

[RouterA-Tunnel1] isis ipv6 enable

[RouterA-Tunnel1] srv6 igp shortcut isis

[RouterA-Tunnel1] srv6 igp metric absolute 1

[RouterA-Tunnel1] quit

(3) 配置Router B

# 配置IS-IS協議發布接口所在網段的路由,包括Loopback接口。

<RouterB> system-view

[RouterB-isis-1] is-level level-1

[RouterB] isis 1

[RouterB-isis-1] cost-style wide

[RouterB-isis-1] network-entity 00.0000.0000.0000.0002.00

[RouterB-isis-1] quit

[RouterB] interface gigabitethernet 3/1/2

[RouterB-GigabitEthernet3/1/2] isis ipv6 enable 1

[RouterB-GigabitEthernet3/1/2] quit

[RouterB] interface gigabitethernet 3/1/3

[RouterB-GigabitEthernet3/1/3] isis ipv6 enable 1

[RouterB-GigabitEthernet3/1/3] quit

[RouterB] interface loopback 0

[RouterB-LoopBack0] isis ipv6 enable 1

[RouterB-LoopBack0] quit

# 配置IPv6 Route ID,並開啟IPv6 TE功能。

[RouterB] isis 1

[RouterB-isis-1] address-family ipv6

[RouterB-isis-1-ipv6] router-id 2::22

[RouterB-isis-1-ipv6] quit

[RouterB-isis-1] quit

(4) 配置Router C

# 配置IS-IS協議發布接口所在網段的路由,包括Loopback接口。

<RouterC> system-view

[RouterC] isis 1

[RouterC-isis-1] is-level level-1

[RouterC-isis-1] cost-style wide

[RouterC-isis-1] network-entity 00.0000.0000.0000.0003.00

[RouterC-isis-1] quit

[RouterC] interface gigabitethernet 3/1/2

[RouterC-GigabitEthernet3/1/2] isis ipv6 enable 1

[RouterC-GigabitEthernet3/1/2] quit

[RouterC] interface gigabitethernet 3/1/3

[RouterC-GigabitEthernet3/1/3] isis ipv6 enable 1

[RouterC-GigabitEthernet3/1/3] quit

[RouterC] interface loopback 0

[RouterC-LoopBack0] isis ipv6 enable 1

[RouterC-LoopBack0] quit

# 配置IPv6 Route ID,並開啟IPv6 TE功能。

[RouterC] isis 1

[RouterC-isis-1] address-family ipv6

[RouterC-isis-1-ipv6] router-id 3::33

[RouterC-isis-1-ipv6] quit

[RouterC-isis-1] quit

(5) 配置Router D

# 配置IS-IS協議發布接口所在網段的路由,包括Loopback接口。

<RouterD> system-view

[RouterD] isis 1

[RouterD-isis-1] is-level level-1

[RouterD-isis-1] cost-style wide

[RouterD-isis-1] network-entity 00.0000.0000.0000.0004.00

[RouterD-isis-1] quit

[RouterD] interface gigabitethernet 3/1/1

[RouterD-GigabitEthernet3/1/1] isis ipv6 enable 1

[RouterD-GigabitEthernet3/1/1] quit

[RouterD] interface gigabitethernet 3/1/2

[RouterD-GigabitEthernet3/1/2] isis ipv6 enable 1

[RouterD-GigabitEthernet3/1/2] quit

[RouterD] interface gigabitethernet 3/1/3

[RouterD-GigabitEthernet3/1/3] isis ipv6 enable 1

[RouterD-GigabitEthernet3/1/3] quit

[RouterD] interface loopback 0

[RouterD-LoopBack0] isis ipv6 enable 1

[RouterD-LoopBack0] quit

# 配置IPv6 Route ID,並開啟IPv6 TE功能。

[RouterD] isis 1

[RouterD-isis-1] address-family ipv6

[RouterD-isis-1-ipv6] router-id 4::44

[RouterD-isis-1-ipv6] quit

[RouterD-isis-1] quit

4. 驗證配置

# 在Router A上執行display ipv6 routing-table命令,可以看到Router D發布的200::1/128路由出接口為Tunnel1。

[RouterA] display ipv6 routing-table 200::1 128

Summary count : 1

Destination: 200::1/128 Protocol : IS_L1

NextHop : 6::6 Preference: 15

Interface : Tun1 Cost : 1

1.11.3 SRv6 VPN配置舉例

1. 組網需求

如圖1-8所示,核心網為IPv6網絡,私網為IPv4網絡,在IPv6網絡中PE設備之間部署SRv6 VPN,通過IPv6 SR隧道傳遞VPNv4數據。

· CE 1和CE 2均屬於VPN 1。

· CE與PE之間配置EBGP交換VPN路由信息。

· 同一自治係統內的PE設備之間運行IS-IS實現IPv6網絡互通,配置MP-IBGP交換VPNv4路由信息。

2. 組網圖

圖1-8 SRv6 VPN配置組網圖

設備

接口

IP地址

設備

接口

IP地址

CE 1

GE3/1/1

10.1.1.2/24

PE 2

Loop0

3::3/128

PE 1

Loop0

1::1/128

GE3/1/1

10.2.1.1/24

GE3/1/1

10.1.1.1/24

GE3/1/2

2002::1/96

GE3/1/2

2001::1/96

CE 2

GE3/1/1

10.2.1.2/24

P

Loop0

2::2/32

GE3/1/1

2001::2/96

GE3/1/2

2002::2/96

3. 配置步驟

(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 3/1/2

[PE1-GigabitEthernet3/1/2] ipv6 address 2001::1 96

[PE1-GigabitEthernet3/1/2] isis ipv6 enable

[PE1-GigabitEthernet3/1/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 3/1/1

[P-GigabitEthernet3/1/1] ipv6 address 2001::2 96

[P-GigabitEthernet3/1/1] isis ipv6 enable

[P-GigabitEthernet3/1/1] quit

[P] interface gigabitethernet 3/1/2

[P-GigabitEthernet3/1/2] ipv6 address 2002::2 96

[P-GigabitEthernet3/1/2] isis ipv6 enable

[P-GigabitEthernet3/1/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 3/1/2

[PE2-GigabitEthernet3/1/2] ipv6 address 2002::1 96

[PE2-GigabitEthernet3/1/2] isis ipv6 enable

[PE2-GigabitEthernet3/1/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 3/1/1

[PE1-GigabitEthernet3/1/1] ip binding vpn-instance vpn1

[PE1-GigabitEthernet3/1/1] ip address 10.1.1.1 24

[PE1-GigabitEthernet3/1/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 3/1/1

[PE2-GigabitEthernet3/1/1] ip binding vpn-instance vpn1

[PE2-GigabitEthernet3/1/1] ip address 10.2.1.1 24

[PE2-GigabitEthernet3/1/1] quit

# 按圖1-8配置各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 IPv4/IPv6 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設備上配置SRv6 VPN封裝的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設備上配置SRv6 VPN封裝的IPv6報文頭的目的地址End.DT4 SID

# 配置PE 1。

[PE1-segment-routing-ipv6] locator aaa ipv6-prefix 1:2::1:0 120 static 8

[PE1-segment-routing-ipv6-locator-aaa] opcode 1 end-dt4 vpn-instance vpn1

[PE1-segment-routing-ipv6-locator-aaa] quit

[PE1-segment-routing-ipv6] quit

# 配置PE 2。

[PE2-segment-routing-ipv6] locator bbb ipv6-prefix 6:5::1:0 120 static 8

[PE2-segment-routing-ipv6-locator-bbb] opcode 1 end-dt4 vpn-instance vpn1

[PE2-segment-routing-ipv6-locator-bbb] quit

[PE2-segment-routing-ipv6] 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::1:1/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 sid-route-recursion [PE1-bgp-default-ipv4-vpn1] quit

[PE1-bgp-default-vpn1] quit

[PE1-bgp-default] quit

[PE1] interface loopback 1

[PE1-LoopBack1] ipv6 address 1:2::1 64

[PE1-LoopBack1] isis ipv6 enable

[PE1-LoopBack1] 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 sid-route-recursion

[PE2-bgp-default-ipv4-vpn1] quit

[PE2-bgp-default-vpn1] quit

[PE2-bgp-default] quit

[PE2] interface loopback 1

[PE2-LoopBack1] ipv6 address 6:5::1 64

[PE2-LoopBack1] isis ipv6 enable

[PE2-LoopBack1] 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 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] 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 locator bbb

[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 : GigabitEthernet3/1/2

Route age : 00h14m23s

OutLabel : 3

Ext-Community : <RT: 111:1>

RxPathID : 0x0

TxPathID : 0x0

PrefixSID : End.DT4 SID <6:5::1:1>

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

4. 驗證配置

# 在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 GE3/1/1

10.1.1.0/32 Direct 0 0 10.1.1.1 GE3/1/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 GE3/1/1

10.2.1.0/24 BGP 255 0 6:5::1:1 GE3/1/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通。

BOB登陆
官網
聯係我們