04-SRv6 OAM配置
本章节下载: 04-SRv6 OAM配置 (290.49 KB)
目 录
SRv6 OAM(Operations, Administration, and Maintenance,操作、管理和维护)用于检测SRv6路径的连通性、定位SRv6路径的故障点和检测PE到CE之间链路连通性。
SRv6 OAM支持如下检测方式:
· SRv6 SID Ping/Tracert方式:用于检查网络连接及主机是否可达。
其中,SRv6 SID Ping为H3C私有协议。
图1-1 SRH的Flags字段格式
如图1-1所示,O-bit位于SRH的Flags字段,用于指示SRv6节点执行OAM处理。若报文中的O-bit置位,则SRv6节点需要基于SRH处理报文。在SRv6 OAM中,如果需要报文传输路径上的SRv6节点都对源节点发送的OAM检测报文进行应答,则需要源节点在发送的报文中将O-bit置位。
SRv6 SID Ping支持逐段检测和非逐段检测两种检测方式。
逐段检测是指在SRv6转发路径中,检测源节点和所有SRv6节点之间的连通性。SRv6转发路径中所有SRv6节点均会向源节点回复ICMPv6响应报文。
图1-2 SRv6 SID Ping逐段检测方式示意图
如图1-2所示,逐段检测工作过程为:
(1) Device A向Decive D发起Ping,依次指定Device B的SRv6 SID和Device D的SRv6 SID。Device A构造ICMPv6请求报文,封装SRH扩展头并进行发送。
(2) 中间节点收到ICMPv6请求报文后:
¡ 如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,同时报文SRH的Flags字段中O标记位置位,则向Device A发送ICMPv6应答报文,并且基于SRH转发ICMPv6请求报文。
¡ 如果中间节点不是SRv6节点(如Device C),则不向Device A发送ICMPv6应答报文,直接根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。
(3) Device D收到ICMPv6请求报文后,报文SRH的Flags字段中O标记位置位且SL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID:
¡ 如果报文目的IPv6地址是Device D的SRv6 SID,则校验通过,向Device A发送ICMPv6应答报文。
¡ 如果报文目的IPv6地址不是Device D的SRv6 SID,则校验不通过,丢弃ICMPv6请求报文。
(4) 如果Device A在超时时间内收到目的节点的ICMPv6应答报文,则目的节点可达;否则,目的点不可达。
非逐段检测是指仅检测源节点和目的节点之间的连通性。仅目的节点向源节点回复ICMPv6响应报文。
图1-3 SRv6 SID Ping非逐段检测方式示意图
如图1-3所示,非逐段检测工作过程为:
(1) Device A向Decive D发起Ping,依次指定Device B的SRv6 SID和Device D的SRv6 SID。Device A构造ICMPv6请求报文,封装SRH扩展头并进行发送。
(2) 中间节点收到ICMPv6请求报文后:
¡ 如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,则基于SRH转发ICMPv6请求报文。
¡ 如果中间节点不是SRv6节点(如Device C),则根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。
(3) Device D收到ICMPv6请求报文后,报文SRH中SL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID:
¡ 如果报文目的IPv6地址是Device D的SRv6 SID,则校验通过,向Device A发送ICMPv6应答报文。
¡ 如果报文目的IPv6地址不是Device D的SRv6 SID,则校验不通过,丢弃ICMPv6请求报文。
(4) 如果Device A在超时时间内收到目的节点的ICMPv6应答报文,则目的节点可达;否则,目的节点不可达。
SRv6 SID Ping包检测可以指定携带Path Segment参数,使ICMPv6请求报文到达目的节点后,目的节点可以根据Path Segment关联的本地SID列表来封装回程ICMPv6应答报文,使ICMPv6应答报文按照本地SID列表指示的路径返回源节点。
图1-4 携带Path Segment的SRv6 SID Ping包检测示意图
如图1-4所示,以非逐段检测工作过程为例,携带Path Segment的SRv6 SID Ping包检测流程如下:
(1) Device A向Decive D发起Ping,依次指定Device B、Device C和Device D的SRv6 SID。Device A构造ICMPv6请求报文,封装SRH扩展头并进行发送。在SRH扩展头中Flags字段的第五位P-flag置位,表示该SRH扩展报文头中将携带Path Segment x,且Path Segment封装在SID列表中第一个SID b之前。
(2) 中间节点收到ICMPv6请求报文后:
¡ 如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,则基于SRH转发ICMPv6请求报文。
¡ 如果中间节点不是SRv6节点,则根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。
(3) Device D收到ICMPv6请求报文后,检查报文SRH中P-flag置位,表示SRH中携带了Path Segment,且SL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID:
¡ 如果报文目的IPv6地址是Device D的SRv6 SID,则校验通过,向Device A发送ICMPv6应答报文。发送应答报文时,根据SRH中的Path Segment查找本地是否存在SID列表,该SID列表指定了反向Path Segment,且反向Path Segment与SRH中携带的Path Segment相等,如果相等,则根据该SID列表封装ICMPv6应答的回程报文。如果不存在符合要求的SID列表,则无需重新封装SRH,直接向Device A发送ICMPv6应答报文。
¡ 如果报文目的IPv6地址不是Device D的SRv6 SID,则校验不通过,丢弃ICMPv6请求报文。
(4) 如果Device A在超时时间内收到目的节点的ICMPv6应答报文,则目的节点可达;否则,目的节点不可达。
SRv6 SID Tracert支持Overlay检测和非Overlay检测两种方式。
通过Overlay方式查看SRv6转发路径时,仅显示转发路径上所有SRv6节点的信息。
进行Overlay检测时,如果指定End.OP SID,应该保证定End.OP SID是最后一跳SID,如果后面还有其他SID,则后续SID不能为尾节点上的本地节点,否则无法应答。
图1-5 SRv6 SID Tracert Overlay检测方式示意图
如图1-5所示,Overlay检测工作过程为:
(1) Device A向Decive D发起Tracert,依次指定Device B的SRv6 SID和Device D的SRv6 SID。Device A构造UDP报文(该报文的目的UDP端口号是目的端的任何一个应用程序都不可能使用的端口号),封装SRH扩展头并进行发送。此时IPv6报文首部的Hop limit字段的取值设置为64。
(2) 中间节点收到UDP报文后:
¡ 如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,同时报文SRH的Flags字段中O标记位置位,则向Device A发送ICMPv6端口不可达报文,并且基于SRH转发UDP报文。
¡ 如果中间节点不是SRv6节点(如Device C),则不向Device A发送ICMPv6端口不可达报文,直接根据目的IPv6地址查找IPv6路由表转发UDP报文。
(3) Device D收到UDP报文后,报文SRH的Flags字段中O标记位置位且SL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID:
¡ 如果报文目的IPv6地址是Device D的SRv6 SID,则校验通过,向Device A发送ICMPv6端口不可达报文。
¡ 如果报文目的IPv6地址不是Device D的SRv6 SID,则校验不通过,并丢弃UDP报文。
(4) 如果Device A在超时时间内收到目的节点的ICMPv6端口不可达报文,则目的节点可达,且可以根据Tracert结果得到数据报文从源节点到目的节点所经历的路径;否则,目的节点不可达,且可以根据Tracert结果定位故障节点。
通过非Overlay方式查看SRv6转发路径时,会显示转发路径上所有节点(包括支持SRv6的节点和不支持SRv6的节点)的信息。
图1-6 SRv6 SID Tracert非Overlay检测方式示意图
如图1-6所示,非Overlay检测工作过程为:
(1) Device A向Decive D发起Tracert,依次指定Device B的SRv6 SID、Device D的SRv6 SID。Device 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,报文SRH中SL=0,需要查找Local SID表,确认报文目的IPv6地址是否为本地的SRv6 SID:
¡ 如果报文目的IPv6地址是Device D的SRv6 SID,则校验通过,向Device A发送ICMPv6端口不可达报文。
¡ 如果报文目的IPv6地址不是Device D的SRv6 SID,则校验不通过,并丢弃UDP报文。
(6) 如果Device A在超时时间内收到目的节点的ICMPv6端口不可达报文,则目的节点可达,且可以根据Tracert结果得到数据报文从源节点到目的节点所经历的路径;否则,目的节点不可达,且可以根据Tracert结果定位故障节点。
设备必须满足如下条件才支持配置SRv6 OAM:接口板为SF系列接口板。
仅支持对DX4、DX6、DT4、DT6、DT46、DX2、DT2U、DT2M类型的SID执行SRv6 SID Ping操作。
可在任意视图下执行本命令,通过SRv6 SID Ping功能检测SRv6转发路径的连通性。
ping ipv6-sid [ -a source-ipv6 | -c count | -m interval | -q | -s packet-size | -t timeout | -tc traffic-class | -v ] * [ segment-by-segment ] sid &<1-11>
对于非Overlay检测场景:
· 需要在中间设备(源节点与目的节点之间的设备)上开启设备的ICMPv6超时报文的发送功能。
· 需要在目的节点开启设备的ICMPv6超时报文的发送功能和ICMPv6目的不可达报文的发送功能。
对于Overlay检测场景,需要在中间设备(源节点与目的节点之间的设备)和目的节点上开启设备的ICMPv6目的不可达报文的发送功能。
可在任意视图下执行本命令,通过SRv6 SID Tracert功能查看包含指定SRv6 SID列表的IPv6报文从源节点到目的节点所经过的路径。
tracert ipv6-sid [ -a source-ipv6 | -f first-hop | -i interface-type interface-number | -m max-hops | -p port | -q packet-number | -s packet-size | -t traffic-class | -w timeout ] * [ overlay ] sid &<1-11>
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!