背景
根據工作要求、本人掌握的知識情況,僅針對《SRv6 網絡編程:開啟IP網絡新時代》書籍中涉及的部分知識點進行總結梳理,并與工作小組進行分享,不涉及對原作的逐字搬運。
問題
組內同事提出的問題:本文缺擴展頭描述、報文相關結構的體現。
基礎要點
- Segment Routing 不僅IPv6能做,MPLS也能做。選SRv6是因為IPv6擴展性更好。
- MPLS可編程空間僅僅是標簽封裝的32位(標簽-20、TTL-8、TC-3、棧底-1),IPv6三層可編程空間(Segment List、SID的128bit空間 [locator、function、arg] 、可選TLV)其中SID長度是128bit,可以多段、多位。
- MPLS實現需要路由器支持,SRv6不要求中轉節點其設備都支持SRv6,只支持IPv6即可。即全網升級至SR時,SR-MPLS要求所有設備升級,SRv6僅要求部分設備升級。
- IPv6實現SRv6需要擴展,包括自身報文的擴展、基礎協議的擴展。
- 自身報文:SRH(固定字段頭、Segment List、每條Segment 128bit空間、可選TLV)。固定字段頭中,Segment Left 比較關鍵;Segment 中都是128bit可以當作IPv6地址使用的地址;TLV可以分為占位湊整的PaddingTLV和防篡改的HMAC TLV。
- 基礎協議的擴展: IS-IS(中間系統到中間系統)、OSPF(開放式最短路徑優先,OSPFv3針對IPv6,與針對IPv4的OSPF不能復用)。
- IS-IS的擴展
- IS-IS為支持SRv6需要多發布兩個信息:SRv6 Locator TLV發布Locator和非鄰居的SID信息;IPv6 Prefix Reachability TLV發布“不支持SRv6的普通IPv6節點,能憑此生成Locator的路由”信息。
- IS-IS針對SRv6的sub-TLV擴展有7種。兩個信息之外,還要通過sub-TLV將SR中Endpoint及的相關操作發布出去。
- OSPFv3的擴展
- OSFPv3為支持SRv6需要多發布兩個信息:SRv6 Locator LSA 發布Locator和SID;Prefix LSA 發布“不支持SRv6的普通IPv6節點,能憑此生成Locator的路由”信息。
- OSPFv3針對SRv6的sub-TLV(或LSA)擴展有10種。兩個信息之外,還要通過sub-TLV將Endpoint的SID和行為信息發布出去。
- PHP和PSP類似,都是倒數第二跳/段彈出標簽、彈出SRH。針對SRH還有USP(最后一段彈出SRH)、USD(最后一段解封裝)。