互联网中断检测技术窥览与讨论

news2024/11/28 4:35:40

前言:

如其他人造系统一样,互联网的运行也会出现异常甚至中断。仅在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)与隐私相关的重大问题。基于主动探测的解决方案较为有效,但伸缩性差。主动探测会向网络发送大量探测包,运行商往往不能容忍这种行为。此外,在目标目的地数量和采样周期之间的必要权衡导致中断检测系统完全依赖主动探测,可能只报告大型和长时间的网络中断。所以主被动混合方法似乎是最好的选择,因为它结合了被动监测和主动探测的优点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166688.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统分析师案例必备知识点汇总---2023系列文章二

需求获取 1、需求获取的技术: 用户访谈 优点:具有良好的灵活性,有较宽广的应用范围。 缺点是:用户忙,信息量大,记录困难,需要沟通技巧。 问卷调查 优点:短时间内收集数据。 缺点…

Python aiohttp 库是否值得学?那必须要掌握呀

aiohttp 是一个基于 asyncio 的异步 HTTP 客户端/服务器库。它提供了一组用于编写高性能异步网络应用程序的工具,包括基于协程的客户端和服务器。 库的安装使用 pip install aiohttp Python aiohttp 库通过 aiohttp 搭建服务器aiohttp 路由aiohttp 中间件aiohttp 发…

【机器学习之模型融合】Blending混合法

前言 Stacking堆叠法基础知识:http://t.csdn.cn/dzAna 1、Blending的基本思想与流程👿 Blending融合是在Stacking融合的基础上改进过后的算法。在之前的课程中我们提到,堆叠法stacking在level 1上使用算法,这可以令融合本身向着损…

好家伙,这几个隐藏功能,太香了

很多小伙伴可能被小畅的问题搞糊涂了,因为很多人只会在电脑上堆砌各种小应用,而忽略了Windows原有的实用功能。 而我们也千万不要小看这些功能,它们说不定能在关键时刻助你一臂之力,帮到你不少忙呢! 那么今天小畅就为大…

MobaXterm连接出现 Network error: Connection timed out 问题解决

MobaXterm连接出现 Network error: Connection timed out: 接前文:CentOS安装, 点此查看文章,安装之后的SSH连接: 解决思路如下: 1、检查虚拟机端是否安装ssh 一般情况是可以自动安装的,直接在终端输入s…

系统分析师案例必备知识点汇总---2023系列文章一

一、系统规划 (视频内容:系统分析师-专业知识模块中的系统规划视频) 1 、可行性研究 经济可行性 技术可行性 法律可行性 用户使用可行性 也称为投资收益分析 或成本效益分析,主 要评估项目的建设成 本、运行成本和项目 建成后可能的经济收 益。 技…

eggjs框架源码解读

文章目录前言Egg进程模型Egg应用程序结构egg运行启动的内幕加载插件扩展内置对象加载中间件加载service加载路由加载配置设置应用信息执行业务逻辑文件加载机制结语前言 eggjs 是阿里在 Nodejs 技术上的一大杰作,也是对开源世界的一大贡献。里面包含了很多技术结晶…

Linux---进程概念

目录 1. 什么是进程? 2. 描述进程---PCB task_struct---PCB的一种 task_ struct内容分类 3. 组织进程 4. 查看进程 通过系统调用获取进程标示符 通过系统调用创建进程---fork初识 1. 什么是进程? 其实,我们启动一个软件&#xf…

SLAM本质剖析番外-李群李代数的微分和导数

0. 简介 这几个月,博主已经从SLAM算法的使用向着算法的数学推导进行了记录和分享,之前也分享了李群李代数关注核心一文,从现象中解释了李群和李代数表达的含义。但是这还不够,所以这次作者作为SLAM本质剖析的番外,来介…

基础数字(一)位运算 哈希(数组中元素出现次数)

目录 力扣剑指 Offer II 070. 排序数组中只出现一次的数字 数组中只出现一次的数(其它数出现k次)_牛客题霸 数组中只出现一次的两个数字_牛客题霸_牛客网 数组中出现次数超过一半的数字_牛客题霸_牛客网 缺失的第一个正整数_牛客题霸_牛客网 力扣剑指…

[杂记]算法:前缀和与差分数组

这篇讲一下前缀和与差分数组的关系 1. 前缀和 1.1 一维数组前缀和 前缀和在处理数组中的连续子数组的某一段加和的问题中很有用, 因为是拿空间换时间, 可以将线性复杂度降低为常数时间复杂度. 前缀和的道理很简单, 对于数组arr[i],i0,...,n−1arr[i], i 0, ..., n - 1arr[i…

《Linux Shell脚本攻略》学习笔记-第四章

4.1 简介 本章主要介绍sed、awk、grep、cut等命令,这些工具可以相互结合以满足文本处理需求。 正则表达式是一种基础的模式匹配技术。 4.2 使用正则表达式 正则表达式是由字面文本和具有特殊意义的符号组成的。 1)位置标记 位置标记锚点是标识字符串位置…

Anaconda安装、opencv环境配置、jupyter notebook使用虚拟环境

目录一、Anaconda 的安装二、opencv 3.4.1.15版本安装三、jupyter notebook使用虚拟环境四、运行报错-缺库一、Anaconda 的安装 Anaconda官网:Anaconda Installers Anaconda历史版本:Anaconda Index of 这边建议和我装一样anaconda3 python3.7&#xf…

opencv的图像基本操作(基于jupyter Notebook)

opencv的基本操作cv2是opencv在python中的缩写,函数开头用cv2cv2.imread(cat.jpg) #读入图片cat.jpgcv2.imwrite(mycat.png,img) #图片img保存为mycat.pngcv2.imshow(image,img) #创建窗口,显示图像cv2.waitKey(10000) #等待时间,以 毫秒为单…

整数分解

问题描述 将 3 分解成两个正整数的和, 有两种分解方法, 分别是 312312 和 321321 。注意顺序不同算不同的方法。 将 5 分解成三个正整数的和, 有 6 种分解方法, 它们是 113122113122 131212221311131212221311 。 请问, 将 2021 分解成五个正整数的和, 有多少种分解方法? …

Android大厂面试100题,涵盖测试技术、环境搭建、人力资源

测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? 3、测试的策略有哪些? 4、正交表测试用例…

Sinutrain下载安装与开启OPC UA---kalrry

Sinumerik下载安装与开启OPC UA---kalrry前言一、安装前准备二、Win7安装1、软件安装2、开启授权3、文件配置4、客户端连接三、Win10/11安装四、启动后使用前言 本教程只适用于 Sinutrain-v4.7 版本,其他版本配置目录有所改变建议安装到默认路径,否则后…

【云原生】k8s安全机制

内容预知 前言 1. 认证(Authentication) 1.1 k8s集群内的三种认证方式 1.2 k8s集群内的认证说明 (1)需要被认证的访问类型 (2)安全性说明 (3)证书颁发的方式 (4&a…

Qt中使用qt自带的函数实现各种进制间的相互转换,easy.

文章目录一.十进制转各种进制第一种:使用QString的静态函数number第二种:使用QString的拼接函数arg二.各种进制相互转换一.十进制转各种进制 第一种:使用QString的静态函数number ①使用QString的静态函数number即可,如我把字符…

嵌入式linux-进程状态与进程关系

1. 进程状态 1.1什么是进程状态 Linux 系统下进程通常存在 6 种不同的状态,分为:就绪态、运行态、僵尸态、可中断睡眠状态(浅度 睡眠)、不可中断睡眠状态(深度睡眠)以及暂停态。 下面我们来一一总结一下&…