01為什么需要Flex-Algo
傳統IGP(Interior Gateway Protocol,內部網關協議)基于鏈路的開銷值來計算到達目的地的最優路徑。在鏈路開銷值不能作為路徑優劣的唯一標準時,傳統IGP的路由計算方法無法滿足用戶的不同需求,主要表現在如下兩點:
流媒體、視頻會議等業務對網絡時延要求高,需要IGP根據鏈路時延進行路徑計算。
如果網絡中的某些鏈路存在故障風險,需要IGP在路徑計算時排除具有故障風險的鏈路。
在IGP無法滿足上述需求的情況下,Flex-Algo(Flexible Algorithm,靈活算法)技術應運而生。采用Flex-Algo算法,用戶可以根據需要自由選擇最優路徑計算方法和度量值類型,并可以為不同的業務規劃最優路徑,從而達到靈活控制路徑的選擇、實現流量工程等目的。
以下拓撲分別展示了基于IGP metric、時延delay和帶寬的路徑規劃。
基于IGP metric
基于時延delay
基于帶寬
02什么是Flex-Algo算法
用戶可以自定義的Flex-Algo算法范圍是Flex-Algo(128)~Flex-Algo(255),可以有128個。其中每個Flex-Algo算法可以使用Flex-Algo(k)表示,k是FAID(FA算法標識符)。Flex-Algo(k)在參與這個算法的邏輯拓撲中具有本地意義,并且具有唯一定義。
Flex-Algo(k)的定義包含三個要素:
03Flex-Algo是如何工作的
以IGP采用IS-IS(Intermediate System-to-Intermediate System,中間系統到中間系統)、SR采用SR-MPLS的場景為例介紹Flex-Algo的工作流程。
01定義算法
在參與Flex-Algo(k)計算的邏輯拓撲中,需要存在Flex-Algo(k)的定義,即前面介紹的Flex-Algo(k)的三個要素。
不需要每個節點都定義Flex-Algo(k),只需要部分(至少一個)節點定義并通告到拓撲中。
為了保證拓撲內所有節點對于Flex-Algo(k)的定義統一,避免定義沖突,建議在其中的2個節點進行相同的定義,并通告出來。
IS-IS使用攜帶IS-IS FAD Sub-TLV的協議報文來定義Flex-Algo(k)。其中,FAD的含義是靈活算法定義(Flexible Algorithm Definition)。
02通告算法
網絡拓撲中的節點將如下內容通告到拓撲中。
部分(至少一個)節點將本地定義的算法通告到拓撲中。
該通告是通過定義算法中提到的IS-IS FAD Sub-TLV來實現的。IS-IS FAD Sub-TLV只能在同一個IS-IS級別里傳播,不能傳播到該級別區域之外。
所有節點將本節點擁有的Flex-Algo能力,即所有支持的算法ID通告到拓撲中。
該通告是通過SR-Algorithm Sub-TLV來實現的。SR-Algorithm Sub-TLV只能在同一個IS-IS級別里傳播,不能傳播到該級別區域之外。
所有節點將Prefix SID通告到拓撲中,其中包含了Prefix SID和算法ID的關聯關系。這個通告是通過Prefix-SID Sub-TLV來實現的。
03生成拓撲
每個Flex-Algo(k)都會生成自己的邏輯拓撲,拓撲生成的原則如下。
節點范圍:只有參與Flex-Algo(k)的節點才會被包含在Flex-Algo(k)拓撲中,包括Flex-Algo(k)定義的本地產生者和通告接收者。
鏈路范圍:如果在Flex-Algo(k)的定義中配置了約束條件,如Admin-group或者SRLG,拓撲將根據這些約束條件進行調整,保留或排除部分鏈路。如果拓撲中的某些鏈路不具有Flex-Algo(k)所使用的度量值,這些鏈路也會被排除。
04計算路徑
Flex-Algo(k)將采用其定義中的計算類型和度量類型進行路徑計算。Flex-Algo支持ECMP負荷分擔,可以根據情況生成多條具有相同Flex-Algo代價的路徑。
任何參與Flex-Algo(k)的節點都會執行路徑計算。如果節點參與多個Flex-Algo,將針對每個Flex-Algo進行獨立計算。所有節點都默認支持Flex-Algo(0),即支持傳統的IGP路徑計算。
節點會將路徑計算的結果通過Flex-Algo(k)關聯的Prefix SID加入到自己的MPLS-MPLS轉發表,不會加入到任何IP-MPLS或者IP-IP的轉發表。
04Flex-Algo是如何應用的
SR TE Policy可以通過ODN(On-Demand Next-hop,按需下一跳)功能自動創建。如果在設備收到的BGP路由中,Color屬性與ODN模板相匹配,則根據該ODN模板自動創建一個SR TE Policy。ODN模板關聯Flex-Algo算法后,Flex-Algo算法會自動為ODN創建的SR TE Policy的候選路徑計算SID列表。
在R1上創建ODN模板,并且關聯了Flex-Algo算法。
在該場景中,FAD為:
使用SPF算法。
基于TE開銷計算到達目的地的最小開銷路徑。
R2和R6之間的鏈路不支持TE開銷值,因此該鏈路被排除。
排除親和屬性為“紅色”的鏈路。
R1與R2之間的鏈路親和屬性為紅色,R3與R5之間的鏈路親和屬性也為紅色,因此R1與R2之間的鏈路、R3與R5之間的鏈路都被排除。
在SR Policy的Candidate Path下配置Segment List,內容為數據包經過R5、R3。由于該SR Policy關聯了以上的Flex-Algo算法,數據包轉發路徑如下所示。
通過不同的FAD定義與SR的綁定,可以自由控制轉發路徑,達到軟切片的效果。Flex-Algo算法可以應用于SRv6和SR網絡,可以為SRv6 Policy和SR Policy直接計算出SID列表,滿足流量工程的需求。
-
算法
+關注
關注
23文章
4464瀏覽量
90933 -
FLEX
+關注
關注
0文章
43瀏覽量
15131
發布評論請先 登錄
相關推薦
評論