书籍来源:《SRv6网络编程:开启IP网络新时代》
这本书已经出了很多年了,但多年之后因为工作需要再来读一遍,除了温习之外,发现自己学到了更多的知识。一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:SRv6网络编程自学系列 | 汇总_COCOgsta的博客-CSDN博客
3.2.1 OSPFv3 SRv6协议原理
OSPFv3 SRv6扩展也有两个功能:发布Locator信息和SID信息。Locator信息用于帮助其他节点定位到发布SID的节点;SID信息用于完整描述SID的功能,比如SID绑定的Function信息。
为发布Locator的路由信息,OSPFv3需要发布两个LSA(Link State Advertisement,链路状态通告):SRv6 Locator LSA和Prefix LSA。
SRv6 Locator LSA包含SRv6 Locator TLV,TLV中包括前缀和掩码,以及OSPFv3路由类型。网络中的其他节点可以通过该LSA学习到Locator的路由。SRv6 Locator TLV除了携带用于指导路由的信息外,还会携带不需要关联OSPFv3邻居节点的SRv6 SID,例如End SID。
通过Prefix LSA可以发布Locator前缀。这些Prefix LSA是OSPFv3协议已有的LSA,普通IPv6节点(不支持SRv6的节点)也能够通过学习这些LSA,生成Locator路由(指导报文转发到发布Locator的节点的路由),进而支持与SRv6节点共同组网。
OSPFv3协议的第二个功能就是将SRv6 SID信息和SID对应的SRv6 Endpoint节点行为信息通过OSPFv3协议的各SID Sub-TLV扩散出去,用于路径/业务编程单元对网络进行编程。
3.2.2 OSPFv3 SRv6协议扩展
OSPFv3协议针对SRv6的TLV扩展如表3-10所示。
表3-10 OSPFv3协议针对SRv6的TLV扩展
- SRv6 Capabilities TLV
SRv6 Capabilities TLV就是用于通告节点支持的SRv6能力
- SR Algorithm TLV
通过OSPFv3 Router Information LSA携带SR Algorithm TLV,用于通告OSPFv3 SRv6使用的算法
- Node MSD TLV
通过OSPFv3 Router Information LSA携带Node MSD TLV,用于通告OSPFv3设备能够接受的最大SID栈深
- SRv6 Locator LSA
SRv6 Locator LSA用于发布SRv6 Locator信息,具有SRv6能力的节点如果收到SRv6 Locator LSA并且支持Locator相应的算法,需要在转发表中安装Locator的路由表项
在OSPFv3基础协议中已经定义了OSPFv3 LSA的格式,这里U字段要设置为1,保证不支持该LSA的设备也能正常泛洪LSA。
也可以通过其他Prefix LSA发布Locator。如果Locator里Algorithm取值为0,则Locator必须通过这些Prefix LSA发布,以便不支持SRv6的设备能够下发转发表项,指导转发Algorithm取值为0的SRv6流量。如果设备同时收到Prefix LSA和SRv6 Locator LSA,则优先安装Prefix LSA。
- SRv6 Locator TLV
SRv6 Locator TLV是SRv6 Locator LSA的顶级TLV,用于发布SRv6 Locator以及该Locator相关的End SID
- SRv6 End SID Sub-TLV
SRv6 End SID Sub-TLV用于发布不需要关联邻接节点的SRv6 SID,例如End SID
- SRv6 End.X SID Sub-TLV
SRv6 End.X SID Sub-TLV用于发布一个P2P/P2MP邻接类型和Broadcast/NBMA链路上指向DR的邻接类型的SRv6 End.X SID。
- SRv6 LAN End.X SID Sub-TLV
SRv6 LAN End.X SID Sub-TLV 用于发布 Broadcast/NBMA 链路上一个指向BDR 或 DROther 的邻接类型的 SRv6 End.X SID。
与SRv6 End.X SID Sub-TLV相比,该Sub-TLV仅多出一个OSPFv3 Router-ID of neighbor字段
- Link MSD Sub-TLV
通过OSPFv3 E-Router-LSA Router-Link TLV携带Link MSD Sub-TLV,用于通告OSPFv3链路能够接受的最大SID栈深
- SRv6 SID Structure Sub-sub-TLV
SRv6 SID Structure Sub-sub-TLV用于通告SRv6 SID不同字段的长度