11-SRv6 SFC配置
本章節下載: 11-SRv6 SFC配置 (814.64 KB)
目 錄
1.3.1 服務鏈靜態代理(Static SR Proxy SFC)
1.3.2 服務鏈偽代理(Masquerading SR Proxy SFC)
1.5.4 SF雙歸保護和Bypass保護混合場景下SRv6 SFC報文轉發
1.16 配置SRv6 SFC服務鏈靜態代理的Bypass保護
為了滿足用戶業務安全、穩定等需求,數據報文在網絡中傳遞時,往往需要按照業務邏輯依次經過各種服務節點,例如防火牆(Firewall)、入侵防禦係統(Intrusion Prevention System)、應用加速器和地址轉換(Network Address Translation)等。SRv6 SFC(Service Function Chain,服務鏈)是一種通過在原始報文中添加SRv6路徑信息來引導報文按照指定的路徑依次經過應用層服務設備的技術。SRv6 SFC技術可以很方便地滿足上述需求。
如圖1-1所示,SRv6 SFC服務鏈網絡用於將租戶的特定業務報文引導到指定的應用服務節點進行處理,並轉發到目的地。
圖1-1 SRv6 SFC典型組網示意圖
SRv6 SFC服務鏈網絡包括以下角色:
· SC(Service Classifier,業務分類節點):位於SRv6 SFC服務鏈網絡邊緣,是服務鏈路徑的源節點。SC可以采用不同的引流方式,將業務數據引入SRv6 TE Policy隧道中進行轉發。
· SF(Service Function,應用服務節點):為業務流量提供特定應用服務的節點。不能識別SRv6報文的應用服務節點稱為SRv6-unaware SF,能夠識別SRv6報文的應用服務節點稱為SRv6-aware SF。
· SFF(Service Function Forwarder,服務鏈轉發節點):SFF作為SF的服務鏈代理,根據SRv6封裝信息,將收到的報文轉發到SFF關聯的若幹SF上。SF處理報文後,將報文返回給SFF,SFF決定是否繼續轉發報文。
服務鏈靜態代理適用於SF不能識別SRv6報文的場景。由於SF不能識別SRv6報文,SFF需要將SRv6報文解封裝後,把用戶網絡的原始數據報文轉發給SF處理。SF處理完原始報文後,將其轉發回SFF節點,由SFF決定是否繼續在SRv6 SFC網絡中轉發報文。如果繼續在SRv6 SFC網絡中轉發,則SFF節點需要根據手工配置的SID列表為處理後的業務報文重新封裝SRv6頭部。服務鏈靜態代理支持內層報文類型為IPv4或IPv6。服務鏈靜態代理支持雙歸保護和Bypass保護功能。
為了實現服務鏈靜態代理報文轉發,在SFF上引入一種新的SRv6 SID類型——End.AS SID。End.AS SID用於標識SRv6 SFC服務鏈網絡中的某個應用服務節點。End.AS SID對應的轉發動作是:
· 報文從轉發節點SFF發送到應用服務節點SF之前,SFF先解封裝報文,然後根據End.AS SID關聯的出接口轉發報文。
· 報文從應用服務節點SF到轉發節點SFF之後,SFF根據報文的入接口或者入接口和VLAN關聯的End.AS SID及其配置,重新封裝報文。
服務鏈偽代理適用於SF能夠識別SRv6報文的場景。由於SF能夠識別SRv6報文, SFF將SRv6報文直接轉發給SF處理。SF完成應用服務處理後,不處理SRv6的SRH頭部信息,直接將報文轉發回SFF節點,SFF按照正常SRv6轉發流程處理報文。服務鏈偽代理目前支持的內層報文類型為IPv4、IPv6和以太網報文。服務鏈偽代理不支持雙歸保護和Bypass保護功能。
為了實現服務鏈偽代理報文轉發,在SFF上引入一種SRv6 SID類型——End.AM SID。End.AM SID用於標識SRv6 SFC服務鏈網絡中的某個應用服務節點。End.AM SID對應的轉發動作是:
· 報文從轉發節點SFF發送到應用服務節點SF之前,SFF先將SRv6報文的目的地址修改為SRH中第一個SID值即SRH[0],然後根據End.AM SID關聯的出接口轉發。
· 報文從應用服務節點SF到轉發節點SFF之後,SFF恢複SRv6報文目的地址為SRH[SL],按照正常SRv6報文轉發流程進行報文轉發。
圖1-2 SRv6 SFC服務鏈靜態代理的報文轉發流程
如圖1-2所示,以IPv4 L3VPN over SRv6-TE組網為例,SRv6 SFC服務鏈靜態代理的報文轉發過程如下:
(1) 源節點SC收到用戶網絡原始IPv4報文後,可以將流量引入SRv6 TE Policy中。SC根據SRv6 TE Policy進行SRv6報文封裝,此時IPv6報文的目的地址是SFF的End.AS SID,SRH頭部包括SRv6 TE Policy的路徑信息和尾節點的End.DT4 SID。
(2) SFF收到報文以後,通過查找Local SID表發現目的地址為本地End.AS SID,記錄當前SL值,並執行End.AS SID對應指令,即解封裝報文,去除IPv6報文頭部後將原始報文通過配置的出接口發送到SF進行處理。
(3) SF處理完報文以後,將報文發回給SFF。
(4) SFF根據報文的入接口(SFF上與SF相連的接收IPv4報文的接口)或入接口和VLAN,查找配置信息,然後依據配置的SID list重新封裝SRv6報文,封裝後報文SRH中SID list與源節點SC上SRv6 TE Policy路徑一致,SRH中的SL值為記錄的SL值減1。此時SRv6報文目的地址是本地End.AS SID的下一個SID(即Device C的End SID)。SFF根據報文的目的IPv6地址,查找IPv6路由表轉發報文。
(5) Device C接收到報文以後,通過查找Local SID表發現目的地址為本地End SID,按SRv6轉發流程處理報文。目的地址替換為D1(即尾節點的End SID),SL-1,查找IPv6路由表轉發報文。
(6) 尾節點接收到報文以後,通過查找Local SID表發現目的地址D1為本地SID,將目的地址替換為D2(即尾節點的End.DT4 SID),SL-1變為0。尾節點執行End.DT4 SID對應指令,即解封裝SRv6報文,並將原始報文轉發到對應VPN或公網。
圖1-3 SRv6 SFC服務鏈偽代理的報文轉發流程
如圖1-3所示,以IPv4 L3VPN over SRv6-TE組網為例,SRv6 SFC服務鏈偽代理報文轉發過程如下:
(1) 源節點SC收到用戶網絡原始報文後,將流量引入SRv6 TE Policy中。SC根據SRv6 TE Policy進行SRv6報文封裝,此時SRv6報文的目的地址是SFF的End.AM SID,SRH頭部包括SRv6 TE Policy的路徑信息和尾節點的End.DT4 SID。
(2) SFF收到報文以後,通過查找Local SID表發現目的地址為End.AM SID,將SRv6報文的目的地址替換為SRH SID列表中的最後一個SID,即尾節點的End.DT4 SID,同時將SL減1,並將報文從End.AM SID綁定的出接口發送到SF進行處理。
(3) SF處理完報文以後,不修改SRv6報文信息,把報文發回給SFF。
(4) 如果報文的入接口(SFF上與SF相連的接收報文的接口)或入接口和VLAN綁定了End.AM SID,則SFF根據SRH中的SL值替換SRv6報文的目的地址。此時,SL值為2,因此,將SRv6報文目的地址替換為C(本地End.AM SID的下一個SID,即Device C的End SID),SFF根據報文的目的IPv6地址,查找IPv6路由表轉發報文。
(5) Device C接收到報文後,通過查找Local SID表發現目的地址為本地End SID,按SRv6轉發流程處理報文。目的地址替換為D1(即尾節點的End SID),SL-1,查找IPv6路由表轉發報文。
(6) 尾節點接收到報文以後,通過查找Local SID表發現目的地址D1為本地End SID,將目的地址替換為D2(即尾節點的End.DT4 SID),SL-1變為0。尾節點執行End.DT4 SID對應指令,即解封裝SRv6報文,並將原始報文轉發到對應VPN或公網。
圖1-4 SF不可達導致報文轉發異常
如圖1-4所示,在沒有任何保護的情況下,SF不可達時,需要經過應用服務節點SF處理的報文到達SFF設備後會被丟棄,報文既無法按正常邏輯順序轉發,也無法經過應用服務節點的處理。為了提升SRv6 SFC服務鏈靜態代理的可靠性,SFF支持雙歸保護和Bypass保護:
· 雙歸保護是指一個應用服務節點SF雙歸連接主備兩個SFF。當主用SFF不可達時,業務切換到備份SFF上處理。
· Bypass保護是指應用服務節點SF故障時,報文繞行該服務節點,不再經過該服務節點處理。
SRv6 SFC服務鏈偽代理不提供可靠性保護機製。
圖1-5 SF雙歸保護場景下SRv6 SFC報文轉發示意圖
如圖1-5所示,SF雙歸接入SFF 1和SFF 2,無Bypass保護。
為了實現雙歸保護,服務鏈轉發節點SFF 1和SFF 2上需要執行如下操作:
· 指定對方的End SID互為備份Peer SID。
· 引用相同的Locator段用來分配主、備End.AS SID。
· 配置相同的主End.AS SID和備End.AS SID。
當SFF 1檢測到從SFF 1到SF不可達時,SFF 1解封裝報文,去掉原IPv6和SRH報文頭,並根據配置重新封裝IPv6和SRH頭部,其中SRH頭部的SID list中包含備End.AS SID X2和SFF 2的End SID C。IPv6頭部的目的地址為C,SFF 1查路由表將封裝後的報文轉發至雙歸備份節點SFF 2。報文到達SFF 2後,如果SFF 2到SF可達,則按照正常SRv6 SFC服務鏈靜態代理的轉發流程處理報文;如果SFF 2到SF不可達,則丟棄報文。
圖1-6 Bypass保護場景下SRv6 SFC報文轉發示意圖
如圖1-6所示,在SFC網絡中存在SF 1的Bypass保護服務節點SF 2,SF 1單歸連接到SFF 1,Bypass保護服務節點SF 2單歸連接到SFF 2。
為了實現Bypass應用服務保護,服務鏈轉發節點SFF 1上需要開啟Bypass功能並指定Bypass End.AS SID。
當SFF 1檢測到從SFF 1到SF不可達時,SFF 1解封裝報文,去掉原IPv6和SRH報文頭,並根據配置重新封裝IPv6頭部,其中IPv6的目的地址為C,SFF 1查路由表將封裝後的報文轉發至SFF 2。SFF 2接收到報文後按正常SRv6 SFC服務鏈靜態代理的轉發流程處理報文。
如果僅開啟Bypass功能而不指定Bypass保護服務節點SF 2的End.AS SID,SFF 1跳過當前SF 1的End.AS SID B,使用D作為下一跳目的地址,繼續按SRH頭轉發至尾節點。
圖1-7 雙歸保護和Bypass保護混合場景下SRv6 SFC報文轉發示意圖
如圖1-7所示,在SRv6 SFC網絡中存在SF 1的Bypass保護服務節點SF 2,SF 1雙歸連接到SFF 1和SFF 2,Bypass保護服務節點SF 2單歸連接到SFF 3。雙歸保護和Bypass保護同時存在的情況下優先執行雙歸保護流程,雙歸保護失效再切換到Bypass保護流程。
為了實現雙歸和Bypass保護,服務鏈轉發節點上需要執行如下操作:
· SFF 1和SFF 2上指定對方的End SID互為備份Peer SID。
· SFF 1和SFF 2上引用相同的Locator段用來分配主、備End.AS SID。
· SFF 1和SFF 2上配置相同的主End.AS SID和備End.AS SID。
· SFF 1和SFF 2上開啟Bypass功能並指定Bypass End.AS SID。
具體的報文轉發流程如下:
(1) 在SFF 1上,報文轉發處理有兩種情況:
¡ 當SFF 1到SF 1轉發正常時,按照正常SRv6 SFC服務鏈靜態代理的轉發流程處理報文。
¡ 當SFF 1檢測到從SFF 1到SF 1不可達時,SFF 1解封裝報文,去掉原IPv6和SRH報文頭,並根據配置重新封裝IPv6和SRH頭部,其中SRH頭部的SID list中包含備End.AS SID X2和SFF 2的End SID C。IPv6頭部的目的地址為C,SFF 1查路由表將封裝後的報文轉發至雙歸備份節點SFF 2。
(2) 報文到達SFF 2後,報文轉發處理也有兩種情況:
¡ 當SFF 2到SF 1可達,則按照正常SRv6 SFC服務鏈靜態代理的轉發流程處理報文。
¡ 當SFF 2檢測到SFF 2到SF 1不可達,則切換Bypass保護轉發流程。SFF 2解封裝報文,去掉原IPv6和SRH報文頭,並根據配置重新封裝IPv6和SRH頭部,其中SRH中僅包含Bypass End.AS SID值D,IPv6的目的地址為D,SFF 2查路由表將封裝後的報文轉發至SFF 3。
(3) 報文到達SFF 3後,報文轉發處理也有兩種情況:
¡ 當SFF 3到Bypass SF 2可達,則按照正常SRv6 SFC服務鏈靜態代理的轉發流程處理報文。
¡ 當SFF 3檢測到SFF 3到Bypass SF 2不可達,則丟棄報文。
SRv6 SFC目前隻能用於IP/EVPN L3VPN over SRv6網絡。
SRv6 SFC服務鏈靜態代理支持處理內層協議類型為IPv4和IPv6的報文。
SRv6 SFC服務鏈偽代理支持處理內層協議類型為IPv4、IPv6和以太網報文。SRv6 SFC服務鏈偽代理不支持雙歸保護和Bypass保護功能。
SRv6 SFC服務鏈偽代理場景中,如果同一台SFF上配置了多個End.AM SID用來分別連接不同的SF,則需要在SFF上執行undo ipv6 fast-forwarding load-sharing命令,否則SRv6報文會在SFF設備內部形成環路。
(1) 配置SRv6 TE Policy引流
根據服務鏈業務需求,可以在SC將流量引入SRv6 TE Policy隧道。配置方法請參見“Segment Routing配置指導”中的“SRv6 TE Policy”。
(2) 配置SRv6 SFC服務鏈靜態代理基本功能
¡ (可選)配置服務鏈靜態代理的差分服務模式
¡ (可選)配置服務鏈靜態代理的TTL處理模式
(4) 配置SRv6 SFC服務鏈靜態代理的Bypass保護
(1) 配置SRv6 TE Policy引流
根據服務鏈業務需求,可以在SC將流量引入SRv6 TE Policy隧道。配置方法請參見“Segment Routing配置指導”中的“SRv6 TE Policy”。
(2) 配置SRv6 SFC服務鏈偽代理基本功能
在配置SRv6 SFC功能前需要完成以下任務:
· 規劃SFC域中各設備角色,各設備之間部署IGP實現IPv6地址互通和SRv6 SID通告。
· 規劃SFC顯式路徑和SRv6 TE Policy路徑信息。
· 根據業務需要,在SC和尾節點上配置VPN實例,並將VPN實例與接口綁定。
配置End.AS類型的SID,並創建SRv6服務鏈靜態代理視圖後,需要在該視圖下配置SFF支持向SF發送的原始報文的協議類型。如果不執行本配置,則無法正常轉發服務鏈報文到SF。
在SRv6 SFC服務鏈靜態代理雙歸保護場景下,SFF上的End.AS SID應與End SID屬於不同的Locator。
當SRv6 SFC網絡中同時存在IPv4和IPv6的原始報文時,請配置本功能並同時指定ipv4和ipv6參數,否則未指定的協議類型的原始報文無法轉發給SF。
(1) 進入係統視圖。
system-view
(2) 開啟SRv6功能,並進入SRv6視圖。
segment-routing ipv6
(3) 配置End.AS引用的Locator段,並進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 配置End.AS Opcode,並進入SRv6服務鏈靜態代理視圖。
opcode { opcode | hex hex-opcode } end-as
(5) 配置SFF支持向SF發送的原始報文的協議類型。
inner-type { ipv4 | ipv6 } *
缺省情況下,SFF不能向SF發送任何協議類型的原始報文。
(1) 進入係統視圖。
system-view
(2) 開啟SRv6功能,並進入SRv6視圖。
segment-routing ipv6
(3) 配置End.AM引用的Locator段,並進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 配置End.AM Opcode,並進入SRv6服務鏈偽代理視圖。
opcode { opcode | hex hex-opcode } end-am
應用服務節點SF可能通過二層或者三層接口接入服務鏈的轉發節點SFF。根據SF和SFF連接的接口類型,可以選擇SFF和SF間的報文轉發方式,保證報文在SFF和SF之間正常轉發。
SF上可能存在多個虛機VM為同一應用服務進行負載分擔。通過在同一個SRv6服務鏈靜態代理下多次配置轉發方式,可以實現應用服務在VM間負載分擔。
作為服務鏈靜態代理的出接口或入接口不能綁定任何其他業務,例如VPN實例,否則會引起轉發問題。
一個服務鏈靜態代理下不能同時配置二層和三層封裝轉發方式。
SRv6服務鏈靜態代理和SRv6服務鏈偽代理的入接口不能相同。
三層封裝轉發的出接口和入接口隻能是三層接口。二層轉發的出入接口不能是VLAN接口。
配置二層封裝轉發時,需要注意:
· 不同SRv6服務鏈靜態代理的入接口和入方向報文內外層VLAN不能相同。
· 在同一個SRv6服務鏈靜態代理下,相同的出接口和出方向報文內外層VLAN隻能對應一個入接口。多次配置二層封裝轉發,指定相同出接口和出方向的內外層報文VLAN,但關聯不同入接口時,最後一次執行的配置生效。
配置三層封裝轉發時,需要注意:
· 不同SRv6服務鏈靜態代理的入接口不能相同;
· 在同一個SRv6服務鏈靜態代理下,一個出接口隻能對應一個入接口。
(1) 進入係統視圖。
system-view
(2) 進入SRv6視圖。
segment-routing ipv6
(3) 進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 進入SRv6服務鏈靜態代理視圖。
opcode { opcode | hex hex-opcode } end-as
(5) 配置SFF和SF之間的報文轉發方式,請選擇其中一項進行配置。
¡ 配置報文在SFF和SF之間通過二層封裝轉發。
encapsulation eth out-interface out-interface-type out-interface-number [ out-s-vlan out-svid [ out-c-vlan out-cvid ] ] in-interface in-interface-type in-interface-number [ in-s-vlan in-svid [ in-c-vlan in-cvid ] ] [ dest-mac dest-mac ]
缺省情況下,未配置報文在SFF和SF之間的二層封裝轉發。
多次配置本命令,指定不同接口或不同VLAN可以實現流量轉發負載分擔。
¡ 配置報文在SFF和SF之間通過IPv4下一跳進行三層封裝轉發。
encapsulation ipv4 nexthop nexthop-addr out-interface out-interface-type out-interface-number in-interface in-interface-type in-interface-number [ symmetric-index index-value ]
缺省情況下,未配置報文在SFF和SF之間通過IPv4下一跳進行三層封裝轉發。
¡ 配置報文在SFF和SF之間通過IPv6下一跳進行三層封裝轉發。
encapsulation ipv6 nexthop nexthop-ipv6-addr out-interface out-interface-type out-interface-number in-interface in-interface-type in-interface-number [ symmetric-index index-value ]
缺省情況下,未配置報文在SFF和SF之間通過IPv6下一跳進行三層封裝轉發。
應用服務節點SF可能通過二層或者三層接口接入服務鏈的轉發節點SFF。根據SF和SFF連接的接口類型,可以選擇SFF和SF間的報文轉發方式,保證報文在SFF和SF之間正常轉發。
作為服務鏈偽代理的出接口或入接口不能綁定任何其他業務,例如VPN實例,否則會引起轉發問題。
一個服務鏈偽代理下不能同時配置二層和三層封裝轉發方式。
對於SRv6服務鏈偽代理的入接口有以下限製:
· SRv6服務鏈靜態代理和SRv6服務鏈偽代理的入接口不能相同。
· 不同SRv6服務鏈偽代理的入接口可以相同。
· 三層封裝轉發的入接口隻能是三層接口。二層轉發的入接口不能是VLAN接口。
對於SRv6服務鏈偽代理的出接口有以下限製:
· 三層封裝轉發的出接口隻能是三層接口。二層轉發的出接口不能是VLAN接口。
· 配置二層封裝轉發時,在同一個SRv6服務鏈偽代理下,相同的出接口和出方向報文內外層VLAN隻能對應一個入接口。多次配置二層封裝轉發,指定相同出接口和出方向的內外層報文VLAN,但關聯不同入接口時,最後一次執行的配置生效。
· 配置三層封裝轉發時,在同一個SRv6服務鏈偽代理下,一個出接口隻能對應一個入接口。
(1) 進入係統視圖。
system-view
(2) 進入SRv6視圖。
segment-routing ipv6
(3) 進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 進入SRv6服務鏈偽代理視圖。
opcode { opcode | hex hex-opcode } end-am
(5) 配置SFF和SF之間的報文轉發方式,請選擇其中一項進行配置。
¡ 配置報文在SFF和SF之間通過二層封裝轉發。
encapsulation eth out-interface out-interface-type out-interface-number [ out-s-vlan out-svid [ out-c-vlan out-cvid ] ] in-interface in-interface-type in-interface-number [ in-s-vlan in-svid [ in-c-vlan in-cvid ] ]
缺省情況下,未配置報文在SFF和SF之間的二層封裝轉發。
多次配置本命令,指定不同接口或不同VLAN可以實現流量轉發負載分擔。
¡ 配置報文在SFF和SF之間通過IPv6下一跳進行三層封裝轉發。
encapsulation ipv6 nexthop nexthop-addr out-interface out-interface-type out-interface-number in-interface in-interface-type in-interface-number [ symmetric-index index-value ]
缺省情況下,未配置報文在SFF和SF之間通過IPv6下一跳進行三層封裝轉發。
多次配置本命令,指定不同下一跳可以實現流量轉發負載分擔。
SRv6 SFC服務鏈靜態代理模式中,當報文經過應用服務節點SF處理後回到轉發節點SFF時,報文不攜帶IPv6和SRH頭。SFF會根據入接口查找對應的服務鏈靜態代理,並為報文添加該服務鏈下配置的SID列表作為SRH。同時SFF為報文重新封裝IPv6頭部,其中IPv6源地址需要手工指定,目的地址為SID列表中本地End.AS SID的下一個SID值。重新封裝後的報文繼續在SRv6 SFC網絡中轉發。
需要按照距離源節點由近及遠的順序,依次指定轉發路徑上各個節點的SID值,即距離源節點越近的節點,其SID在SID列表中的位置越靠前。
為了避免業務報文在SFF之間循環,不允許新封裝的SID列表中存在兩個相同的SID。
SID列表中至少存在兩個SID,最後一個SID必須是End.DT4 SID或者End.DT6 SID,同時列表中必須包括End.AS SID。
配置的SID列表表示的顯式路徑與源節點SC上SRv6 TE Policy端到端的路徑需要一致。
(1) 進入係統視圖。
system-view
(2) 進入SRv6視圖。
segment-routing ipv6
(3) 進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 進入SRv6服務鏈靜態代理視圖。
opcode { opcode | hex hex-opcode } end-as
(5) 配置從SF收到報文後SFF為該報文重新封裝的源IPv6地址。
cache source-address ipv6-address
缺省情況下,未配置從SF收到報文後SFF重新封裝報文的源IPv6地址, SFF會丟棄報文。
(6) 配置SFF收到SF返回的報文後,重新封裝的SID列表。
cache list sid-list
缺省情況下,未配置重新封裝的SID列表。
SRv6 SFC服務鏈靜態代理模式中,報文在SFF和SF之間轉發時,SFF可以配置報文的差分服務處理模式。服務鏈的差分服務缺省情況下為Uniform模式,若配置為Pipe模式,則要對服務類型和顏色進行配置。
· Pipe模式:在入方向,即報文從SF進入SFF時,SFF會忽略其自身攜帶的IP或DSCP優先級,使用配置的service-class值作為新封裝的IPv6報文的優先級,使用配置的color值作為新封裝報文的顏色標記。在SRv6網絡中,依據配置的優先級和顏色標記對報文進行QoS調度。在出方向,即報文由SFF進入SF時,SFF剝離外層IPv6和SRH報文頭,不會修改原始報文的原有IP或DSCP優先級和顏色。
· Uniform模式:在入方向,即報文從SF進入SFF時,SFF會將其自身攜帶的IP或DSCP優先級映射為新封裝IPv6報文頭的優先級,報文顏色不變。在出方向,即報文由SFF進入SF時,SFF剝離外層IPv6和SRH報文頭,再將外層IPv6頭的優先級映射為原始報文的IP或DSCP優先級,報文顏色不變。
有關IP優先級、DSCP優先級和顏色的詳細介紹,請參見“ACL和QoS配置指導”中的“QoS”。
(1) 進入係統視圖。
system-view
(2) 進入SRv6視圖。
segment-routing ipv6
(3) 進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 進入SRv6服務鏈靜態代理視圖。
opcode { opcode | hex hex-opcode } end-as
(5) 配置服務鏈的差分服務模式。
sfc diffserv-mode pipe service-class color
缺省情況下,服務鏈靜態代理的差分服務模式為Uniform。
當報文從SF轉發回SFF後,SFF可以配置報文的TTL處理模式。
· Uniform模式:報文從SF轉發回SFF後,SFF將原始報文的TTL值減1作為新封裝的IPv6頭的TTL值。
· Pipe模式:報文從SF轉發回SFF後,SFF直接將配置的ttl-value減1作為新封裝的IPv6頭的TTL值。
(1) 進入係統視圖。
system-view
(2) 進入SRv6視圖。
segment-routing ipv6
(3) 進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 進入SRv6服務鏈靜態代理視圖。
opcode { opcode | hex hex-opcode } end-as
(5) 配置服務鏈TTL的處理模式。
sfc ttl-mode pipe ttl-value
缺省情況下,服務鏈的TTL處理模式為Uniform。
SFF 1和SFF 2上,End.AS SID和End SID應屬於不同的Locator。
雙歸保護的轉發節點SFF 1和SFF 2上需要配置相同主End.AS Opcode和相同的備份End.AS Opcode。
SFF上配置的各種靜態SID不能互相衝突。
(1) 進入係統視圖。
system-view
(2) 進入SRv6視圖。
segment-routing ipv6
(3) 將雙歸備份SFF的End SID配置為備份Peer SID。
proxy peer-sid peer-sid
缺省情況下,未指定雙歸備份的備份Peer SID。
主備SFF上需要互相指定對方的End SID為備份Peer SID。
(4) 進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(5) 進入SRv6服務鏈靜態代理視圖。
opcode { opcode | hex hex-opcode } end-as
(6) 配置SRv6服務鏈靜態代理雙歸保護的備份End.AS SID Opcode。
backup-opcode { func-opcode | hex hex-func-opcode }
缺省情況下,未配置SRv6服務鏈靜態代理雙歸保護的備份End.AS SID Opcode
主備SFF上配置的主備End.AS SID屬於同一Locator段,備份Opcode與主用Opcode不同以區分主備SFF關係。
如果同時存在雙歸保護和Bypass保護功能,則優先按雙歸保護流程處理,雙歸保護失效時再按照Bypass保護流程轉發。
(1) 進入係統視圖。
system-view
(2) 進入SRv6視圖。
segment-routing ipv6
(3) 進入SRv6 Locator視圖。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 進入SRv6服務鏈靜態代理視圖。
opcode { opcode | hex hex-opcode } end-as
(5) 開啟Bypass功能,並指定Byapss End.AS SID
bypass [ sid ipv6-address ]
缺省情況下,Bypass功能處於關閉狀態。
網絡中沒有Bypass SF節點時,如果仍需要保證SF不可達後服務鏈數據可以正常轉發,則可以僅開啟Bypass功能而不指定Byapss End.AS SID。此時,SFF將跳過當前應用服務節點的End.AS SID,使用SRH中下一個SID作為下一跳目的地址,繼續按SRH頭轉發至尾節點。
通過echo報文方式的靜態BFD會話檢測SFF與SF之間的可達性,當SF不可達時,可以快速觸發SRv6 SFC服務鏈靜態代理的雙歸保護或Bypass保護機製。
使用echo報文方式的靜態BFD會話檢測SF的可達性時,僅需在本端SFF上創建靜態BFD會話。
首次創建靜態BFD會話時,必須指定靜態BFD會話的對端SF的IPv4地址。係統僅檢查IP地址的形式,不檢查其正確性。指定錯誤的對端IP地址或源IP地址均會導致靜態BFD會話無法建立。
不同的靜態BFD會話的本地標識符不能相同。
echo報文方式的靜態BFD會話選取報文源地址的規則如下:
(1) 如果創建靜態BFD會話時未指定source-ip/source-ipv6參數,將使用bfd echo-source-ip/bfd echo-source-ipv6命令指定的IPv4/IPv6地址作為echo報文的源IPv4/IPv6地址。
(2) 如果創建靜態BFD會話時指定了source-ip/source-ipv6參數,將使用該參數的地址作為echo報文的源IPv4/IPv6地址。
(3) 如果未通過(1)或(2)指定報文的源地址,echo報文方式的靜態BFD會話將使用發送報文的接口IPv4/IPv6地址作為報文的源IPv4/IPv6地址。
建議用戶創建echo報文方式的靜態BFD會話時指定source-ip/source-ipv6參數。
本配置中涉及命令的詳細介紹,請參見“可靠性命令參考”中的“BFD”。
(1) 進入係統視圖。
system-view
(2) (可選)配置echo報文源IP地址。
¡ 配置echo報文源IPv4地址。
bfd echo-source-ip ip-address
缺省情況下,未配置echo報文的源IPv4地址。
¡ 配置echo報文源IPv6地址。
bfd echo-source-ipv6 ipv6-address
缺省情況下,未配置echo報文的源IPv6地址。
echo報文源IPv6地址僅支持全球單播地址。
(3) 創建靜態BFD會話,並進入靜態BFD會話視圖。
(IPv4網絡)
bfd static session-name [ peer-ip ipv4-address interface interface-type interface-number destination-ip ipv4-address [ source-ip ipv4-address ] one-arm-echo [ discriminator auto ] ]
(IPv6網絡)
bfd static session-name [ peer-ipv6 ipv6-address interface interface-type interface-number destination-ipv6 ipv6-address [ source-ipv6 ipv6-address ] one-arm-echo [ discriminator auto ] ]
(4) (可選)指定靜態BFD會話的本地標識符。
discriminator local local-value
缺省情況下,未指定靜態BFD會話的本地標識符。
本命令僅用於創建靜態BFD會話時未指定靜態BFD會話標識符的場景。
可在任意視圖下執行以下命令,顯示SRv6 SFC服務鏈靜態代理的轉發表項信息:
表1-1 顯示SRv6 SFC信息
操作 |
命令 |
顯示SRv6 SFC服務鏈靜態代理的轉發信息 |
display segment-routing ipv6 sfc forwarding [ locator locator-name [ opcode operation-code ] ] [ nid-value ] |
如圖1-8所示,CE 1和CE 2屬於同一個VPN。SRv6 SFC采用偽代理模式,控製CE 1業務流量經過SF處理後轉發到CE 2上。SFF 1設備通過三層以太網接口連接SF,報文在SFF 1和SF之間采用三層封裝轉發。
· 在SC和Tail上配置VPN實例,業務流量通過SRv6 TE Policy轉發,轉發路徑為SC->SFF 1->SF->Tail。
· 在SFF 1上配置SRv6 SFC服務鏈偽代理。
圖1-8 SRv6 SFC服務鏈偽代理采用三層封裝轉發配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
SC |
Loop1 |
1::1/128 |
SFF 1 |
Loop1 |
2::2/128 |
GE1/0/1 |
16.0.0.2/30 |
GE1/0/1 |
100::2/96 |
||
GE1/0/2 |
100::1/96 |
GE1/0/2 |
10::1/96 |
||
SF |
- |
10::2/96 |
|
GE1/0/3 |
400::1/96 |
Tail |
Loop1 |
5::5/128 |
CE 1 |
Loop1 |
6.6.6.6/32 |
|
GE1/0/1 |
57.0.0.1/30 |
|
GE1/0/1 |
16.0.0.1/30 |
|
GE1/0/2 |
400::2/96 |
CE 2 |
Loop1 |
7.7.7.7/32 |
|
|
|
|
GE1/0/1 |
57.0.0.2/30 |
· 規劃SRv6 SID信息:
¡ SC:Locator a網段為1000::/64,End SID為1000::1,End.DT4 SID為1000::2
¡ SFF 1:Locator b網段為2000::/64,End SID為2000::1;Locator am1網段為2001::/64,End.AM SID為2001::1
¡ Tail:Locator e網段為5000::/64,End SID為5000::1,End.DT4 SID為5000::2
· 規劃流量轉發隧道和隧道顯式路徑:在SC上,流量通過SRv6 TE Policy指定的顯式路徑經過SFF 1轉發至SF上處理後,最終轉發到Tail設備。
(1) 在SC、SFF 1、Tail設備上配置IPv6 IS-IS,實現骨幹網設備的互通
# 配置SC。
<SC> system-view
[SC] isis 1
[SC-isis-1] is-level level-2
[SC-isis-1] cost-style wide
[SC-isis-1] network-entity 10.1111.1111.1111.00
[SC-isis-1] address-family ipv6 unicast
[SC-isis-1-ipv6] quit
[SC-isis-1] quit
[SC] interface loopback 1
[SC-LoopBack1] ipv6 address 1::1 128
[SC-LoopBack1] isis ipv6 enable 1
[SC-LoopBack1] quit
[SC] interface gigabitethernet 1/0/2
[SC-GigabitEthernet1/0/2] ipv6 address 100::1 96
[SC-GigabitEthernet1/0/2] isis ipv6 enable
[SC-GigabitEthernet1/0/2] quit
# 配置SFF 1。
<SFF1> system-view
[SFF1] isis
[SFF1-isis-1] is-level level-2
[SFF1-isis-1] cost-style wide
[SFF1-isis-1] network-entity 10.2222.2222.2222.00
[SFF1-isis-1] address-family ipv6 unicast
[SFF1-isis-1-ipv6] quit
[SFF1-isis-1] quit
[SFF1] interface loopback 1
[SFF1-LoopBack1] ipv6 address 2::2 128
[SFF1-LoopBack1] isis ipv6 enable
[SFF1-LoopBack1] quit
[SFF1] interface gigabitethernet 1/0/1
[SFF1-GigabitEthernet1/0/1] ipv6 address 100::2 96
[SFF1-GigabitEthernet1/0/1] isis ipv6 enable
[SFF1-GigabitEthernet1/0/1] quit
[SFF1] interface gigabitethernet 1/0/3
[SFF1-GigabitEthernet1/0/3] ipv6 address 400::1 96
[SFF1-GigabitEthernet1/0/3] isis ipv6 enable
[SFF1-GigabitEthernet1/0/3] quit
# 配置Tail。
<Tail> system-view
[Tail] isis
[Tail-isis-1] is-level level-2
[Tail-isis-1] cost-style wide
[Tail-isis-1] network-entity 10.5555.5555.5555.00
[Tail-isis-1] address-family ipv6 unicast
[Tail-isis-1-ipv6] quit
[Tail-isis-1] quit
[Tail] interface loopback 1
[Tail-LoopBack1] ipv6 address 5::5 128
[Tail-LoopBack1] isis ipv6 enable
[Tail-LoopBack1] quit
[Tail] interface gigabitethernet 1/0/2
[Tail-GigabitEthernet1/0/2] ipv6 address 400::2 96
[Tail-GigabitEthernet1/0/2] isis ipv6 enable
[Tail-GigabitEthernet1/0/2] quit
配置完成後,SC、SFF 1、Tail之間應能建立IPv6 IS-IS鄰居,執行display isis peer命令可以看到鄰居達到Up狀態。執行display isis route ipv6命令可以看到SC和Tail互相學習到對方的Loopback接口的路由。
(2) 在SC和Tail設備上配置VPN實例,將CE 1和CE 2分別接入SC和Tail
# 配置SC。
[SC] ip vpn-instance vpn1
[SC-vpn-instance-vpn1] route-distinguisher 100:1
[SC-vpn-instance-vpn1] vpn-target 111:1
[SC-vpn-instance-vpn1] quit
[SC] interface gigabitethernet 1/0/1
[SC-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[SC-GigabitEthernet1/0/1] ip address 16.0.0.2 30
[SC-GigabitEthernet1/0/1] quit
# 配置Tail。
[Tail] ip vpn-instance vpn1
[Tail-vpn-instance-vpn1] route-distinguisher 100:1
[Tail-vpn-instance-vpn1] vpn-target 111:1
[Tail-vpn-instance-vpn1] quit
[Tail] interface gigabitethernet 1/0/1
[Tail-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[Tail-GigabitEthernet1/0/1] ip address 57.0.0.1 24
[Tail-GigabitEthernet1/0/1] quit
# 按配置各CE的接口IP地址,配置過程略。
配置完成後,在PE設備上執行display ip vpn-instance命令可以看到VPN實例的配置情況。SC和Tail能ping通自己接入的CE。
以SC和CE 1為例:
[SC] 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 2020/10/29 13:59:39
[SC] ping -vpn-instance vpn1 16.0.0.1
Ping 16.0.0.1 (16.0.0.1): 56 data bytes, press CTRL+C to break
56 bytes from 16.0.0.1: icmp_seq=0 ttl=255 time=2.000 ms
56 bytes from 16.0.0.1: icmp_seq=1 ttl=255 time=0.000 ms
56 bytes from 16.0.0.1: icmp_seq=2 ttl=255 time=1.000 ms
56 bytes from 16.0.0.1: icmp_seq=3 ttl=255 time=0.000 ms
56 bytes from 16.0.0.1: icmp_seq=4 ttl=255 time=0.000 ms
--- Ping statistics for 16.0.0.1 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) 在SC和Tail與各自接入的CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 16.0.0.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 16.0.0.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# CE 2配置與CE 1設備配置類似,配置過程省略。
# 配置SC。
[SC] bgp 100
[SC-bgp-default] router-id 1.1.1.1
[SC-bgp-default] ip vpn-instance vpn1
[SC-bgp-default-vpn1] peer 16.0.0.1 as-number 65410
[SC-bgp-default-vpn1] address-family ipv4 unicast
[SC-bgp-default-ipv4-vpn1] peer 16.0.0.1 enable
[SC-bgp-default-ipv4-vpn1] quit
[SC-bgp-default-vpn1] quit
# Tail配置與SC設備配置類似,配置過程省略。
配置完成後,在PE設備上執行display bgp peer ipv4 vpn-instance命令,可以看到SC和Tail與各自接入的CE之間的BGP對等體關係已建立,並達到Established狀態。
(4) 在SC和Tail之間建立VPNv4對等體
# 配置SC。
[SC] bgp 100
[SC-bgp-default] peer 5::5 as-number 100
[SC-bgp-default] peer 5::5 connect-interface loopback 1
[SC-bgp-default] address-family vpnv4
[SC-bgp-default-vpnv4] peer 5::5 enable
[SC-bgp-default-vpnv4] quit
[SC-bgp-default] quit
# 配置Tail。
[Tail] bgp 100
[Tail-bgp-default] peer 1::1 as-number 100
[Tail-bgp-default] peer 1::1 connect-interface loopback 1
[Tail-bgp-default] address-family vpnv4
[Tail-bgp-default-vpnv4] peer 1::1 enable
[Tail-bgp-default-vpnv4] quit
[Tail-bgp-default] quit
配置完成後,在SC和Tail上執行display bgp peer vpnv4命令,可以看到SC和Tail之間的VPNv4對等體關係已建立,並達到Established狀態。
(5) 在SC、SFF 1、Tail設備上配置End SID,在SC和Tail設備上配置End.DT4 SID,將SID所屬的Locator通過IGP發布
# 配置SC。
[SC] segment-routing ipv6
[SC-segment-routing-ipv6] encapsulation source-address 11::11
[SC-segment-routing-ipv6] locator a ipv6-prefix 1000::1 64 static 32
[SC-segment-routing-ipv6-locator-a] opcode 1 end
[SC-segment-routing-ipv6-locator-a] opcode 2 end-dt4 vpn-instance vpn1
[SC-segment-routing-ipv6-locator-a] quit
[SC-segment-routing-ipv6] quit
[SC] isis 1
[SC-isis-1] address-family ipv6 unicast
[SC-isis-1-ipv6] segment-routing ipv6 locator a
[SC-isis-1-ipv6] quit
[SC-isis-1] quit
# 配置SFF 1。
[SFF1] segment-routing ipv6
[SFF1-segment-routing-ipv6] encapsulation source-address 22::22
[SFF1-segment-routing-ipv6] locator b ipv6-prefix 2000::1 64 static 32
[SFF1-segment-routing-ipv6-locator-b] opcode 1 end
[SFF1-segment-routing-ipv6-locator-b] quit
[SFF1-segment-routing-ipv6] quit
[SFF1] isis 1
[SFF1-isis-1] address-family ipv6 unicast
[SFF1-isis-1-ipv6] segment-routing ipv6 locator b
[SFF1-isis-1-ipv6] quit
[SFF1-isis-1] quit
# 配置Tail。
[Tail] segment-routing ipv6
[Tail-segment-routing-ipv6] encapsulation source-address 55::55
[Tail-segment-routing-ipv6] locator e ipv6-prefix 5000::1 64 static 32
[Tail-segment-routing-ipv6-locator-e] opcode 1 end
[Tail-segment-routing-ipv6-locator-e] opcode 2 end-dt4 vpn-instance vpn1
[Tail-segment-routing-ipv6-locator-e] quit
[Tail-segment-routing-ipv6] quit
[Tail] isis 1
[Tail-isis-1] address-family ipv6 unicast
[Tail-isis-1-ipv6] segment-routing ipv6 locator e
[Tail-isis-1-ipv6] quit
[Tail-isis-1] quit
配置完成後,在SC設備上執行display ipv6 routing-table命令,可以看到已經將End.DT4 SID引入路由表中,並生成SRv6路由。
以SC為例:
[SC] display ipv6 routing-table protocol srv6
Summary count : 8
SRv6 Routing table status : <Active>
Summary count : 8
Destination: 1000::2/128 Protocol : SRv6
NextHop : ::1 Preference: 4
Interface : InLoop0 Cost : 0
SRv6 Routing table status : <Inactive>
Summary count : 0
(6) 在SC和Tail設備上配置為私網路由添加End.DT4 SID,對等體之間交換End.DT4 SID,同時允許將私網路由迭代到End.DT4 SID的路由條目上
# 配置SC。
[SC] bgp 100
[SC-bgp-default] address-family vpnv4
[SC-bgp-default-vpnv4] peer 5::5 prefix-sid
[SC-bgp-default-vpnv4] quit
[SC-bgp-default] ip vpn-instance vpn1
[SC-bgp-default-vpn1] address-family ipv4 unicast
[SC-bgp-default-ipv4-vpn1] segment-routing ipv6 locator a
[SC-bgp-default-ipv4-vpn1] segment-routing ipv6 traffic-engineering best-effort
[SC-bgp-default-ipv4-vpn1] quit
[SC-bgp-default-vpn1] quit
[SC-bgp-default] quit
# 配置Tail。
[Tail] bgp 100
[Tail-bgp-default] address-family vpnv4
[Tail-bgp-default-vpnv4] peer 1::1 prefix-sid
[Tail-bgp-default-vpnv4] quit
[Tail-bgp-default] ip vpn-instance vpn1
[Tail-bgp-default-vpn1] address-family ipv4 unicast
[Tail-bgp-default-ipv4-vpn1] segment-routing ipv6 locator e
[Tail-bgp-default-ipv4-vpn1] segment-routing ipv6 traffic-engineering best-effort
[Tail-bgp-default-ipv4-vpn1] quit
[Tail-bgp-default-vpn1] quit
[Tail-bgp-default] quit
配置完成後,在SC設備上執行display bgp routing-table vpnv4命令查看對端Tail發送的路由詳細信息,可以看到對端Tail發送的路由攜帶SID屬性數據。此時SC和Tail設備之間可以互相發布攜帶SRv6 SID的VPNv4路由,SC和Tail設備之間的SRv6 BE隧道正常建立。
以SC為例:
[SC] display bgp routing-table vpnv4 7.7.7.7
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 7.7.7.7/32:
From : 5::5 (5.5.5.5)
Rely nexthop : FE80::2A96:34FF:FE9D:216
Original nexthop: 5::5
Out interface : GigabitEthernet1/0/2
Route age : 00h14m23s
OutLabel : 3
Ext-Community : <RT: 111:1>
RxPathID : 0x0
TxPathID : 0x0
PrefixSID : End.DT4 SID <5000::2>
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
(7) 在SC和Tail設備上配置SRv6 TE Policy隧道,流量從SC向Tail轉發時,需經過SFF 1上的應用服務節點SF處理。
# 配置SC。
[SC] segment-routing ipv6
[SC-segment-routing-ipv6] traffic-engineering
[SC-srv6-te] srv6-policy locator a
[SC-srv6-te] segment-list s1
[SC-srv6-te-sl-s1] index 10 ipv6 2001::1
[SC-srv6-te-sl-s1] index 20 ipv6 5000::1
[SC-srv6-te-sl-s1] quit
[SC-srv6-te] policy p1
[SC-srv6-te-policy-p1] color 10 end-point ipv6 5::5
[SC-srv6-te-policy-p1] candidate-paths
[SC-srv6-te-policy-p1-path] preference 10
[SC-srv6-te-policy-p1-path-pref-10] explicit segment-list s1
[SC-srv6-te-policy-p1-path-pref-10] quit
[SC-srv6-te-policy-p1-path] quit
[SC-srv6-te-policy-p1] quit
[SC-srv6-te] quit
[SC-segment-routing-ipv6] quit
# 配置Tail。
[Tail] segment-routing ipv6
[Tail-segment-routing-ipv6] traffic-engineering
[Tail-srv6-te] srv6-policy locator e
[Tail-srv6-te] segment-list s2
[Tail-srv6-te-sl-s2] index 10 ipv6 2001::1
[Tail-srv6-te-sl-s2] index 10 ipv6 1000::1
[Tail-srv6-te-sl-s2] quit
[Tail-srv6-te] policy p1
[Tail-srv6-te-policy-p1] color 10 end-point ipv6 1::1
[Tail-srv6-te-policy-p1] candidate-paths
[Tail-srv6-te-policy-p1-path] preference 10
[Tail-srv6-te-policy-p1-path-pref-10] explicit segment-list s2
[Tail-srv6-te-policy-p1-path-pref-10] quit
[Tail-srv6-te-policy-p1-path] quit
[Tail-srv6-te-policy-p1] quit
[Tail-srv6-te] quit
[Tail-segment-routing-ipv6] quit
配置完成後,SRv6 TE Policy隧道創建成功,在SC和Tail設備上執行display segment-routing ipv6 te policy命令查看隧道詳細信息。
以SC為例:
[SC] display segment-routing ipv6 te policy
Name/ID: p1/0
Color: 10
Endpoint: 5::5
Name from BGP:
BSID:
Mode: Dynamic Type: Type_2 Request state: Succeeded
Current BSID: 1000::1:0:5 Explicit BSID: - Dynamic BSID: 1000::1:0:5
Reference counts: 4
Flags: A/BS/NC
Status: Up
Up time: 2020-10-30 16:08:03
Down time: 2020-10-30 16:03:48
Hot backup: Not configured
Statistics: Not configured
SBFD: Not configured
BFD Echo: Not configured
Forwarding index: 2150629377
Candidate paths state: Configured
Candidate paths statistics:
CLI paths: 1 BGP paths: 0 PCEP paths: 0
Candidate paths:
Preference : 10
CPathName:
Instance ID: 0 ASN: 0 Node address: 0.0.0.0
Peer address: ::
Optimal: Y Flags: V/A
Explicit SID list:
ID: 1 Name: s1
Weight: 1 Forwarding index: 2149580801
State: Up State(SBFD): -
(8) 在SC和Tail設備上配置路由策略,通過Color值匹配將流量引入SRv6 TE Policy
# 配置SC。
[SC] route-policy p1 permit node 10
[SC-route-policy-p1-10] apply extcommunity color 00:10 additive
[SC-route-policy-p1-10] quit
[SC] bgp 100
[SC-bgp-default] address-family vpnv4
[SC-bgp-default-vpnv4] peer 5::5 route-policy p1 import
[SC-bgp-default-vpnv4] quit
[SC-bgp-default]quit
# 配置Tail。
[Tail] route-policy p1 permit node 10
[Tail-route-policy-p1-10] apply extcommunity color 00:10 additive
[Tail-route-policy-p1-10] quit
[Tail] bgp 100
[Tail-bgp-default] address-family vpnv4
[Tail-bgp-default-vpnv4] peer 1::1 route-policy p1 import
[Tail-bgp-default-vpnv4] quit
[Tail-bgp-default] quit
配置完成後,在SC設備上執行display bgp routing-table vpnv4命令查看對端Tail發送的路由詳細信息,可以看到對端Tail發送的路由攜帶了擴展團體屬性Color並且迭代進入上一步創建的SRv6 TE Policy隧道。
以SC為例:
[SC] display bgp routing-table vpnv4 7.7.7.7
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 7.7.7.7/32:
From : 5::5 (5.5.5.5)
Rely nexthop : FE80::2A96:34FF:FE9D:216
Original nexthop: 5::5
Out interface : GigabitEthernet1/0/2
Route age : 00h52m23s
OutLabel : 3
Ext-Community : <RT: 111:1>, <CO-Flag:Color(00:10)>
RxPathID : 0x0
TxPathID : 0x0
PrefixSID : End.DT4 SID <5000::2>
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 : 2150629377
(9) 在SFF 1上配置SRv6 SFC服務鏈偽代理功能
# 配置SFF 1。
[SFF1] interface gigabitethernet 1/0/2
[SFF1-GigabitEthernet1/0/2] ipv6 address 10::1 96
[SFF1-GigabitEthernet1/0/2] quit
[SFF1-segment-routing-ipv6] locator am1 ipv6-prefix 2001:: 64 static 32
[SFF1-segment-routing-ipv6-locator-am1] opcode 1 end-am
[SFF1-segment-routing-ipv6-locator-am1-endam-1] encapsulation ipv6 nexthop 10::1 out-interface gigabitethernet 1/0/2 in-interface gigabitethernet 1/0/2
[SFF1-segment-routing-ipv6-locator-am1-endam-1] quit
[SFF1-segment-routing-ipv6-locator-am1] quit
[SFF1-segment-routing-ipv6] quit
[SFF1] isis 1
[SFF1-isis-1] address-family ipv6 unicast
[SFF1-isis-1-ipv6] segment-routing ipv6 locator am1
[SFF1-isis-1-ipv6] quit
[SFF1-isis-1] quit
# 在SFF 1設備上執行命令display segment-routing ipv6 local-sid end-am,可以看到End.AM SID轉發信息。
[SFF1] display segment-routing ipv6 local-sid end-am
Local SID forwarding table (End.AM)
Total SIDs: 1
SID : 2001::1/64
Function type : End.AM Allocation type: Static
Locator name : am1 Forward type : L3
Encapsulation count: 1
Next hop : 10::1 Out-interface : GE1/0/2
In-interface : GE1/0/2
Owner : SIDMGR State : Active
Create Time : May 19 17:21:15.687 2020
如圖1-9所示,CE 1和CE 2屬於同一個VPN。SRv6 SFC采用偽代理模式,控製CE 1業務流量經過SF處理後轉發到CE 2上。SF通過三層以太網子接口與SFF 1設備相連,報文在SFF 1和SF之間采用二層封裝轉發。
· 在SC和Tail上配置VPN實例,業務流量通過SRv6 TE Policy轉發,轉發路徑為SC->SFF 1->SF->Tail。
· 在SFF 1上配置SRv6 SFC服務鏈偽代理。
圖1-9 SRv6 SFC服務鏈偽代理二層封裝轉發配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
SC |
Loop1 |
1::1/128 |
SFF 1 |
Loop1 |
2::2/128 |
GE1/0/1 |
16.0.0.2/30 |
GE1/0/1 |
100::2/96 |
||
GE1/0/2 |
100::1/96 |
GE1/0/3 |
400::1/96 |
||
Tail |
Loop1 |
5::5/128 |
CE 1 |
Loop1 |
6.6.6.6/32 |
|
GE1/0/1 |
57.0.0.1/30 |
|
GE1/0/1 |
16.0.0.1/30 |
|
GE1/0/2 |
400::2/96 |
CE 2 |
Loop1 |
7.7.7.7/32 |
|
|
|
|
GE1/0/1 |
57.0.0.2/30 |
· 規劃SRv6 SID信息:
¡ SC:Locator a網段為1000::/64,End SID為1000::1,End.DT4 SID為1000::2
¡ SFF 1:Locator b網段為2000::/64,End SID為2000::1;Locator am1網段為2001::/64,End.AM SID為2001::1
¡ Tail:Locator e網段為5000::/64,End SID為5000::1,End.DT4 SID為5000::2
· 規劃流量轉發隧道和隧道顯式路徑:在SC上,流量通過SRv6 TE Policy的顯示路徑經過SFF 1轉發至SF上處理後,最終轉發到Tail設備。
SRv6 SFC偽代理二層轉發和三層轉發模式的主要區別在SF和SFF之間報文轉發配置。L3VPN和SRv6 TE Policy部分配置請參見“1.19.3 SRv6 SFC服務鏈偽代理三層封裝轉發”,此處僅展示差異部分。
# 在SFF 1上配置基本的SRv6 SFC服務鏈偽代理功能
<SFF1> system-view
[SFF1] interface gigabitethernet 1/0/2.1
[SFF1-GigabitEthernet1/0/2.1] vlan-type dot1q vid 2
[SFF1-GigabitEthernet1/0/2.1] quit
[SFF1-segment-routing-ipv6] locator am1 ipv6-prefix 2001:: 64 static 32
[SFF1-segment-routing-ipv6-locator-am1] opcode 1 end-am
[SFF1-segment-routing-ipv6-locator-am1-endam-1] encapsulation eth out-interface gigabitethernet 1/0/2.1 out-s-vlan 2 in-interface gigabitethernet 1/0/2.1 in-s-vlan 2
[SFF1-segment-routing-ipv6-locator-am1-endam-1] quit
[SFF1-segment-routing-ipv6-locator-am1] quit
[SFF1-segment-routing-ipv6] quit
[SFF1] isis 1
[SFF1-isis-1] address-family ipv6 unicast
[SFF1-isis-1-ipv6] segment-routing ipv6 locator am1
[SFF1-isis-1-ipv6] quit
[SFF1-isis-1] quit
# 在SFF 1設備上執行命令display segment-routing ipv6 local-sid end-am,可以看到End.AM SID轉發信息。
[SFF1] display segment-routing ipv6 local-sid end-am
Local SID forwarding table (End.AM)
Total SIDs: 1
SID : 2001::1/64
Function type : End.AM Allocation type: Static
Locator name : am1 Forward type : L2
Encapsulation count: 1
Out-interface: GE1/0/2.1 In-interface : GE1/0/2.1
Out-S-VLAN : 2 Out-C-VLAN : -
In-S-VLAN : 2 In-C-VLAN : -
Owner : SIDMGR State : Active
Create Time : May 19 17:21:15.687 2020
如圖1-10所示,CE 1和CE 2屬於同一個VPN。SRv6 SFC采用靜態代理模式,控製CE 1業務流量經過SF 1處理後轉發到CE 2上。為了保證業務可靠性,SF 1雙歸到SFF 1和SFF 2進行保護,同時SF 2對SF 1進行Bypass保護。三台SFF設備通過三層以太網接口連接SF,報文在SFF和SF之間采用三層封裝轉發。
· 在SC和Tail上配置VPN實例,業務流量通過SRv6 TE Policy轉發,轉發路徑為SC->SFF 1->SF 1->Tail。
· 在SFF 1和SFF 2上配置SRv6 SFC服務鏈靜態代理,服務節點SF 1雙歸到SFF 1和SFF 2。
· 在SFF 3上配置SRv6 SFC服務鏈靜態代理,服務節點SF 2為SF 1提供Bypass保護。
圖1-10 SRv6 SFC服務鏈靜態代理采用三層封裝轉發配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
SC |
Loop1 |
1::1/128 |
SFF 1 |
Loop1 |
2::2/128 2.2.2.2/32 |
GE1/0/1 |
16.0.0.2/30 |
GE1/0/1 |
100::2/96 |
||
GE1/0/2 |
100::1/96 |
GE1/0/2 |
300::1/96 |
||
|
GE1/0/3 |
200::1/96 |
|
GE1/0/3 |
10.1.1.2/24 |
SFF 2 |
Loop1 |
3::3/128 3.3.3.3/32 |
|
GE1/0/4 |
400::1/96 |
|
GE1/0/1 |
300::2/96 |
SFF 3 |
Loop1 |
4::4/128 4.4.4.4/32 |
|
GE1/0/2 |
500::1/96 |
|
GE1/0/1 |
500::2/96 |
|
GE1/0/3 |
10.1.1.3/24 |
|
GE1/0/2 |
600::1/96 |
|
GE1/0/4 |
200::2/96 |
|
GE1/0/3 |
10.2.1.2/24 |
SF 1 |
- |
10.1.1.1/24 |
|
GE1/0/4 |
400::2/96 |
SF 2 |
- |
10.2.1.1/24 |
CE 1 |
Loop1 |
6.6.6.6/32 |
Tail |
Loop1 |
5::5/128 |
|
GE1/0/1 |
16.0.0.1/30 |
|
GE1/0/1 |
57.0.0.1/30 |
CE 2 |
Loop1 |
7.7.7.7/32 |
|
GE1/0/2 |
600::2/96 |
|
GE1/0/1 |
57.0.0.2/30 |
· 規劃SRv6 SID信息:
¡ SC:Locator a網段為1000::/64,End SID為1000::1,End.DT4 SID為1000::2
¡ SFF 1:Locator b網段為2000::/64,End SID為2000::1;Locator as1網段為2001::/64,End.AS SID為2001::1
¡ SFF 2:Locator c網段為3000::/64,End SID為3000::1;Locator as1網段為2001::/64,End.AS SID為2001::1
¡ SFF 3:Locator d網段為4000::/64,End SID為4000::1;Locator as2網段4001::/64,End.AS SID為4001::1
¡ Tail:Locator e網段為5000::/64,End SID為5000::1,End.DT4 SID為5000::2
· 規劃流量轉發隧道和隧道顯式路徑:在SC上,流量通過SRv6 TE Policy指定的顯式路徑經過SFF 1轉發至SF 1上處理後,最終轉發到Tail設備;流量從Tail設備回程時通過SRv6 TE Policy指定的顯式路徑經過SFF 2節點回到SC,無需SF節點處理。
(1) 在SC、SFF 1、SFF 2、SFF 3、Tail設備上配置IPv6 IS-IS,實現骨幹網設備的互通
# 配置SC。
<SC> system-view
[SC] isis 1
[SC-isis-1] is-level level-2
[SC-isis-1] cost-style wide
[SC-isis-1] network-entity 10.1111.1111.1111.00
[SC-isis-1] address-family ipv6 unicast
[SC-isis-1-ipv6] quit
[SC-isis-1] quit
[SC] interface loopback 1
[SC-LoopBack1] ipv6 address 1::1 128
[SC-LoopBack1] isis ipv6 enable 1
[SC-LoopBack1] quit
[SC] interface gigabitethernet 1/0/2
[SC-GigabitEthernet1/0/2] ipv6 address 100::1 96
[SC-GigabitEthernet1/0/2] isis ipv6 enable
[SC-GigabitEthernet1/0/2] quit
[SC] interface gigabitethernet 1/0/3
[SC-GigabitEthernet1/0/3] ipv6 address 200::1 96
[SC-GigabitEthernet1/0/3] isis ipv6 enable
[SC-GigabitEthernet1/0/3] quit
# 配置SFF 1。
<SFF1> system-view
[SFF1] isis
[SFF1-isis-1] is-level level-2
[SFF1-isis-1] cost-style wide
[SFF1-isis-1] network-entity 10.2222.2222.2222.00
[SFF1-isis-1] address-family ipv6 unicast
[SFF1-isis-1-ipv6] quit
[SFF1-isis-1] quit
[SFF1] interface loopback 1
[SFF1-LoopBack1] ipv6 address 2::2 128
[SFF1-LoopBack1] isis ipv6 enable
[SFF1-LoopBack1] quit
[SFF1] interface gigabitethernet 1/0/1
[SFF1-GigabitEthernet1/0/1] ipv6 address 100::2 96
[SFF1-GigabitEthernet1/0/1] isis ipv6 enable
[SFF1-GigabitEthernet1/0/1] quit
[SFF1] interface gigabitethernet 1/0/2
[SFF1-GigabitEthernet1/0/2] ipv6 address 300::1 96
[SFF1-GigabitEthernet1/0/2] isis ipv6 enable
[SFF1-GigabitEthernet1/0/2] quit
[SFF1] interface gigabitethernet 1/0/4
[SFF1-GigabitEthernet1/0/4] ipv6 address 400::1 96
[SFF1-GigabitEthernet1/0/4] isis ipv6 enable
[SFF1-GigabitEthernet1/0/4] quit
# 配置SFF 2。
<SFF2> system-view
[SFF2] isis
[SFF2-isis-1] is-level level-2
[SFF2-isis-1] cost-style wide
[SFF2-isis-1] network-entity 10.3333.3333.3333.00
[SFF2-isis-1] address-family ipv6 unicast
[SFF2-isis-1-ipv6] quit
[SFF2-isis-1] quit
[SFF2] interface loopback 1
[SFF2-LoopBack1] ipv6 address 3::3 128
[SFF2-LoopBack1] isis ipv6 enable
[SFF2-LoopBack1] quit
[SFF2] interface gigabitethernet 1/0/1
[SFF2-GigabitEthernet1/0/1] ipv6 address 300::2 96
[SFF2-GigabitEthernet1/0/1] isis ipv6 enable
[SFF2-GigabitEthernet1/0/1] quit
[SFF2] interface gigabitethernet 1/0/2
[SFF2-GigabitEthernet1/0/2] ipv6 address 500::1 96
[SFF2-GigabitEthernet1/0/2] isis ipv6 enable
[SFF2-GigabitEthernet1/0/2] quit
[SFF2] interface gigabitethernet 1/0/4
[SFF2-GigabitEthernet1/0/4] ipv6 address 200::2 96
[SFF2-GigabitEthernet1/0/4] isis ipv6 enable
[SFF2-GigabitEthernet1/0/4] quit
# 配置SFF 3。
<SFF3> system-view
[SFF3] isis
[SFF3-isis-1] is-level level-2
[SFF3-isis-1] cost-style wide
[SFF3-isis-1] network-entity 10.4444.4444.4444.00
[SFF3-isis-1] address-family ipv6 unicast
[SFF3-isis-1-ipv6] quit
[SFF3-isis-1] quit
[SFF3] interface loopback 1
[SFF3-LoopBack1] ipv6 address 4::4 128
[SFF3-LoopBack1] isis ipv6 enable
[SFF3-LoopBack1] quit
[SFF3] interface gigabitethernet 1/0/1
[SFF3-GigabitEthernet1/0/1] ipv6 address 500::2 96
[SFF3-GigabitEthernet1/0/1] isis ipv6 enable
[SFF3-GigabitEthernet1/0/1] quit
[SFF3] interface gigabitethernet 1/0/2
[SFF3-GigabitEthernet1/0/2] ipv6 address 600::1 96
[SFF3-GigabitEthernet1/0/2] isis ipv6 enable
[SFF3-GigabitEthernet1/0/2] quit
[SFF3] interface gigabitethernet 1/0/4
[SFF3-GigabitEthernet1/0/4] ipv6 address 400::2 96
[SFF3-GigabitEthernet1/0/4] isis ipv6 enable
[SFF3-GigabitEthernet1/0/4] quit
# 配置Tail。
<Tail> system-view
[Tail] isis
[Tail-isis-1] is-level level-2
[Tail-isis-1] cost-style wide
[Tail-isis-1] network-entity 10.5555.5555.5555.00
[Tail-isis-1] address-family ipv6 unicast
[Tail-isis-1-ipv6] quit
[Tail-isis-1] quit
[Tail] interface loopback 1
[Tail-LoopBack1] ipv6 address 5::5 128
[Tail-LoopBack1] isis ipv6 enable
[Tail-LoopBack1] quit
[Tail] interface gigabitethernet 1/0/2
[Tail-GigabitEthernet1/0/2] ipv6 address 600::2 96
[Tail-GigabitEthernet1/0/2] isis ipv6 enable
[Tail-GigabitEthernet1/0/2] quit
配置完成後,SC、SFF 1、SFF 2、SFF 3、Tail之間應能建立IPv6 IS-IS鄰居,執行display isis peer命令可以看到鄰居達到Up狀態。執行display isis route ipv6命令可以看到SC和Tail互相學習到對方的Loopback接口的路由。
(2) 在SC和Tail設備上配置VPN實例,將CE 1和CE 2分別接入SC和Tail
# 配置SC。
[SC] ip vpn-instance vpn1
[SC-vpn-instance-vpn1] route-distinguisher 100:1
[SC-vpn-instance-vpn1] vpn-target 111:1
[SC-vpn-instance-vpn1] quit
[SC] interface gigabitethernet 1/0/1
[SC-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[SC-GigabitEthernet1/0/1] ip address 16.0.0.2 30
[SC-GigabitEthernet1/0/1] quit
# 配置Tail。
[Tail] ip vpn-instance vpn1
[Tail-vpn-instance-vpn1] route-distinguisher 100:1
[Tail-vpn-instance-vpn1] vpn-target 111:1
[Tail-vpn-instance-vpn1] quit
[Tail] interface gigabitethernet 1/0/1
[Tail-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[Tail-GigabitEthernet1/0/1] ip address 57.0.0.1 24
[Tail-GigabitEthernet1/0/1] quit
# 按配置各CE的接口IP地址,配置過程略。
配置完成後,在PE設備上執行display ip vpn-instance命令可以看到VPN實例的配置情況。SC和Tail能ping通自己接入的CE。
以SC和CE 1為例:
[SC] 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 2020/10/29 13:59:39
[SC] ping -vpn-instance vpn1 16.0.0.1
Ping 16.0.0.1 (16.0.0.1): 56 data bytes, press CTRL+C to break
56 bytes from 16.0.0.1: icmp_seq=0 ttl=255 time=2.000 ms
56 bytes from 16.0.0.1: icmp_seq=1 ttl=255 time=0.000 ms
56 bytes from 16.0.0.1: icmp_seq=2 ttl=255 time=1.000 ms
56 bytes from 16.0.0.1: icmp_seq=3 ttl=255 time=0.000 ms
56 bytes from 16.0.0.1: icmp_seq=4 ttl=255 time=0.000 ms
--- Ping statistics for 16.0.0.1 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) 在SC和Tail與各自接入的CE之間建立EBGP對等體,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 16.0.0.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 16.0.0.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# CE 2配置與CE 1設備配置類似,配置過程省略。
# 配置SC。
[SC] bgp 100
[SC-bgp-default] router-id 1.1.1.1
[SC-bgp-default] ip vpn-instance vpn1
[SC-bgp-default-vpn1] peer 16.0.0.1 as-number 65410
[SC-bgp-default-vpn1] address-family ipv4 unicast
[SC-bgp-default-ipv4-vpn1] peer 16.0.0.1 enable
[SC-bgp-default-ipv4-vpn1] quit
[SC-bgp-default-vpn1] quit
# Tail配置與SC設備配置類似,配置過程省略。
配置完成後,在PE設備上執行display bgp peer ipv4 vpn-instance命令,可以看到SC和Tail與各自接入的CE之間的BGP對等體關係已建立,並達到Established狀態。
(4) 在SC和Tail之間建立VPNv4對等體
# 配置SC。
[SC] bgp 100
[SC-bgp-default] peer 5::5 as-number 100
[SC-bgp-default] peer 5::5 connect-interface loopback 1
[SC-bgp-default] address-family vpnv4
[SC-bgp-default-vpnv4] peer 5::5 enable
[SC-bgp-default-vpnv4] quit
[SC-bgp-default] quit
# 配置Tail。
[Tail] bgp 100
[Tail-bgp-default] peer 1::1 as-number 100
[Tail-bgp-default] peer 1::1 connect-interface loopback 1
[Tail-bgp-default] address-family vpnv4
[Tail-bgp-default-vpnv4] peer 1::1 enable
[Tail-bgp-default-vpnv4] quit
[Tail-bgp-default] quit
配置完成後,在SC和Tail上執行display bgp peer vpnv4命令,可以看到SC和Tail之間的VPNv4對等體關係已建立,並達到Established狀態。
(5) 在SC、SFF 1、SFF 2、SFF 3、Tail設備上配置End SID,在SC和Tail設備上配置End.DT4 SID,將SID所屬的Locator通過IGP發布
# 配置SC。
[SC] segment-routing ipv6
[SC-segment-routing-ipv6] encapsulation source-address 11::11
[SC-segment-routing-ipv6] locator a ipv6-prefix 1000::1 64 static 32
[SC-segment-routing-ipv6-locator-a] opcode 1 end
[SC-segment-routing-ipv6-locator-a] opcode 2 end-dt4 vpn-instance vpn1
[SC-segment-routing-ipv6-locator-a] quit
[SC-segment-routing-ipv6] quit
[SC] isis 1
[SC-isis-1] address-family ipv6 unicast
[SC-isis-1-ipv6] segment-routing ipv6 locator a
[SC-isis-1-ipv6] quit
[SC-isis-1] quit
# 配置SFF 1。
[SFF1] segment-routing ipv6
[SFF1-segment-routing-ipv6] encapsulation source-address 22::22
[SFF1-segment-routing-ipv6] locator b ipv6-prefix 2000::1 64 static 32
[SFF1-segment-routing-ipv6-locator-b] opcode 1 end
[SFF1-segment-routing-ipv6-locator-b] quit
[SFF1-segment-routing-ipv6] quit
[SFF1] isis 1
[SFF1-isis-1] address-family ipv6 unicast
[SFF1-isis-1-ipv6] segment-routing ipv6 locator b
[SFF1-isis-1-ipv6] quit
[SFF1-isis-1] quit
# 配置SFF 2。
[SFF2] segment-routing ipv6
[SFF2-segment-routing-ipv6] encapsulation source-address 33::33
[SFF2-segment-routing-ipv6] locator c ipv6-prefix 3000::1 64 static 32
[SFF2-segment-routing-ipv6-locator-c] opcode 1 end
[SFF2-segment-routing-ipv6-locator-c] quit
[SFF2-segment-routing-ipv6] quit
[SFF2] isis 1
[SFF2-isis-1] address-family ipv6 unicast
[SFF2-isis-1-ipv6] segment-routing ipv6 locator c
[SFF2-isis-1-ipv6] quit
[SFF2-isis-1] quit
# 配置SFF 3。
[SFF3] segment-routing ipv6
[SFF3-segment-routing-ipv6] encapsulation source-address 44::44
[SFF3-segment-routing-ipv6] locator d ipv6-prefix 4000::1 64 static 32
[SFF3-segment-routing-ipv6-locator-d] opcode 1 end
[SFF3-segment-routing-ipv6-locator-d] quit
[SFF3-segment-routing-ipv6] quit
[SFF3] isis 1
[SFF3-isis-1] address-family ipv6 unicast
[SFF3-isis-1-ipv6] segment-routing ipv6 locator d
[SFF3-isis-1-ipv6] quit
[SFF3-isis-1] quit
# 配置Tail。
[Tail] segment-routing ipv6
[Tail-segment-routing-ipv6] encapsulation source-address 55::55
[Tail-segment-routing-ipv6] locator e ipv6-prefix 5000::1 64 static 32
[Tail-segment-routing-ipv6-locator-e] opcode 1 end
[Tail-segment-routing-ipv6-locator-e] opcode 2 end-dt4 vpn-instance vpn1
[Tail-segment-routing-ipv6-locator-e] quit
[Tail-segment-routing-ipv6] quit
[Tail] isis 1
[Tail-isis-1] address-family ipv6 unicast
[Tail-isis-1-ipv6] segment-routing ipv6 locator e
[Tail-isis-1-ipv6] quit
[Tail-isis-1] quit
配置完成後,在SC設備上執行display ipv6 routing-table命令,可以看到已經將End.DT4 SID引入路由表中,並生成SRv6路由。
以SC為例:
[SC] display ipv6 routing-table protocol srv6
Summary count : 8
SRv6 Routing table status : <Active>
Summary count : 8
Destination: 1000::2/128 Protocol : SRv6
NextHop : ::1 Preference: 4
Interface : InLoop0 Cost : 0
SRv6 Routing table status : <Inactive>
Summary count : 0
(6) 在SC和Tail設備上配置為私網路由添加End.DT4 SID,對等體之間交換End.DT4 SID,同時允許將私網路由迭代到End.DT4 SID的路由條目上
# 配置SC。
[SC] bgp 100
[SC-bgp-default] address-family vpnv4
[SC-bgp-default-vpnv4] peer 5::5 prefix-sid
[SC-bgp-default-vpnv4] quit
[SC-bgp-default] ip vpn-instance vpn1
[SC-bgp-default-vpn1] address-family ipv4 unicast
[SC-bgp-default-ipv4-vpn1] segment-routing ipv6 locator a
[SC-bgp-default-ipv4-vpn1] segment-routing ipv6 traffic-engineering best-effort
[SC-bgp-default-ipv4-vpn1] quit
[SC-bgp-default-vpn1] quit
[SC-bgp-default] quit
# 配置Tail。
[Tail] bgp 100
[Tail-bgp-default] address-family vpnv4
[Tail-bgp-default-vpnv4] peer 1::1 prefix-sid
[Tail-bgp-default-vpnv4] quit
[Tail-bgp-default] ip vpn-instance vpn1
[Tail-bgp-default-vpn1] address-family ipv4 unicast
[Tail-bgp-default-ipv4-vpn1] segment-routing ipv6 locator e
[Tail-bgp-default-ipv4-vpn1] segment-routing ipv6 traffic-engineering best-effort
[Tail-bgp-default-ipv4-vpn1] quit
[Tail-bgp-default-vpn1] quit
[Tail-bgp-default] quit
配置完成後,在SC設備上執行display bgp routing-table vpnv4命令查看對端Tail發送的路由詳細信息,可以看到對端Tail發送的路由攜帶SID屬性數據。此時SC和Tail設備之間可以互相發布攜帶SRv6 SID的VPNv4路由,SC和Tail設備之間的SRv6 BE隧道正常建立。
以SC為例:
[SC] display bgp routing-table vpnv4 7.7.7.7
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 7.7.7.7/32:
From : 5::5 (5.5.5.5)
Rely nexthop : FE80::2A96:34FF:FE9D:216
Original nexthop: 5::5
Out interface : GigabitEthernet1/0/2
Route age : 00h14m23s
OutLabel : 3
Ext-Community : <RT: 111:1>
RxPathID : 0x0
TxPathID : 0x0
PrefixSID : End.DT4 SID <5000::2>
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
(7) 在SC和Tail設備上配置SRv6 TE Policy隧道,流量從SC向Tail轉發時,需經過SFF 1上的應用服務節點SF處理,流量從Tail向SC回程時,不通過SF處理
# 配置SC。
[SC] segment-routing ipv6
[SC-segment-routing-ipv6] traffic-engineering
[SC-srv6-te] srv6-policy locator a
[SC-srv6-te] segment-list s1
[SC-srv6-te-sl-s1] index 10 ipv6 2001::1
[SC-srv6-te-sl-s1] index 20 ipv6 5000::1
[SC-srv6-te-sl-s1] quit
[SC-srv6-te] policy p1
[SC-srv6-te-policy-p1] color 10 end-point ipv6 5::5
[SC-srv6-te-policy-p1] candidate-paths
[SC-srv6-te-policy-p1-path] preference 10
[SC-srv6-te-policy-p1-path-pref-10] explicit segment-list s1
[SC-srv6-te-policy-p1-path-pref-10] quit
[SC-srv6-te-policy-p1-path] quit
[SC-srv6-te-policy-p1] quit
[SC-srv6-te] quit
[SC-segment-routing-ipv6] quit
# 配置Tail。
[Tail] segment-routing ipv6
[Tail-segment-routing-ipv6] traffic-engineering
[Tail-srv6-te] srv6-policy locator e
[Tail-srv6-te] segment-list s2
[Tail-srv6-te-sl-s2] index 10 ipv6 3000::1
[Tail-srv6-te-sl-s2] index 20 ipv6 1000::1
[Tail-srv6-te-sl-s2] quit
[Tail-srv6-te] policy p1
[Tail-srv6-te-policy-p1] color 10 end-point ipv6 1::1
[Tail-srv6-te-policy-p1] candidate-paths
[Tail-srv6-te-policy-p1-path] preference 10
[Tail-srv6-te-policy-p1-path-pref-10] explicit segment-list s2
[Tail-srv6-te-policy-p1-path-pref-10] quit
[Tail-srv6-te-policy-p1-path] quit
[Tail-srv6-te-policy-p1] quit
[Tail-srv6-te] quit
[Tail-segment-routing-ipv6] quit
配置完成後,SRv6 TE Policy隧道創建成功,在SC和Tail設備上執行display segment-routing ipv6 te policy命令查看隧道詳細信息。
以SC為例:
[SC] display segment-routing ipv6 te policy
Name/ID: p1/0
Color: 10
Endpoint: 5::5
Name from BGP:
BSID:
Mode: Dynamic Type: Type_2 Request state: Succeeded
Current BSID: 1000::1:0:5 Explicit BSID: - Dynamic BSID: 1000::1:0:5
Reference counts: 4
Flags: A/BS/NC
Status: Up
Up time: 2020-10-30 16:08:03
Down time: 2020-10-30 16:03:48
Hot backup: Not configured
Statistics: Not configured
SBFD: Not configured
BFD Echo: Not configured
Forwarding index: 2150629377
Candidate paths state: Configured
Candidate paths statistics:
CLI paths: 1 BGP paths: 0 PCEP paths: 0
Candidate paths:
Preference : 10
CPathName:
Instance ID: 0 ASN: 0 Node address: 0.0.0.0
Peer address: ::
Optimal: Y Flags: V/A
Explicit SID list:
ID: 1 Name: s1
Weight: 1 Forwarding index: 2149580801
State: Up State(SBFD): -
(8) 在SC和Tail設備上配置路由策略,通過Color值匹配將流量引入SRv6 TE Policy
# 配置SC。
[SC] route-policy p1 permit node 10
[SC-route-policy-p1-10] apply extcommunity color 00:10 additive
[SC-route-policy-p1-10] quit
[SC] bgp 100
[SC-bgp-default] address-family vpnv4
[SC-bgp-default-vpnv4] peer 5::5 route-policy p1 import
[SC-bgp-default-vpnv4] quit
[SC-bgp-default]quit
# 配置Tail。
[Tail] route-policy p1 permit node 10
[Tail-route-policy-p1-10] apply extcommunity color 00:10 additive
[Tail-route-policy-p1-10] quit
[Tail] bgp 100
[Tail-bgp-default] address-family vpnv4
[Tail-bgp-default-vpnv4] peer 1::1 route-policy p1 import
[Tail-bgp-default-vpnv4] quit
[Tail-bgp-default] quit
配置完成後,在SC設備上執行display bgp routing-table vpnv4命令查看對端Tail發送的路由詳細信息,可以看到對端Tail發送的路由攜帶了擴展團體屬性Color並且迭代進入上一步創建的SRv6 TE Policy隧道。
以SC為例:
[SC] display bgp routing-table vpnv4 7.7.7.7
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 7.7.7.7/32:
From : 5::5 (5.5.5.5)
Rely nexthop : FE80::2A96:34FF:FE9D:216
Original nexthop: 5::5
Out interface : GigabitEthernet1/0/2
Route age : 00h52m23s
OutLabel : 3
Ext-Community : <RT: 111:1>, <CO-Flag:Color(00:10)>
RxPathID : 0x0
TxPathID : 0x0
PrefixSID : End.DT4 SID <5000::2>
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 : 2150629377
(9) 在SFF 1、SFF 2、SFF 3上配置基本的SFC功能
# 配置SFF 1。
[SFF1] interface gigabitethernet 1/0/3
[SFF1-GigabitEthernet1/0/3] ip address 10.1.1.2 24
[SFF1-GigabitEthernet1/0/3] quit
[SFF1] segment-routing ipv6
[SFF1-segment-routing-ipv6] locator as1 ipv6-prefix 2001:: 64 static 32
[SFF1-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF1-segment-routing-ipv6-locator-as1-endas-1] inner-type ipv4
[SFF1-segment-routing-ipv6-locator-as1-endas-1] encapsulation ipv4 nexthop 10.1.1.1 out-interface gigabitethernet 1/0/3 in-interface gigabitethernet 1/0/3
[SFF1-segment-routing-ipv6-locator-as1-endas-1] cache source-address 1::1
[SFF1-segment-routing-ipv6-locator-as1-endas-1] cache list 2001::1 5000::1 5000::2
[SFF1-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF1-segment-routing-ipv6-locator-as1] quit
[SFF1-segment-routing-ipv6] quit
[SFF1] isis 1
[SFF1-isis-1] address-family ipv6 unicast
[SFF1-isis-1-ipv6] segment-routing ipv6 locator as1
[SFF1-isis-1-ipv6] quit
[SFF1-isis-1] quit
# 配置SFF 2作為SFF 1的雙歸備份接入SF 1。
[SFF2] interface gigabitethernet 1/0/3
[SFF2-GigabitEthernet1/0/3] ip address 10.1.1.3 24
[SFF2-GigabitEthernet1/0/3] quit
[SFF2] segment-routing ipv6
[SFF2-segment-routing-ipv6] locator as1 ipv6-prefix 2001:: 64 static 32
[SFF2-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF2-segment-routing-ipv6-locator-as1-endas-1] inner-type ipv4
[SFF2-segment-routing-ipv6-locator-as1-endas-1] encapsulation ipv4 nexthop 10.1.1.1 out-interface gigabitethernet 1/0/3 in-interface gigabitethernet 1/0/3
[SFF2-segment-routing-ipv6-locator-as1-endas-1] cache source-address 1::1
[SFF2-segment-routing-ipv6-locator-as1-endas-1] cache list 2001::1 5000::1 5000::2
[SFF2-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF2-segment-routing-ipv6-locator-as1] quit
[SFF2-segment-routing-ipv6] quit
[SFF2] isis 1
[SFF2-isis-1] address-family ipv6 unicast
[SFF2-isis-1-ipv6] segment-routing ipv6 locator as1
[SFF2-isis-1-ipv6] quit
[SFF2-isis-1] quit
# 配置SFF3 接入SF 2。
[SFF3] interface gigabitethernet 1/0/3
[SFF3-GigabitEthernet1/0/3] ip address 10.2.1.2 24
[SFF3-GigabitEthernet1/0/3] quit
[SFF3] segment-routing ipv6
[SFF3-segment-routing-ipv6] locator as2 ipv6-prefix 4001:: 64 static 32
[SFF3-segment-routing-ipv6-locator-as2] opcode 1 end-as
[SFF3-segment-routing-ipv6-locator-as2-endas-1] inner-type ipv4
[SFF3-segment-routing-ipv6-locator-as2-endas-1] encapsulation ipv4 nexthop 10.2.1.1 out-interface gigabitethernet 1/0/3 in-interface gigabitethernet 1/0/3
[SFF3-segment-routing-ipv6-locator-as2-endas-1] cache source-address 1::1
[SFF3-segment-routing-ipv6-locator-as2-endas-1] cache list 4001::1 5000::1 5000::2
[SFF3-segment-routing-ipv6-locator-as2-endas-1] quit
[SFF3-segment-routing-ipv6-locator-as2] quit
[SFF3-segment-routing-ipv6] quit
[SFF3] isis 1
[SFF3-isis-1] address-family ipv6 unicast
[SFF3-isis-1-ipv6] segment-routing ipv6 locator as2
[SFF3-isis-1-ipv6] quit
[SFF3-isis-1] quit
(10) 在SFF 1和SFF 2上配置SFC雙歸保護功能,並對SFF和SF連接的三層口配置echo方式的靜態BFD檢測,加速故障倒換
# 配置SFF 1。
[SFF1] segment-routing ipv6
[SFF1-segment-routing-ipv6] proxy peer-sid 3000::1
[SFF1-segment-routing-ipv6] locator as1
[SFF1-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF1-segment-routing-ipv6-locator-as1-endas-1] backup-opcode 2
[SFF1-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF1-segment-routing-ipv6-locator-as1] quit
[SFF1-segment-routing-ipv6] quit
[SFF1] interface loopback 1
[SFF1-LoopBack1] ip address 2.2.2.2 32
[SFF1-LoopBack1] quit
[SFF1] bfd echo-source-ip 2.2.2.2
[SFF1] bfd static sf peer-ip 10.1.1.1 interface gigabitethernet 1/0/3 destination-ip 10.1.1.2 one-arm-echo
[SFF1-bfd-static-session-sf] discriminator local 100
[SFF1-bfd-static-session-sf] quit
# 配置SFF 2。
[SFF2] segment-routing ipv6
[SFF2-segment-routing-ipv6] proxy peer-sid 2000::1
[SFF2-segment-routing-ipv6] locator as1
[SFF2-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF2-segment-routing-ipv6-locator-as1-endas-1] backup-opcode 2
[SFF2-segment-routing-ipv6] quit
[SFF2] interface loopback 1
[SFF2-LoopBack1] ip address 3.3.3.3 32
[SFF2-LoopBack1] quit
[SFF2] bfd echo-source-ip 3.3.3.3
[SFF2] bfd static sf peer-ip 10.1.1.1 interface gigabitethernet 1/0/3 destination-ip 10.1.1.3 one-arm-echo
[SFF2-bfd-static-session-sf] discriminator local 200
[SFF2-bfd-static-session-sf] quit
(11) 在SFF 1和SFF 2上配置SFC Bypass保護功能,SF 2作為SF 1的Bypass保護節點
# 配置SFF 1。
[SFF1] segment-routing ipv6
[SFF1-segment-routing-ipv6] locator as1
[SFF1-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF1-segment-routing-ipv6-locator-as1-endas-1] bypass sid 4001::1
[SFF1-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF1-segment-routing-ipv6-locator-as1] quit
# 配置SFF 2。
[SFF2] segment-routing ipv6
[SFF2-segment-routing-ipv6] locator as1
[SFF2-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF2-segment-routing-ipv6-locator-as1-endas-1] bypass sid 4001::1
[SFF2-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF2-segment-routing-ipv6-locator-as1] quit
[SFF2-segment-routing-ipv6] quit
(1) 在SFF 1設備上執行命令display segment-routing ipv6 sfc forwarding,查看轉發表項信息。存在主用SFC轉發表項、雙歸備份SFC轉發表項和Bypass保護SFC轉發表項信息。
[SFF1] display segment-routing ipv6 sfc forwarding
Total forwarding entries: 3
NID : 2153775105
Locator name/Opcode : as1/1
Type : Cache list
Path Count : 1
Interface : GE1/0/4
NextHop : FE80::424:B0FF:FEF7:AD02
NID : 2153775106
Locator name/Opcode : as1/1
Type : Backup opcode
Path Count : 1
Interface : GE1/0/2
NextHop : ::1
NID : 2153775107
Locator name/Opcode : as2/1
Type : Bypass
Path Count : 1
Interface : GE1/0/4
NextHop : FE80::424:B0FF:FEF7:AD02
(2) 在SFF1設備上執行display segment-routing ipv6 forwarding命令,查看SFC 轉發信息。
[SFF1] display segment-routing ipv6 forwarding
Total SRv6 forwarding entries: 3
Flags: T - Forwarded through a tunnel
N - Forwarded through the outgoing interface to the nexthop IP address
A - Active forwarding information
B - Backup forwarding information
ID FWD-Type Flags Forwarding info
--------------------------------------------------------------------------------
2153775105 SRv6SFC NA GE1/0/4
FE80::424:B0FF:FEF7:AD02
{2001::1, 5000::1, 5000::2}
2153775106 SRv6SFC N GE1/0/2
::1
{3000::1}
2153775107 SRv6SFC NA GE1/0/4
FE80::424:B0FF:FEF7:AD02
{4001::1}
如圖1-11所示,CE 1和CE 2屬於同一個VPN。SRv6 SFC采用靜態代理模式,控製CE 1業務流量經過SF 1處理後轉發到CE 2上。為了保證業務可靠性,SF 1雙歸到SFF 1和SFF 2進行保護,同時SF 2對SF 1進行Bypass保護。SF通過三層以太網子接口與三台SFF設備相連,報文在SFF和SF之間采用二層封裝轉發。
· 在SC和Tail上配置VPN實例,業務流量通過SRv6 TE Policy轉發,轉發路徑為SC->SFF 1->SF 1->Tail。
· 在SFF 1和SFF 2上配置SRv6 SFC服務鏈靜態代理,SFF指定服務節點SF 1雙歸到SFF 1和SFF 2。
· 在SFF 3上配置SRv6 SFC服務鏈靜態代理,指定服務節點SF 2為SF 1提供Bypass保護。
圖1-11 SRv6 SFC服務鏈靜態代理二層封裝轉發配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
SC |
Loop1 |
1::1/128 |
SFF 1 |
Loop1 |
2::2/128 |
GE1/0/1 |
16.0.0.2/30 |
GE1/0/1 |
100::2/96 |
||
GE1/0/2 |
100::1/96 |
GE1/0/2 |
300::1/96 |
||
|
GE1/0/3 |
200::1/96 |
|
GE1/0/4 |
400::1/96 |
SFF 2 |
Loop1 |
3::3/128 |
SFF 3 |
Loop1 |
4::4/128 |
|
GE1/0/1 |
300::2/96 |
|
GE1/0/1 |
500::2/96 |
|
GE1/0/2 |
500::1/96 |
|
GE1/0/2 |
600::1/96 |
|
GE1/0/4 |
200::2/96 |
|
GE1/0/4 |
400::2/96 |
Tail |
Loop1 |
5::5/128 |
CE 1 |
Loop1 |
6.6.6.6/32 |
|
GE1/0/1 |
57.0.0.1/30 |
|
GE1/0/1 |
16.0.0.1/30 |
|
GE1/0/2 |
600::2/96 |
CE 2 |
Loop1 |
7.7.7.7/32 |
|
|
|
|
GE1/0/1 |
57.0.0.2/30 |
· 規劃SRv6 SID信息:
¡ SC:Locator a網段為1000::/64,End SID為1000::1,End.DT4 SID為1000::2
¡ SFF 1:Locator b網段為2000::/64,End SID為2000::1;Locator as1網段為2001::/64,End.AS SID為2001::1
¡ SFF 2:Locator c網段為3000::/64,End SID為3000::1;Locator as1網段為2001::/64,End.AS SID為2001::1
¡ SFF 3:Locator d網段為4000::/64,End SID為4000::1;Locator as2網段4001::/64,End.AS SID為4001::1
¡ Tail:Locator e網段為5000::/64,End SID為5000::1,End.DT4 SID為5000::2
· 規劃流量轉發隧道和隧道顯式路徑:在SC上,流量通過SRv6 TE Policy的顯示路徑經過SFF 1轉發至SF 1上處理後,最終轉發到Tail設備,流量從Tail設備回程時通過SRv6 TE Policy指定的顯示路徑經過SFF 2節點回到SC,無需SF節點處理。
雙歸備份和Bypass保護場景SRv6 SFC采用二層轉發與三層轉發的主要區別在SF和SFF之間報文轉發配置,L3VPN和SRv6 TE Policy部分配置請參見“1.19.3 SRv6 SFC服務鏈靜態代理三層封裝轉發”,此處僅展示差異部分。
(1) 在SFF 1、SFF 2、SFF 3上配置基本的SFC功能
# 配置SFF 1。
<SFF1> system-view
[SFF1] interface gigabitethernet 1/0/3.1
[SFF1-GigabitEthernet1/0/3.1] vlan-type dot1q vid 2
[SFF1-GigabitEthernet1/0/3.1] quit
[SFF1-segment-routing-ipv6] locator as1 ipv6-prefix 2001:: 64 static 32
[SFF1-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF1-segment-routing-ipv6-locator-as1-endas-1] inner-type ipv4
[SFF1-segment-routing-ipv6-locator-as1-endas-1] encapsulation eth out-interface gigabitethernet 1/0/3.1 out-s-vlan 2 in-interface gigabitethernet 1/0/3.1 in-s-vlan 2
[SFF1-segment-routing-ipv6-locator-as1-endas-1] cache source-address 1::1
[SFF1-segment-routing-ipv6-locator-as1-endas-1] cache list 2001::1 5000::1 5000::2
[SFF1-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF1-segment-routing-ipv6-locator-as1] quit
[SFF1-segment-routing-ipv6] quit
[SFF1] isis 1
[SFF1-isis-1] address-family ipv6 unicast
[SFF1-isis-1-ipv6] segment-routing ipv6 locator as1
[SFF1-isis-1-ipv6] quit
[SFF1-isis-1] quit
# 配置SFF 2作為SFF 1的雙歸備份接入SF 1。
<SFF2> system-view
[SFF2] interface gigabitethernet 1/0/3.1
[SFF2-GigabitEthernet1/0/3.1] vlan-type dot1q vid 2
[SFF2-GigabitEthernet1/0/3.1] quit
[SFF2] segment-routing ipv6
[SFF2-segment-routing-ipv6] locator as1 ipv6-prefix 2001:: 64 static 32
[SFF2-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF2-segment-routing-ipv6-locator-as1-endas-1] inner-type ipv4
[SFF2-segment-routing-ipv6-locator-as1-endas-1] encapsulation eth out-interface gigabitethernet 1/0/3.1 out-s-vlan 2 in-interface gigabitethernet 1/0/3.1 in-s-vlan 2
[SFF2-segment-routing-ipv6-locator-as1-endas-1] cache source-address 1::1
[SFF2-segment-routing-ipv6-locator-as1-endas-1] cache list 2001::1 5000::1 5000::2
[SFF2-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF2-segment-routing-ipv6-locator-as1] quit
[SFF2-segment-routing-ipv6] quit
[SFF2] isis 1
[SFF2-isis-1] address-family ipv6 unicast
[SFF2-isis-1-ipv6] segment-routing ipv6 locator as1
[SFF2-isis-1-ipv6] quit
[SFF2-isis-1] quit
# 配置SFF3 接入SF 2。
<SFF3> system-view
[SFF3] interface gigabitethernet 1/0/3.1
[SFF3-GigabitEthernet1/0/3.1] vlan-type dot1q vid 2
[SFF3-GigabitEthernet1/0/3.1] quit
[SFF3] segment-routing ipv6
[SFF3-segment-routing-ipv6] locator as2 ipv6-prefix 4001:: 64 static 32
[SFF3-segment-routing-ipv6-locator-as2] opcode 1 end-as
[SFF3-segment-routing-ipv6-locator-as2-endas-1] inner-type ipv4
[SFF3-segment-routing-ipv6-locator-as2-endas-1] encapsulation eth out-interface gigabitethernet 1/0/3.1 out-s-vlan 2 in-interface gigabitethernet 1/0/3.1 in-s-vlan 2
[SFF3-segment-routing-ipv6-locator-as2-endas-1] cache source-address 1::1
[SFF3-segment-routing-ipv6-locator-as2-endas-1] cache list 4001::1 5000::1 5000::2
[SFF3-segment-routing-ipv6-locator-as2-endas-1] quit
[SFF3-segment-routing-ipv6-locator-as2] quit
[SFF3-segment-routing-ipv6] quit
[SFF3] isis 1
[SFF3-isis-1] address-family ipv6 unicast
[SFF3-isis-1-ipv6] segment-routing ipv6 locator as2
[SFF3-isis-1-ipv6] quit
[SFF3-isis-1] quit
(2) 在SFF 1和SFF 2上配置SFC雙歸保護功能,二層轉發方式暫不支持靜態BFD檢測
# 配置SFF 1。
[SFF1] segment-routing ipv6
[SFF1-segment-routing-ipv6] proxy peer-sid 3000::1
[SFF1-segment-routing-ipv6] locator as1
[SFF1-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF1-segment-routing-ipv6-locator-as1-endas-1] backup-opcode 2
[SFF1-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF1-segment-routing-ipv6-locator-as1] quit
[SFF1-segment-routing-ipv6] quit
# 配置SFF 2。
[SFF2] segment-routing ipv6
[SFF2-segment-routing-ipv6] proxy peer-sid 2000::1
[SFF2-segment-routing-ipv6] locator as1
[SFF2-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF2-segment-routing-ipv6-locator-as1-endas-1] backup-opcode 2
[SFF2-segment-routing-ipv6] quit
(3) 在SFF 1和SFF 2上配置SFC Bypass保護功能,SF 2作為SF 1的Bypass保護節點
# 配置SFF 1。
[SFF1] segment-routing ipv6
[SFF1-segment-routing-ipv6] locator as1
[SFF1-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF1-segment-routing-ipv6-locator-as1-endas-1] bypass sid 4001::1
[SFF1-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF1-segment-routing-ipv6-locator-as2] quit
# 配置SFF 2。
[SFF2] segment-routing ipv6
[SFF2-segment-routing-ipv6] locator as1
[SFF2-segment-routing-ipv6-locator-as1] opcode 1 end-as
[SFF2-segment-routing-ipv6-locator-as1-endas-1] bypass sid 4001::1
[SFF2-segment-routing-ipv6-locator-as1-endas-1] quit
[SFF2-segment-routing-ipv6-locator-as1] quit
[SFF2-segment-routing-ipv6] quit
(1) 在SFF 1設備上執行命令display segment-routing ipv6 sfc forwarding,查看轉發表項信息。存在主用SFC轉發表項、雙歸備份SFC轉發表項和Bypass保護SFC轉發表項信息。
[SFF1] display segment-routing ipv6 sfc forwarding
Total forwarding entries: 3
NID : 2153775105
Locator name/Opcode : as1/1
Type : Cache list
Path Count : 1
Interface : GE1/0/4
NextHop : FE80::424:B0FF:FEF7:AD02
NID : 2153775106
Locator name/Opcode : as1/1
Type : Backup opcode
Path Count : 1
Interface : GE1/0/2
NextHop : ::1
NID : 2153775107
Locator name/Opcode : as2/1
Type : Bypass
Path Count : 1
Interface : GE1/0/4
NextHop : FE80::424:B0FF:FEF7:AD02
(2) 在SFF1設備上執行display segment-routing ipv6 forwarding命令,查看SFC 轉發信息。
[SFF1] display segment-routing ipv6 forwarding
Total SRv6 forwarding entries: 3
Flags: T - Forwarded through a tunnel
N - Forwarded through the outgoing interface to the nexthop IP address
A - Active forwarding information
B - Backup forwarding information
ID FWD-Type Flags Forwarding info
--------------------------------------------------------------------------------
2153775105 SRv6SFC NA GE1/0/4
FE80::424:B0FF:FEF7:AD02
{2001::1, 5000::1, 5000::2}
2153775106 SRv6SFC N GE1/0/2
::1
{3000::1}
2153775107 SRv6SFC NA GE1/0/4
FE80::424:B0FF:FEF7:AD02
{4001::1}
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!