好文档 - 专业文书写作范文服务资料分享网站

基于SNMP的网络层拓扑发现算法研究与改进

天下 分享 时间: 加入收藏 我要投稿 点赞

基于SNMP的网络层拓扑发现算法研究与改进

许 浩,许卫中,高东怀,张 毅

【摘 要】[摘要]目的:研究并改进现有网络层拓扑发现算法,解决其在路由信息无法完整反映所有路由链路时网络拓扑发现不完整的问题。方法:结合自主研发的综合业务管理系统软件,分析策略路由会导致现有算法无法完整发现网络拓扑的原因,利用设备类型进行判断并使用IP地址表对现有算法进行改进。结果:提出了一种路由、交换设备和计算机的识别方法,并实现基于路由信息表和IP地址表相结合的网络层拓扑发现算法。结论:实验证明新算法在路由信息不能完整反映所有路由设备之间的连接时能完整地发现网络拓扑,具有一定的应用和推广价值。 【期刊名称】医疗卫生装备 【年(卷),期】2012(033)001 【总页数】3

【关键词】[关键词]网络拓扑;拓扑发现;路由信息;设备识别

1 引言

网络拓扑为展示网络设备之间的连接关系提供了一种直观、有效的途径,通过网络拓扑图可以判断当前网络设备部署是否合理,同时也为网络故障排除提供了重要的依据。因此,快速、准确地自动发现网络拓扑一直是网络管理研究的重要内容之一。

网络层拓扑发现(即路由拓扑发现)是网络拓扑发现的重要内容,常用算法是根据每个路由设备中路由信息表的下一跳地址获得所有路由设备,并计算出各个路由设备之间的连接关系,但在路由信息残缺或路由信息无法包含完整链路

信息时,可能会导致路由拓扑发现不完整,所以需要研究一种网络层拓扑发现的新算法来解决这一问题。

2 路由拓扑发现算法

2.1 基于路由信息表的算法

在MIB库中ipRouteTable(.1.3.6.1.2.1.4.21)定义了设备路由信息[1],我们可以通过SNMP协议读取获得,其具体内容有13项,与路由拓扑发现相关的有ipRouteDest、ipRouteIfIndex、ipRouteNextHop、ipRouteType和 ipRouteMask 等 5 项(见表 1)。

基于路由信息表的算法是典型的深度优先算法,其步骤如下:

(1)读取路由设备ipRouteTable信息,初始设备可以手工指定,也可以通过程序所在主机的缺省网关自动设定。

(2)在获得的路由信息中,ipRouteType为4(间接路由标志)的所有路由记录的ipRouteNextHop值即下一跳地址,是与该设备直接连接的其他路由设备地址,将其写入队列A。

(3)依次读取队列A中地址,检查是否已经读取过该地址对应路由设备的路由信息,如果读取过,则从队列A中读取下一个地址,再次检查;如果没有读取过,重复步骤(1)~(2),直至队列A中所有路由设备全部读取完毕。 2.2 存在的问题

在我校校园网中采用上述算法进行拓扑自动发现校园网路由拓扑,如图1所示,除链路1外其余链路均完整发现。

我校为校园网用户提供了2种方式访问中国公众网:一是代理服务器方式(PROXY),即用户通过学校统一部署的代理服务器访问,代理服务器网段为

61.134.11.224/28,链路1用于此网段内的计算机访问中国公众网;二是地址转换方式(NAT),即在电信出口防火墙上部署NAT策略,未使用代理服务器的用户其访问公众网的请求经出口路由器和电信防火墙出校。之所以未发现链路1是由于在核心交换机1和电信防火墙上部署了策略路由。所谓策略路由是综合考虑多种因素,如源地址、目标地址、服务等条件之后再决定如何转发数据包的路由。在普通路由信息中并不包含策略路由信息,针对上述原因将电信防火墙上的策略路由改为普通静态路由即目标地址为61.134.11.224/28的下一跳地址为链路1与核心交换机1的接口地址,重新发现后恢复正常, 如果不更改电信防火墙上的策略路由或者是在某些情况下无法更改时,需要搭建测试环境对上述算法进行改进才能发现完整的拓扑,具体如图2所示。 在路由器A和路由器B上只配置策略路由实现各自网段间的访问,在10.10.1.0/24的1台计算机上运行上述算法,无法发现路由器B及其与路由器A之间的链路。分别查看路由器A、B的路由表,每个路由器上有3条路由信息,全部为直连路由(见表2),由于路由器A的路由表中没有间接路由,所以无法通过下一跳地址获得路由器B的地址。

文献[2]中提出在原有算法的基础上通过路由设备探测,在已获得网段内查找有无新的路由设备,再重新扫描路由信息表构建出完整的拓扑。采用文献[2]的算法,虽然可以发现路由B,但仍然无法发现路由器A和路由器B之间的链路。其根本原因是单纯依靠间接路由信息无法确定路由设备之间的链接关系。

3 算法改进

经过上述实际情况分析,之所以无法建立完整的网络拓扑主要有2个原因:一是通过下一跳地址不能发现所有路由设备或链路;二是路由表信息不能完全体

现实际连接情况。因此,可结合文献[2]中路由设备探测对原始算法进行修改和完善。

3.1 网络设备类型的探测

网络中所有可能的设备,除安全设备之外,可以分为路由设备、交换设备和计算机(服务器)3类,根据大量的实验分析,可以按照下列参数(见表3)进行判断。

(1)hrSystemUptime[3] 参数来源于 RFC 2790 (Host Resource),表示主机距最后一次启动已运行的时间。路由和交换设备通常不支持RFC 2790标准,而个人计算机或服务器在提供SNMP服务时通常会支持。

(2)ipForwarding[1]参数来源于 RFC 1213,表示设备是否提供数据包转发功能(1表示使用,2表示不使用),路由器、多层交换机或启用数据包转发的主机该参数值为1(部分多层交换机在使用2层交换功能时,该参数值仍为1,应将这类设备作为交换设备,而不是路由设备),普通交换机和个人主机该值为2。

(3)ipAddrTable[1]参数来源于 RFC 1213,表示设备设置的IP地址信息,路由设备通常除127.0.0.1/8外,至少配置2个以上的地址信息,否则在该位置只需要部署交换机,计算机也可能存在多个地址信息。

(4)sysServices[1]参数来源于 RFC 1213,表示该设备工作与OSI第几层,该参数值为十进制,其二进制格式中第几位为1表示该设备提供OSI第几层功能。

ifNumber[1]参数来源于RFC 1213,表示该设备端口数量,主要用于设备类型区分之后的辅助判断和验证。根据上述分析,组合形成各类设备的判断标准

(见表4)。

除设备类型判断标准外,路由设备探测时还需要知道设备的管理地址,这一参数可以在算法步骤1读取设备ipRouteTable时,一并读取ipAddrTable,上述算法完成后,根据ipAddrTable中ipAdEntAddr和ipAdEntNetMask计算出该段地址中所有可以使用的地址,将这些地址作为设备可能配置的地址。 在获得新的路由设备之后,仍需要读取新发现路由设备的ipRouteTable和ipAddrTable,并根据ipAddrTable和判断标准再次进行路由设备探测,直至探测发现的路由设备已全部获得ipRouteTable和ipAddrTable。 3.2 路由拓扑重建

从上述分析可以看出,在某些情况下通过路由信息表中的下一跳地址不能建立完整的路由拓扑,需要另一个判断标准。2个相互连接的路由设备还可以通过具有相同的网络号进行判断,即如果路由器 A、B,存在 IPAamp;amp;MaskA=IPBamp;amp;MaskB,则说明路由器A与路由器B之间存在一条链路,其中IPA、MaskA和IPB、MaskB分别为路由器A、B中ipAddrTable中的某个活跃的地址信息即正在使用的地址配置信息。结合路由设备探测,将路由信息表和IP地址信息表综合运用对原始算法进行改进,能够建立完整的拓扑,具体过程如下:

(1)读取网络设备RFC 1213中规定的system、interface、ipforwarding、ipAddrTable以及ipRouteTable等5个节点信息,初始设备可以手工指定,也可以通过程序所在主机的缺省网关自动设定。 (2)按照原算法步骤2构建队列A。

(3)按照原算法步骤3直至队列A中所有路由设备的5类信息全部读取完毕。

基于SNMP的网络层拓扑发现算法研究与改进

基于SNMP的网络层拓扑发现算法研究与改进许浩,许卫中,高东怀,张毅【摘要】[摘要]目的:研究并改进现有网络层拓扑发现算法,解决其在路由信息无法完整反映所有路由链路时网络拓扑发现不完整的问题。方法:结合自主研发的综合业务管理系统软件,分析策略路由会导致现有算法无法完整发现网络拓扑的原因,利用设备类型进行判断并使用IP地址表对现有算法进行改进
推荐度:
点击下载文档文档为doc格式
9xqjw7rggx8mqar1rud16ehs64cxmy011zn
领取福利

微信扫码领取福利

微信扫码分享