[莫志威 鄧永平 歐亮 林力帆]
段路由SR(Segment Routing)[1]是一種新型的源路由方式,當(dāng)數(shù)據(jù)平面為MPLS 時(shí),該技術(shù)稱作SRMPLS;當(dāng)數(shù)據(jù)平面為IPv6時(shí),該技術(shù)稱作SRv6(Segment Routing for IPv6)。SRv6 技術(shù)將網(wǎng)絡(luò)中的報(bào)文處理定義為一個(gè)網(wǎng)絡(luò)程序,該程序表達(dá)為一系列指令。指令由128-bit 的segment 組成,稱為SID(Segment ID),其形式為一個(gè)IPv6 地址。在頭節(jié)點(diǎn)增加一個(gè)網(wǎng)絡(luò)程序,中間節(jié)點(diǎn)就可以按照該程序包含的路徑信息轉(zhuǎn)發(fā)報(bào)文。
SRv6 技術(shù)具有很多優(yōu)點(diǎn),它不需要任何的路徑交換信令,只需要在SRv6 的頭節(jié)點(diǎn)維護(hù)每個(gè)流的狀態(tài),通過簡(jiǎn)單的網(wǎng)絡(luò)指令就可以控制轉(zhuǎn)發(fā)路徑。SRv6 協(xié)議還有一大優(yōu)勢(shì)是無縫部署,在現(xiàn)有IPv6 網(wǎng)絡(luò)中運(yùn)營商只需要升級(jí)SRv6 節(jié)點(diǎn)的設(shè)備,而不需要升級(jí)中間IPv6 轉(zhuǎn)發(fā)設(shè)備,節(jié)省升級(jí)成本。
由于SRv6 技術(shù)的諸多優(yōu)勢(shì),電信運(yùn)營商開始進(jìn)行SRv6 網(wǎng)絡(luò)試點(diǎn)[2,3],目前多采用廠家硬件設(shè)備進(jìn)行試驗(yàn)。本文擬研究采用公有云的云服務(wù)器作為SRv6 節(jié)點(diǎn)實(shí)現(xiàn)L3VPN 業(yè)務(wù),虛擬機(jī)中使用開源軟件VPP(Vector Packet Processing)[4]作為轉(zhuǎn)發(fā)面。實(shí)驗(yàn)拓?fù)浒凑赵O(shè)備所處的位置分為三個(gè)平面:公有云1 平面、公有云2 平面、客戶機(jī)平面,如圖1 所示。在公有云上開展本項(xiàng)工作具有重要意義,研究成果可應(yīng)用于SRv6 VPN、SD-WAN、多云互聯(lián)、流量工程等場(chǎng)景,為后續(xù)產(chǎn)品開發(fā)工作打下基礎(chǔ)。
圖1 基于公有云的SRv6 路徑可編程示意圖
如圖2 所示,為了實(shí)現(xiàn)SRv6,IETF 提出新增一種IPv6 擴(kuò)展頭,稱作SRH 擴(kuò)展頭[5]。該擴(kuò)展頭包含Segment List:其特征為:每一個(gè)segment 是一個(gè)IPv6 地址;segment是逆序編碼的,Segment List [0]是最后一個(gè)使用的segment,Segment List [n]是第一個(gè)使用的segment。
圖2 SRH 格式
SRv6 Segment 也稱作SRv6 SID,形式為128-bit的地址[6],如圖3 所示,包含以下部分:
圖3 SRv6 SID 格式
①Locator:用于定位,即路由到segment 父節(jié)點(diǎn)
② Function:代表設(shè)備的指令,在segment 父節(jié)點(diǎn)執(zhí)行function 定義的動(dòng)作
③Argument:可選參數(shù),用于本地function 的變量
SRv6 SID 有多種類型,表1 列出了常用的SID 類型
表1 常用的SRv6 SID 類型
SRv6 L3VPN 有兩種模式:per-CE 和per-VRF,前者每個(gè)CE 分配一個(gè)SRv6 SID,后者每個(gè)VRF 分配一個(gè)SRv6 SID,本文所實(shí)現(xiàn)的是per-VRF 模式。
大學(xué)英語的視聽說教程包括音頻和視頻兩部分。由圖片流-音頻流-視頻流等組成,構(gòu)成多模態(tài)教學(xué)。在教學(xué)過程中,教師根據(jù)教學(xué)內(nèi)容和學(xué)習(xí)者情況,還可以適當(dāng)增加模態(tài),合理組合多種模態(tài),以取得較好的教學(xué)效果。下面就新世紀(jì)大學(xué)英語視聽說教程中的音頻教學(xué)和視頻教學(xué)分別探討其多模態(tài)教學(xué)法。
SRv6 L3VPN 模型示意圖如圖4 所示,設(shè)PE1 的End.DT4 SID 為1::1,P 的END SID 為2:2,PE2 的End.DT4 SID 為3::3,其工作流程如下:
圖4 SRv6 L3VPN 模型示意圖
(1)在首節(jié)點(diǎn)PE1 配置SRv6 TE 策略,Segment List 為<2::2,3::3>;
(2)首節(jié)點(diǎn)PE1 收到CE1 發(fā)出的單播報(bào)文后,將會(huì)查找VPN 路由表,該路由的出接口為SRv6 TE 策略,PE1 為報(bào)文封裝帶有SRH 的IPv6 報(bào)文頭并發(fā)出,其中SRH 包含Segment List;
(3)中間P 節(jié)點(diǎn)將根據(jù)SRH 信息轉(zhuǎn)發(fā),使用IPv6目的地址查找Local SID 表,命中End SID 后,IPv6 目的地址將會(huì)更換為3::3;
(4)報(bào)文到達(dá)尾節(jié)點(diǎn)PE2 后,將用IPv6 目的地址查找Local SID 表,命中End.DT4 SID 后,去除IPv6 報(bào)文頭,使用內(nèi)層目的地址查找VPN 路由表,轉(zhuǎn)發(fā)至CE2。
VPP 是開源的高性能數(shù)據(jù)報(bào)文處理擴(kuò)展平臺(tái),它的優(yōu)勢(shì)有高性能、模塊化、靈活性和豐富的特征集,從17.04 版本開始支持SRv6。根據(jù)SRv6 節(jié)點(diǎn)角色的不同,VPP 配置也會(huì)有所不同。對(duì)于首尾節(jié)點(diǎn),需要配置Segment List 和End.DT4 類型Local SID 等;中間節(jié)點(diǎn)較為簡(jiǎn)單僅需要配置End 類型Local SID。以下為VPP實(shí)現(xiàn)SRv6 L3VPN 的關(guān)鍵配置:
(1)首尾節(jié)點(diǎn)配置示例(如圖5 所示)
圖5 首尾節(jié)點(diǎn)配置示例
(2)中間節(jié)點(diǎn)配置示例(如圖6 所示)
圖6 中間節(jié)點(diǎn)配置示例
如圖1 所示,本文所使用的公有云1 為天翼云,公有云2 為阿里云,為了方便實(shí)現(xiàn),客戶機(jī)平面也在阿里云開啟。實(shí)驗(yàn)分為兩部分:(1)公有云內(nèi)進(jìn)行路徑切換,(2)公有云間進(jìn)行平面切換。
本實(shí)驗(yàn)?zāi)康氖窃谝粋€(gè)公有云內(nèi)實(shí)現(xiàn)SRv6 L3VPN 業(yè)務(wù),并且可根據(jù)源節(jié)點(diǎn)加入的Segment List 不同而切換轉(zhuǎn)發(fā)路徑。
在阿里云平臺(tái)部署四臺(tái)云服務(wù)器,如圖7 所示地點(diǎn)分別在深圳、北京、上海和呼和浩特,其中深圳云服務(wù)器和北京云服務(wù)器作為SRv6 路徑的首尾節(jié)點(diǎn)。Host 與VPP虛擬機(jī)建立在同一個(gè)專用網(wǎng)絡(luò),通過阿里云交換機(jī)相連。
圖7 公有云內(nèi)路徑切換實(shí)驗(yàn)拓?fù)鋱D
搭建L3VPN over SRv6 業(yè)務(wù)場(chǎng)景,位于深圳的Host1將通過搭建的SRv6 VPN 與北京的Host2 互通,其中SRv6 路徑有兩條,分別為路徑1:深圳-上海-北京,路徑2:深圳-呼和浩特-北京。路徑切換測(cè)試偽代碼如圖8 所示,兩路徑互為主備,若主路徑發(fā)生故障,將切換到備路徑,測(cè)試兩路徑的SRv6 L3VPN 時(shí)延,結(jié)果如表2所示。
圖8 公有云內(nèi)路徑切換實(shí)驗(yàn)偽代碼
表2 SRv6 單平面路徑切換實(shí)驗(yàn)平均時(shí)延
實(shí)驗(yàn)結(jié)果表明公有云內(nèi)可有效按照程序設(shè)定切換SRv6 路徑,使得流量按特定路徑轉(zhuǎn)發(fā)。測(cè)試得出路徑1的時(shí)延較短,該結(jié)果可作為主路徑初始設(shè)置的參考。
本實(shí)驗(yàn)使用SRv6 協(xié)議將流量在兩個(gè)云平面之間進(jìn)行切換,切換后的路徑可用作備份鏈路或者流量負(fù)載分擔(dān)鏈路。例如,當(dāng)兩云平面互為主備時(shí),若一個(gè)公有云平面的中間鏈路發(fā)生故障時(shí),可以將路徑切換到另外一個(gè)公有云。
在阿里云和天翼云的上海和廣東資源池部署云服務(wù)器,如圖9 所示具體部署方式如下:阿里云的上海和深圳資源池各部署兩臺(tái)服務(wù)器,其中一臺(tái)為主機(jī)Host,另外一臺(tái)為VPP 虛擬機(jī);在天翼云的上海和廣州資源池各部署一臺(tái)服務(wù)器,均為VPP 虛擬機(jī)。阿里云的上海云服務(wù)器和深圳云服務(wù)器作為SRv6 路徑的首尾節(jié)點(diǎn)。Host與VPP 虛擬機(jī)建立在同一個(gè)專用網(wǎng)絡(luò),通過阿里云交換機(jī)相連。搭建L3VPN over SRv6 業(yè)務(wù)場(chǎng)景,位于上海的Host1 將通過搭建的SRv6 VPN 與深圳的Host2 互通,其中SRv6 路徑有兩條,分別為單平面路徑:阿里云上海-阿里云深圳,雙平面路徑:阿里云上海-天翼云上海-天翼云廣州-阿里云深圳。對(duì)不同區(qū)域云內(nèi)、同區(qū)域云間、單平面和端到端時(shí)延進(jìn)行測(cè)試,實(shí)驗(yàn)偽代碼如圖10 所示,實(shí)驗(yàn)結(jié)果分別如表3、表4 和表5 所示。
圖9 SRv6 公有云平面切換實(shí)驗(yàn)拓?fù)鋱D
圖10 公有云間平面切換實(shí)驗(yàn)偽代碼
從表5 可以看出,流量轉(zhuǎn)發(fā)路徑可以有效地從一個(gè)公有云平面切換到另外一個(gè)公有云平面,切換平面后時(shí)延增大,分析表3、表4 可以得出原因在于增加了同區(qū)域云間切換時(shí)延。
表3 不同區(qū)域云內(nèi)時(shí)延測(cè)試
表4 同區(qū)域云間時(shí)延測(cè)試
表5 端到端時(shí)延測(cè)試
本文概述了SRv6 技術(shù)的基本原理,分析了其優(yōu)勢(shì)以及在公有云上使用的意義,研究了基于公有云的SRv6 路徑可編程性?;陂_源軟件VPP,實(shí)現(xiàn)了公有云內(nèi)的路徑切換和公有云平面切換,研究結(jié)果可應(yīng)用于SD-WAN 和多云互聯(lián)等場(chǎng)景。下一步將在本工作基礎(chǔ)上增加SDN 控制器,用于路徑下發(fā)和流量監(jiān)控等,從而實(shí)現(xiàn)完整SD-WAN 的功能。