SDN中的Segment Routing
云計算和移動互聯(lián)網(wǎng)的快速發(fā)展造成了流量模型的巨大變化,傳統(tǒng)封閉固化的網(wǎng)絡(luò)很難適應(yīng)這種業(yè)務(wù)場景下的動態(tài)需求,主要體現(xiàn)在以下幾個方面:
- 網(wǎng)絡(luò)設(shè)備與承載應(yīng)用的割裂導(dǎo)致網(wǎng)絡(luò)無法快速響應(yīng)業(yè)務(wù)對網(wǎng)絡(luò)的需求,網(wǎng)絡(luò)業(yè)務(wù)面向設(shè)備而非面向應(yīng)用。
- 流量分布不均勻造成帶寬浪費(fèi),設(shè)備依據(jù)最短路徑策略轉(zhuǎn)發(fā),不具備全局視角,無法動態(tài)感知網(wǎng)絡(luò)負(fù)載的變化。
- 多廠家設(shè)備互操作的難度,造成E2E業(yè)務(wù)變更和故障定位的困難,客戶設(shè)備成本和運(yùn)維成本不斷攀升。
傳統(tǒng)基于RSVP的流量工程通過IGP協(xié)議的擴(kuò)展,可以根據(jù)考慮鏈路負(fù)載的TED和LSDB進(jìn)行CSPF計算選路,但由于協(xié)議復(fù)雜、部署繁瑣,設(shè)備之間要維護(hù)協(xié)議狀態(tài)導(dǎo)致實際應(yīng)用中受到了很大限制。
SDN可以實現(xiàn)用戶對網(wǎng)絡(luò)開放能力、可編程能力、集中控制能力、可視化能力的訴求,成為下一代網(wǎng)絡(luò)的最佳選擇,本文針對其中的流量調(diào)度技術(shù)做簡要介紹。
相對于Openflow更加激進(jìn)的SDN演進(jìn)策略,由于對現(xiàn)網(wǎng)改動過大無法平滑遷移,基于Segment Routing(以下簡稱SR)方式的流量調(diào)度技術(shù)逐漸成為業(yè)界共識。SR不需要像LDP和RSVP一樣維護(hù)協(xié)議狀態(tài),簡化了控制面。基于源路由方式使流量路徑在源端注入,其它設(shè)備無需感知。使用MPLS和IPV6擴(kuò)展頭作為轉(zhuǎn)發(fā)面,支持網(wǎng)絡(luò)的SDN平滑過渡。結(jié)合BGP-LS和PCEP南向協(xié)議,快速響應(yīng)業(yè)務(wù)對網(wǎng)絡(luò)的需求。
IP源路由
SR的轉(zhuǎn)發(fā)面非常簡單,甚至都不能稱作新技術(shù),在IP選項頭中就有源路由選項的定義。普通報文轉(zhuǎn)發(fā)依據(jù)路由,無論是通過策略路由、最短路徑算法還是BGP路徑屬性,目的地址確定了,轉(zhuǎn)發(fā)路徑也就確定了。如果需要影響流量轉(zhuǎn)發(fā)路徑,強(qiáng)制流量松散的經(jīng)過某些指定轉(zhuǎn)發(fā)節(jié)點(diǎn),甚至超越路由之上嚴(yán)格指定轉(zhuǎn)發(fā)路徑,就可以利用IP選項頭中的源路由選項。
圖一顯示某條src為10.0.0.1,dst為30.0.0.1的流量在兩種情況下的轉(zhuǎn)發(fā)路徑,紅色路徑標(biāo)識基于最短路徑的路由轉(zhuǎn)發(fā),藍(lán)色路徑標(biāo)識基于源路由選項的轉(zhuǎn)發(fā)。node1始發(fā)的流量的目的地址為第一個松散節(jié)點(diǎn)本地地址,真實的目的地址保存在選項頭中,并將選項頭指針指向該地址。報文先通過最短路徑轉(zhuǎn)發(fā)至node3接口20.0.0.1,中間設(shè)備只做路由轉(zhuǎn)發(fā)。node3處理選項頭,將其中指針指向的地址30.0.0.1和原始目的地址20.0.0.1替換,并將指針偏移4字節(jié)指向下一處地址,然后按照真實的目的地址進(jìn)行路由轉(zhuǎn)發(fā)。本實例做了簡化只有一處松散節(jié)點(diǎn),可根據(jù)實際需要設(shè)置多個松散節(jié)點(diǎn)形成地址棧,但由于IP頭部的長度限制選項頭并不能無限擴(kuò)充。
圖一 源路由選項轉(zhuǎn)發(fā)
SR的轉(zhuǎn)發(fā)面
到目前為止我們還沒有真正的談到SR,但上文的IP源路由正是SR轉(zhuǎn)發(fā)面的核心,只是從選項頭中的地址棧轉(zhuǎn)變?yōu)镮P頭外部的MPLS標(biāo)簽棧,甚至IPV6場景依然在擴(kuò)展頭中沿用地址棧的方式。
SR中存在兩種類型的標(biāo)簽:節(jié)點(diǎn)標(biāo)簽和鄰接標(biāo)簽,后面控制面會詳細(xì)闡述,暫時可以認(rèn)為節(jié)點(diǎn)標(biāo)簽唯一標(biāo)識SR域中的一臺設(shè)備,全局有效,鄰接標(biāo)簽與傳統(tǒng)的LDP標(biāo)簽類似,由鄰接的下游設(shè)備分配標(biāo)識本地出口,只在本地有效。有了節(jié)點(diǎn)標(biāo)簽就可以明確指定流量必須經(jīng)過哪臺設(shè)備,有了鄰接標(biāo)簽就可以指定流量在本設(shè)備的出口,至此我們可以擺脫路由的限制隨意的定義流量路徑,但又避免了復(fù)雜的路由策略,因為流量路徑是在源節(jié)點(diǎn)通過標(biāo)簽棧定義,其它設(shè)備不需感知。
如圖二所示SR域內(nèi)的每臺設(shè)備都分配了唯一的節(jié)點(diǎn)標(biāo)簽,標(biāo)簽value由索引和SRGB(Segment Routing Global Block)相加得出,其中SRGB是設(shè)定用于SR的標(biāo)簽塊,圖中做了簡化用索引值代替標(biāo)簽值,黃色虛線表示node4和node6為node5分配的直連鏈路的鄰接標(biāo)簽,所有這些標(biāo)簽值統(tǒng)稱為SID(Segment ID),最終在源端壓入的標(biāo)簽棧就是SID。紅色路徑依舊標(biāo)識路由轉(zhuǎn)發(fā)路徑,當(dāng)node2和node4之間的鏈路不滿足應(yīng)用需求時,源端請求使用藍(lán)色的繞行路徑,于是在node1上壓入①所示的SID標(biāo)簽棧(Segment List),標(biāo)簽值5表示流量必須經(jīng)過node5;報文到達(dá)node2時進(jìn)行標(biāo)簽swap,swap后外層標(biāo)簽依然是5,報文到達(dá)node3時基于PHP原則將標(biāo)簽5進(jìn)行POP;報文到達(dá)node5時外層標(biāo)簽是6001,繼續(xù)進(jìn)行標(biāo)簽6001的POP轉(zhuǎn)發(fā)至node4;報文達(dá)到node4時外層標(biāo)簽6進(jìn)行POP轉(zhuǎn)發(fā)至node6,完成流量的繞行轉(zhuǎn)發(fā)。標(biāo)簽在swap時的轉(zhuǎn)發(fā)依據(jù)其實就是路由計算出的最短路徑,可以看到SR的轉(zhuǎn)發(fā)面和IP源路由的思想高度一致。
圖二 SR轉(zhuǎn)發(fā)面
SR的控制面
上文提到了兩種類型的SID,節(jié)點(diǎn)ID(Node SID)和鄰接ID(Adjacency SID)。節(jié)點(diǎn)ID是一種特殊的前綴ID(Prefix SID),前綴ID標(biāo)識一個由IGP路由計算出的地址前綴,而節(jié)點(diǎn)ID一般被限制為設(shè)備的loopback接口。由于節(jié)點(diǎn)ID唯一標(biāo)識一臺設(shè)備,需要全局唯一,而鄰接ID只標(biāo)識設(shè)備的本地出口,在鄰接路由器之間分配本地有效。SID的分配可以采用路由協(xié)議擴(kuò)展支持或者由控制器統(tǒng)一分配,流量路徑由源端節(jié)點(diǎn)注入,可以看到SR的控制面是一種無狀態(tài)并且極為簡單的實現(xiàn)。
SDN中的應(yīng)用
有了路徑控制的技術(shù),還需要針對應(yīng)用的流量選路,才能完成網(wǎng)絡(luò)按應(yīng)用需求的隨動,這里引入兩種技術(shù)BGP-LS和PCEP。
BGP-LS是BGP擴(kuò)展的一個地址族,宣告IGP協(xié)議及其TE擴(kuò)展生成的鏈路狀態(tài),包含拓?fù)溥B接、端口帶寬及鏈路負(fù)載等,控制器通過維護(hù)TED和LSDB就具備了全網(wǎng)的網(wǎng)絡(luò)狀態(tài)視圖。當(dāng)某個應(yīng)用請求滿足一定SLA需求的路徑時,就會通過PCEP協(xié)議進(jìn)行路徑計算請求,當(dāng)然該請求也可以由控制器主動發(fā)起。
如圖三所示node1節(jié)點(diǎn)作為PCC向控制器PCE發(fā)起路徑請求,由控制器根據(jù)BGP-LS通告的鏈路狀態(tài)選取符合應(yīng)用要求的鏈路,通過PCEP擴(kuò)展對SR的支持生成相應(yīng)的Segment List回應(yīng)node1節(jié)點(diǎn),node1通過將應(yīng)用流量壓入控制器下發(fā)的標(biāo)簽棧實現(xiàn)最終的路徑控制。
圖三 SDN選路控制
本文介紹了SR在SDN中的應(yīng)用,通過簡單的協(xié)議擴(kuò)展,實現(xiàn)了類似Openflow的靈活控制,對于SR域和非SR域可以利用over的過渡策略實現(xiàn)平滑遷移,是WAN或MAN向SDN演進(jìn)的有效手段。