Tag: srv6简介
-
Segment Routing第一卷 中对SR IPv6的报头简介
本文是读C. Filsfils et al. 所著的Segment Routing第一卷第十二章所作的总结与摘要。 当使用SR IPv6数据平面传送IPv6数据包 (通常称为SRv6) 时,Segment List被压入到数据包报头中的SR报头 (SRH) 中。该报头是新类型的路由报头,路由报头是IETF RFC 2460中描述的一种扩展报头。SRH中的指针指向编码在报头中的Segment List中的active segment。当segment完成后,该segment不是从列表中删除,而是更新指针以指向列表中的下一个segment。 SRv6中的SID使用128位的IPv6进行表示的。从信令角度来看,与MPLS数据平面相比,这更简单,不需要通告除IPv6前缀之外的任何信息。前缀就是SID。 IPv6地址不仅可以表示路由器,还可以表示接口、设备、业务和应用等,或者也可以表示上述任何一种对象的集合。 IPv6报头回顾 IPv6使用两种不同类型的报头:IPv6主报头和IPv6扩展报头 (Extension Header)。IPv6主报头等效于IPv4基本报头。IPv6报头删除了IPv4报头中的选项字段,该字段原本是用来传递与数据包有关或与数据包处理方式有关的附加信息。相应的功能通过一组称为 “扩展报头” 的附加报头实现。因此主IPv6报头具有固定大小 (40 bytes),而定制化的扩展报头可以根据需要添加。 IPv6扩展报头 使用扩展报头以允许扩展IPv6来支持未来的需求和能力。IPv6数据包可以携带一个或多个不同长度的扩展报头。典型的IPv6中不存在扩展报头。如果数据包需要对其路径上的中间结点或目的结点进行特殊处理,则可在数据包报头中添加一个或多个扩展报头。扩展报头位于数据包的主IPv6报头和上层报头之间。 路由报头 (Routing Header) IPv6的扩展报头类型之一就是路由报头 (Routing Header),其类型号是43,。IPv6源结点使用路由报头列出一个或多个中间结点,使得数据包在去往最终目的地的路径上经过这些结点。因此源结点可以使用路由报头来实现数据包的源路由。由此可见,segment在IPv6并不是新概念。 路由报头的格式可见书P519。下面对其中的重要字段进行讲解。 扩展报头长度 (Hdr Ext Len):路由报头的长度。 路由类型 (Routing Type):该路由报头的类型。 剩余Segment (Segment Left):剩余的路由段数,即在到达最终目的地之前需要访问的中间结点数量。这一字段很重要。 类型特定数据 (type-specific data):对应于路由报头类型的数据。 通常,到数据包目的地路径上的中间结点不检查或处理扩展报头,中间结点基于IPv6的主报头中的目的地址转发数据包。有例外的情况,这里不阐述。 如果结点收到数据包,并且数据包的目的地址对应于该结点的地址,则该数据包检查扩展报头 (如果存在)。如果扩展报头中含有结点不能识别的路由类型的路由报头,结点的行为取决于 “Segment Left” 的值:…