书籍来源:《SRv6网络编程:开启IP网络新时代》
这本书已经出了很多年了,但多年之后因为工作需要再来读一遍,除了温习之外,发现自己学到了更多的知识。一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:SRv6网络编程自学系列 | 汇总_COCOgsta的博客-CSDN博客
3.1.1 IS-IS SRv6协议原理
为了支持SRv6,IS-IS协议需要发布两类SRv6信息:Locator信息与SID信息。Locator信息用于帮助网络中的其他节点定位到发布SID的节点;SID信息用于完整描述SID的功能,如SID绑定的Function信息。
IS-IS协议通过两个TLV来发布Locator的路由信息:SRv6 Locator TLV和IPv6 Prefix Reachability TLV,这两个TLV具有不同的作用。
SRv6 Locator TLV包含Locator的前缀和掩码,用于发布Locator前缀。
IPv6 Prefix Reachability TLV与SRv6 Locator TLV拥有相同的前缀和掩码。普通IPv6节点也能够通过此TLV生成Locator路由(指导报文转发到发布Locator的节点的路由),进而支持与SRv6节点共同组网。
IS-IS协议的另一个功能就是将SRv6 SID信息和SID对应的SRv6 Endpoint节点行为信息通过IS-IS协议的各类SID Sub-TLV扩散出去,用于路径/业务编程单元对网络进行编程,IS-IS协议发布的Endpoint节点行为如表3-1所示。
表3-1 IS-IS协议发布的Endpoint节点行为


End、End.X、End.T定义了3种Flavor附加行为:PSP、USP、USD,这些Flavor附加行为可以进行组合来扩展End、End.X、End.T的功能,所以,End、End.X、End.T对应了多个节点行为ID。以End为例,不同的ID代表不同的行为。
- 1:End
- 2:End + PSP
- 3:End + USP
- 4:End + PSP&USP
- 28:End + USD
- 29:End + PSP&USD
- 30:End + USP&USD
- 31:End + PSP&USP&USD
3.1.2 IS-IS SRv6协议扩展
IS-IS协议针对SRv6的TLV扩展如表3-2所示 [4-5]。
表3-2 IS-IS协议针对SRv6的TLV扩展


- SRv6 Capabilities Sub-TLV
SRv6 Capabilities Sub-TLV用于通告节点支持的SRv6能力
- Node MSD Sub-TLV
Node MSD Sub-TLV用于通告节点能够处理的最大SID栈深
- SRv6 Locator TLV
SRv6 Locator TLV用于发布SRv6 Locator路由和不需要关联IS-IS邻居节点的SRv6SID,例如End SID
- SRv6 End SID Sub-TLV
SRv6 End SID Sub-TLV用于发布SRv6 SID,如End SID
SRv6 End SID Sub-TLV是SRv6 Locator TLV的Sub-TLV,IS-IS协议发布的SID如果不关联IS-IS邻居,则都在SRv6 End SID Sub-TLV中发布。
- SRv6 End.X SID Sub-TLV
SRv6 End.X SID Sub-TLV用于发布一个P2P邻接类型的SRv6 End.X SID
- SRv6 LAN End.X SID Sub-TLV
SRv6 LAN End.X SID Sub-TLV用于发布一个LAN邻接类型的SRv6 End.X SID
与SRv6 End.X SID Sub-TLV相比,该Sub-TLV仅多出一个System ID字段
- SRv6 SID Structure Sub-sub-TLV
SRv6 SID Structure Sub-sub-TLV用于通告SRv6 SID不同字段的长度