簡介
本文檔介紹通過IPv6分段路由(SRv6)的設計手冊和部署最佳實踐。它還涵蓋無縫遷移策略。
背景資訊
SRv6使用IPv6資料平面和網路程式設計的概念引入了一層簡化。 RFC 8986中描述的SRv6架構基於源路由,SRv6將網路中的資料包處理定義為程式。網路程式設計是將網路路徑和網路功能編碼在資料包報頭中的功能。該程式表示為SRv6擴展報頭中包含的段清單。每個網段是一個128位實體,其中第一個位標識網路路徑中的路由器(網段的定位器部分),剩下的位標識該路由器要執行的功能。
分段路由架構概述
圖1 — 分段路由架構概述
為什麼要使用SRv6?
IPv6是新的標準,而SRv6是向SDN和可程式設計網路進行邏輯發展的新正規化。SRv6旨在彌合SDN與傳統網路之間的差距。 SRv6提供高級SRv6流量工程(TE)功能,將網路轉換為多重服務基礎架構,以及彈性演演算法(Flex-Algo或FA)功能,以便在各種維度上對同一個實體網路基礎架構進行多重最佳化。
簡化
通過IGP的擴展,SRv6無需隧道技術(例如LDP和RSVP-TE),並簡化了控制平面。它使用IPv6地址對端到端路徑進行程式設計,而不是在資料平面上使用MPLS標籤。SRv6大大簡化了網路協定,降低了控制層面和資料層面操作和維護的複雜性。它允許雲、網路和終端實施基於相同標準協定的端到端可管理可控解決方案。
此外,由於最短路徑段包含到達相關節點的所有ECMP路徑,因此SR在設計上支援IP的ECMP性質。
本地IPv6屬性
SRv6允許節點使用有序的資料段清單引導資料包通過SR域,並指示沿途的節點如何處理資料包。SRv6中的資料段可以引用通過最短路徑向節點、特定鏈路或應用程式傳送資料包的指令。SRv6是基於源的路由,路徑資訊編碼在它必須經過的資料包中,而中間路由器不必維護所有路徑的狀態。SRv6能夠打破運營商網路和資料中心網路之間的邊界,大大增強了SRv6的可擴充性和部署靈活性。
網路程式設計功能
SRv6的基礎架構程式設計功能改變了網路處理應用的方式。根據應用表示的一些特定約束(例如,SR流量工程),網路不再僅僅路由從點A到點B的流量。現在,網路可以對應用採取相應措施,這些應用通過相同的路徑傳輸。它使您的應用和網路以完全不同的全新方式互動。
流量工程
利用最先進的SRv6流量工程功能,可將網路轉變為多服務基礎設施。新的靈活演算法功能使同一物理網路基礎架構可在各種維度上進行多次最佳化(例如,可以針對低延遲進行最佳化,而針對頻寬進行最佳化,或者可以通過兩個不同的平面提供不相交的路徑)
隨著服務提供商和企業準備在融合基礎設施上提供範圍廣泛的5G服務,網路切片扮演著主要角色,這些服務具有特定和差異化的需求。因此,服務提供商在其整個網路(直接從蜂窩站點到核心和資料中心)實施一流的流量工程解決方案,以確保每個服務都擁有自己的專用網路分片,並具備自己的SLA集。
恢復能力
恢復能力在確保網路始終保持正常運行以便您可以隨時隨地訪問其服務方面發揮著關鍵作用。當前的IGP路由協定通過繞開網路中的故障重新路由流量,提供第一級恢復能力。但這還不夠。越來越多的應用需要網路確保少於50 ms的保護以避免任何型別的網路故障。這正是SRv6 TI-LFA(拓撲無關無環替代方案)與Uloop避免所帶來的100%拓撲覆蓋、簡便性和路徑最佳化。
SRv6服務
在基於SRv6的服務中,輸出PE向SRv6服務SID發出BGP服務路由訊號。輸入PE將負載封裝在外部IPv6報頭中,其中目的地址是由輸出PE通告的SRv6服務SID。PE之間的BGP消息承載SRv6服務SID,以便將PE互連並形成VPN。SRv6服務SID是指與出口PE路由器通告的一個SRv6服務特定行為相關聯的分段識別符號,例如:
- uDT4(具有解除封裝和IPv4表查詢的端點)
- uDT6(具有解除封裝和IPv6表查詢的端點)
- uDX4(具有解除封裝和IPv4交叉連線的端點)
- uDX6(具有解封裝和IPv6交叉連線的終端)
編寫時支援以下基於SRv6的服務:
- 第3層BGP型服務 — L3VPN
- 第2層BGP型服務 — EVPN-VPWS
L3VPN
基於SRv6的L3VPN功能支援在SRv6資料平面上部署L3VPN。基於SRv6的L3VPN將SRv6段ID(SID)用於服務段,而不是標籤。
可以通過以下方式分配BGP SID:
- 每個VRF模式,提供uDT4或uDT6支援。uDT4/uDT6表示具有解封裝和IPv4或IPv6表查詢的終結點。uDT4和uDT6分別用於IPv4 L3VPN和IPv6 L3VPN。
- 提供uDX4和uDX6交叉連線支援的每CE模式。uDX4表示具有解封裝和IPv4交叉連線的終端。同樣,uDX6表示具有解封裝和IPv6交叉連線的終端。
EVPN VPWS
EVPN VPWS將BGP控制平面用於點對點服務。採用EVPN的VPWS的優點是:
- 無需為點對點乙太網服務傳送偽線訊號
- 多宿主功能,如單主動/主動/主動/埠主動
uDX2 SID端點行為用於EVPN VPWS服務。
SRv6使用案例
服務功能連結
服務功能鏈(SFC)允許建立包含一組有序服務功能的複合網路服務。SFC表示透過虛擬網路功能(VNF)序列轉送封包的程式。SRv6提供了一種簡單且可擴展的方式,可將服務功能鏈結為可感知SR的服務功能和不感知SR的服務功能(SF)。SRv6是一種源路由正規化,可用於引導資料包通過VNF的有序清單。SR通過將一個SID分配到每個SF並將這些SF SID排列在SID清單中來啟用SFC。如果SF不知道SRv6,則需要SR代理在SF前面將流量路由到該SF。
SFC是資料中心的重要功能之一。資料中心中的流量會通過防火牆、入侵檢測系統(IDS)、深度資料包檢測(DPI)和網路地址轉換(NAT)等各種功能來處理資料包,從而形成服務鏈。因此,名稱服務功能連結或服務連結。
分片
SRv6有助於建立基於SLA約束的切片,這些切片從使用者應用程式開始,一直傳輸到中央資料中心。使用SRv6流量工程和靈活演算法的分片邏輯分離有助於通過頻寬最佳化為延遲敏感應用提供特定的服務處理。隨著服務提供商和企業準備提供範圍廣泛的5G服務,網路切片扮演著主要角色。
負載平衡
與MPLS相反,SRv6解決方案提供了第一天的最佳負載均衡,而MPLS仍存在負載均衡問題。在MPLS中,等價多路徑(ECMP)選擇的熵位於內部IP資料包中,因此路由器必須通過MPLS標籤堆疊向下挖掘才能訪問用於雜湊的IP報頭。
在SRv6中,輸入PE計算客戶資料包的雜湊,並將結果寫入新增的外部IPv6報頭的Flow Label(流標籤)欄位。網路的其餘部分使用此流量標籤,以便僅需檢視外部標頭即可執行ECMP選擇,而無需深入了解封裝層。
營運與效能管理
路徑跟蹤功能通過將資料包路徑記錄設定為介面ID序列,幫助提供SRv6傳輸的操作和效能管理。此外,它還會記錄沿資料包傳輸路徑的每個出口介面上的端到端延遲、每跳延遲和負載。路徑跟蹤允許您僅使用一個40位元組的IPv6逐跳擴展報頭跟蹤14跳。
它支援細粒度的時間戳,並設計用於在基礎管道中執行線速硬體。
有關詳細資訊,請參閱SRv6技術基礎。
設計准則和最佳實踐
貨位計畫
顧名思義,SRv6是通過IPv6資料平面部署的分段路由。因此,要啟用通過v6的分段路由,必須首先為IPv6啟用服務提供商基礎架構。因此,部署SRv6的第一步是為IPv6部署規劃地址空間。在規劃階段,可以為SRv6定位器地址選擇一個子網。在SRv6中,SID代表一個128位的值,其中locator是具有最高有效位的服務SID的第一部分,用於路由到負責執行本節所述功能的節點。您也可以將其視為網路地址。
RFC8986將SRv6服務SID定義為由三部分組成:
- LOCATOR:此部分用作分配SID的節點的可達性資訊,並且全域性已知且可路由。在F3216 uSID格式中,定位器部分是48位uN。
- FUNCTION:這僅對擁有節點有意義。指定特定的SRv6 End函式。在F3216 uSID中,這是一個16位元的本地作用域uSID。
- ARGS:函式的可選引數。
分配給節點的SRv6定位器SID可以獨立於該節點的IPv6編址分配。對於SRv6網路,可以為重疊終端使用者的基礎架構地址、管理平面和服務地址規劃IPv6地址。基礎架構IP定址和SRv6 SID分配可以屬於兩個不同的塊;例如,基礎架構IPv6地址(例如裝置互連的網路地址)從為基礎架構地址或管理平面規劃的IPv6地址塊中分配,SRv6 SID從為服務平面規劃的塊中分配。
雖然基礎設施地址和SID表示為IPv6地址,但建議從不同的塊分配這兩個地址。這樣,現有的IPv6地址規劃不會約束任何當前或未來的SRv6 SID分配計畫。
對於SRv6 uSID運營商,格式通常使用'Fbbuu'符號指定,其中'bb'是塊的大小,'uu'是ID的大小。例如,「F3216」是具有32位uSID塊和16位uSID ID的格式。為了與此保持一致,通用編址策略可以遵循四層定位器結構:SID空間、uSID塊、設定ID和節點D,如下所述:
uSID格式
圖2 - uSID格式
前兩個層由uSID塊形成:
- SID空間:IPv6地址塊用於分配SID定位器。網路中的所有SID塊都必須來自相同的24位SID空間。
- 塊ID:uSID塊的公共字首。其大小取決於uSID格式,即uSID格式的8位
接下來的兩個層是通過uSID ID形成的:
- Set IDs:任何uSID組,它們共用該ID的前兩個半位元組的某個值。16位uSID空間包含256個集。每個集合表示256個uSID值。集合唯一地繫結到演算法。
- 節點ID:全域性節點SID、鄰接SID或IP覆蓋服務SID。
'建議的最佳做法是從以FC00:開頭的專用IPv6唯一本地地址(ULA)地址範圍分配定位器的SRv6 SID。/24的子範圍可以從IPv6 ULA地址空間使用,如FC00::/8。此外,還支援SID空間的公共範圍,因此SID塊也可以從全域性分配的塊中分配。此圖表示可在規劃和設計階段使用的推薦定位器分配邏輯。uSID1下「SSNN」的位分配可以根據提供程式的要求進行調整,不必在8位邊界結束,如Nibble 33-40所示。
uSID定位器規劃示例
圖3 - uSID定位器規劃示例
- SID空間:uSID的前24位構成基本SID空間。如上所述,建議在部署中為uSID使用專用塊。
- 塊ID:uSID塊上的後8位組成塊ID,可分為X和Y,其中X可以表示切片或塊,而Y表示flex-algo ID。
- 集ID:uSID ID中的8位表示集ID。可以基於地理區域和密度保留設定ID。
- 節點ID:最不重要的8位表示節點ID。一個定位器總共可以分配255個節點。
對於不同的flex-algorithm,建議使用不同的定位器方案,這些方案可以使用所說明的方法匯出。
回送位址規劃
在SRv6部署中,環回地址可以從定位器字首範圍分配,也可以獨立於計畫的基礎架構IPv6範圍分配。但是,如果環回地址是從定位器字首範圍分配的,則可以通過定位器字首範圍通告本身到達環回地址,並且不必在域之間單獨通告為/128字首。
例如,如果uSID定位器塊是BBB:BB00:0001/48,則環回地址可以是BBB:BB00:0001::L /128,並且L=1-F。IGP ISIS會注意通告定位器塊,因此無需單獨通告環回塊。
注意:動態SID不會與現有的SID/字首衝突,如定位器塊中的環回地址。
定位器區塊的環回定址的優點
從定位器塊分配環回編址有幾個優點:
- 沒有額外的IGP字首有助於提高可擴充性
- 沒有額外的FIB條目有助於改善硬體擴展
- 無需額外的地址分配工作
- 沒有可降低操作複雜性的額外再分發/洩露/彙總
- 無需使用ping驗證定位器可達性
- 更易於對服務流量應用單獨的安全處理(及其ICMP錯誤消息)
- BGP NH和SID共用命運
當具有來自定位器空間的環回IP架構時,它將導致SRv6空間中的服務流量的SA和DA,因為SRv6應用程式(如ISIS、BGP)會使用它來分配SID。
BGP對等的環回可以從從服務塊獲取的定位器集中切除。通過在匯聚節點或邊界節點處重新分佈定位符塊,從服務塊中分割出環回地址,定位符下的環回可以通過定位符字首到達,不必單獨通告為/128字首。
首碼摘要
SRv6字首彙總是IP網路的固有優勢。SRv6消除了MPLS的所有這些複雜性,其中通告/32字首是資料平面正常工作的要求。而使用SRv6 ;如果您有兩個都會網路絡,每個都會網路絡都有數十萬個/64定位器(支援SRv6的路由器),則每個城域可以向核心通告一個彙總路由。因此,核心節點只承載核心節點的定位器和都會網路的總結路由。就簡單性和可擴充性而言,這是一個非常強大的功能。
定位器彙總
圖4 — 定位器摘要
SRv6與MPLS/SR-MPLS的快速比較
IP路由彙總
MPLS/SR-MPLS:必須在多個域間通告具有32位主機地址的標籤繫結,而無需聚合。缺少路由總結會對大規模服務提供商產生可擴充性的影響。
SRv6:可以跨網路域匯入繼承本機IP功能和聚合路由,這對運營商而言在簡單性和可擴充性方面具有重大優勢。
端到端服務自動啟動
SR-MPLS:SRGB和節點SID需要在跨域場景中進行整個網路的整體規劃。
SRv6:使用SRv6,運營商可以直接基於純IPv6可達性建立E2E隧道。臨時節點上的SRv6支援不是強制性的,因此運營商可以靈活地分階段啟用SRv6,而在MPLS的情況下,需要端到端MPLS資料平面支援。
按需升級
SR-MPLS:先升級整個網路,然後部署SR-MPLS,或在某些中間節點部署對映伺服器。
SRv6:網路可以按需遷移到SRv6。如前所述,SRv6未啟用或不受支援的節點可以通過正常IPv6轉發進行遍歷。
總而言之:
MPLS/SR-MPLS:IP可達性是基礎。必須在整個網路中進行MPLS標籤通告。
SRv6:IPv6可達性是基礎。SRv6可以分階段增量部署。
SRv6 — 高級遷移戰略
高級遷移戰略
圖5 — 高級遷移策略
為了更平穩的遷移,建議採用漸進式階段式方法。在高級別上,這是增量部署方法:
- 首先,為基礎設施配置IPv6地址並啟用IGP以通告這些地址。
- 選擇要配置SRv6的一組PE裝置,並分階段移動重疊服務。
建議為SRv6配置單獨的BGP路由反射器,因為必須配置多個地址系列(IPv6、VPNv4、VPNv6等)。要啟用SRv6,必須在網路中啟用IPv6。
步驟 1.升級到IPv6(IPv6就緒是SRv6的前提條件)
步驟 2.升級邊緣裝置,以引入使用SRv6 PE的VPN
步驟 3.升級一些中間節點以支援流量TI-LFA、TE、SFC等
第4步:升級整個網路以支援E2E SRv6
從MPLS/SR-MPLS遷移服務
為了更平穩的遷移,建議採用漸進式階段式方法。在高級別上,這是增量部署方法:
- 首先,為基礎設施配置IPv6地址並啟用IGP以通告這些地址。
- 選擇要配置SRv6的一組PE裝置,並分階段移動重疊服務。
建議為SRv6配備單獨的BGP路由反射器。 BGP已經過增強,並且通過SRv6網路為擴展服務提供了支援,例如:
- IPv4第3層VPN
- IPv6第3層VPN
- IPv4 BGP全域
- IPv6 BGP全域性
- 第2層VPN — 乙太網路VPN(EVPN)
根據IETF草案「SRv6 BGP based Overlay services」中定義的消息和過程,BGP將SRv6服務SID編碼為對應的BGP網路層可達性資訊(NLRI)的字首 — SID屬性,並將其通告給其IPv6 BGP對等體。
L3VPN
基於SRv6的L3VPN功能支援在SRv6資料平面上部署L3VPN。在基於SRv6的服務中,輸出PE向SRv6服務SID發出BGP服務路由訊號。輸入PE將負載封裝在外部IPv6報頭中,其中目的地址是由輸出PE通告的SRv6服務SID。PE之間的BGP消息攜帶SRv6服務SID作為將PE互連並形成VPN的一種方式。SRv6服務SID是指與出口PE路由器通告的一個SRv6服務特定行為相關聯的分段識別符號,例如:
- uDT4(具有解除封裝和IPv4表查詢的端點)
- uDT6(具有解除封裝和IPv6表查詢的端點)
EVPN多宿主
此功能在SRv6網路上提供具有全主動多宿主功能的ELINE(P2P)服務。全主動多宿主使運營商能夠將客戶邊緣(CE)裝置連線到兩個或多個提供商邊緣(PE)裝置,以提供負載平衡和冗餘連線。藉助全主動多宿主,所有PE都可以轉發進出多宿主裝置的流量。使用以下uSID函式:
- uDX4(具有解除封裝和IPv4交叉連線的端點)
- uDX6(具有解封裝和IPv6交叉連線的終端)
SRv6互通閘道
SRv6/MPLS第3層服務互通網關使您能夠在控制平面和資料平面上提供服務連續性,從而在MPLS和SRv6域之間擴展第3層服務。
此功能允許SRv6 L3VPN域與現有的MPLS L3VPN域進行互操作。此功能還允許從MPLS L3VPN遷移到SRv6 L3VPN。
SRv6/MPLS第3層服務互通網關在網關節點提供傳輸和服務終止。網關會為配置為重新發起的VRF下的所有字首生成SRv6 VPN SID和MPLS VPN標籤。網關通過彈出MPLS VPN標籤、查詢目標字首和推送適當的SRv6封裝,支援從MPLS域到SRv6域的流量轉發。從SRv6域到MPLS域,網關刪除外部IPv6報頭,查詢目標字首,並推送VPN和下一跳MPLS標籤。
網關節點上的VRF配置有兩組路由目標(RT):
- MPLS L3VPN RT
- SRv6 L3VPN RT(稱為拼接RT)
網關執行以下操作:
- 匯入從一個域接收的服務路由(MPLS或SRv6)
- 將匯出的服務路由重新通告到其他域(next-hop-self)
- 在資料平面上縫合服務(uDT4/H.Encaps.Red ↔ service label)
遷移方法和准則
從基於LDP的MPLS網路或基於SR的MPLS網路的遷移非常類似。在第0天,網路中的每個節點都在底層資料平面中運行電信服務提供商提供的所有服務的MPLS,無論是基於LDP還是基於SR。以下是用於解釋分階段遷移方法的實驗拓撲示例。
第0天網路狀態
圖6 — 第0天網路狀態
要啟用IPv6分段路由,請使用 hw-module profile segment-routing srv6 mode micro-segment format f3216
指令 XR配置模式。此命令僅適用於基於Cisco IOS XR的裝置。
為了準備網路進行SRv6遷移,首先,運營商必須計畫網路中的IPv6啟用。如前面所述,如果不使用IPv6,則無法啟用SRv6。因此,如果為基礎架構規劃了IPv6地址,則必須在網路中的任何位置啟用IPv6。在遷移的第一階段,節點上的所有邏輯介面和物理介面都會獲得IPv6地址。這是現有的IPv4位址(雙堆疊方式)以外的新增功能。這樣,所有服務將繼續通過現有的資料平面運行。
在SP基礎設施中配置介面和環回的IPv6地址後,必須啟用IGP才能在域中通告IPv6字首。
第1天網路狀態
圖7 — 第1天網路狀態
以下是為ISIS採取的步驟:
IGP在網路中為網路中的裝置配置,以便相互通訊。必須為IPv6地址系列配置IS-IS。
router isis 100
address-family ipv6 unicast
!
!
!
interface Loopback0
address-family ipv6 unicast
! !
interface GigabitEthernet0/0/0/1
address-family ipv6 unicast
!
!
interface GigabitEthernet0/0/0/2
address-family ipv6 unicast
!
!
!
Commit
ISIS IPv6地址系列支援可以分階段完成。一旦裝置能夠通過IPv6訪問,您必須繼續執行BGP。
在第2天,作為SRv6啟用的下一個步驟,建議單獨設定一組BGP路由反射器,並且這些路由反射器用於多個地址系列(IPv6、VPNv4、VPNv6等)。如此一來,現有的路由反射器不會受到干擾。請注意,所有電信服務都運行在此階段存在的MPLS資料平面上。
第2天網路狀態
圖8 — 第2天網路狀態
此配置片段突出顯示BGP配置。
為IPv6地址系列配置BGP。
!
!
route-policy LOCAL-PREF
set local-preference 50
end-policy
!
commit
!
!
router bgp 100
!
neighbor 2001:db8:2:2:2::2
remote-as 100
update-source Loopback0
address-family vpnv4 unicast
route-policy LOCAL-PREF in
!
commit
BGP中的本地優先順序為50,現在新增。您希望通過MPLS RR的路由成為首選路由,以便服務運行良好。
現在,對於SRv6遷移,您可以採取非常安全的增量方法,從兩個PE開始。
然後,必須考慮分段路由下的SRv6定位器,並且必須通過IGP和BGP為服務通告該定位器。
第3天網路狀態
圖9 — 第3天網路狀態
本節介紹如何配置SRv6。
router isis 100
address-family ipv6 unicast
segment-routing srv6
locator LOC0
!
router bgp 100
!
segment-routing srv6
locator LOC0
!
vrf XYZ
address-family ipv4 unicast
segment-routing srv6
alloc mode per-vrf
!
!
!
segment-routing
srv6
locators
locator LOC0
prefix 2001:db8:a::/48
commit
您可以更改來自SRv6 RR的路由的本地優先順序,使其成為首選VPN路由。通過這種方式,僅在這兩個PE之間,L3VPN VRF流量通過SRv6傳輸。
慢慢地,其他私有企業和服務也可以通過類似的方法進行遷移。一旦所有PE遷移到SRv6,就可以從網路中刪除IPv4 MPLS RR和相關配置。
相關資訊