SRv6探險(xiǎn)之旅(1)技術(shù)與測(cè)試方法解讀(上)
在信息技術(shù)飛速發(fā)展的今天,互聯(lián)網(wǎng)的業(yè)務(wù)需求在日益多樣化,網(wǎng)絡(luò)架構(gòu)和技術(shù)也在不斷演進(jìn),傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)已難以滿(mǎn)足新業(yè)務(wù)對(duì)靈活性和可擴(kuò)展性的要求,SRv6(Segment Routing over IPv6)作為一種新興的網(wǎng)絡(luò)技術(shù),基于IPv6原生地址和Segment Routing(SR)技術(shù),為構(gòu)建更靈活、高效和智能的網(wǎng)絡(luò)提供了新的解決方案。
本篇將聚焦于SRv6技術(shù)的基礎(chǔ)理論,以探討SRv6技術(shù)的關(guān)鍵特性與核心原理為主,包括以下4個(gè)方面內(nèi)容:
1、SRv6 技術(shù)概述
2、SRv6 技術(shù)優(yōu)勢(shì)
3、SRv6 基本原理
4、SRv6控制面協(xié)議
1、SRv6 技術(shù)概述
SRv6是基于源路由理念而設(shè)計(jì)的在IPv6網(wǎng)絡(luò)上轉(zhuǎn)發(fā)數(shù)據(jù)包的一種協(xié)議。SRv6通過(guò)在IPv6數(shù)據(jù)報(bào)中嵌入一個(gè)路由擴(kuò)展頭SRH(Segment Routing Header),在SRH中指定一系列的Segment Identifier(SID),這些SID都是顯式的IPv6地址棧,并由中間節(jié)點(diǎn)不斷的進(jìn)行更新目的地址和偏移地址棧的操作來(lái)完成逐跳轉(zhuǎn)發(fā),從而實(shí)現(xiàn)了對(duì)數(shù)據(jù)包轉(zhuǎn)發(fā)路徑的精確控制。
2、SRv6 技術(shù)優(yōu)勢(shì)相比于傳統(tǒng)的網(wǎng)絡(luò)技術(shù),SRv6具有多項(xiàng)顯著優(yōu)勢(shì),主要體現(xiàn)在以下幾個(gè)方面:
強(qiáng)大的可編程能力:SRv6提供了網(wǎng)絡(luò)路徑、業(yè)務(wù)、轉(zhuǎn)發(fā)行為三層可編程空間,通過(guò)SRH中的SID,可靈活定義轉(zhuǎn)發(fā)路徑和轉(zhuǎn)發(fā)行為
簡(jiǎn)化網(wǎng)絡(luò)協(xié)議與運(yùn)維:SRv6通過(guò)在IPv6數(shù)據(jù)包中嵌入SID,簡(jiǎn)化了網(wǎng)絡(luò)協(xié)議棧,減少了對(duì)專(zhuān)用信令協(xié)議的需求(如LDP和RSVP-TE),降低了網(wǎng)絡(luò)的復(fù)雜性和運(yùn)維難度。
原生IPv6的支持與兼容性:基于Native IPv6進(jìn)行轉(zhuǎn)發(fā),沒(méi)有改變IPv6報(bào)文的封裝結(jié)構(gòu),保持了與現(xiàn)有IPv6設(shè)備的兼容性,增強(qiáng)了網(wǎng)絡(luò)的擴(kuò)展性和靈活性。
強(qiáng)大的業(yè)務(wù)驅(qū)動(dòng)能力:SRv6完全基于SDN架構(gòu),能夠?qū)?yīng)用信息帶入網(wǎng)絡(luò),實(shí)現(xiàn)網(wǎng)絡(luò)與應(yīng)用之間的深度互動(dòng), 并利用全局信息進(jìn)行網(wǎng)絡(luò)調(diào)度和優(yōu)化。
3、SRv6 基本原理
3.1 SRv6 SRH
SRv6報(bào)文是由IPv6標(biāo)準(zhǔn)頭+擴(kuò)展頭+負(fù)載Payload組成。為了基于IPv6轉(zhuǎn)發(fā)平面實(shí)現(xiàn)Segment Routing,新增加一種IPv6路由擴(kuò)展頭Segment Routing Header (SRH),該擴(kuò)展頭指定一個(gè)IPv6的顯式路徑Segment List,存儲(chǔ)的是IPv6 路徑約束信息。頭節(jié)點(diǎn)在IPv6報(bào)文增加一個(gè)SRH擴(kuò)展頭,中間節(jié)點(diǎn)就可以按照SRH擴(kuò)展頭里包含的路徑信息轉(zhuǎn)發(fā)。
SRH擴(kuò)展頭的格式如下圖所示:
IPv6 基本頭中Next Header 取值為43,標(biāo)識(shí)下一個(gè)報(bào)文頭為路由擴(kuò)展頭。路由擴(kuò)展頭的路由類(lèi)型字段取值為4,標(biāo)識(shí)該路由擴(kuò)展頭為SRH。
SRH 主要包含以下幾個(gè)部分:
Next Header:標(biāo)識(shí)緊跟在SRH之后的報(bào)文頭的類(lèi)型。常見(jiàn)的類(lèi)型如4代表IPv4封裝;41代表IPv6封裝
Hdr Ext Len:SRH頭的長(zhǎng)度(不包括前8字節(jié))
Routing Type: 路由擴(kuò)展頭類(lèi)型,4表明該路由擴(kuò)展頭為SRH
Segments Left(SL): SRv6剩余未處理的SID個(gè)數(shù)。轉(zhuǎn)發(fā)過(guò)程中通過(guò)修改SL,同時(shí)更換DIP為活躍的SID來(lái)完成分段轉(zhuǎn)發(fā)
Last Entry:Segment List中最后一個(gè)元素的索引
FLags:預(yù)留的標(biāo)志位
Tag:標(biāo)識(shí)同組數(shù)據(jù)包
Segment List: 有序的SRv6 段列表,段列表從路徑的最后一段開(kāi)始編碼。Segment List[0]是路徑的最后一個(gè)Segment;Segment List[2]是路徑的第一個(gè)Segment。
3.2 SRv6 Segment
SRv6 Segment是SRv6技術(shù)中的一個(gè)核心概念,即路由段,每個(gè)Segment由SID唯一標(biāo)識(shí),實(shí)際上是一個(gè)特定的IPv6地址,代表了網(wǎng)絡(luò)中一個(gè)特定轉(zhuǎn)發(fā)路徑或節(jié)點(diǎn)。多個(gè)Segments嵌入在IPv6數(shù)據(jù)包的SRH中形成一個(gè)Segment List。SRv6 SID由Locator、Function和Arguments三部分組成(Argument為可選部分),格式是Locator:Function:Arguments,其中Locator占據(jù)IPv6地址的高比特位,F(xiàn)unction/Arguments占據(jù)IPv6地址的剩余部分。
Locator:是網(wǎng)絡(luò)拓?fù)渲械囊粋€(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的標(biāo)識(shí),用于路由和轉(zhuǎn)發(fā)報(bào)文到該節(jié)點(diǎn),實(shí)現(xiàn)網(wǎng)絡(luò)指令的可尋址。節(jié)點(diǎn)配置Locator之后,系統(tǒng)會(huì)生成一條Locator網(wǎng)段路由,并通過(guò)IGP在SR域內(nèi)通告。
Function:用來(lái)表示該指令要執(zhí)行的轉(zhuǎn)發(fā)動(dòng)作,不同的轉(zhuǎn)發(fā)動(dòng)作由不同的Function來(lái)標(biāo)識(shí)。
Arguments:為可選字段,可以定義一些報(bào)文的流和服務(wù)等信息。
SRv6 Segment常見(jiàn)類(lèi)型:
3.3 SRv6 節(jié)點(diǎn)
在SRv6網(wǎng)絡(luò)中,節(jié)點(diǎn)扮演著關(guān)鍵的角色,它們負(fù)責(zé)處理、轉(zhuǎn)發(fā)和接收SRv6報(bào)文。
SRv6網(wǎng)絡(luò)中存在的節(jié)點(diǎn)角色,基本上分為三類(lèi):
SRv6源節(jié)點(diǎn)(Source SRv6 Node):
定義:生成SRv6報(bào)文的源節(jié)點(diǎn)。
功能:負(fù)責(zé)生成SRv6報(bào)文,并在報(bào)文中嵌入有序的路徑信息Segment List,以指導(dǎo)報(bào)文在網(wǎng)絡(luò)中按路徑轉(zhuǎn)發(fā)。
中轉(zhuǎn)節(jié)點(diǎn)(Transit Node):
定義:在SRv6報(bào)文轉(zhuǎn)發(fā)路徑上只轉(zhuǎn)發(fā)SRv6報(bào)文但不進(jìn)行SRv6處理的節(jié)點(diǎn)。
功能:這些節(jié)點(diǎn)只負(fù)責(zé)根據(jù)IPv6報(bào)頭中的目的地址進(jìn)行轉(zhuǎn)發(fā),不處理SRv6的SRH。
段端點(diǎn)節(jié)點(diǎn)(SRv6 Segment Endpoint Node):
定義:接收并處理SRv6報(bào)文的任何節(jié)點(diǎn),該報(bào)文的IPv6目標(biāo)地址是本地配置的SID。
功能:這些節(jié)點(diǎn)會(huì)檢查并處理SRv6報(bào)文中的SRv6 SID和SRH,根據(jù)IPv6報(bào)文的目的地址查找本地SID表,執(zhí)行與該SID綁定的指令動(dòng)作。
3.4 SRv6 報(bào)文轉(zhuǎn)發(fā)
SRv6主要有兩種轉(zhuǎn)發(fā)模式,分別是SRv6 BE(Best Effort,盡力而為)和SRv6 TE Policy(Traffic Engineering Policy,流量工程策略)。
SRv6 BE 的場(chǎng)景類(lèi)似于MPLS LDP,LDP 利用 IGP的最短路徑算法計(jì)算得到一條最優(yōu)的轉(zhuǎn)發(fā)路徑。SRv6 BE 僅使用一個(gè)業(yè)務(wù) SID來(lái)指導(dǎo)報(bào)文的轉(zhuǎn)發(fā),是一種盡力而為的工作模式。在該工作模式下,SRv6 功能只需要部署在首尾節(jié)點(diǎn),實(shí)現(xiàn)較為簡(jiǎn)單。
SRv6 TE Policy 則利用了源路由的特性,在首節(jié)點(diǎn)封裝一個(gè)有序的Segment List來(lái)指導(dǎo)報(bào)文在網(wǎng)絡(luò)中如何轉(zhuǎn)發(fā)。結(jié)合Segment List 的可編程特性,并引入著色機(jī)制(設(shè)置Color 屬性),SRv6 TE Policy 可以靈活地指定報(bào)文的轉(zhuǎn)發(fā)路徑,從而實(shí)現(xiàn)流量工程、靈活引流、負(fù)載分擔(dān)等功能。
以下是一個(gè)典型的SRv6 TE報(bào)文轉(zhuǎn)發(fā)流程,假設(shè)從節(jié)點(diǎn)A(源節(jié)點(diǎn))轉(zhuǎn)發(fā)到節(jié)點(diǎn)E(目的節(jié)點(diǎn)),中間經(jīng)過(guò)節(jié)點(diǎn)B、C、D,其中節(jié)點(diǎn)B為中轉(zhuǎn)節(jié)點(diǎn)(不處理SRH或不支持SRv6)。
1、節(jié)點(diǎn)A(源節(jié)點(diǎn))進(jìn)行網(wǎng)絡(luò)編程,為數(shù)據(jù)包封裝基本IPv6頭和SRH,將SRv6路徑信息[C,D,E]嵌入SRH中,數(shù)據(jù)包外層源地址為節(jié)點(diǎn)A的地址,目的地址為第一個(gè)SID(C)的地址。
2、節(jié)點(diǎn)B(中轉(zhuǎn)節(jié)點(diǎn))不處理SRH或不支持SRv6,只需根據(jù)IPv6報(bào)頭中的目的地址(此時(shí)為C的地址)進(jìn)行路由查找轉(zhuǎn)發(fā)。
3、節(jié)點(diǎn)C(SRv6段節(jié)點(diǎn))收到報(bào)文后,檢查SRH中的SL(Segment Left)及Segment List,將下一個(gè)SID(此時(shí)為D的地址)更新到目的IPv6地址。
4、節(jié)點(diǎn)D的處理過(guò)程和節(jié)點(diǎn)C類(lèi)似,但節(jié)點(diǎn)D為倒數(shù)第二段,可根據(jù)其Flavor是否配置PSP(Penultimate Segment POP,倒數(shù)第二段彈出SRH),決定是否移除SRH頭,以減輕尾結(jié)點(diǎn)E的處理壓力。
5、節(jié)點(diǎn)E(目的節(jié)點(diǎn))解封裝并剝離外層IPv6,讀取處理數(shù)據(jù)包的有效載荷,根據(jù)原始報(bào)文的目的地址進(jìn)行報(bào)文轉(zhuǎn)發(fā)。
4、SRv6控制面協(xié)議
4.1 ISIS for SRv6
為實(shí)現(xiàn)SRv6,需要對(duì)已有的IGP協(xié)議(ISIS 和OSPFv3)進(jìn)行擴(kuò)展,而不需要再維護(hù)RSVP-TE、LDP等控制平面協(xié)議。通過(guò)擴(kuò)展ISIS和OSPFv3協(xié)議攜帶SRv6信息,可對(duì)SRv6網(wǎng)絡(luò)的拓?fù)?、前綴、Locator和SID等信息進(jìn)行通告,網(wǎng)絡(luò)管理員或SDN控制器利用這些信息,即可實(shí)現(xiàn)AS域內(nèi)的網(wǎng)絡(luò)編程功能。
以ISIS協(xié)議為例,ISIS需要發(fā)布兩類(lèi)SRv6 信息:Locator信息與 SID 信息。Locator用于幫助網(wǎng)絡(luò)中的其他節(jié)點(diǎn)定位到發(fā)布SID的節(jié)點(diǎn),SID用于描述SID的功能,如SID綁定的Function。
ISIS針對(duì)SRv6的擴(kuò)展具體如下表所示:
4.2 BGP For SRv6
傳統(tǒng)的IGP for SRv6技術(shù)主要在AS域內(nèi)進(jìn)行SID的分配和路徑規(guī)劃。然而,隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,跨域通信成為常態(tài),需要一種機(jī)制來(lái)支持跨AS的SRv6路徑規(guī)劃。為了滿(mǎn)足這一需求,BGP EPE(BGP Egress Peer Engineering)應(yīng)運(yùn)而生。它通過(guò)擴(kuò)展BGP協(xié)議,使得BGP能夠參與到SRv6的跨域路徑規(guī)劃中來(lái),從而實(shí)現(xiàn)跨AS的SRv6流量工程。
BGP EPE通過(guò)為對(duì)Peer分配特定的SID,包括Peer-Node SID和Peer-Adj SID,來(lái)引導(dǎo)流量經(jīng)過(guò)特定的出節(jié)點(diǎn),發(fā)往特定的BGP對(duì)等體或?qū)Φ孺溌贰?/span>
Peer-Node SID:用于指示一個(gè)對(duì)等體節(jié)點(diǎn)。
Peer-Adj SID:用于指示到達(dá)對(duì)等體的一個(gè)鄰接。
4.3 BGP SRv6 Policy
在數(shù)據(jù)中心、廣域網(wǎng)里,SRv6和SDN應(yīng)用的結(jié)合已是重要的發(fā)展趨勢(shì),故基于SDN架構(gòu)的SRv6控制器也得到了多廠商的支持和互操作。在此過(guò)程中,BGP成為主流的SDN控制器南向協(xié)議。為了通過(guò)BGP 發(fā)布SRv6 Policy,需要對(duì)SAFI(Subsequent Address Family Identifier)及其對(duì)應(yīng)的NLRI和Tunnel Encaps Attribute等部分進(jìn)行擴(kuò)展,因擴(kuò)展的TLV較多,感興趣的可閱讀draft-ietf-idr-segment-routing-te-policy.
如上圖,SDN控制器與SRv6轉(zhuǎn)發(fā)設(shè)備或RR節(jié)點(diǎn)建立BGP對(duì)等體,下發(fā)BGP SRv6-Policy路由并攜帶SRv6 的候選路徑、優(yōu)先級(jí)、段列表、權(quán)重等信息給SRv6源節(jié)點(diǎn)設(shè)備,以此指導(dǎo)設(shè)備如何根據(jù)SRv6規(guī)則轉(zhuǎn)發(fā)數(shù)據(jù)包。通過(guò)結(jié)合BGP-LS、Telemetry、TWAMP等技術(shù),使得網(wǎng)絡(luò)運(yùn)營(yíng)商能夠在SDN控制器的集中管理下,靈活部署和動(dòng)態(tài)調(diào)整SRv6路由策略,從而實(shí)現(xiàn)高效、智能的網(wǎng)絡(luò)流量調(diào)度。
上半部分的探索之旅暫告一段落,我們已經(jīng)一同揭開(kāi)了SRv6技術(shù)的神秘一角,領(lǐng)略了其作為網(wǎng)絡(luò)創(chuàng)新力量的獨(dú)特魅力。隨著理論基礎(chǔ)的奠定,下半部分的征程即將開(kāi)啟,我們將更深入地探討Spirent TestCenter如何測(cè)試SRv6,敬請(qǐng)期待。