远程通信网络拓扑

科技工作者之家 2020-11-17

远程通信网络拓扑旨在发现网络实体 , 并获取实体间的连接关系。

远程通讯网络拓扑发现的思路及实现步骤对于利用 SNM P 进行网络拓扑发现的算法而言, 传统的方式是先找一个种子, 以此为起点取得种子的路由表, 从路由表中获取其他种子的路由信息 , 将其他种子路由加入路由链表后进行广度或深度优先遍历。而对于发现大型异构 IP网络而言 , 目标内支持 SNMP 的设备是未知的 。因此 , 首先对目标网段地址进行扫描 , 以发现其中开放 SNMP 的设备 , 即SNMP 代理 ; 再探测得到 SNMP 代理的 IP 表和 route 表 ; 最后对结果进行综合分析 。整个过程包括以下三个步骤1 :

SNMP 代理发现SNMP 代理发现的基本思想是向目标网段的每个地址的161 端口发送 SNMP 的 GetRequest 报文 , 若收到 SNMP 的GetRequest 报文 , 则此网络设备的 SNMP 服务可用 , 将其加入代理链表 。为了提高效率 , 在报文 构 造 时 封 装 变 量 如下 :sysDescr (设备描述 ) ; sysName (设备名称 ) ; sysServices(服务类型 ) ; ifNumber ( 设备接口数) ; ipForwarding (设备转发类型 ) ; ipAdEnt A ddr ( 接口IP地址 ); ipAdEnt NetM ask( 接口子网掩码)。其原因如下 :

其原因如下:

1)对于判断网络设备是否为路由器而言,ipForwarding 等于1是必须的条件,但是只有这一个不够充分。如普通装上Windows 2000的PC和配置为代理服务器的PC其ipForwarding 也是1,所以加入 ifnumber 值大于1加以确认。但对于配置为代理服务器的PC而言,其ipForwarding等于1,且ifnumber值大于1,此时再加入sysServices 进一步确认。若是主机则其 sysServices 为72。

2)实际网络环境下,当一个路由器的多个接口地址都处于同一个探测范围时,则该路由器会有多个接口地址对探测报文进行回应。为了避免将这些别名地址作为不同的路由器进行重复探测,要对同一路由的多个回应地址进行归并操作。此时引入 sysdescr、sysname 和 ifnumber 对路由器进行归并。

3)相同的设备在缺省条件下使用时,sysdescr、sysname和 ifnumber 这三项都是相同的,所以在路由器归并时还需要加上 ipadentaddr 和 ipadentnetMask,根据 IP 地址表第一项的配置是否相同来判断是否是同一个路由器。在探测过程中通过对以上参数的判断,可以得到不重复的代理,并且可以区分设备是转发设备还是非转发设备,为进一步探测和分析奠定了基础。

拓扑相关信息探测获得拓扑信息主要是通过读取网络设备的路由表,需要读取的关键信息如下,对这些关键信息的使用将在拓扑相关信息分析中进行说明:

对于IP地址表来说,需要取得的数据为:ipadentIfIndex(接口索引);ipadentaddr;ipadentnetMask。

对于IP路由表来说,需要取得的数据为:ipRouteIfIndex(接口索引);ipRoutetype (路由类类型); ipRoutenext~op(接口的下一跳 IP 地址);ipRoutedest (目的 IP 地址)。

在实际网络环境中,转发设备的 IP 地址表和 IP 路由表往往很大,多至几百上千条记录,为了提高后期分析的效率,取路由表的时候要对冗余条目及无用条目进行过滤。具体有以下几种情况:

1)在分析过程中ipRoutetype为3(direct)或4(indirect)是有用的数据,但ipRoutetype 也可能被设置成1 (other)或 2(invaiid)。因此,在取数据时,要对此类无用数据进行过滤。

2)环回地址在分析过程中也是无效的,例 如ipadentnetMask 或ipRoutedes为127.0.0.0 或 127.0. 0. 1,此类地址需要在探测时进行过滤。

3)还有一些根据其所在子网地址明显能够发现是无用的条目,例如ipadentaddr或ipRouteMask为 0.0.0.0。

RT 远程 网络拓扑发现算法RT 远程网络拓扑发现算法目的在于更准确地发现远程网络中实体节点的连接关系,包括获得路由器接口之间,以及路由器接口同子网之间的连接关系。本算法一方面利用 SNMP、Traceroute 技术对远程网络中的实体进行信息收集 ,另一方面通过别名探测及子网掩码分析技术对阻塞路由器进行重点探测分析,从而得到一个比较完整、准确的网络拓扑图。下文以 c 类地址 来描述算法流程,子网掩码值最小为 255.255.255.02。

RT算法描述1) 利用 SNMP对远程目标网络内的路由器进行广度优先搜索,可以获得实体信息并记录信息;将不能利用 SNMP获得的转发实体(阻塞路由器 )IP 地址汇总执行下一步。

2) 确定活动主机,记录IP地址;

3 ) 利用别名探子获得 阻塞路由器各接口IP地址对;

4 ) 从 3 )的结果分析出同属于阻塞路由器的各个接口IP地址;

5) 将同一个路由器的不同别名构成一个链表,将此链表作为节点存为一个路由器链表。

6 ) 若链表为空,从链表中提取包含一个路 由器各个别名的节点转到10 ),否则转到7)。

7 ) 若没有进行子网分析的路由器别名IP转10),否则轮寻路由器别名节点中的未经子网分析的别名IP。

8 ) 根据已知多个IP地址分析子网掩码分析出包含路由器别名lP地址的子网掩码与子网号,保存结果;转 9)。

9 ) 在节点中查找没有进行子网掩码分析的路由器别名IP 地址;找到则转 7 ) ;否则转 6 )。

10) 判断阻塞路由器与其他路由器的连接关系,验证阻塞路由器的别名对应子网掩码.

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。