前言:
如其他人造系统一样,互联网的运行也会出现异常甚至中断。仅在2022年就发生了多起影响重大的互联网中断事件:1月15日汤加火山喷发三个小时后,全国断网,和外界的所有电话与网络联系都无法接通;3月28日,发生了Twitter的 AS13414被俄罗斯JSC RTComm.RU的AS8342劫持事件等。
互联网中断造成的损失通常代价昂贵,据福布斯报道,2013年8月19日,亚马逊由于断网每分钟损失66,240美元。
因为互联网自治运行的特性以及网络协议的局限性,在应对互联网中断事件时面临许多挑战,包括如何分析互联网中断、如何检测互联网中断、如何量化中断的影响、如何量化网络的健壮性、如何评估互联网中断的风险、如何在互联网中断下生存下来并减轻影响等。所以,检测正在进行的网络中断对于定性和定量地了解破坏性事件的类型、范围、后果与及时激活缓解和补救活动就显得非常重要。
01互联网中断的定义及原因分类
由于故意或意外事件,位于特定地理区域的一个或多个网络元素不能正常工作或无法到达时,互联网所处的特定状态,就称为互联网中断。
从骨干网络服务商的视角,互联网中断原因包括:
· 维护:设备或链路的计划停机;
· 路由器相关:包括崩溃/重启,线卡故障或重置,CPU过载,人为错误配置;
· 光设备相关:包括光学器件故障和电缆割伤;
· 其他多重链接:时间重叠且原因不明的故障;
· 单链路高频率:包括因老化或长期测试/升级活动而结束使用的部署;
· 单链路低频:原因不明的单一故障。
从网络故障的潜在触发因素,互联网中断原因包括:
1. 大规模灾难(例如地震、飓风、流行病);
2. 社会政治和经济挑战(例如恐怖主义、审查制度);
3. 相关故障(例如电力短缺);
4. 人为错误(例如错误配置);
5. 恶意攻击(例如前缀劫持攻击);
6. 异常但合法的流量(例如寻找突发新闻信息的人群);
7. 环境挑战(例如由于特设网络中节点的移动性);
8. 战争等等。
后者是一个更广泛更一般意义上的分类。
02互联网中断检测和分析技术
互联网中断检测和分析技术分为两类:基于非流量和基于流量。
采用与流量无关的基本技术时,通常检查非结构化数据源、半结构化数据源、结构化数据源。非结构化数据源包括技术博客(如Renesys)、邮件列表(如NANOG)和断网事件归档,以及最终用户发出的警报和通过微博社交网络的服务投诉等;半结构化数据源包括设备使用情况和错误日志、客户邮件、质量告警、用户活动日志等;结构化数据源,如网络故障单,例如用文本挖掘和自然语言处理来分析中断邮件列表。
基于流量相关的技术,又称在线中断检测,这些技术可以分为被动监测和主动探测。检测正在进行的网络中断对于定性和定量地了解破坏性事件的类型、范围、后果与及时激活缓解和补救活动非常重要。无论是在物理中断的情况下(允许识别和可能更换损坏的网络组件),还是在逻辑中断的情况下(允许网络管理员快速恢复令人满意的运行状态),这些方法都特别有用。
检测网络中断通常需要四个步骤: 数据收集和预处理、网络中断检测、故障定位和根因分析,大多数系统只执行前两个步骤。这些系统通过收集数据来持续监测网络,通常结合了被动监测技术或主动探测技术。在此步骤中,还将进行数据过滤和消毒,以便从数据中消除尽可能多的噪声。然后在第二步中,对精细化的数据应用不同的算法,以检测可能与Internet中断相关的大尺度和小尺度事件。
被动检测
大多数使用的被动监测技术都是基于控制平面信息,利用BGP协议收集控制平面数据。也有其他方法依赖于对数据平面流量的分析,主要基于与停机事件相关的流量变化。
控制平面
公开BGP数据存储库对系统中断检测以及特定中断事件的分析非常有帮助。在数据收集步骤中从公共存储库(例如,Routeview、RIPE等)系统地爬取可公开获得的BGP数据,如RIB和UPDATE消息。然后将该数据转换为合适的格式,以便进行后续分析。BGP数据还可用于定位发生中断的AS。依赖BGP数据系统地检测网络中断时的主要缺点是大量的错误警报,因为许多合法事件也可能确定路径或源前缀的改变。基于控制平面检测的方法包括:
1.Profile-based检测
由Li和Brooks开发的一种用于检测网络中断并评估其影响的工具。其主要思想是对互联网的正常状态进行建模,然后在给定的一段时间内监控网络,以衡量互联网是否以及如何偏离这一状态。数据收集过程完全基于公有BGP数据,而中断检测依赖于两阶段聚类方法。在BGP正常配置的情况下,将BGP当前属性值与参考值进行比较。如果在固定的时间窗口中存在显著差异,则检测到中断。BGP普通配置文件表示为一组普通BGP属性值的集群。当发生中断时,测量的BGP属性会被划分到一个单独的异常集群中。
2.基于时间的变化检测
通过聚集与同一BGP事件相关的BGP更新,并将多个边界路由器上的事件关联起来,以便揭示异常,并尝试确定这些异常的根本原因。有两种不同的途径:(1)以互联网为观察点,通过分析AS-AS的相互作用来跟踪异常;(2)以托管中心为观察点,洞察AS如何受到来自只有几跳之遥的外部AS异常的影响。
3.其他检测方法
如采用张量分解法检测感兴趣的事件,采用图论分析方法定位关注事件的源点等。
数据平面
这类检测方法不依赖于域间路由数据,而是依赖于其他基于流量的数据源。根据采集点在网络中的位置,这些方法可以分为基于核心(Core-based)的方法,即在中转网络中观察数据流量,以及基于边缘(Edge -based)的方法,即在末端网络或终端主机上观察数据。
1.基于核心的方法
基于流的连接跟踪方法(FACT)依赖网络中所有边界路由器输出的流级数据来比较流入和流出的流量。在数据收集过程中,FACT收集每个远程主机、网络或AS的Netflow记录和聚合流。关键思想是网络中断可能会导致:(1)到远程目的地(网络前缀、AS等)的不成功单向连接数量加,(2)成功的双向连接数量减少。
2.基于边缘的方法
该方法通常利用协同网络监测平台提供的多种网络故障排除工具。每个节点监视流和路径质量信息,如吞吐量、丢失、延迟,以本地检测事件,监视和关联终端用户应用程序的性能,以便暴露包括中断在内的网络事件。
上述方法都涉及保障用户隐私的问题。
主动探测
许多其他中断检测系统在数据采集过程中主要使用Ping和Traceroute从多个有利位置周期性地探测多个目的地址/断层扫描技术,两种技术通常都依赖分布式主动测量平台。
基于Ping和Traceroute的方法
该方法周期性地用ICMP echo请求(Ping)探测每个IP块,并将响应分为两大类:(1)肯定的,如果收到ICMP应答;(2)否定的,如果ICMP应答表明网络不可达,或没有应答。否定的应答可能应对互联网中断。
层析扫描方法
二值层析成像是通过发送协调的端到端探针来检测链路故障。网络断层扫描是一个强大的工具。然而,它也有局限性:快速检测网络中断意味着高探测率,这在现实网络中是不可行的。此外,网络动态可能会削弱注入的数据包正在遍历先前观察到的相同链路的基本假设,同时负载均衡进一步加剧了这个问题。
主动被动混合方法
哈勃(Hubble)系统根据BGP公共数据在控制平面上存在到达目的网络的路由,但报文没有通过数据平面到达目的网络的方法来检测互联网的可达性问题。数据采集依赖于BGP数据、控制平面变化触发的Ping和Traceroute测量值。PoiRoot实时系统,帮助ISP精确定位任何影响其前缀的路径变化的根本原因。该系统利用了BGP数据,但也结合了Traceroute等测量工具。主被动混合方法多见于学术研究,实际应用中较少使用。
讨论:
依赖被动监控的互联网中断检测系统非常高效,但容易出现:(i)虚假警报和(ii)与隐私相关的重大问题。基于主动探测的解决方案较为有效,但伸缩性差。主动探测会向网络发送大量探测包,运行商往往不能容忍这种行为。此外,在目标目的地数量和采样周期之间的必要权衡导致中断检测系统完全依赖主动探测,可能只报告大型和长时间的网络中断。所以主被动混合方法似乎是最好的选择,因为它结合了被动监测和主动探测的优点。