SRv6 故障管理

OAM 一般指用于网络故障检测、网络故障隔离、网络故障上报以及网络性能检测的工具,被广泛运用于网络运维和管理中。根据功能划分,OAM 主要包含两大部分:
- FM(Fault Management,故障管理) 
- CC(Continuity Check,连续性检测):主要用于地址可达性检测,主要的机制有 IP Ping、BFD、LSP Ping 等。 
- CV(Connectivity Verification,连通性校验):主要用于路径验证和故障定位,主要机制有 IP Traceroute、BFD、LSP Ping 等。 
- PM(Performance Measurement,性能测量) 
- DM(Delay Measurement,时延测量):测量时延、时延抖动等参数。 
- LM(Loss Measurement,丢包测量):测量丢包数、丢包率等参数。 
- Throughput(吞吐量):测量网络接口和链路的带宽、单位时间报文处理能力等参数。 
在不同的网络场景中,OAM 的机制也各不相同。例如,在 IP 网络中,可以基于 IP Ping 和 IP Traceroute 实现 IP 网络的连续性检测、连通性校验等 FM 功能。在 MPLS 网络中,可以用 LSP Ping/IP Traceroute 来实现 LSP 的连续性检测和连通性校验。BFD 是另外一个可以实现快速的连续性检测和连通性校验的工具,它可以应用在 IP 网络中,也可以应用在 MPLS 网络中。
对于性能测量,根据是否需要主动发送 OAM 报文,可以将性能测量分为 3 类。
- 主动(Active)性能测量:主动性能测量需要在网络中发送探测报文,然后通过对探测报文的测量,推测出网络的性能。例如,TWAMP (Two-Way Active Measurement Protocol,双向主动测量协议)就是一种典型的主动性能测量方法。 
- 被动(Passive)性能测量:被动性能测量方法与主动性能测量方法不同,它通过直接监测业务数据流本身得到性能参数,不需要发送额外的探测报文,也不需要改动业务报文,所以能准确、真实地反映出网络的性能。 
- 混合(Hybrid)性能测量:混合性能测量是一种主动性能测量和被动性能测量相结合的方法。它可以不用在网络中发送额外的探测报文,只需对业务报文的某些字段进行一定的改动,比如通过对报文头的某些字段进行“染色”的方式,来实现对网络性能的测量。IPFPM(IP Flow Performance Measurement,IP 流性能测量)就是一种典型的混合性能测量方法,这种方法通过对报文进行染色从而实现对真实数据流的直接监测。 
在 IP 网络中,连续性检测的主要方法是基于 ICMP(Internet Control Message Protocol,因特网控制报文协议)的 Ping。由于 SRv6 的转发基于 IPv6,所以传统的 IP OAM 工具都可用于 SRv6。比如 IPv6 Ping 可以直接应用于 SRv6 网络,实现对某个 IPv6 地址的连续性检测。同时,SRv6 还引入了一些增强的 OAM 功能,用于满足对 SRv6 SID 的 Ping 和 Traceroute,例如指定路径的 Ping、SRv6 SID Traceroute 等。
- 经典 IP Ping 
SRv6 基于标准 IPv6 数据平面转发数据,所以可以直接使用 ICMPv6 Ping 实现对普通 IPv6 地址的连续性检测 ,而无须对硬件或软件进行任何的改变。当前 ICMPv6Ping 支持报文按照最短转发路径转发到目的地址,实现目的地址的可达性检测。此外,如果希望 ICMPv6 Echo 报文通过指定的路径转发到对应的 IPv6 目的地址,完成对指定路径的 Ping,则可以通过在 IPv6 报文头中增加 SRH 携带指定的路径(Segment List),实现按指定路径转发的 Ping。
- Ping SRv6 SID 
当被检测的目的地址是一个 SRv6 SID,则无法直接通过 ICMPv6 Ping 完成,需要使用 SRv6 的 OAM 扩展才能实现。这是因为按照目前 SRv6 的规定,若目的地址是一个 SRv6 SID,报文到达这个 SID 对应的节点时,节点需要按照 SID 指示进行处理,例如进行替换目的地址、解封装外层报文头等操作。而这些操作对应的 SRH 的 Next Header(NH)应该是 SRH(对应最后一个 SID 为 End/End.X/End.T 等 SID 的多 SRH 情况)或者 IPv4/IPv6/Ethernet(对应 End. DT4、End.DT6 等 SID),而非 ICMPv6。所以如果按照普通的 Ping 封装 SRv6 报文,则会因为 Next Header 值不匹配而出现错误,导致报文被丢弃。
- 经典 Traceroute 
与 ICMPv6 Ping 同理,在 SRv6 网络中也不需要任何改动,即可对普通 IPv6 地址进行 Traceroute。由于 SRv6 引入了 SRH,可以实现指定路径的转发。对于 Traceroute,通过在 Traceroute 的报文头中插入 SRH,携带指定的路径,就可以实现指定路径的 Traceroute。
经典 Traceroute 的原理是发送多个探测报文[ICMP Echo 报文或 UDP (User Datagram Protocol,用户数据报协议)报文]到被检测的目的地址,通过 TTL 控制数据报文的 Hop Count,使报文在转发路径的指定跳数上超时,然后上送报文到控制平面进行处理。控制平面处理超时报文,向源地址返回 ICMP 超时报文,从而得出报文转发到目的地址的每一跳的信息。
- SRv6 SID Traceroute 
与 SRv6 Ping 同理,SRv6 Traceroute 也是通过插入 End.OP/End.OTP SID 来指示是否需要进行 OAM 操作,其原理与普通 IPv6 地址的 Traceroute 没有太大差异,仅在对最后的 SRv6 节点或最后的 SID 发布节点的处理上有所不同。
SRv6 OAM 可以结合 ICMPv6 以及 SRv6 新增的 End.OP 和 End.OTP 等机制来实现故障管理。整体上,SRv6 网络不会引入太多故障管理方面的 OAM 新机制,这也使得 SRv6 的部署更容易。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/3b7b9ff34252ff62424974668】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。












 
    
评论