SRv6可編程技術-SRv6 Policy

一、當前網絡面臨的挑戰

隨着企業信息化建設的深入、移動互聯網和雲數據中心的發展,社會走向全面數字化和智能化。傳統只能提供有限電信級連接的網絡已經無法滿足以云爲中心的業務對網絡海量的、隨時隨地可能發起的數據連接的要求。未來網絡應當滿足以下要求:

海量連接擴展能力
信息自動化、IoT等業務發展,要求網絡的連接數量可以無限擴展。除了帶寬,網絡中應儘量減少其他與業務相關的限制。未來網絡應當在帶寬能夠滿足的情況下,可以任意發展業務,減少業務對網絡能力的感知。

業務任意接入、任意連接能力
傳統的電信網絡嚴格限制了業務接入點,在全面數字化的時代,業務接入點不可控。網絡需要滿足業務任意點接入,跨越任意區域連接的能力。

差異化服務能力
傳統的電信網絡爲用戶提供了無差異的連接服務,導致對網絡質量要求不高的業務獲得了過高的服務,造成資源浪費,而一些有特別質量要求的業務卻難以保證。未來的網絡應當由業務根據需求選擇網絡質量,既節省資源,又保障業務。

二、SRv6網絡可編程

網絡編程的概念來自於計算機編程。在計算機編程中,人類可以將自己的意圖翻譯成計算機可以理解的一系列指令,計算機通過執行指令來完成工作,滿足人類的各種需求。類似地,如果網絡也能像計算機一樣,將網絡承載的業務的意圖翻譯成沿途網絡設備的一系列轉發指令,就可以實現網絡編程,滿足業務的定製化需求。

SRv6就是基於如上考慮,將網絡功能指令化,通過一個128比特的指令來表達網絡功能。在SRv6網絡裏,業務需求可以被翻譯成有序的指令列表,由沿途的網絡設備去執行,達到網絡業務的靈活編排和按需定製。

三、SRv6 Policy技術原理及應用

1.SRv6 Policy基本原理

圖1.SRv6 Policy基本原理

 

SRv6 Policy利用Segment Routing的源路由機制,通過在頭結點封裝一個有序的指令列表來指導報文穿越網絡。SRv6利用IPv6地址128 bit的可編程能力,豐富了SRv6指令表達的網絡功能範疇,除了用於標示轉發路徑的指令外,還能標示VAS,例如:防火牆,應用加速等網絡功能,或者用戶網關等功能。除此之外,SRv6還有着非常強大的擴展性,如果要支持一個新的網絡功能,只需要定義一個新的指令即可,而不需要改變協議的機制或部署。這大大縮短了網絡創新業務的交付週期。所以說,SRv6 Policy可以實現業務的端到端需求,是實現SRv6網絡編程主要的機制。

2.SRv6 Policy和傳統隧道的區別

表2-1 SRv6 Policy和傳統隧道的區別

 

目標:TE Tunnel面向的是兩個網元之間的一個連接。是站在網絡的角度定義的,它還是網絡基礎設施範疇。SRv6 Policy面向的是特定業務的體驗,交付的是服務。對基礎設施而言,不承諾用戶使用這個基礎設施的體驗,只滿足交付這個設施時定義的規格即可,例如:帶寬。SRv6 Policy交付的是服務,對業務最終體驗負責。

功能:TE Tunnel的功能是流量工程,優化網絡資源和提升網絡質量。SRv6 Policy的功能是滿足業務的端到端需求,連接,SLA,可靠性,安全,SFC。

部署:傳統TE Tunnel以靜態人工規劃爲主,SRv6 Policy根據業務動態,按需自動化創建爲主。

變化:TE Tunnel只需要關注網絡本身變化,例如:網絡故障切換等。而SRv6 Policy需要響應各種變化,除了網絡本身的變化,還需要響應包括用戶業務量的變化,用戶體驗變化等。

數量: SRv6 Policy的目標是支持百萬級的連接數量,所以,SRv6 Policy的設計原則是輕量化,儘量減少SRv6 Policy對設備資源的佔用,得益於Segment Routing源路由中間節點無狀態,SRv6 Policy只需要在頭節點維護連接狀態,這使得網絡狀態數量從N2級下降的N。同時,對了減少對資源佔用的特性依賴,例如:BFD,SRv6 Policy支持端到端本地保護能力。還有,提升自動化能力,減少單SRv6 Policy的運維工作量,使得維護百萬級的SRv6 Policy成爲可能。

自動化:除了減少部署,運維工作量,SRv6 Policy的自動化還體現在自動響應網絡變化,業務需求變化,用戶體驗變化等。

3.SRv6 Policy模型

圖2.SRv6 Policy模型

 

SRv6 Policy模型包含如下要素:

(1)Key值:SRv6 Policy使用如下三元組作爲Key,全局唯一標識一個SRv6 Policy:

頭節點(Headend):標識SRv6 Policy的頭節點。Headend可以將流量導入一個SRv6 Policy中。

顏色(Color):標識SRv6 Policy的ID,可與一系列業務屬性相關聯,比如低時延、高帶寬等,可理解爲業務需求模板ID。目前沒有顯示編碼規則,其值由管理者分配。比如,端到端時延小於10毫秒的策略可分配Color爲100。

目的節點( Endpoint):標識SRv6 Policy的目的地址。

當SRv6 Policy下發到頭節點時,由於所有SRv6 Policy的Headend字段均爲此節點,所以在頭節點上通過即可唯一標識一個SRv6 Policy。所以在頭節點上通過來引導流量進入SRv6 Policy。
前面我們講過,SRv6 Policy是面向業務體驗設計的,Color描述的就是滿足業務體驗對網絡的要求:例如:時延,帶寬,可靠性等。SRv6 Policy的這個設計使得SRv6 Policy可以直接和業務交互,省略了從業務需求到網絡語言再到網絡對象的翻譯過程。

(2)Candidate Path:一個SRv6 Policy可能關聯多個Candidate Path,每個Candidate Path附帶優先級(Preference)。存在多個Candidate Path時,SRv6 Policy選擇優先級最高的Candidate Path作爲主路徑。Candidate path是通過BGP SR Policy/PCEP等協議向頭端發送SR Policy可選路徑的基礎單元,不同的協議會下發不同的Candidate path。

從圖2可知,是在SRv6 Policy內部唯一標識一條Candidate Path的標識,其中Protocol-Origin描述Candidate Path通過什麼協議/途徑生成,originator描述了生成該Candidate path的節點,discriminator則是在空間下區分Candidate path的ID。比如某節點通過BGP發佈了屬於SRv6 Policy的3個Candidate Path,這3個Candidate Path可以通過discriminator來區分。

SRv6 Policy支持多種算路方式:PCE集中算路,頭節點算路,手工規劃路徑,FlexAlgo算路,多Candidate Path的設計可以對業務屏蔽這些細節,業務不需要關心具體的算路方式,只需要關注業務需求本身,這些不同的算路方式形成的路徑通過多個Candidate Path都封裝在SRv6 Policy內部。而傳統TE Tunnel不同算路方式則採用不同的TE tunnel承載,業務需要看到不同的TE tunnel,瞭解這些TE tunnel的實現細節,才能匹配到響應的隧道。同時,Candidate Path也用於支持主備冗餘路徑,逃生路徑,SRv6 Policy把這些保護,逃生路徑也都封裝在SRv6 Policy內部,業務也不需要看到這些細節。

(3)Segment List:Segment List標識通過SRv6 Policy向Endpoint發送流量的源路由路徑。一個Candidate Path可以關聯多個Segment List,通過Segment List附帶的權重屬性(Weight)來控制流量在多個SR路徑中的負載比例,從而實現ECMP/UCMP。

多SegmentList的設計可以提升網絡彈性,滿足業務實時變化的需求,實現網絡資源的動態彈性擴展。例如:某類業務需要將帶寬從2G增加到5G,SRv6 Policy可以再計算一條3G帶寬的路徑。同時UCMP也可以更方便的實現對網絡資源的優化,如果某條SegmentList路徑的流量出現了過載,可以調整SegnemtList的權重以降低該路徑的負載。

(4)Binding SID:Binding SID(BSID)也是Segment Routing的基礎指令,它用於標識整個Candidate path,提供隧道連接,流量引導等功能。報文如果攜帶Candidate path對應的BSID,會被引導到對應的Candidate path。

如果我們把SRv6 Policy看成是一個網絡服務,那Binding Sid就是訪問這個服務的接口。所以,SRv6 Policy的這個設計是一個訂閱發佈模型,業務根據自身的需求來訂閱網絡服務,網絡可以把他提供的連接服務的接口提供給業務。那Binding Sid既然是接口,它就要滿足接口的原則:

平臺獨立性:任何業務都可以調用該接口,而不需要關注系統內部實現。前面我們已經提到,SRv6 Policy把所有的實現細節都封裝在內部,業務在使用SRv6 Policy的時候,只需要看到這個接口就可以。

系統可靠性:在接口已經發布的情況下,接口應該對契約負責。這裏其實分兩種情況,如果該接口是爲特定業務服務的,那SRv6 Policy就需要保證,不管這個業務本身如何變化,SRv6 Policy都需要保證契約裏面承諾的服務,這個契約就是Color裏面定義的內容。如果SRv6 Policy是爲廣泛業務服務的,那它就要保證,不管多少業務調用這個接口,它也要保證契約裏面承諾的服務,這就要求SRv6 Policy具備網絡資源的彈性伸縮能力。

穩定性:接口需要具備不易變性,Bsid需要維持在SRv6 Policy生命週期內維持不變,不管網絡拓撲的變化,還是業務本身的變化,路徑變化,SRv6 Policy都需要維持Bsid儘量不變。

4.SRv6 Policy引流

引流意味着SRv6 Policy對業務提供服務的方式,前面章節中我們介紹了SRv6 Policy幾種訪問接口:Binding Sid,Endpoint + Color。不同的接口提供多種引流方式,以適用於不同的業務場景:

Binding SID引流

圖3.Binding SID引流

 

Binding SID引流是一種數據面引流方式,用於業務頭結點和SRv6 Policy頭結點不是同一個結點的場景。例如:跨管理域提供SRv6 Policy連接服務,或者SRv6 Policy作爲端到端Path的一個子Path場景。

如上圖所示,結點A和結點B要穿越一個第三方網絡,希望第三方網絡提供一個低時延的連接服務,我們可以在第三方網絡的邊緣結點C創建一個低時延的SRv6 Policy,其Binding Sid爲B1::B100,結點A需要使用該連接服務的時候,只需要將Binding Sid B1::B100插入到結點A發起的報文中的SegmentList即可。報文轉發到結點C的時候,結點C執行End.B6.Insert指令,會將結點C的SRv6 Policy的路徑插入一個新的擴展頭,引導報文走低時延路徑。

這種場景使用Binding Sid的好處是:

  • 網絡以透明的方式對外提供連接服務,可以在不體現網絡內部路徑細節的情況下對外提供連接服務。
  • 隔離兩個網絡的變化,當網絡低時延路徑發生變化的時候,訪問該連接服務的網絡設備不用感知。

Color引流
因爲SRv6 Policy引入了Color,而Color可以作爲BGP路由的擴展團體屬性攜帶,因此在將業務引流到SRv6 Policy時,可以精確到逐條路由的控制粒度。

Color是SRv6 Policy非常重要的屬性,它是業務和隧道的錨點。如圖4所示,Color能夠關聯一個或多個業務需求模板,例如:低時延,帶寬和親和屬性等。SRv6 Policy根據Color進行算路。另一方面,業務也使用Color定義網絡連接的需求。這樣,通過業務和SRv6 Policy的Color進行匹配,就能實現自動引流。這樣,在部署業務的時候,不依賴關心隧道的定義,只需要定義業務的需求即可,這樣實現了業務部署和隧道部署的解耦。

圖4.SRv6 Policy引流示意圖

 

如圖5所示,通過Color進行引流的具體流程介紹如下:

  • 控制器通過BGP或其他方式下發SRv6 Policy,Color爲123。
  • 節點E通過路由策略設置路由的Color擴展團體屬性值爲123,並在發佈路由時攜帶該屬性。
  • 節點A收到路由以後,會進行路由迭代。迭代的過程是:使用BGP路由的原始下一跳匹配SRv6 Policy的Endpoint,使用BGP路由的Color屬性匹配SRv6 Policy的Color,這樣一條BGP路由就能通過SRv6 Policy的Key值匹配到一個SRv6 Policy。路由迭代成功之後,節點A將路由和關聯的SRv6 Policy安裝到FIB表。

圖5.Color引流

 

通過以上方法,當流量到達節點A時,根據目的地址查詢路由將得到隧道出接口爲SRv6 Policy,然後執行對應的SRv6 Policy,進行SRv6報文封裝並轉發,實現Color自動引流到SRv6 Policy。
這種引流模式下一般可以通過路由策略控制BGP路由攜帶的Color值,叫做着色。着色策略十分靈活,不僅是尾節點,而且頭節點甚至RR反射器,都可以根據需求修改Color的值。

DSCP引流
除了Binding SID和Color引流,還可以通過IP報文頭中封裝的DSCP值來引流,這種方式可以對命中同一個路由但不同來源的業務進一步細分。例如,可以在頭節點將多個SRv6 Policy形成一個組(Group),並在Group內指定每個SRv6 Policy和DSCP值的映射關係,然後將業務綁定到指定的Group。這樣當頭節點收到業務流量時,可以根據IP報文頭中攜帶的DSCP值在對應的Group中找到對應的SRv6 Policy,從而完成引流。這種引流方式要求在源頭區分業務,並且指定不同的DSCP值。

在一些場景下,可能希望結合以上兩種引流方式(即,既要匹配業務的下一跳 + Color,又要區分DSCP),那麼可以爲Group引入Color,將Group的標識也定義爲。通過引流策略指定,一條業務路由根據下一跳和Color屬性不再是去匹配一個SRv6 Policy,而是匹配一個Group,同時轉發平面再根據收到的業務流量的DSCP值在該Group內匹配對應的SRv6 Policy。

Color only引流

圖6.Color Only引流

 

某些場景,我們並不關心隧道目的地址,如上圖,網絡中部署了一個流量清洗中心,我們可以創建一個SRv6 Policy,目的地址爲0::0,Color 123表示流量需要引導到清洗中心,SegmentList只需要指定清洗中心這一個結點即可,由於VPN Sid本身就具備路由能力,所以即使SRv6 Policy無法將報文引導到真正的目的地址,通過VPN Sid還是可以做到,這樣做的好處是我們全網只需要創建一個SRv6 Policy,然後下發到所有邊緣結點,然後將需要引導到清洗中心的流量引流到這個SRv6 Policy,就可以替代從任意源到任意目的地的SRv6 Policy。Color only引流優選匹配目的地址和Color都能匹配的SRv6 Policy,如果匹配不到,則只匹配Color。

5.SRv6 Policy算路

SRv6 Policy的Candidate Path可以通過多種方式生成,主要包括靜態指定路徑,頭節點算路和控制器算路三類。不同方式生成的Candidate Path可以通過Protocol-Origin字段來區分。以下展開介紹。

靜態指定路徑
靜態指定路徑是指通過CLI/Netconf等方式人工規劃,手工配置SRv6 Policy, 通過靜態配置的方式創建了SRv6 Policy的一個路徑。靜態配置SRv6 Policy時,Endpoint、Color、以及Candidate Path的Preference和Segment List等都是必須配置,且Preference不允許重複。對於靜態配置的SRv6 Policy,Binding SID在Locator的靜態段範圍內配置。

靜態配置路徑的方式無法自動響應網絡拓撲的變化,當指定的鏈路或節點故障的時候,無法觸發SRv6 Policy重路由,會導致流量持續中斷。因此在部署的時候,靜態配置的SRv6 Policy一般需要規劃兩條不相交路徑,並使用連通性檢測機制來檢查路徑的可達性。當某條路徑故障的時候,可以快速切換到其他路徑,以保證網絡可靠性。同時,爲了保證手工配置的SegmentList不變,使用靜態配置SRv6 Sid來保證持久化,以使得設備重啓,倒換,鄰居UP/Down等廠家Sid能維持不變。

頭節點算路
如圖8所示,頭節點算路和RSVP-TE類似。首先頭節點利用IGP攜帶的TE信息和IGP鏈路狀態信息組成TEDB,然後基於CSPF算法按照帶寬、時延、SRLG和不相交路徑等約束計算滿足條件的路徑,並安裝相應的SRv6 Policy指導轉發。

圖7.頭節點算路

 

頭節點算路有如下限制:

  • 由於頭節點沒有跨域的拓撲,所以只能計算單個IGP域的路徑,無法支持跨域的路徑計算。
  • 由於SR中間節點不維護連接狀態,所以無法支持資源佔用,也不支持預留帶寬算路。

控制器算路
如圖9所示,控制器通過BGP-LS等收集網絡拓撲、TE信息以及SRv6信息,並根據業務需求集中進行路徑計算,然後通過BGP/PCEP等協議將SRv6 Policy下發到頭節點。控制器算路能夠支持全局調優、資源預留和端到端跨域。

圖8.控制器算路

 

對於控制器下發的SRv6 Policy,控制器最初下發SRv6 Policy時不攜帶Binding SID,路由器接收SRv6 Policy後主動在Locator的動態段範圍內隨機分配一個Binding SID,然後通過BGP-LS上報SRv6 Policy狀態並攜帶Binding SID。這樣控制器就能感知SRv6 Policy的Binding SID,利用Binding SID進行SRv6路徑編排。

不同算路方式的功能對比如表3-1所示。

表3-1 不同算路方式的功能對比

 

總體而言,由於控制器能夠通過BGP-LS獲取到全局的拓撲和TE等信息,所以基於控制器計算SRv6 Policy可以實現全局的流量調優,而靜態指定路徑和頭節點算路方式只能實現IGP域內的最優路徑計算。此外,控制器算路還可以支持帶寬預留和優先級搶佔,能夠更好的支持TE。

不同的算路方式形成的路徑可以安裝到同一個SRv6 Policy,以不同的Candidate Path體現,根據默認或人工指定的優先級,SRv6 Policy會在可用的Candidate Path裏優選一個可用的,這種設計使得業務使用SRv6 Policy的時候,不需要關心算路方式這些細節,業務只需要關心自身對網絡的需求即可,將算路,優選這些細節都封裝在SRv6 Policy內部,簡化業務和網絡的交互。

四、SRv6 policy Usecase

1.流量工程

圖9.SRv6 Policy 流量工程

 

流量工程是SRv6 Policy應用場景之一。SRv6 Policy結合檢測,Telemetry可以構成一套用於滿足業務SLA的通用解決方案。以低時延場景爲例:

  • 使用Twamp檢測鏈路時延,並通過IGP/BGP_LS通報給控制器。
  • 控制器基於時延計算滿足SLA要求的路徑,並通過BGP SRv6 Policy將SRv6路徑信息下發給頭結點。
  • 頭結點將流量導入到SRv6 Policy,按照控制器計算的路徑轉發報文,以滿足流量SLA要求。
  • 使用Twamp檢測SRv6端到端路徑時延,並通過Telemetry上送給控制器,控制器實時監控路徑時延是否滿足SLA要求,當時延劣化的時候,控制器重新計算新路徑,以保證時延路徑可以滿足SLA要求。

2.業務鏈

圖10.SRv6 業務鏈

 

應對移動,固網的業務雲化發展的趨勢帶來的業務鏈新訴求,各種業務鏈技術在研究和發展。其中SRv6技術對於SF設備要求更低(支持IPv6轉發或者L2透傳即可),具有更好的普適性。使用SRv6 業務鏈技術,我們可以實現一個融合的業務鏈。

在業務鏈場景中,SRv6 Policy被表徵爲一個業務功能的有序集,可以使指定的業務流按照指定的順序依次經過指定的增值業務設備,以便於業務流量獲取一種或多種增值服務。

相比傳統SFC技術(PBR/NSH),SRv6 SFC有如下優勢:

  • 跨站點業務鏈:使用SRv6 SFC Metadata技術,支持流分類器和VAS異地部署。大大提升VAS部署靈活性,降低部署成本。
  • 開放生態:基於linux SRv6構建開放VAS生態,大大降低VAS廠商集成難度,消除設備廠商鎖定。
  • 業務快速開通:SRv6 VAS模式,業務開通分類器單節點部署,中間節點無感知。

五、總結

SRv6 Policy是實現SRv6網絡可編程的關鍵技術。隨着5G和雲時代的加速到來,新業務給運營商帶來了全新的機會窗,除了滿足用戶的連通需求外,提供極致的用戶體驗是網絡要面臨的一個新的挑戰。SRv6 Policy融合IP本身海量連接的功能,同時又提供網絡可控的能力以及可擴展的網絡編程能力,將會得到越來越廣泛的應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章