目录

SRv6节点

节点角色

节点行为

SRv6数据转发隧道建立方式

SRv6 BE

L3VPNv4 over SRv6 BE

EVPN L3VPNv6 over SRv6 BE

SRv6 TE Policy


SRv6使用IPv6数据平面,基于IPv6扩展头进行扩展实现类似标签转发的处理

SR-MPLS在建立SR-MPLS隧道时,如果有设备不支持MPLS或SR,则就无法建立隧道

SRv6在建立SRv6隧道时,可以允许有设备不支持SR(只需要支持IPv6)

sr和mpls联动_封装


SRv6节点

节点角色

节点角色与其在SRv6报文转发中承担的任务有关,同一个节点可以是不同的角色(在某个SRv6路径中可能是源节点,在另一个SRv6路径中又可能是中转节点或Endpoint节点)

节点概括

生成SRv6报文的节点是SRv6的源节点

只需进行普通IPv6报文处理转发的节点为中转节点

需要处理SRv6 SID和SRH的节点是Endopint节点

源节点(SR Source Node )

压入Segment List的设备为源节点(生成SRv6报文的源节点)

此节点需要支持SR和IPv6

中转节点(Transit Node)

在压入Segment List时,没有被压入的节点(即没有Segment List标识此节点)

转发SRv6报文但是不进行SRv6处理,进行IPv6处理的节点(根据IPv6报文的目的地址转发数据,不解封装SRH)

此节点只需要支持IPv6,可以不支持SR(只不过此设备只能进行转发操作,无法控路)

Endopint节点(SR Endopint Node)

接收并处理SRv6的任何节点都为Endopint节点(并不是指尾节点)

其中该报文的IPv6目的地址必须是本地配置的SID或者本地接口地址

此节点需要支持SR和IPv6

Endopint节点在SR-MPLS TE Policy中Endpoint Node指的是尾节点

sr和mpls联动_封装_02


SRv6路径中,可以没有Transit节点,但是必须有源节点和Endpoint节点

粘连节点Bind SID同SR-MPLS中的粘连节点

节点行为

源节点行为——不同的源节点行为其SRv6报文封装方式会不同

H.Insert行为

直接在接收到的IP报文中插入SRH扩展报文头,并查表转发

H.Insert.Red行为

直接在接受到的IP报文中插入Reduced SRH扩展报文头,并查表转发

Reduced SRH指的就是SRH扩展头不封装第一个需要处理的SID,在进行溯源时可能会有点问题

(即:在封装SRH时,将最后一个Segment List加入到IPv6目的地址后,将此Segment List删除后在发送);但是Segment List的数值是不变的

H.Encaps行为

为接收到的IP报文封装外层IPv6报文头与SRH扩展报文头,并查表转发

H.Encaps.Red行为

为接收到的IP报文封装外层IPv6报文头与Reduced SRH扩展报文头,并查表转发

H.Encaos.L2行为

为接收到的二层报文封装外层IPv6报文头与SRH扩展报文头,并查表转发

H.Encaps.L2.Red行为

为接收到的二层报文封装外层IPv6报文头与Reduced SRH扩展报文头,并查表转发


Endpoint节点行为

收到SRv6报文解封装看到SID后,执行与此SID绑定的本地指令,就是配置的各种End类型

例如:如果此SID对应End.X类型,则代表发往某条链路



Flavors附加行为

为了增强End系列指令而定义的附加行为(这些附加行为为可选项,会改变End系列指令的执行动作)

PSP(Penultimate Segment POP of the SRH)附加行为

倒数第二段执行SRH移除操作(类似MPLS的倒数第二条弹出PHP的标签3)

USP(Ultimate Segment POP of the SRH)附加行为

在最后一段执行SRH移除操作(类似MPLS的倒数第二条弹出PHP的标签0)

USD(Ultimate Segment Decapsulation)附加行为

最后一段执行外层IPv6解封装操作

USD标记通常应用于SRv6 TE Policy没有业务SID时的场景,以此来确保当到达最后一段SID所在设备时,此设备能够正常解封装

例如:当Segment List没有End.DT4类型指令时,当转发到最后一段SID所在设备时,USD可以确保其能够正常解封装


SRv6数据转发隧道建立方式

SRv6 BE

一种简化的SRv6实现,正常情况下不含有SRH扩展头,只能提供尽力而为的转发

SRv6 BE的报文封装与普通IPv6报文封装的不同点在于普通IPv6报文的目的地址是一个主机或者网段,但是SRv6 BE报文的目的地址是一个业务SID

sr和mpls联动_封装_03

SRv6 BE转发过程

通过IPv6报文的目的地址(业务SID)进行数据转发,转发路径为IGP计算出来的最短路径

sr和mpls联动_运维_04

SRv6 BE的应用场景

SRv6 BE可以应用在多种场景,包括L3VPNv4 over SRv6 BE、EVPN L3VPNv4 over SRv6 BE、EVPN L3VPNv4 over SRv6 BE等其它场景

L3VPNv4 over SRv6 BE

主要指的是利用公网的SRv6 BE承载L3Vpnv4的私网数据(底层路由为IPv4,通过Vpnv4建立IPv6地址的邻居)

L3VPNv4 over MPLS使用两层MPLS标签,L3VPNv4 over SRv6 BE只使用一个业务SID就可以实现两层MPLS标签的功能

sr和mpls联动_运维_05

业务建立过程

sr和mpls联动_封装_06

  1. PE配置SRv6和SRv6 VPN,中间设备需要支持IPv6
  2. PE2发布SRv6 Locator路由给PE1
  3. CE和PE之间通过IGP/BGP进行路由信息交换
  4. PE将从CE学习到的路由存入VPN实例IPv4路由表,并转为Vpnv4路由
  5. PE之间建立BGP Vpnv4邻居,互相交换Vpnv4路由(通过Update报文携带,会携带RT属性以及SRv6 VPN SID属性
  6. PE接收到从Vpnv4邻居传递来的Vpnv4路由,并将其存入相应的VPN实例表项和BGP Vpnv4路由表中
  7. PE将VPN实例路由传递给CE

路由发布与数据转发过程

sr和mpls联动_运维_07

路由发布

sr和mpls联动_运维_08

数据转发

sr和mpls联动_sr和mpls联动_09

EVPN L3VPNv6 over SRv6 BE


主要指的是利用公网的SRv6承载EVPN L3VPNv6的私网三层业务(底层路由为IPv6,通过EVPN建立IPv6的邻居)

为什么要使用EVPN来传递IPv6实例路由

       因为华为的Vpnv6邻居只可以传递IPv4路由,无法传递IPv6路由

       所以当此层为IPv6时,通过EVPN来传递IPv6路由

业务建立过程

sr和mpls联动_sr和mpls联动_10

  1. PE配置SRv6和SRv6 VPN,中间设备需要支持IPv6
  2. PE2发布SRv6 Locator路由给PE1
  3. CE和PE之间通过OSPFv3、ISIS、BGP4+等路由协议进行路由信息交换
  4. PE将从CE学习到的路由存入VPN实例IPv6路由表,并转为IP Prefix Route形式的EVPN路由
  5. PE之间建立BGP EVPN邻居,互相交换IP Prefix Route路由(通过Update报文携带,会携带RT属性以及SRv6 VPN SID属性
  6. PE接收到从EVPN邻居传递来的IP Prefix Route路由,并将其存入相应的IPv6 VPN实例表项和BGP EVPN路由表中
  7. PE将IPv6 VPN实例路由传递给CE

路由发布与数据转发过程

sr和mpls联动_网络协议_11

路由发布

sr和mpls联动_运维_12

数据转发

sr和mpls联动_sr和mpls联动_13

SRv6 TE Policy

可以实现流量工程,配合控制器可以更好地响应业务的差异化需求,做到业务驱动网络

SRv6 TE Policy包含的三元组

头端(HeadEnd):SRv6 TE Policy生成的节点

颜色(Color):SRv6 TE Policy携带的团体属性,携带相同Color属性的BGP路由可以使用该SRv6 TE Policy

尾端(Endpoint):SRv6 TE Policy的目的地址

业务网络头端通过路由携带的Color属性和目的地址信息来匹配对应的SRv6 TE Policy实现业务流量转发

SRv6 TE Policy模型与SR-MPLS TE Policy完全相同

SRv6 TE Policy创建

在转发器上静态配置(通过CLI和Netconf)

在控制器上动态生成SRv6 TE Policy然后传递给转发器(通过PCEP或BGP SR Policy传递)

       先手工部署SRv6 TE Policy,在Locator的静态段范围内配置Binding SID;而后控制

SRv6 TE Policy的流量导入

同SR-MPLS TE Policy的流量导入(将公网路由迭代进SRv6 TE Policy隧道,然后再配置隧道策略进行引流)

隧道策略引流有基于Color和基于DSCP两种方式

SRv6 TE Policy数据转发(控制器模式)

  1. 控制器下发SRv6 TE Policy给头端PE1设备(设备通过BGP-LS将ISIS/OSPF v3收集的拓扑信息、前缀信息,SRv6 locator和SID信息通告给控制器,控制器通过BGP IPv6 SR Policy下发SRv6 Policy给源节点)
  2. 尾端PE2设备发布BGP Vpnv4路由10.2.2.2.2/32给头端PE1设备(吓一跳为PE2的2001:DB8:1::1/128)
  3. 在头端PE1设备上配置隧道策略(当PE1收到BGP路由之后,通过Color和下一跳迭代进SRv6 TE Policy中),隧道的SID Lisy已经由控制器下发给PE1,PE1只需要进行转发就可以
  4. 头端PE1收到CE1发送的普通单播报文后,查找VPN实例路由表,该路由的出接口是SRv6 TE Policy(PE1会为报文插入SRH信息,封装SRv6 TE Policy的SID List,然后封装IPv6报文头信息,然后PE1将报文进行转发给P1)
  5. 中间节点P1和P2根据SRH信息逐跳转发(将SL减一,并将SL对应的SID作为IPv6报文头的下一跳,进行转发)
  6. 报文到达尾节点之后,PE2使用报文的IPv6目的地址2001:DB8:A4::1查找My local SID表,命中到End SID,然后PE2将报文SL减一,IPv6 DA更新为VPN SID 2001:DB8:A4::100
  7. PE2使用VPN SID 2001:DB8:A4::100查找My Local SID表,命中到End DT4 SID,PE2解封装报文,去掉SRH信息和IPv6报文头信息,使用内层报文目的地址查找VPN SID 2001:DB8:A4::100对应的VPN实例路由表,然后将报文转发给CE2

sr和mpls联动_网络_14