基于多协议的战术互联网拓扑发现技术

2023-10-15 07:36陆军装甲兵学院刘海燕朱铭铭
数字技术与应用 2023年9期
关键词:结点路由器报文

陆军装甲兵学院 刘海燕 朱铭铭

在信息化作战中,发现敌方战术互联网络的拓扑结构是重要的战术情报,有助于有重点地切断和破坏敌方网络,确保己方信息优势。在分析现有互联网拓扑发现方法的基础上,将开放最短路径优先(Open Shortest Path First,OSPF)协议和因特网控制报文协议(Internet Control Message Protocol,ICMP)相结合,研究并设计对战术互联网进行拓扑发现的方法,再利用Mininet 仿真工具,搭建一个包含主机、路由器、链路的虚拟网络并进行测试。实验表明,该方法能够在继承基于两种协议拓扑发现优点的基础上,提高拓扑发现的效率和准确性。

基于信息系统的体系作战,要以战场信息网络为基础平台,实现指挥系统、机动战斗部队、情报网络系统、后端通信保障系统间有效的状态传感与指令控制数据的传递。战术互联网作为合成化、数字化作战部队指挥信息系统的运行平台,也是交战双方打击的重要目标之一[1]。战术互联网以TCP/IP 协议体系为基础,按功能构成可以分为骨干网、接入网和战术应用网。其中,骨干网通常采用无线Mesh 网技术构建覆盖作战地域的干线网,战术应用网则由作战单位采用战术电台等构成自组织网络,战术应用网通过接入网接入到骨干网,整体上形成覆盖作战地域、综合性、机动性网络[2]。根据战术互联网拓扑结构动态变化,发现战术互联网的拓扑结构为战场态势提供依据,影响作战双方的制信息权。

目前,常用的网络拓扑结构分析方法有基于ICMP协议的拓扑发现、基于SNMP 网络管理协议的拓扑发现、基于路由协议的拓扑发现等。其中,基于OSPF 协议的拓扑发现开销低,但OSPF 协议将路由器分为不同的工作区域,区域内的路由信息通过区域边界路由器与区域外的路由器进行交换,这就导致采用该方法发现路由拓扑时计算比较复杂,且仅能用来发现网络中的路由器。基于ICMP 协议的发现方法简单可操作性强,在检测拓扑的同时也能发现设备的状态,但该方法发送探测数据包耗时容易造成网络拥挤。本文基于战术互联网的应用实际,研究设计了两种协议相结合的战术互联网拓扑发现方法,将两种方法进行优势互补,既能保持基于OSPF 协议进行拓扑发现的灵活性和高效性,又避免了单纯靠ICMP 协议造成网络拥挤的问题。

1 战术互联网拓扑发现技术分析

战术互联网拓扑发现是指利用网络传输协议来确认网络中的结点及链路连接关系的过程。其中最常用的技术包括如下几种。

1.1 基于ICMP 协议的拓扑发现

ICMP 协议是网络层协议,其主要作用是确认数据包能否成功发送到目标网络设备、通知在数据包发送过程中发生差错的情况以及提供有关异常情况的报告。ICMP 报文有两类,即查询报文和差错报告报文,它们都可以用来测试网络间的连通性。常用的网络命令Ping,就是利用了ICMP 的查询报文,判断源和目标结点之间的可达性。命令Traceroute(Windows 主机上的Tracert 命令),则利用了ICMP 差错报文,发现从源主机到目标结点的路径上各路由器结点和目标结点[3]。

使用ICMP 报文,可以根据可达性及路径来分析网络的拓扑[4],该方法简单可操作性强,在检测拓扑的同时还能发现设备的状态。但该方法需要逐个结点测试,发送地探测数据包容易造成网络拥挤。

1.2 基于SNMP 协议的拓扑发现

SNMP 协议是一种应用层协议,为各种不同型号不同种类的网络设备提供统一的管理接口。在基于SNMP协议的网络管理中,管理信息结构SMI 定义被管设备中的命名对象、定义对象类型的规则、把对象和对象的值进行编码的规则。管理信息库MIB 在被管理的实体中创建命名对象;SNMP 协议是管理站与被管设备间交换消息的规定,它按照SMI 定义的规则,存储、改变被管设备中由MIB 说明的对象的值。

基于SNMP 协议的拓扑分析技术是以SNMP 的GET方法为基础,网管站将从设备MIB 库中获得的信息进行分析整理,从而得到网络拓扑[5]。通过SNMP 协议进行拓扑发现其优点是可扩展性强,但它强烈依赖于设备中运行的SNMP 协议和MIB 库[6]。由于不同厂商设备可能使用私有的MIB 定义,而通过GET 命令不能自动发现设备采用的私有MIB,所以在战术互联网中应用较少。

1.3 通过OSPF 协议的拓扑发现

开放式最短路径优先协议OSPF 是一种常用的内部网关路由协议。当链路状态发生变化或者每隔一定时间,路由器以洪泛方法,向所有相邻路由器发送与本路由器相邻的所有路由器的链路状态信息,而每个相邻路由器又再将此信息发往其所有的相邻路由器[7]。经多次迭代,最终每个路由器都能够获得一致的全网结构图。最后,相关路由器运用最短路径算法计算出本路由器的路由表。

OSPF 使用的链路状态更新LSU 分组是该协议最核心的分组,封装有路由器间发送的链路状态通告,通过监听路由器间的链路状态信息,可以分析网络的拓扑结构[8]。但该方法只能获得OSPF 路由器之间的拓扑连接关系,无法获得其他结点与路由器之间的连接关系。

2 多协议结合的拓扑发现设计

战术互联网一般不使用通用的SNMP 协议进行网络管理,而是使用自定义的管理协议和管理系统,因此不适合使用SNMP 协议进行拓扑发现。由于其拓扑结构动态变化,网络中用于路由维护的信息较多,因此可以基于路由信息进行拓扑发现。此外,为了及时了解网络的连通性,战术互联网中各设备和主机的Ping 测试通常为开放状态。为此,可以将ICMP 协议与OSPF 协议相结合,实现战术互联网进行从路由器结点到主机结点的详细拓扑发现。

2.1 算法组成

整个拓扑发现过程分为三大步:

第一步:路由器发现。捕获OSPF 协议分组,对于LSA 列表的每一条记录,提取其中的LinkID 和RouterID,记录Link 和Router 的对应关系。

第二部分:主机发现。记录路由器连接的每个子网,对这些子网进行逐一扫描,发现每个子网中活跃的主机。以(Router,Host)的形式记录路由器和主机之间的连接状态。

第三部分:拓扑结构可视化呈现。遍历结点和连接关系数据结构,以图形的形式将拓扑结构展示出来。

2.2 算法设计

2.2.1 基于OSPF 的路由器发现算法

在一台路由器上,基于WinPcap 捕获OSPF 协议的数据包,逐个处理LSA 数据包,解析出路由器间的连接关系,具体流程如图1 所示。

图1 根据LSA 数据包分析路由器连接关系Fig.1 Analyzes the router connection relationship according to the LSA packet

首先检测LSA 报文的类型,RouterLSA 是最基本的LSA,里面记录从本路由器到其他路由器链路或末端网络,NetworkLSA 记录了指定路由器产生的本网段链路状态。针对RouterLSA,根据链路类型进行不同处理,对于TranitNet 类型,将源路由器和指定路由器IP 的对应关系记录到TransitMap 表中。对于Point-to-point、Vitural 类型,直接根据Link ID、LinkData 获得对端路由器ID 以及接口信息;对于Stub 类型,根据Link ID、LinkData获得末端网络的IP 和掩码,将这些拓扑信息记录到连接关系表中。针对NetworkLSA 类型,要根据指定路由器的IP 地址匹配TransitMap 表中的记录,然后将匹配的源路由器和其附带路由器的连接关系记录下来。

2.2.2 基于ICMP 协议的主机发现

首先获取每个路由器直连的所有网段,利用Nmap的ICMP 扫描,根据响应情况判断活跃主机。其中启动ICMP 扫描,保存扫描主机和连接关系的代码如下:

2.2.3 拓扑显示设计

在上述拓扑发现过程中,算法记录发现的结点和连接关系。数据结构节点用Python 里的Dict 表示:对于路由器,Dict 的Key 是路由器的名称,Dict 的Value 记录了路由器的详细配置信息。对于主机,Dict 的Key 是其IP 地址,Dict 的Value 是其接口配置信息。结点间的连接关系用二维数组Pair 表示,其中,Pair[0]表示一端路由器的名称和使用的接口,Pair[1]表示另一端路由器或主机的名称和使用的接口。

拓扑发现过程结束后,遍历结点数据Dict 和连接关系数据Pair,基于Py-ECharts 图形绘制接口,将节点和边以可视化方式绘制出来。

3 仿真验证

本文在Ubuntu 系统下安装Mininet 仿真软件。首先使用Mininet 生成一个虚拟网络,包括主机、路由器结点以及它们的连接,然后在路由器上启用OSPF 协议、在主机上启用ICMP 协议。最后利用本文设计的拓扑发现算法,在一台接入主机上开始进行拓扑发现。实验步骤和结果如下。

3.1 实验网络搭建

在Mininet 环境下,假设要创建的结点和结点间的连接关系保存在数据结构nodes 和adjs 中。则根据数据结构构建虚拟网络,创建路由器、主机结点以及其间链路的关键代码如下。

3.2 启动路由器的OSPF 协议

配置好拓扑后,需要在路由器上运行OSPF 程序,为此自定义一个Router 类,它继承Mininet 的Node 类,并定义了一个启动ospfd 程序的方法start_ospfd,该方法的关键代码如下:

3.3 实验结果

实验首先启动Mininet 仿真程序创建虚拟网络,并在路由器上启动OSPF 协议,然后运行拓扑发现程序。拓扑发现程序依次利用OSFP 协议和ICMP 协议对虚拟网络进行拓扑发现,将发现结果以图数据库的形式存储,最终利用Py-ECharts 绘制拓扑图。拓扑发现结果如图2 所示。

图2 拓扑发现程序的运行结果Fig.2 The running results of topology discovery program

4 结语

本文研究设计了一个OSPF 和ICMP 协议相结合的战术互联网拓扑发现方法,先通过OSPF 协议分析读取路由信息,然后再通过ICMP 协议实现主机的存活扫描,最后利用Mininet 网络仿真工具搭建一个包括主机、路由器和链路的虚拟化网络并进行拓扑发现实验。实验结果表明,该算法可以准确地得到网络的完整拓扑图。尽管方法发现拓扑的效率和准确率有所提升,但仍有许多问题需要解决,例如,在作战中战术互联网数据量大、拓扑多变,如何提升拓扑发现的实时性是下一步研究的重点。

猜你喜欢
结点路由器报文
基于J1939 协议多包报文的时序研究及应用
买千兆路由器看接口参数
路由器每天都要关
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
无线路由器的保养方法
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
ATS与列车通信报文分析
基于Raspberry PI为结点的天气云测量网络实现
无线路由器辐射可忽略