目录

SRV6基本概念

SRv6报文封装格式

Segment List包含内容

Locator(位置标识)

Function(功能)

Args(变量)

Segment List的类型

SRV6的三层编程空间

第一部分是Segment序列(SID)   

第二部分是对SRv6 SID的128比特的运用:   

第三部分是是紧接着Segment序列之后的可选TLV(Type-Length-Value):

SRV6的转发流程

SRV6的优点

1.简化网络协议

2.促进云网融合

3.兼容存量网络

4.提升跨域体验

5.提供高保护效率的FRR保护能力

SR技术的补充


SRV6基本概念

基于IPv6转发平面的段路由(SR+IPv6)

采用现有的IPV6转发技术,通过灵活的IPv6扩展头,实现网络可编程(实现网络控路)


SRv6报文封装格式

IPv6的目的地址可变

在IPv6报文中引入了SRv6扩展头(SRH,其Routing Type=4)

其中SRH最主要的就是Segment List(也就是SID)

其中Segment List又分为三大部分(最主要的就是Locator和Function)

Net Header

       4 ——IPv4封装

       41——IPv6封装

       43——IPv6-Route(IPv6路由扩展头)

       58——ICMPv6

       59——Next Header为空

Segment List

Segment List就是SR6的SID(128bit),类似于SR-MPLS的标签

不过Segment List是以IPv6地址形式出现的

Segment List[0]是路径的倒数第一个Segment List

Segment List[1]是路径的倒数第二个Segment List

Segment List[n-1]是路径的第二个Segment List

Segment List[n]是路径的第一个Segment List


Segment List包含内容

Segment List就是SR6的Segment(128bit)

Locator(位置标识)

网络中分配给一个网络节点的标识,可以用于路由和转发数据包

Locator是全网唯一的(同一Anycast组内的Locator可以一致)

Function(功能)

设备分配给本地转发指令的一个ID值,不同的转发行为由不同的功能ID来表达

该值可用于表达设备收到SRv6报文时所需执行的转发动作,相当于计算机指令的操作码

Function决定了是将数据转发给节点、链路、解封装查找路由表转发,还是解封装送入实例等

例如:2001::1表示进入链路1转发,2001::2表示将报文解封装并送到某个实例转发

           ::1、::2就为Funcation,2001::/64就是Locator

Args(可选)

转发指令在执行的时候所需要的参数

这些参数可能包含流,服务或任何其他相关的可变信息。

路由器收到SID,先判断Locator,如果发现Locator是本机发布的,那就去处理Function指令(可以将Locator理解为前缀,在转发时使用;Funcation只有到达目的节点(到达响应Locator前缀对应的节点)之后才会查看)

注意事项

严格意义上来说Segment List并不是IPv6地址,只是以IPv6地址的形式存在

只有将Segment List拷贝到IPv6报文的Destination Address字段中的才是IPv6地址

一台设备只有一个Locator,并且全网唯一

一台设备可以有多个Function,并且只需要保证本地唯一就可以

当配置ipv6-prefix 2001:D8:ABCD:: 64 static 32时

        静态SID的取值为2001:D8:ABCD::1~2001:D8:ABCD::FFFF:FFFF

SID生成方式

静态配置:手工配置Locator(Locator会通过IGP通告),Function由IGP/BGP动态分配

动态配置:手工配置Locator(Locator会通过IGP通告),手工配置Function


Segment List的类型

SRv6的SID的类型有多种(SR-MPLS的SID类型为Prefix SID,Node SID,Adj SID)

End SID(Endpoind SID)

用于标识网络中的某个节点,类似于SR-MPLS中的Node SID

对应的转发动作

如果收到的IPv6报文的目的地址是我这个设备的End SID的话,我就会处理SRH头部的信息,将Segment Left值减1,然后找到此Segment Left对应的SID将其作为目的地址继续转发

如何生成

End SID通过手工静态配置,也可以由IGP自动生成;并通过IGP协议扩散到其他网元,全局可见,本地有效

End.X SID

用于标识网络中的某条链路,类似SR-MPLS中的Adj SID

对应的转发动作

将Segment List减一,并将对应的SID作为IPv6的目的地址

然后将此报文从End.X绑定的接口转发出去

如何生成

End SID通过手工静态配置,也可以由IGP自动生成;并通过IGP协议扩散到其他网元,全局可见,本地有效

End.DT4 SID

End.DT4用于标识网络中的某个IPv4 VPN实例

对应的动作

动作是解封装报文,并查找IPv4 VPN实例路由表将报文进行转发(也可以解封转报文后直接查找IPv4路由表,不进入实例),去往实例还是非实例通过配置实现

应用场景

在L3VPNv4场景中使用,等价于IPv4VPN的标签(也就是私网标签,会优于Vpnv4分配的私网路由)

如何生成

End.DT6 SID可以通过静态配置生成,也可以通过BGP在Locator的动态SID范围内自动分配,并通过IGP协议扩散到其他网元,全局可见,本地有效

End.DT6 SID

End.DT6用于标识网络中的某个IPv6 VPN实例

对应的动作

解封装报文,并查找IPv6 VPN实例路由表转发(也可以解封转报文后直接查找IPv6路由表,不进入实例),去往实例还是非实例通过配置实现

应用场景

在L3VPNv6场景中使用,等价于IPv6VPN的标签(也就是私网标签)

如何生成

End.DT4 SID可以通过静态配置生成,也可以通过BGP在Locator的动态SID范围内自动分配,并通过IGP协议扩散到其他网元,全局可见,本地有效

 End.DT4/6一般为Segment List[0]

End.DX4 SID

End.DX4用于标识网络中的某个IPv4 CE

对应的转发动作是解封装报文,并将解封装后的IPv4报文在该SID绑定的三层接口上转发

什么场景可以使用得到DX4 SID

假如有多个接口绑定相同的IPv4实例,可以通过End.DX4来决定走那个接口,将其送到VRF对应的接口

如何生成

End.DX4 SID可以通过静态配置生成,也可以通过BGP在Locator的动态SID范围内自动分配;并通过IGP协议扩散到其他网元,全局可见,本地有效

End.DX6 SID

End.DX6用于标识网络中的某个IPv6 CE

对应的转发动作是解封装报文,并将解封装后的IPv6报文在该SID绑定的三层接口上转发

什么场景可以使用得到DX6 SID

假如有多个接口绑定相同的IPv6实例,可以通过End.DX6来决定走那个接口,将其送到VRF对应的接口

如何生成

End.DX6 SID可以通过静态配置生成,也可以通过BGP在Locator的动态SID范围内自动分配;并通过IGP协议扩散到其他网元,全局可见,本地有效

End.OP SID

是一个OAM类型的SID,主要用于测试(Ping、Tracert场景)

为什么要定义End.OP SID

SRv6中,直接ping End SID是ping不同的,由于报文中的Flag中O没有置位,End SID收到后是不会响应的,此时就需要End.OP SID,直接ping End.OP SID是可以ping通的

如何生成

End.OP SID一般手动配置,并且此类SID是不会通告出去的


SRV6的三层编程空间

        SRv6具有比SR-MPLS更强大的网络编程能力。可以更好地满足不同的网络路径需求。

        SRv6的网络可编程性体现在SRH扩展头中。

        SRH中有三层编程空间:

第一部分是Segment序列(SID)   

第二部分是对SRv6 SID的128比特的运用:   

第三部分是是紧接着Segment序列之后的可选TLV(Type-Length-Value):


SRV6的转发流程

SRH中的Segment List在转发时是不会弹出的(在倒数第二跳可以弹出)

如果倒数第二跳也不弹出的话,目的节点收到后可以溯源(知道经过了哪些节点)

由于Segment Lsit在转发后不会弹出,当有多个Segment List时,我们如何知道到达了那个Segment List

通过Segments Left字段来实现(类似指针,每经过一个Segment List,就会将Segments Left减一);Segment Left的初始值由Segment List的个数来(如果有3个Segment List,分别为List[0]、[1]、[2],此时Left的初始值为2)

大致的转发流程(详细的转发流程后续讲解)

  1. 数据包进入到节点1(源节点)节点1给数据包增加SRH,并会指定整条路径中SR节点的相关操作,外层再封装标准的IPv6报头。
  2. 数据包转发到节点2由于节点2只支持常规的IPv6而不支持SRv6,节点2收到SRv6数据包时,按照IPv6 RFC的规定,当数据包目的地址不是节点自身网段地址时,此节点不处理扩展报头,直接根据IPv6报头中的目的地址进行转发;
  3. 节点3收到数据包时节点3根据外层IPv6地址2001::3查找本地Local SID表,命中本地的Local SID表,执行相关指令。将SL减1操作,指针指向Segment List[1](此为活动Segment),并将Segment List[1]的地址拷贝到外层IPv6报头中的目的地址,然后根据IPv6目的地址进行转发;
  4. 节点4的处理过程和节点3一致
  5. 节点5收到数据报文时识别到目的地址是本节点,同时Segment List为0。此时,节点5会剥离SRH和IPv6报头,读取真正的Payload,并根据SID里的相关指令完成转发。

SRV6的优点

1.简化网络协议

借助SRv6和EVPN,可以使IP承载网的协议简化、归一

SRv6基于IPv6转发,不使用MPLS技术,完全兼容现有的IPv6技术

中间节点可以不支持SRv6,按照正常路由转发含有SRH的IPv6报文

2.促进云网融合

SRv6具备Natice IPV6属性,SRv6报文和普通IPv6报文具有相同的报文头,使得SRv6紧紧依赖IPv6可达性即可实现网络节点的互通,打破运营商网络和数据中心之间的界限

3.兼容存量网络

SRv6与存量IPv6网络兼容

业务开通只需在头尾节点进行部署,缩短部署时间,提升部署效率

头部节点需要支持SRv6,中间节点只需要支持IPv6

4.提升跨域体验

5.提供高保护效率的FRR保护能力

在SRv6技术的基础上结合RLFA FRR实现高效的TI-LFA FRR算法(同SR-MPLS)


SR技术的补充

       配置SRv6/SR技术时  底层IGP推荐使用IS-IS,因为ISIS 支持TE Policy扩展

       SRv6部署不需要对传统网络全网进行改造

       SR-TE部署不需要对传统IP网络全网进行改造

  配置SR控制器算路时:

  配置SRv6技术时:

              边界和端点支持SRv6,然后中间节点支持IPv6就可以

Logo

长江两岸老火锅,共聚山城开发者!We Want You!

更多推荐