SRv6技術課堂(一):SRv6概述

1、SRv6基本概念

由於SR MPLS已經普及,相信大家已經對Segment Routing的基本概念有足夠的瞭解。這裏重點介紹SRv6獨有的工作原理和相關概念。

1.1 SRv6 Segment

與SR MPLS的Segment不同,SRv6的Segment有128bits,而且分成了三部分:

圖1 SRv6 SID

 

1、Locator(位置標識):網絡中分配給一個網絡節點的標識,可以用於路由和轉發數據包。Locator有兩個重要的屬性,可路由和聚合。在SRv6 SID中Locator是一個可變長的部分,用於適配不同規模的網絡。
2、Function(功能):設備分配給本地轉發指令的一個ID值,該值可用於表達需要設備執行的轉發動作,相當於計算機指令的操作碼。在SRv6網絡編程中,不同的轉發行爲由不同的功能ID來表達。一定程度上功能ID和MPLS標籤類似,用於標識VPN轉發實例等。
3、Args(變量):轉發指令在執行的時候所需要的參數,這些參數可能包含流,服務或任何其他相關的可變信息。

從SRv6 SID的組成來看,SRv6同時具有路由和MPLS兩種轉發屬性,可以融合兩種轉發技術的優點。

1.2 SRv6擴展頭

爲了在IPv6報文中實現SRv6轉發,引入了一個SRv6擴展頭(Routing Type爲4),叫Segment Routing Header(SRH),用於進行Segment的編程組合形成SRv6路徑。
圖2是SRv6的報文封裝格式。綠色的是IPv6報文頭,棕色部分是SRH,藍色是報文負荷。

圖2 SRv6 SRH

 

IPv6 Next Header字段取值爲43,表示後接的是IPv6路由擴展頭。Routing Type = 4,表明這是SRH的路由擴展頭,這個擴展頭裏字段解釋如下:

1.3 SRv6三層編程空間

SRv6具有比SR-MPLS更強大的網絡編程能力。SRv6的網絡可編程性體現在SRH擴展頭中。SRH中有三層編程空間:

圖3 SRv6的三層編程空間

 

第一部分是Segment序列。如前所述,它可以將多個Segment組合起來,形成SRv6路徑。這跟MPLS標籤棧比較類似。

第二部分是對SRv6 SID的128比特的運用。衆所周知,MPLS標籤封裝主要是分成四個段,每個段都是固定長度(包括20比特的標籤,8比特的TTL,3比特的Traffic Class和1比特的棧底標誌)。而SRv6的每個Segment是128比特長,可以靈活分爲多段,每段的長度也可以變化,由此具備靈活編程能力。

第三部分是是緊接着Segment序列之後的可選TLV(Type-Length-Value)。報文在網絡中傳送時,需要在轉發面封裝一些非規則的信息,它們可以通過SRH中TLV的靈活組合來完成。

SRv6通過三層編程空間,具備了更強大的網絡編程能力,可以更好地滿足不同的網絡路徑需求。

1.4 SRv6報文轉發流程

圖4 SRv6轉發流程

 

上圖展示了SRv6轉發的一個範例。在這個範例中,結點R1要指定路徑(需要通過R2-R3、R4-R5的鏈路轉發)轉發到R6,其中R1、R2、R4、R6爲有SRv6能力的的設備,R3、R5爲不支持SRv6的設備。

步驟一:Ingress結點處理:R1將SRv6路徑信息封裝在SRH擴展頭,指定R2和R4的END.X SID,同時初始化SL = 2,並將SL指示的SID A2::11拷貝到外層IPv6頭目的地址。R1根據外層IPv6目的地址查路由錶轉發到R2。
步驟二:End Point結點處理:R2收到報文以後,根據外層IPv6地址A2::11查找本地Local SID表,命中END.X SID,執行END.X SID的指令動作:SL—,並將SL指示的SID拷貝到外層IPv6頭目的地址,同時根據END.X關聯的下一跳轉發。
步驟三:Transit結點處理:R3根據A4::13查IPv6路由表進行轉發,不處理SRH擴展頭。具備普通的IPv6轉發能力即可。
步驟四:End Point結點處理:R4收到報文以後,根據外層IPv6地址A4::13查找本地Local SID表,命中END.X SID,執行END.X SID的指令動作:SL—,並將SL指示的SID拷貝到外層IPv6頭目的地址,由於SL = 0, 彈出SRH擴展頭,同時根據END.X關聯的下一跳轉發。
步驟5:彈出SRH擴展頭以後,報文就變成普通的IPv6頭,由於A6::1是1個正常的IPv6地址,遵循普通的IPv6轉發到R6。

從上面的轉發可以看出,對於支持SRv6轉發的節點,可以通過SID指示經過特定的鏈路轉發,對於不支持SRv6的節點,可以通過普通的IPv6路由轉發穿越。這個特性使得SRv6可以很好地在IPv6網絡中實現增量部署。

2、SRv6的標準和產業進展

2.1 SRv6標準進展

SRv6的標準化工作主要集中在IETF SPRING(Source Packet Routing in Networking)工作組,其報文封裝格式SRH(Segment Routing Header)等標準化工作在6MAN(IPv6 Maintenance)工作組,其相關的控制協議擴展的標準化,包括IGP、BGP、PCEP、VPN等,分別在LSR、IDR、PCE、BESS等工作組進行。

截止目前,SRv6的標準化基本上分爲兩大部分:
第一部分是SRv6基礎特性,包括SRv6網絡編程框架、報文封裝格式SRH以及IGP、BGP/VPN、BGP-LS、PCEP等基礎協議擴展支持SRv6,主要提供VPN、TE、FRR等應用。所有SRv6基本特性文稿均由華爲和思科共同引領,並有Bell Canada、SoftBank、Orange等運營商參與。目前所有文稿(除OSPFv3)均被接收爲工作組文稿,標準的成熟度進入了一個新的階段,特別是最關鍵的SRH封裝草案已經經過IETF IESG批准,很快就會成爲RFC。

第二部分是SRv6面向5G和雲的新應用,這些應用包括網絡切片、確定性時延(DetNet)、OAM、IOAM(In-situ OAM)、SFC、SD-WAN、組播/BIER等。這些應用都對網絡編程提出了新的需求,需要在轉發面封裝新的信息。SRv6可以很好地滿足這些需求,充分體現了其在網絡編程能力方面具備的獨特優勢。當前客戶對於這些應用需求的緊迫性並不一致,反映到標準化和研究的進展也不盡相同。總體而言SRv6用於OAM、IOAM、SFC的標準化進展較快,已經有多篇工作組草案,網絡切片也是當前標準化的一個重點,VPN+切片框架草案已經被接納爲工作組,SRv6 SID用於指示轉發面的資源保證服務需求逐漸獲得了廣泛的認同。

2.2 SRv6的產業進展

SRv6產業的整體進展在SRv6 Implementation and Deployment Status草案中進行了描述(draft-matsushima-spring-SRv6-deployment-status)。

1.SRv6產品實現
目前主流設備廠商、測試儀和商用芯片已明確支持SRv6。其中華爲全系列路由器產品均支持SRv6,思科ASR9000、ASR1000、NCS5500、NCS540等產品也已經支持SRv6。測試儀廠商思博倫和IXIA支持SRv6,芯片廠商海思、博通等也已發佈可規模部署的商用芯片,並在主流設備上完成驗證。

除此以外,一些開源平臺也支持SRv6,如Linux Kernel,Linux Srext module,FD.io VPP等,提供對SRH的一些功能處理。開源工具應用,如Wireshark、Tcpdump、Iptables、Nftables,Snort等,也已經支持了對包含SRH的IPv6報文的處理。

2.SRv6互通測試
歐洲高級網絡測試中心(EANTC:European Advanced Networking Test Center)在今年3月成功地進行了SRv6多廠商互通測試,其結果在MPLS + SDN + NFV World Congress 上進行了展示,併發布了互通測試白皮書。參加互通測試的廠商包括華爲、Cisco、思博倫和IXIA,完成了SRv6 VPN、TI-LFA、OAM等互通測試例。

3.SRv6部署
在世界範圍內已經有多家運營商開啓了SRv6商用部署,包括中國電信、中國聯通、CERNET2、日本軟銀和LINE公司、意大利Iliad、烏干達MTN等。

2017年中國推動IPv6的規模部署,經過一年多的建設,各大運營商的IP網絡均已支持IPv6,這爲SRv6的規模部署提供新業務提供了堅實的基礎。截止目前爲止,中國電信、中國聯通、CERNET2等已經完成了7個局點的部署,SRv6跨域組大網、易於增量部署、快速業務開通的優勢得到了充分體現,爲整個產業創新起到了積極的示範作用。

4.SRv6產業論壇
隨着SRv6技術和標準的不斷成熟,業界對SRv6的認可和接受度也越來越高,爲了進一步凝聚產業共識,推動SRv6創新應用,經過業界的共同努力,舉辦了多次SRv6產業會議。

2019年4月在法國巴黎MPLS+SDN+NFV大會期間舉辦了首屆SRv6圓桌會議,與會的業界專家圍繞SRv6的價值場景以及如何促進SRv6創新和部署等話題進行了熱烈的討論。

2019年6月推進IPv6規模部署專家委員會主辦了第一期SRv6產業沙龍,與會專家分享了SRv6標準創新的最新進展、整體解決方案以及現網的部署應用等。

這些產業活動對於SRv6創新應用起到了積極的推動作用。

3、SRv6的價值與意義

SRv6網絡編程草案從提出到現在不過兩年半的時間,已經有多個商用實現和商用部署,發展之快在IP技術發展的歷史上是不多見的。在兩年多推動SRv6創新和標準的過程中,我們與業界專家進行了廣泛的交流,對於互聯網發展歷史的經驗教訓進行了很多反思,從而對於SRv6的價值和意義也有了更進一步的認識。

IPv4技術發展的一個重要教訓是可擴展性問題,設計之初沒有想到會有這麼多的設備接入IP網絡,由此觸發了IPv6技術的發展。而IPv6技術發展的一個重要教訓是可兼容性問題。當時的設想比較簡單,32比特的地址空間不夠,就把它擴展成128比特,但是128比特的IPv6地址跟32比特的IPV4地址是沒有辦法兼容的,這樣就需要全網的升級支持IPv6,由此導致部署應用的困難。從這個角度看,SRv6可以兼容IPv6路由轉發的,並且通過Function ID兼顧了MPLS轉發的優點,這就保證了SRv6可以從IPv6網絡平滑地演進。

在過去的十多年裏,IP技術取得了巨大成功,統一了網絡承載,可以將其稱之爲All IP 1.0時代。這其中MPLS扮演了非常重要的角色。基於MPLS的承載技術用於IP Core承載,再到城域承載、移動承載,替代了幀中繼、ATM、TDM等多種網絡技術,實現了網絡承載技術的統一。MPLS成功依賴於三個重要的特性:VPN、TE和FRR,因此SRv6技術發展首先要把這三個特性優勢繼承下來,經過兩年多的發展,這個目標已經基本達成。

All IP 1.0成功的同時也帶來了一些問題和挑戰,總結起來主要有三個方面:
第一個是IP承載網絡的孤島問題。雖然MPLS統一了承載網,但是IP Core承載網、城域承載網、移動承載網之間是分離的,因此要使用跨域VPN等複雜的技術來解決,導致端到端業務部署的困難。

第二個是IPv4與MPLS封裝的可編程空間有限。現在產生了很多新的業務,需要在轉發面加入更多的封裝,而現在IETF已經發表聲明停止爲IPv4制定更進一步的標準,並且MPLS標籤的字段採用固定長度,標籤棧提供的網絡編程能力也相對受限,這些導致它們在滿足未來業務的網絡編程需求存在極大的挑戰。

第三個是應用與網絡承載的解耦,導致網絡自身的優化困難,而且難以提升價值。當前運營商普遍面臨被管道化的挑戰,無法從增值應用中獲得相應的收益,而應用信息的缺失,使得網絡調度和優化採用粗放的方式進行,也造成資源的浪費。網絡技術發展的歷史上也努力做過嘗試,但是都失敗了,例如ATM到桌面技術。MPLS也曾經試圖能夠入雲,實際連數據中心也沒能進去,反而是VXLAN成爲了事實標準。

圖5 IP技術發展代際

 

SRv6技術的出現,實際承擔瞭解決這些關鍵問題的使命:
第一個是SRv6兼容IPv6路由轉發,基於IP可達性實現不同網絡域間的連接更加容易,無需像MPLS那樣必須引入額外信令,並且還需要全網升級。
第二個是基於SRH能夠支持更多種類的封裝,可以很好地滿足新業務的多樣化需求。
第三個是SRv6對於IPv6的親和性使得它能夠將IP承載網絡與支持IPv6的應用無縫融合在一起,通過網絡感知應用,給運營商帶來更多可能的增值。

IPv6發展的二十年的里程證明,僅僅依靠地址空間的需求不足以支撐其規模部署,SRv6技術快速發展的實踐說明通過新的業務應用可以更好地促進IPv6發展應用。隨着5G、物聯網、雲等業務的發展,更多網絡設備的接入對於地址擴展的需求也在增加,SRv6和這方面的需求結合在一起,將會推動網絡進入一個新的All IP時代,基於All IPv6實現智簡網絡。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章