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】协议,转载请保留原文出处及本版权声明。
评论