- SRv6網(wǎng)絡(luò)部署指南
- 金閩偉 李振斌主編
- 2247字
- 2025-07-11 16:39:35
2.2.3 NEXT&REPLACE-C-SID Flavor及工作范例
1.NEXT&REPLACE-C-SID Flavor
前文提到REPLACE-C-SID中第一個(gè)SID無(wú)法壓縮,導(dǎo)致SRH中的SID數(shù)量少時(shí),傳輸效率提升的效果不明顯;NEXT-C-SID中每個(gè)C-SID Container都要攜帶Locator Block,這會(huì)造成冗余。這兩種Flavor單獨(dú)使用時(shí)都無(wú)法提供最佳效果。NEXT&REPLACE-C-SID Flavor結(jié)合了兩種Flavor,吸取了它們的優(yōu)點(diǎn),實(shí)現(xiàn)了最佳的傳輸效率提升效果。
NEXT&REPLACE-C-SID的第一個(gè)C-SID Container的編碼方式同NEXT-C-SID,即攜帶一個(gè)較短的Locator Block和若干個(gè)C-SID,但后續(xù)的C-SID Container的編碼方式同REPLACE-C-SID。因此它繼承了NEXT-C-SID第一行可以攜帶多個(gè)C-SID的優(yōu)點(diǎn),解決了REPLACE-C-SID第一行只能攜帶一個(gè)C-SID的問(wèn)題,同時(shí),也繼承了REPLACE-C-SID后續(xù)的C-SID Container不攜帶Locator Block的優(yōu)點(diǎn),解決了NEXT-C-SID每個(gè)C-SID Container都需要帶Locator Block的問(wèn)題,從而提供了最佳的傳輸效率。以16 bit C-SID方案為例,對(duì)應(yīng)的編碼格式如圖2-15所示。

圖2-15 NEXT&REPLACE-C-SID對(duì)應(yīng)的C-SID Container編碼格式
對(duì)應(yīng)地,NEXT&REPLACE-C-SID Flavor SID的轉(zhuǎn)發(fā)是NEXT-C-SID和REPLACE-C-SID的結(jié)合版。簡(jiǎn)化的NEXT&REPLACE-C-SID Flavor的偽代碼如下所示。
If ipv6 DA is a NEXT&REPLACE-C-SID Flavor SID if DA.Arg.Next!=0 NEXT-C-SID Processing else: REPLACE-C-SID Processing;
說(shuō)明
DA.Arg.Next表示DA中下一個(gè)C-SID,即Arguments中最高n bit(即C-SID長(zhǎng)度)的數(shù)值。
當(dāng)收到一個(gè)NEXT&REPLACE-C-SID Flavor SID時(shí),如果IPv6 DA中當(dāng)前C-SID后面的n bit(即C-SID的長(zhǎng)度)非0,則執(zhí)行NEXT-C-SID Flavor的處理:將后續(xù)的比特左移,更新IPv6 DA繼續(xù)轉(zhuǎn)發(fā)。若后面的n bit(即C-SID的長(zhǎng)度)為0,代表IPv6 DA中的C-SID已經(jīng)是當(dāng)前C-SID Container中最后一個(gè)C-SID,則執(zhí)行REPLACE-C-SID的處理,即通過(guò)SL和SI的指示,從SRH中取出下一個(gè)C-SID來(lái)更新IPv6 DA。換句話(huà)說(shuō),只要IPv6 DA中存在多個(gè)C-SID,則執(zhí)行NEXT-C-SID處理;若只存在一個(gè)C-SID,則執(zhí)行REPLACE-C-SID處理。
以16 bit C-SID為例,NEXT&REPLACE-C-SID Flavor的更新示例如圖2-16所示。
與REPLACE-C-SID和NEXT-C-SID同理,NEXT&REPLACE-C-SID SID也支持與普通SID在一個(gè)SRH中混編,從而支持從普通128-bit SRv6平滑演進(jìn)到SRv6傳輸效率提升的方案。

圖2-16 NEXT&REPLACE-C-SID Flavor的更新示例
2.NEXT&REPLACE-C-SID Flavor工作范例
假設(shè)NEXT&REPLACE-C-SID Flavor方法使用的網(wǎng)絡(luò)拓?fù)淙鐖D2-10所示,其中N1到N9所有節(jié)點(diǎn)都支持NEXT&REPLACE-C-SID Flavor方法。
網(wǎng)絡(luò)初始化之后,節(jié)點(diǎn)配置NEXT&REPLACE-C-SID Flavor的SID,并通過(guò)IGP、BGP、BGP-LS等協(xié)議發(fā)布到網(wǎng)絡(luò)中或上送給控制器。
與NEXT-C-SID Flavor類(lèi)似,各個(gè)節(jié)點(diǎn)配置SID可以遵循表2-3所示的規(guī)則,其中第一行的SID為擁有Node ID字段的可路由的SID,會(huì)被發(fā)布到其他節(jié)點(diǎn),Locator Block長(zhǎng)度為64 bit,Node ID長(zhǎng)度為16 bit,F(xiàn)unction ID長(zhǎng)度為16 bit,Arguments長(zhǎng)度為32 bit。第二行SID是其關(guān)聯(lián)SID,無(wú)Node ID字段,不可路由,僅在本節(jié)點(diǎn)有效,不會(huì)發(fā)布到其他節(jié)點(diǎn),可進(jìn)一步節(jié)省開(kāi)銷(xiāo)。第三行SID是擁有Node ID字段的End.DT4 VPN SID,而最后一行是與之關(guān)聯(lián)的無(wú)Node ID的本地SID。
表2-3 NEXT&REPLACE-C-SID Flavor方法配置SID的規(guī)則

這里假設(shè)16 bit的NEXT&REPLACE-C-SID的GIB為0x0000~0x9FFF,LIB為0xA000~0xFFFF。全局可路由SID僅可從GIB中分配,而本地SID僅可從LIB中分配。分配方法同前述16 bit的NEXT-C-SID的工作范例。
同理,從GIB中分配的Node ID可以在使用時(shí)去掉,僅使用從LIB中分配的本地Function ID來(lái)指導(dǎo)轉(zhuǎn)發(fā)即可,從而進(jìn)一步減少開(kāi)銷(xiāo)。但由于從LIB中分配的數(shù)值僅本地有效,所以需要確保對(duì)應(yīng)的本地C-SID僅在分配它的節(jié)點(diǎn)上被處理。
而為了支持單獨(dú)的LIB匹配,需要多配置一條本地的SID表項(xiàng),用于匹配單獨(dú)使用LIB C-SID的情況。如節(jié)點(diǎn)N1分配的SID 2001:DB8:A:0:1:F001::,還需要額外增加一個(gè)對(duì)應(yīng)的不攜帶Node ID的SID 2001:DB8:A:0:F001:: (注意此處的Node ID 1被省略),用于匹配僅使用Function ID的C-SID。這是NEXT&REPLACE-C-SID使用GIB/LIB的代價(jià)之一,即表項(xiàng)比全部使用帶Node ID的可路由的普通SRv6或REPLACE-C-SID的本地轉(zhuǎn)發(fā)表項(xiàng)多一倍。
在這個(gè)案例中,假設(shè)報(bào)文將從N1轉(zhuǎn)發(fā)到N9,Segment List共包含9個(gè)SID。
● 前8個(gè)SID數(shù)值為2001:DB8:A:0:k:F001::,是由節(jié)點(diǎn)N1~N8分配的NEXT&REPLACE-C-SID Flavor的End.X SID,Node ID為從GIB中分配的k,F(xiàn)unction ID為從LIB中分配的F001。
● 2001:DB8:A:0:9:FF10::,NEXT&REPLACE-C-SID Flavor End.DT4類(lèi)型的VPN SID,Node ID為從GIB中分配的9,F(xiàn)unction ID為從LIB中分配的FF00。
在Segment List編碼為壓縮Segment List時(shí),可將全部的Node ID忽略掉,僅使用對(duì)應(yīng)SID的Function ID部分作為C-SID編碼到C-SID Container中即可,從而省掉GIB分配的Node ID的開(kāi)銷(xiāo),即從2001:DB8:A:0:k:F001::變?yōu)?001:DB8:A:0:F001::(若攜帶對(duì)應(yīng)的GIB分配的C-SID,則攜帶的C-SID數(shù)量翻倍,壓縮效果等價(jià)于使用32 bit C-SID)。 此處存在一個(gè)強(qiáng)制的要求,即必須逐跳指定SID,才能使得每個(gè)SID都能在對(duì)應(yīng)的節(jié)點(diǎn)上正確處理;若存在跨AS多跳轉(zhuǎn)發(fā)的場(chǎng)景,則必須使用可路由的SID引導(dǎo)數(shù)據(jù)包到指定節(jié)點(diǎn),再處理本地SID,因此SID數(shù)量也會(huì)相應(yīng)增加。
圖2-17給出了經(jīng)過(guò)編碼之后的NEXT&REPLACE-C-SID Flavor方法轉(zhuǎn)發(fā)示意。

圖2-17 NEXT&REPLACE-C-SID Flavor方法轉(zhuǎn)發(fā)示意
NEXT&REPLACE-C-SID Flavor方法的轉(zhuǎn)發(fā)流程簡(jiǎn)述如下。
① 節(jié)點(diǎn)N1封裝好數(shù)據(jù)包后,目的地址2001:DB8:A:0:F001:F001:F001:F001匹配到本節(jié)點(diǎn)發(fā)布的NEXT&REPLACE-C-SID Flavor End.X SID關(guān)聯(lián)的本地SID 2001:DB8:A:0:F001::/80。IPv6 DA中Arguments非0,因此將F001:F001:F001左移,更新IPv6 DA為2001:DB8:A:0: F001:F001:F001::,然后將數(shù)據(jù)包從指定的接口發(fā)往N2。
② 節(jié)點(diǎn)N2收到數(shù)據(jù)包時(shí),目的地址2001:DB8:A:0: F001:F001:F001::匹配到本節(jié)點(diǎn)發(fā)布的NEXT&REPLACE-C-SID Flavor End.X SID關(guān)聯(lián)的本地SID 2001:DB8:A:0:F001::/80。IPv6 DA中Arguments非0,因此將F001:F001左移,更新IPv6 DA為2001:DB8:A:0:F001:F001::,然后將數(shù)據(jù)包從指定的接口發(fā)往N3。
③ 同理,節(jié)點(diǎn)N3將數(shù)據(jù)包轉(zhuǎn)發(fā)給N4。
④ 節(jié)點(diǎn)N4收到數(shù)據(jù)包時(shí),目的地址2001:DB8:A:0:F001::匹配到本節(jié)點(diǎn)發(fā)布的NEXT&REPLACE-C-SID Flavor End.X SID關(guān)聯(lián)的本地SID 2001:DB8:A:0:F001::/80,IPv6 DA中當(dāng)前C-SID后面的n bit(即C-SID的長(zhǎng)度)為0,因此進(jìn)入REPLACE-C-SID flavor的處理:此時(shí)Arguments.SI為0,因此將SL減1,設(shè)置為0,另外,
C-SID Container中有8個(gè)C-SID,因此將SI設(shè)置為7。此后N4將下一個(gè)C-SID從SRH[0][7]取出并更新到DA,然后將數(shù)據(jù)包從指定的接口發(fā)往N5。
⑤ 與REPLACE-C-SID處理同理,后續(xù)節(jié)點(diǎn)N6~N8按照REPLACE-C-SID的轉(zhuǎn)發(fā)方式繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)包。
⑥ 節(jié)點(diǎn)N9收到數(shù)據(jù)包時(shí),基于目的地址2001:DB8:A:0:FF10::3查表并匹配到FIB中的NEXT&REPLACE-C-SID Flavor End.DT4 SID關(guān)聯(lián)的本地SID 2001:DB8:A:0:FF10::對(duì)應(yīng)的轉(zhuǎn)發(fā)表項(xiàng),按照指令將外層報(bào)文頭解封裝,使用內(nèi)層報(bào)文繼續(xù)在VPN表中查表轉(zhuǎn)發(fā)。
3.總結(jié)
綜上所述,NEXT-C-SID和REPLACE-C-SID在不同的場(chǎng)景中都能提供較好的傳輸效率,但都存在較為明顯的約束,而兩者的結(jié)合可以達(dá)到最佳的傳輸效率提升效果。
NEXT&REPLACE-C-SID綜合了REPLACE-C-SID和NEXT-C-SID的優(yōu)勢(shì)。當(dāng)采用32 bit NEXT&REPLACE-C-SID方案時(shí),因?yàn)榈谝粋€(gè)C-SID Container里面可能有多個(gè)C-SID,所以可以獲得比32 bit REPLACE-C-SID更高的傳輸效率。但這種傳輸效率的提升效果有限,因此推薦直接使用32 bit REPLACE-C-SID,可使得SRv6 SID的Locator Block和Arguments規(guī)劃也具有更好的可擴(kuò)展性。如果SRv6網(wǎng)絡(luò)的規(guī)模可控,并需要達(dá)成更高的傳輸效率,可以采用16 bit NEXT&REPLACE-C-SID方案。這樣不論Segment List里SID的數(shù)量多少,都能夠獲得比NEXT-C-SID或REPLACE-C-SID更高的傳輸效率。
- Web安全防護(hù)指南:基礎(chǔ)篇
- 面向物聯(lián)網(wǎng)的CC2530與傳感器應(yīng)用開(kāi)發(fā)
- 物聯(lián)網(wǎng)識(shí)別技術(shù)
- 網(wǎng)絡(luò)故障現(xiàn)場(chǎng)處理實(shí)踐(第4版)
- Windows Server 2003 Active Directory Design and Implementation: Creating, Migrating, and Merging Networks
- SSL VPN : Understanding, evaluating and planning secure, web/based remote access
- 計(jì)算機(jī)網(wǎng)絡(luò)工程實(shí)用教程(第2版)
- 城域網(wǎng)與廣域網(wǎng)(第2版)
- 6G新技術(shù) 新網(wǎng)絡(luò) 新通信
- 4G小基站系統(tǒng)原理、組網(wǎng)及應(yīng)用
- 移動(dòng)物聯(lián)網(wǎng):商業(yè)模式+案例分析+應(yīng)用實(shí)戰(zhàn)
- 人際網(wǎng)絡(luò)
- 數(shù)字王國(guó)里的虛擬人:技術(shù)、商業(yè)與法律解讀
- 走近奇妙的物聯(lián)網(wǎng)
- Hands-On Reactive Programming in Spring 5