• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

SRv6 OAM技术白皮书-6W100

手册下载

SRv6 OAM技术白皮书-6W100-整本手册.pdf  (318.54 KB)

  • 发布时间:2024/12/17 19:35:43
  • 浏览量:
  • 下载量:

SRv6 OAM技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。



SRv6 OAM

1.1  产生背景

SRv6SRv6 TE Policy作为一种承载业务流量的隧道技术,只有控制器或者源节点才能感知到转发的路径,中间节点既不维护也不感知转发路径。当数据通过SRv6 BE或者SRv6 TE Policy转发时,一旦某个中间节点异常导致数据转发失败,控制器或者源节点无法检测和定位到故障,因此,我们需要一种发现和定位转发路径上故障的运维手段。SRv6 OAMOperations, Administration, and Maintenance,操作、管理和维护)可以满足这种需求。

SRv6 OAM通过SRv6 SIDSRv6 TE PolicyPing/Tracert来实现。

·     SRv6 SID PingSRv6 TE Policy Ping用于检查网络连接及主机是否可达。

·     SRv6 SID TracertSRv6 TE Policy Tracert在检查网络连接是否可达的同时,还可以分析网络什么地方发生了故障。

1.2  SRv6 OAM协议扩展

1.2.1  OAM O-bit

图1 SRHFlags字段格式

 

1所示,O-bit位于SRHFlags字段,用于指示SRv6节点执行OAM处理。若报文中的O-bit置位,则SRv6网络中每一个Endpoint节点都需要复制该报文,为报文打上时间戳,并将携带时间戳的报文交给控制平面处理。在SRv6 OAM中,如果需要报文传输路径上的每一个Endpoint节点都对源节点发送的OAM检测报文进行应答,则需要源节点在发送的报文中将O-bit置位。

基于O-bit置位,可以实现逐段OAM检测。例如,通过O-bit置位实现逐段SRv6 SID Ping检测和SRv6 SID TracertOverlay检测。

1.2.2  End.OP SID

说明

SRv6 SIDSRv6 TE PolicyPing/Tracert场景中,报文中不论是否携带End.OP SID,均可通过该报文来检测SRv6路径的连通性。

 

End.OP SID是一个OAM类型的SRv6 SID,用于SRv6 SIDSRv6 TE PolicyPing/Tracert场景。

End.OP SID用来标识OAM检测报文,以便目的节点识别该报文,并进行处理。基于End.OP SID,可以实现端到端(End-to-End)的OAM检测。例如,通过End.OP SID实现端到端SRv6 SID Ping检测和SRv6 SID Tracert的非Overlay检测。

End.OP SID对应的转发动作为:如果设备收到的报文的目的地址为End.OP SID,则对下一个SRv6 SID进行检查。如果下一个SRv6 SID是本地SRv6 SID,则回复应答报文;否则丢弃该报文。如1所示,以SRv6 SID Ping为例,源节点Device A Ping目的节点Device CDevice A在构造ICMPv6请求报文时在SRH头中插入节点Device CEnd.OP SIDDevice C收到ICMPv6请求报文后,发现报文目的地址是自己的End.OP SID,检查SRv6 SID c是不是自己的本地SRv6 SID。如果是,则向Device A发送ICMPv6应答报文;否则丢弃ICMPv6请求报文。

图1 End.OP SID应用示意图

 

1.3  SRv6 SID Ping

SRv6 SID Ping支持逐段检测和非逐段检测两种检测方式。

1.3.1  逐段检测

逐段检测是指在SRv6转发路径中,检测源节点和所有SRv6节点之间的连通性。SRv6转发路径中所有SRv6节点均会向源节点回复ICMPv6响应报文。

图2 SRv6 SID Ping逐段检测方式示意图

 

2所示,逐段检测工作过程为:

(1)     Device ADecive D发起Ping,依次指定Device BSRv6 SIDDevice DSRv6 SIDDevice A构造ICMPv6请求报文,封装SRH扩展头并进行转发。

(2)     中间节点收到ICMPv6请求报文后:

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,同时报文SRHFlags字段中O标记位置位,则向Device A发送ICMPv6应答报文,并且基于SRH转发ICMPv6请求报文。

¡     如果中间节点不是SRv6节点(如Device C),则不向Device A发送ICMPv6应答报文,直接根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。

(3)     Device D收到ICMPv6请求报文后,报文SRHFlags字段中O标记位置位且SL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID

¡     如果报文目的IPv6地址是Device DSRv6 SID,则校验通过,向Device A发送ICMPv6应答报文。

¡     如果报文目的IPv6地址不是Device DSRv6 SID,则校验不通过,丢弃ICMPv6请求报文。

(4)     如果Device A在超时时间内收到目的节点的ICMPv6应答报文,则目的节点可达;否则,目的节点不可达。

1.3.2  端到端检测

端到端检测是指仅检测源节点和目的节点之间的连通性。仅目的节点向源节点回复ICMPv6响应报文。

进行端到端检测时,不论是否指定End.OP SID,均可以进行SRv6 SID Ping操作,下文以未指定End.OP SID为例进行介绍。

图3 SRv6 SID Ping端到端检测方式示意图

 

3所示,端到端检测工作过程为:

(1)     Device ADecive D发起Ping,依次指定Device BSRv6 SIDDevice DSRv6 SIDDevice A构造ICMPv6请求报文,封装SRH扩展头并进行发送。

(2)     中间节点收到ICMPv6请求报文后:

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,则基于SRH转发ICMPv6请求报文。

¡     如果中间节点不是SRv6节点(如Device C),则根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。

(3)     Device D收到ICMPv6请求报文后,报文SRHSL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID

¡     如果报文目的IPv6地址是Device DSRv6 SID,则校验通过,向Device A发送ICMPv6应答报文。

¡     如果报文目的IPv6地址不是Device DSRv6 SID,则校验不通过,丢弃ICMPv6请求报文。

(4)     如果Device A在超时时间内收到目的节点的ICMPv6应答报文,则目的节点可达;否则,目的节点不可达。

1.4  SRv6 SID Tracert

SRv6 SID Tracert支持Overlay检测和非Overlay检测两种方式。

1.4.1  Overlay检测

通过Overlay方式查看SRv6转发路径时,仅显示转发路径上所有SRv6节点的信息。

图4 SRv6 SID Tracert Overlay检测方式示意图

 

4所示,Overlay检测工作过程为:

(1)     Device ADecive D发起Tracert,依次指定Device BSRv6 SIDDevice DSRv6 SIDDevice A构造UDP报文(该报文的目的UDP端口号是目的端的任何一个应用程序都不可能使用的端口号),封装SRH扩展头并进行转发。此时IPv6报文首部的Hop limit字段的取值设置为64

(2)     中间节点收到UDP报文后:

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,同时报文SRHFlags字段中O标记位置位,则向Device A发送ICMPv6端口不可达报文,并且基于SRH转发UDP报文。

¡     如果中间节点不是SRv6节点(如Device C),则不向Device A发送ICMPv6端口不可达报文,直接根据目的IPv6地址查找IPv6路由表转发UDP报文。

(3)     Device D收到UDP报文后,报文SRHFlags字段中O标记位置位且SL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID

¡     如果报文目的IPv6地址是Device DSRv6 SID,则校验通过,向Device A发送ICMPv6端口不可达报文。

¡     如果报文目的IPv6地址不是Device DSRv6 SID,则校验不通过,并丢弃UDP报文。

(4)     如果Device A收到目的节点的ICMPv6端口不可达报文,则目的节点可达,且可以根据Tracert结果得到数据报文从源节点到目的节点所经历的路径;否则,目的节点不可达,且可以根据Tracert结果定位故障节点。

1.4.2  Overlay检测

通过非Overlay方式查看SRv6转发路径时,会显示转发路径上所有节点(包括支持SRv6的节点和不支持SRv6的节点)的信息。

进行非Overlay检测时,不论是否指定End.OP SID,均可以进行SRv6 SID Tracert操作,下文以未指定End.OP SID为例进行介绍。

图5 SRv6 SID TracertOverlay检测方式示意图

 

5所示,非Overlay检测工作过程为:

(1)     Device ADecive D发起Tracert,依次指定Device BSRv6 SIDDevice DSRv6 SIDDevice A构造UDP报文(该报文的目的UDP端口号是目的端的任何一个应用程序都不可能使用的端口号),封装SRH扩展头并进行发送。此时IPv6报文首部的Hop limit字段的取值设置为1

(2)     中间节点收到UDP报文后,如果Hop limit字段的值变成0,则向Device A发送ICMPv6超时报文。

(3)     Device A收到中间节点发送的ICMPv6超时报文后,将Hop limit字段的取值加1,继续发送UDP报文。

(4)     中间节点收到UDP报文后,如果Hop limit字段的值未变成0,则向下一节点转发UDP报文。

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,则基于SRH转发UDP报文。

¡     如果中间节点不是SRv6节点(如Device C),则根据目的IPv6地址查找IPv6路由表转发UDP报文。

(5)     Device D收到UDP报文后,Hop limit字段的值变成0,报文SRHSL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID

¡     如果报文目的IPv6地址是Device DSRv6 SID,则校验通过,向Device A发送ICMPv6端口不可达报文。

¡     如果报文目的IPv6地址不是Device DSRv6 SID,则校验不通过,并丢弃UDP报文。

(6)     如果Device A在超时时间内收到目的节点的ICMPv6端口不可达报文,则目的节点可达,且可以根据Tracert结果得到数据报文从源节点到目的节点所经历的路径;否则,目的节点不可达,且可以根据Tracert结果定位故障节点。

1.5  SRv6 TE Policy Ping

SRv6 TE Policy Ping主要用于检查SRv6 TE Policy中各个节点是否可达。

图6 SRv6 TE Policy Ping示意图

 

6所示,SRv6 TE Policy中的SID列表为{b, d}SRv6 TE Policy Ping工作过程为:

(1)     Device ADecive D发起Ping,构造ICMPv6请求报文,将SRv6 TE PolicySID列表封装到SRH中并进行发送。

(2)     中间节点收到ICMPv6请求报文后:

¡     如果中间节点为SRv6节点(如Device B),则基于SRHDevice C转发ICMPv6请求报文。

¡     如果中间节点不是SRv6节点(如Device C),则直接根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。

(3)     Device D收到ICMPv6请求报文后,报文SRHSL=0,需要查找Local SID表,确认报文目的IPv6地址是否本地的SRv6 SID

¡     如果报文目的IPv6地址是Device DSRv6 SID,则校验通过,向Device A发送ICMPv6应答报文。

¡     如果报文目的IPv6地址不是Device DSRv6 SID,则校验不通过,丢弃ICMPv6请求报文。

(4)     如果Device A在超时时间内收到Device DICMPv6应答报文,则SRv6 TE Policy中各个节点可达;否则,SRv6 TE Policy中存在不可达节点。

1.6  SRv6 TE Policy Tracert

SRv6 TE Policy Tracert在检查SRv6 TE Policy中各个节点是否可达的同时,还可以定位网络中发生故障的节点。

图7 SRv6 TE Policy Tracert示意图

 

7所示,SRv6 TE Policy中的SID列表为{b, d}SRv6 TE Policy Tracert工作过程为:

(1)     Device ADecive C发起Tracert,构造UDP报文(该报文的目的UDP端口号是目的端的任何一个应用程序都不可能使用的端口号),将SRv6 TE PolicySID列表封装到SRH中并进行发送。此时IPv6报文首部的Hop limit字段的取值设置为1

(2)     中间节点收到UDP报文后,如果Hop limit字段的值变成0,则向Device A发送ICMPv6超时报文。

(3)     Device A收到Device B发送的ICMPv6超时报文后,将Hop limit字段的取值加1继续发送UDP报文。

(4)     中间节点收到UDP报文后,如果Hop limit字段的值未变成0,则向下一节点转发UDP报文。

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,则基于SRH转发UDP报文。

¡     如果中间节点不是SRv6节点(如Device C),则根据目的IPv6地址查找IPv6路由表转发UDP报文。

(5)     Device D收到UDP报文后,Hop limit字段的值变成0,报文SRHSL=0,需要查找Local SID表,确认报文目的IPv6地址是否本地的SRv6 SID

¡     如果目的IPv6地址是Device DSRv6 SID,则校验通过,向Device A发送ICMPv6端口不可达报文。

¡     如果目的IPv6地址不是Device DSRv6 SID,则校验不通过,并丢弃UDP报文。

(6)     如果Device A在超时时间内收到目的节点的ICMPv6端口不可达报文,则SRv6 TE Policy中各个节点可达,无故障节点;否则,SRv6 TE Policy中存在不可达节点,且可以根据Tracert结果定位故障节点。

参考文献

·     draft-ietf-6man-spring-srv6-oam-05

新华三官网
联系我们