背景
根据工作要求、本人掌握的知识情况,仅针对《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(最后一段解封装)。