发明名称 基于SNMP的IP网络拓扑发现方法
摘要 一种基于SNMP协议的自动地发现网络的物理布局以及连接关系的IP网络拓扑的发现方法。该方法包括如下步骤:建立SNMP网络管理运行的环境;在目标网络的每个网络节点上设置一个管理信息库(MIB);网络管理进程通过应用层协议对SNMP管理信息库进行访问;网络管理应用向网络管理进程内发出的信息,经底层协议到达被管理网络实体;网络层的拓扑发现;数据链路层的拓扑发现。在网络管理中,采用本发明的方法可探测网络层及数据链路层的拓扑结构,获取和维护网络节点的存在性信息和连接关系信息,并绘制出整个网络拓扑图。网管人员通过拓扑结构信息可对网络故障进行定位,发现网络瓶颈,从而优化整个网络。
申请公布号 CN1756189B 申请公布日期 2010.04.14
申请号 CN200410081134.7 申请日期 2004.09.30
申请人 北京航空航天大学 发明人 沈曾伟;李未;郎昕培;周刚
分类号 H04L12/24(2006.01)I;H04L29/06(2006.01)I;H04L12/28(2006.01)I 主分类号 H04L12/24(2006.01)I
代理机构 北京金信立方知识产权代理有限公司 11225 代理人 南霆
主权项 1.一种基于SNMP的网络拓扑发现方法,该方法包括:建立SNMP网络管理运行的环境的步骤;在目标网络的每个网络节点上设置一个管理信息库MIB的步骤;网络管理进程通过应用层协议对SNMP管理信息库进行访问的步骤;网络管理应用向网络管理进程内发出的信息,经底层协议到达被管理网络实体的步骤;网络拓扑发现方法,其步骤为:识别默认网关并确认其IP地址,并判断该默认网关是否为路由设备,当判断为该默认网关是路由设备,则进行以下步骤:由网关为拓扑发现的起点,进行网络层拓扑发现;得到一系列的子网信息,对每个子网进行数据链路层拓扑发现;其中网络层的拓扑发现,通过获得拓扑发现起点路由设备的路由表,根据路由表的信息,发现与之直接相连的子网或路由设备,并获得下一跳的路由设备地址;针对发现的下一跳路由设备,采集其路由表,以广度优先遍历的原则,采用与下文所述的网络层的拓扑发现方法相同的处理方式,不断发现新的子网、路由设备和网络层的链路关系;并递归下文所述的网络层的拓扑发现方法,直到没有新的路由设备和子网被发现;基于上述步骤的网络层的拓扑发现方法,其包括如下步骤:(a)查找获取其路由表;(b)根据前一步发现的路由设备的路由表,识别直接连接在路由设备上的子网;(c)识别网络层的子网与路由设备之间的链路,获取网络层拓扑结构信息;(d)根据路由表中标识的下一跳地址信息,发现新的路由设备,重复a、b、c三步,直到发现不了新的路由设备为止;基于上述步骤的数据链路层的拓扑发现方法,包括如下步骤:(1)识别当前子网的网络设备并获取其ARP缓存表;(2)遍历子网内所有交换机,下载所有交换机的转发数据库;(3)计算交换机间的直接和间接连接关系;(4)重新调整子网内的网段,对有直接连接的两个端口对应的网段作“与”操作,如果结果为空,则删除这两个网段;如果非空,则删除原来的两个网段,生成一个新的网段,新网段内的主机为“与”操作的结果;把网段和交换机的连接关系构造成链路对象,添加到子网的2层连接对象链表L2ConnList中;其中所述的数据链路层的拓扑发现步骤中计算交换机间的直接和间接连接关系是通过以下准则进行判断的:设交换机A在x端口上学习到的MAC地址的集合为F<sup>x</sup><sub>A</sub>,交换机B在y端口上学习到的MAC地址的集合为F<sup>y</sup><sub>B</sub>;若F<sup>x</sup><sub>A</sub>和F<sup>y</sup><sub>B</sub>中同时存在着对方的MAC地址;或F<sup>x</sup><sub>A</sub>中存在B的MAC地址,并且A上存在一个端口k(k≠x),使得<img file="F2004100811347C00021.GIF" wi="304" he="58" />则可确定交换机A和B通过x和y端口间接相连,并建立间接连接表;并通过所得到的间接连接表进一步计算是否为直接连接,其步骤包括:查验当前交换机端口Xi的间接连接表项指示的某个交换机端口Yij的间接连接队列,若Xi与Yij存在间接连接关系,而Yij与Xi不存在间接连接关系,则判断当前交换机端口Xi与某个交换机端口Yij直接连接。
地址 100083 北京市海淀区学院路37号逸夫科学馆508室