SR-MPLS使用20 bits长度的MPLS标签值作为SID,而SRv6则使用128 bits长度的IPv6地址格式值来作为SID。
相比于SR-MPLS的SID,SRv6的SID更长,支持携带更多信息,可以用来标识节点、链路、L2VPN业务、L3VPN业务、网络服务等多种功能或业务类型。
128bits长度的SRv6 SID包含了Locator、Function、Arguments三个字段。
有了SRv6 SID,SRv6就具备了路径和业务的编排能力,可以预先规划报文转发的路径以及路径上每一个节点的转发行为,并支持定义任意的网络功能或业务。
除了SRv6 SID,SRv6还有另外一个“秘密武器”。
前面我们提到,SR与MPLS的结合(SR-MPLS)虽然有助于解决网络中配置多、效率低、扩展难的“痼疾”,但网络中的节点仍然需要都支持MPLS标签转发技术,还是没有从根本上解决跨域烦的痛点。
SRv6充分利用了IPv6的易扩展特性,通过一种新增的扩展头类型SRH(Segment Routing Header,段路由头),来替代MPLS的标签转发功能,让SRv6网络可以不需要借助于其他技术、仅基于原生的IPv6技术(Native IPv6)就能实现数据的高效率转发,彻底解决跨域烦的难题。
普通的IPv6报文中可以包含0个或多个扩展头,用于实现不同的业务功能,只有当有需要的时候才会添加扩展头。
扩展了SRH后,SRv6报文结构包括了IPv6报文头、SRH扩展头和数据报文三个部分。
IPv6报文头:用于指定报文的源地址(Source Address,SA)和目的地址(Destination Address,DA)。
SRH扩展头:用于指定报文的转发路径信息,包含中间节点数(Segments Left,SL)和段列表(Segment List)。段列表是报文传输过程中会经过的所有节点的SID的清单,中间节点数是指经过的节点的数量。
数据报文:传送的业务数据信息,传输过程中保持不变。
如果要简化理解的话,以上三部分的结构可以用下图来表示。
普通IPv6报文中的源地址(SA)和目的地址(DA)分别标识的是报文的首节点和目的节点,在传输过程中保持不变;而SRv6报文中的目的地址(DA)标识的是当前报文经过的下一个节点,会随着数据传输过程实时变化。
SRv6使用SRH扩展头中的中间节点数和段列表来指导报文的转发,每经过一个SRv6节点,中间节点数的值减1、目的地址信息更新一次,目的地址信息由中间节点数和段列表共同决定。例如SL=n时,DA=SID [0];SL=0时,DA=SID [n]。
服务热线
1391-024-6332