伍佑明 朱永慶 龔霞
(中國電信股份有限公司研究院,廣州 510630)
全球信息化發(fā)展對地址資源的需求日益迫切,以IPv6為基礎(chǔ)的下一代互聯(lián)網(wǎng)已成為網(wǎng)絡(luò)發(fā)展的必然趨勢。IPv6分段路由(Segment Routing over IPv6,SRv6)是Segment Routing與IPv6技術(shù)結(jié)合的產(chǎn)物,正成為業(yè)界關(guān)注的熱點。基于SRv6強大的可編程特性[1],可進一步提升網(wǎng)絡(luò)可編程能力,提升網(wǎng)絡(luò)的資源靈活調(diào)度、業(yè)務(wù)快速部署和智慧運營能力。但在SRv6部署過程中遇到報文承載效率與網(wǎng)絡(luò)設(shè)備處理能力的兩大挑戰(zhàn)。隨著SRv6報頭攜帶的SID層數(shù)增加,一方面導(dǎo)致SRv6報文承載效率降低,另一方面對網(wǎng)絡(luò)設(shè)備處理能力帶來了巨大挑戰(zhàn)。未來,隨著SRv6技術(shù)的規(guī)模部署,特別是端到端SRv6 Policy的應(yīng)用,這種SRv6部署帶來的承載效率和處理性能的降低將顯著增加網(wǎng)絡(luò)建設(shè)成本。
針對SRv6部署的承載效率與設(shè)備硬件挑戰(zhàn),業(yè)界正在積極探索多種SRv6報頭壓縮方案,以減小SRv6報頭封裝長度,降低設(shè)備硬件處理要求,提升信息承載效率。研究各種SRv6報頭壓縮技術(shù),突破SRv6部署瓶頸,對于加速SRv6規(guī)模應(yīng)用部署、促進下一代互聯(lián)網(wǎng)健康發(fā)展具有重要的現(xiàn)實意義。
本文在分析SRv6部署帶來影響的基礎(chǔ)上,探討了G-SRv6[2](Generalized SRv6)、uSID[3](Micro Segment)、SRm6[4](Segment Routing Mapped to IPv6)等主流報頭壓縮技術(shù)的發(fā)展情況,并對這些主流方案進行了對比,最后提出了SRv6報頭壓縮技術(shù)部署的策略。
SRv6技術(shù)在IPv6報頭封裝了分段路由報頭[5](Segment Routing Header,SRH),其部署對報文的承載效率和設(shè)備的處理性能帶來直接影響。
(1)SRv6技術(shù)部署對報文承載效率的影響
SRv6報頭由于封裝了段標識符(Segment Identifier,SID),報文的承載效率隨SID封裝層數(shù)的增加而逐步下降。當封裝多層SID時,會導(dǎo)致報文開銷明顯增加。在SRv6 Encaps模式下,報文開銷是外層IPv6基本報頭、SRH基本信息字段長度與SRv6 SID列表長度之和,即總共8+40+16×n字節(jié)。
在實際部署中,綜合拓撲無關(guān)的無環(huán)路備份(Topology Independent Loop Free Alternate,TI-LFA)、跨域流量工程等場景,筆者認為即使采用BSID和Flex-Algo方案,SID層數(shù)仍可能超過5 層,但通常不會超過12 層。以5 層和12 層報文封裝為例,當報文封裝5層SID時,Encaps模式下SRv6報文開銷為128 字節(jié);當報文封裝12 層SID時,Encaps模式下SRv6報文開銷為240 字節(jié)。報文開銷最終影響報文承載效率,而報文承載效率與報文長度密切相關(guān)。根據(jù)現(xiàn)網(wǎng)流量統(tǒng)計,包括Ethernet幀報頭在內(nèi)的平均報文長度為320~520 字節(jié)。取平均報文長度中位數(shù)448 字節(jié),根據(jù)報文開銷可計算出SRv6報文承載效率。當報文封裝5層SID時,Encaps模式下報文承載效率為77.8%;當報文封裝12 層SID時,Encaps模式下報文承載效率為65.1%。由此可見,封裝多層SRv6 SID將對網(wǎng)絡(luò)承載效率產(chǎn)生比較大的影響。
(2)SRv6技術(shù)部署對設(shè)備處理性能的影響
現(xiàn)階段,網(wǎng)絡(luò)設(shè)備以路由器、交換機為主,SRv6技術(shù)的部署對這些設(shè)備的處理能力帶來了巨大挑戰(zhàn)。SRv6控制平面基于現(xiàn)有IS-IS[6]、OSPFv3[7]、BGP[8]、PCEP[9]等路由協(xié)議/信令協(xié)議擴展實現(xiàn),不存在功能和性能瓶頸。但SRv6數(shù)據(jù)平面以路由器/交換機的硬件實現(xiàn)為主,對設(shè)備形成巨大的處理壓力。
SRv6報文在端到端轉(zhuǎn)發(fā)過程中主要增加了SRv6報文封裝、本地SID表查表、SRH報頭操作以及報文解封裝等操作。這些操作都由網(wǎng)絡(luò)設(shè)備的NP完成,因而SRv6報文對硬件的需求主要集中在NP(Networking Processor)芯片。根據(jù)內(nèi)部實現(xiàn)方式,NP芯片可大致分為PipeLine(流水線)式和RTC(Run to Completion)式兩類。PipeLine式NP芯片將芯片所實現(xiàn)功能交由每個功能模塊,報文在NP內(nèi)部像“流水線”一樣經(jīng)過相應(yīng)功能模塊。典型的PipeLine式NP芯片如EZchip公司的NP系列芯片。RTC式NP芯片內(nèi)含多個核(Core),每個核作為獨立單元可完成NP芯片的功能。RTC式NP芯片通過多核并行處理方式提升性能,典型代表有華為公司的Solar系列芯片。NP廠家設(shè)計理念不同,實現(xiàn)各異,即使同一類NP芯片也存在較大差異。
SRv6報文封裝過程通常發(fā)生在SRv6的Headend節(jié)點。在該節(jié)點,NP芯片可根據(jù)指令對IP報文進行SRv6 Encaps模式的封裝。NP在對IP報頭進行解析、封裝等操作時,會為每個報頭分配一個固定大小的報文處理單元,即NP為每個IP報頭所分配的RAM空間。該報文處理單元大小每個廠家實現(xiàn)略有差異,通常為144 字節(jié)。假定NP芯片為每個IP報頭所分配的報文處理單元為144 字節(jié),每個IPv6基本報頭為40 字節(jié),則每個報文處理單元為封裝SRv6報頭所剩余空間為104 字節(jié)。由此可知,如果采用Encaps模式,所封裝SRv6 SID將不超過3層。
由于SRv6報文端到端傳送過程中除PSP(Penultimate Segment Pop of the SRH,倒數(shù)第二個Segment彈出SRH)行為外不彈出相關(guān)SID,所以不僅僅是Headend節(jié)點,沿途SRv6節(jié)點均存在處理能力的這種限制。如果SRv6報頭超過了報文處理單元尺寸,則IP報頭需在NP芯片內(nèi)多次流轉(zhuǎn),才能完成相關(guān)操作。這對設(shè)備的轉(zhuǎn)發(fā)性能與帶寬都將產(chǎn)生巨大影響。為了實現(xiàn)更多層數(shù)的SRv6 SID封裝,需要對NP芯片、處理流程進行重新優(yōu)化設(shè)計。
SRv6報頭壓縮技術(shù)通過有效降低SID長度,可大幅降低SRv6報頭長度,從而有效提升承載效率。目前,業(yè)界提出了多種SRv6報頭壓縮解決方案,根據(jù)實現(xiàn)方案的思路差異,主要分為共享方案和映射方案兩類。
(1)共享方案:通常同一域內(nèi)的SRv6 SID存在公共前綴,通過將此前綴提取出來以公共Block字段承載,后續(xù)SID僅攜帶差異部分,從而大幅減少SRH中Segment List長度。共享壓縮方案的控制平面只需在已有SRv6協(xié)議擴展基礎(chǔ)上進行增強,具有較好的擴展性;數(shù)據(jù)平面兼容SRH格式,易于實現(xiàn)。
(2)映射方案:映射方案新定義較短ID(如16 bit/s/32 bit/s)并與SRv6的SID建立映射關(guān)系,在沿途所有設(shè)備上存儲映射表項,SRH則只需攜帶較短ID值即可,從而降低SRv6報頭開銷。映射報頭壓縮方案壓縮效率高,但不兼容SRv6,控制平面需通過協(xié)議擴展通告壓縮SID與SRv6 SID/IPv6地址的映射關(guān)系,需額外維護映射表項,實現(xiàn)復(fù)雜;另外,數(shù)據(jù)平面也不兼容SRH格式,需定義新的路由擴展報頭以實現(xiàn)壓縮SID的封裝。
針對上述兩種類型的SRv6報頭壓縮技術(shù),業(yè)界均提出了相應(yīng)實現(xiàn)方案。目前,共享方案包括G-SRv6壓縮、SRv6 uSID方案等,映射方案包括SRm6方案等。G-SRv6方案在國內(nèi)得到業(yè)界重點關(guān)注,相關(guān)的國際標準和行業(yè)標準正在制訂;SRv6 uSID方案在國外得到以思科為代表的廠商的推崇,相關(guān)國際標準正在推進;SRm6方案在業(yè)界的關(guān)注度較低。
G-SRv6壓縮技術(shù)基于SRv6,采用與SRH相同的數(shù)據(jù)平面,但控制平面需在SRv6控制平面基礎(chǔ)上進行相關(guān)協(xié)議擴展。G-SRv6定義了G-SRv6 SID格式,具體參見圖1。G-SRv6 SID與標準SRv6 SID格式完全兼容,包括Common Prefix和Node ID,Common Prefix是網(wǎng)絡(luò)運營商、內(nèi)容提供商等為子網(wǎng)分配的地址空間前綴,與標準SRv6 SID中的Locator Block對應(yīng);Node ID是該子網(wǎng)內(nèi)用于區(qū)分節(jié)點的標識,對應(yīng)標準SRv6 SID中的Locator Node;Node ID字段與Function字段合稱為G-SID字段。
圖1 G-SRv6 SID格式
為了壓縮SRv6報頭,G-SRv6壓縮方案將SID 列表中冗余的Common Prefix移除,僅攜帶變化的G-SID部分,從而可大幅減少SRv6的報頭開銷。G-SRv6作為一種通用SRv6技術(shù)方案,不僅支持SRv6報頭壓縮,而且可與傳統(tǒng)SRv6 SID混合編程。
G-SRH(Generalized SRH)由G-SID Container構(gòu)成,具體參見圖2。G-SRH與標準的SRH格式保持一致,可實現(xiàn)壓縮SID與非壓縮SID在同一SID列表中的混合編碼。
圖2 G-SRH格式
為實現(xiàn)混合編碼,G-SRv6定義了壓縮子路徑(Compression Sub-path)的概念。壓縮子路徑中的每個G-SID都具有相同的Common Prefix。每個壓縮子路徑的起始128 bit/s(即起始G-SID Container)需攜帶完整的Common Prefix、起始G-SID及Arguments/Padding等字段,后續(xù)的G-SID Container中則只攜帶G-SID部分,最后一個G-SID即為該壓縮子路徑的最后一跳。
G-SRv6部署需對控制平面協(xié)議進行擴展,包括IGP、BGP-LS及BGP SRv6 Policy等協(xié)議。其中,IGP協(xié)議擴展主要用于節(jié)點間發(fā)布SRv6報頭壓縮支持能力與相應(yīng)G-SID信息;BGP-LS協(xié)議擴展用于網(wǎng)絡(luò)節(jié)點向控制器發(fā)送SRv6報頭壓縮支持能力與相應(yīng)G-SID信息;BGP SRv6 Policy協(xié)議擴展主要用于控制器下發(fā)SRv6路徑信息。
SRv6 uSID方案,也稱為SRv6 Micro Segment方案,其基本思想與G-SRv6壓縮方案類似,都是將128 bit/s SID中的公共前綴uSID Block字段提取出來,通過消除SRH中冗余信息達到壓縮目的。但uSID封裝方式與G-SRv6不同,其基于uSID Container(uSID承載器)攜帶公共前綴與uSID信息。
uSID Container格式如圖3所示。其中,uSID Block與G-SRv6方案中的Common Prefix字段含義相同,都是指公共前綴;uSID則是從相應(yīng)SRv6 SID中提取的一個定長的ID,用于攜帶SID差異部分,其典型長度為16 bit/s或32 bit/s。若uSID Block長度為32 bit/s,當uSID字段長度為32 bit/s時,則一個uSID Container最多可攜帶3個uSID;當uSID字段長度為16 bit/s時,則一個uSID Container最多可攜帶6個uSID。
圖3 uSID Container示意圖
SRv6 uSID方案主要采用“共享前綴”+“移位(Shift)出?!狈绞綄崿F(xiàn)。uSID Container攜帶uSID Block與多個uSID字段,將這樣的128 bit/s數(shù)據(jù)復(fù)制到IPv6報頭的DA字段后,當進行uSID轉(zhuǎn)發(fā)處理時,需進行比特移位,即將當前Active uSID之后的所有比特向前移位一個uSID長度,并在末尾填充0,從而實現(xiàn)報文逐跳轉(zhuǎn)發(fā)。
uSID方案數(shù)據(jù)平面兼容SRv6/IPv6,具備在IPv6網(wǎng)絡(luò)中的路由能力,支持與SRv6 SID混編,其控制平面則需通過uN等行為實現(xiàn)移位與查表轉(zhuǎn)發(fā)功能。相對G-SRv6壓縮方案,每個uSID Container需攜帶1個uSID Block,對壓縮效率有一定影響,但也具有更好的擴展性。
SRv6 uSID方案需對控制平面協(xié)議進行擴展。uSID通告方式與其Endpoint Behavior類型有關(guān)。目前定義的SRv6 uSID類型中,uN、uA SRv6 SID及其綁定的行為由IGP協(xié)議通告,uDT、uDX SRv6 SID及其綁定的行為由BGP協(xié)議通告。
SRm6技術(shù)采用映射方案實現(xiàn)SRv6報頭壓縮,是一種新的路由機制。SRm6方案的基本思想是采用16 bit/s或32 bit/s的SID代替SRv6中128 bit/s的SID,并在兩者之間建立一一映射關(guān)系,將IPv6地址格式的SID轉(zhuǎn)變?yōu)楦套止?jié)的壓縮SID,從而減小SRv6報頭的長度,實現(xiàn)壓縮效果。
SRm6方案新定義了3種壓縮SID,包括鄰接(Adjacency)mSID、節(jié)點(Node)mSID和綁定(Binding)mSID,每一種mSID都與指定的行為相關(guān)聯(lián)。mSID由分配它的節(jié)點定義,并映射到一個唯一的接口地址,不同節(jié)點分配的mSID可以相同。與SRv6 SID不同的是,SRm6方案中定義的各種mSID均為本地有效。為了實現(xiàn)SRv6靈活的可編程能力,SRm6方案還定義了兩種服務(wù)mSID類型,包括基于段的服務(wù)指令(Per-Segment Service Instructions,PSSI)和基于路徑的服務(wù)指令(Per-Path Service Instructions,PPSI)。
SRm6方案基于IPv6擴展報頭重新定義了承載mSID的壓縮報頭(Compressed Routing Header,CRH)。SRm6方案支持16 bit/s和32 bit/s壓縮長度,其壓縮效率主要取決于mSID長度。針對16 bit/s長度的mSID和32 bit/s長度的mSID,分別定義了CRH-16和CRH-32,CRH-16格式如圖4所示。
圖4 CRH-16報頭格式
SRm6方案不改變IPv6地址的原有語義,通過標簽映射的方式實現(xiàn)顯式路徑指定,并通過擴展報頭攜帶PSSI及PPSI等服務(wù)指令實現(xiàn)SRv6網(wǎng)絡(luò)可編程。該方案不兼容SRv6/IPv6,mSID也不具備在IPv6網(wǎng)絡(luò)中的路由能力,不能實現(xiàn)與普通SRv6 SID的混編。此外,SRm6方案采用類似MPLS的標簽分配方式,需根據(jù)網(wǎng)絡(luò)規(guī)模規(guī)劃mSID空間大小,與IPv6地址規(guī)劃無關(guān)聯(lián)。
為支持SRm6方案,需對控制平面相關(guān)協(xié)議進行擴展,以實現(xiàn)mSID及其綁定的IPv6接口地址及服務(wù)指令等信息在網(wǎng)絡(luò)中的通告。SRm6方案目前定義了基于IS-IS協(xié)議的擴展,主要包含通告CRH能力、通告Prefix SID、通告鄰接mSID、通告LAN鄰接mSID等方面。
目前,G-SRv6、uSID及SRm6報頭壓縮方案在對組播、業(yè)務(wù)鏈等應(yīng)用的支持方面,以及OAM與TI-LFA等功能支持方面,都需要進一步完善,才能實現(xiàn)規(guī)模部署和應(yīng)用。然而,業(yè)界對SRv6報頭壓縮方案的爭論始終伴隨著SRv6技術(shù)的發(fā)展。G-SRv6、uSID及SRm6報頭壓縮方案在技術(shù)實現(xiàn)上各具優(yōu)勢,3種SRv6報頭壓縮方案優(yōu)劣勢對比如表1所示。
表1 主要SRv6報頭壓縮方案對比
在壓縮效率方面,G-SRv6方案的壓縮效率與Locator Block規(guī)劃及G-SID長度有關(guān),uSID方案的壓縮效率與Locator Block規(guī)劃及uSID長度有關(guān),而SRm6方案則不受地址規(guī)劃影響,只與mSID長度相關(guān)。上述3種報頭壓縮方案基于不同的實現(xiàn)原理,難以簡單比較各方案壓縮效率的優(yōu)劣,特別是在處理跨域時,受實際部署場景影響較大。
總體而言,兼容SRv6/SRH的G-SRv6壓縮方案與uSID方案,更受業(yè)界推崇。至于業(yè)界在二者中做出何種選擇,最終要看產(chǎn)業(yè)鏈的支持情況。
目前,業(yè)界所提出的SRv6報頭壓縮方案各有側(cè)重。但無論采用哪種方案,都需面向網(wǎng)絡(luò)與業(yè)務(wù)部署需求,充分利用現(xiàn)有網(wǎng)絡(luò)/設(shè)備資源,以降低研發(fā)/部署成本與難度。因此,SRv6報頭壓縮方案設(shè)計需綜合考慮與SRv6/IPv6兼容性、壓縮效率及可擴展性等因素,技術(shù)部署遵循以下原則。
(1)與SRv6/IPv6兼容性原則
理想的SRv6報頭壓縮方案需在SRv6基礎(chǔ)上演進,兼容SRv6基本實現(xiàn)、SRH格式以及控制平面擴展等,以免報文處理邏輯復(fù)雜化。此外,SRv6報頭壓縮方案應(yīng)同樣支持VPN SID、BSID等各種網(wǎng)絡(luò)功能的靈活實現(xiàn)。由于SRv6本身兼容IPv6,因此SRv6報頭壓縮方案需兼容原生IPv6,具備在IPv6網(wǎng)絡(luò)中的路由能力。兼容性原則是部署SRv6報頭壓縮方案的關(guān)鍵原則,正是這個原因,業(yè)界更看好G-SRv6壓縮方案與uSID方案的發(fā)展前景。
(2)壓縮效率和代價平衡原則
壓縮效率是評判SRv6報頭壓縮方案的核心指標,但同時也需考慮網(wǎng)絡(luò)規(guī)模、硬件實現(xiàn)難度等因素,以達到壓縮效率與實現(xiàn)代價的最優(yōu)化。壓縮SID長度是影響壓縮效率的關(guān)鍵因素,業(yè)界普遍認為16 bit/s、32 bit/s均是當前較為理想的壓縮SID長度,考慮與IPv4/MPLS長度一致性及硬件實現(xiàn)難易程度,32 bit/s受到更多推崇。
(3)可擴展性原則
SRv6報頭壓縮方案需兼容當前IPv6網(wǎng)絡(luò)地址劃分方式,支持靈活的地址規(guī)劃,并支持跨域壓縮互通。此外,SRv6報頭壓縮方案需具備SRv6靈活可編程的特點,以滿足面向未來新業(yè)務(wù)部署的靈活擴展需求。目前,G-SRv6壓縮方案與uSID方案都具有較好的擴展性。
SRv6技術(shù)的規(guī)模部署正逐漸成為網(wǎng)絡(luò)發(fā)展趨勢,采用SRv6報頭壓縮技術(shù)可以降低SRv6技術(shù)部署對網(wǎng)絡(luò)和設(shè)備的影響,業(yè)界正在探討多種SRv6報頭壓縮技術(shù)。SRv6報頭壓縮技術(shù)的應(yīng)用將加速SRv6技術(shù)的規(guī)模部署,推動IPv6流量的增長,促進下一代互聯(lián)網(wǎng)的全面發(fā)展。將來隨著網(wǎng)絡(luò)設(shè)備的更新?lián)Q代,如何使設(shè)備適應(yīng)SRv6報文的處理,如何提升設(shè)備的處理性能將是業(yè)界探討的一個重要方向,但現(xiàn)階段探討SRv6報頭壓縮技術(shù)及部署策略仍然具有現(xiàn)實意義。