自动化运维中网络拓扑发现技术的研究与实现
2019-08-13万明张弛陈少勋韩少聪
万 明 张弛 陈少勋 韩少聪
摘 要:随着自动化运维过程中越来越复杂的运维场景和紧迫的网络设备统一管理需求,网络设备自动拓扑发现技术的研究在大型企业中变的十分重要。为了准确、快速、完整地进行拓扑发现,根据实际运维需求,在链路层选择了简单网络管理协议(SNMP)和互联网控制报文协议(ICMP)结合拓扑发现,在网络层选择了SNMP协议拓扑发现。设计实现了拓扑发现算法,并在实验中验证了方法的有效性,能够胜任自动化运维中大型网络的拓扑发现。
关键词:动化运维;拓扑发现;简单网络管理协议(SNMP);互联网控制报文协议(ICMP)
中图分类号:TP311 文献标识码:A
Research and Implementation of Network Topology Discovery
Technology in Automatic Operation and Maintenance
WAN Ming1,ZHANG Chi1?覮,CHEN Shao-xun2,HAN Shao-cong1
(1. Nanjing NR Information & Communication Technology Co. Ltd.,Nanjing,Jiangsu 210009,China.
2. Information and Communication Company,State Grid Shaaxi Electric Power Company,Xi'an,Shaanxi 710004,China.)
Abstract:With the increasingly complex operation and maintenance scenarios and the urgent need for unified management of network devices in the automation operation and maintenance process,the research on automatic topology discovery technology for network devices become very important in large enterprises. According to the actual operation and maintenance requirements,simple network management protocol (SNMP) and Internet Control Message Protocol (ICMP) are selected for topology at the link layer,and SNMP protocol topology discovery is selected at the network layer,in order to topology discovery accurately,quickly,and completely. The topology discovery algorithm is designed and implemented,and the validity of the method is verified in the experiment. It can be used for topology discovery of large-scale networks in automatic operation and maintenance system.
Key words:automation operation and maintenance;topology discovery;simple network management protocol (SNMP);internet control message protocol (ICMP)
随着公司信息化的持续发展,信息运维已经成为信息服务的重要组成部分[1-2]。传统的“刀耕火种”式的人力手工运维方式,存在工作繁琐、效率低下、人员要求高、出错率高、面对异常难以快速恢复等缺点[3]。网络拓扑发现作为自动化运维中的组成部分,是一种用来展现计算机网路设备间连接关系的重要技术[4]。
網络拓扑旨在发现网络中的实体网络设备,并获取其间的连接关系。网络拓扑在自动化运维中用作网络管理、网络故障定位、网络仿真、网络性能分析等。网络拓扑发现包括链路层网络拓扑和网络层拓扑发现,链路层拓扑发现旨在发现一个子网内的设备及其连接关系,网络曾拓扑发现旨在发现路由器、交换机、子网等网络设备和设备间的连接关系。
目前关于网络拓扑发现的技术研究主要有:利用SNMP协议[5]拓扑发现,其发现结果准确、完整,但是发现效率较低,发现过程占用额外带宽;利用ICMP协议的traceroute技术[6]拓扑发现,其发现结果比较粗糙,且一般路由器限制了ICMP协议的转发[7];基于RIP协议[8]的拓扑发现,主要用于同一子网设备的拓扑发现,其发现结果准确性低于SNMP协议[9];OSPF路由协议[10]在路由设备中提取路由设备的IP地址域和IP子网路由信息表构造拓扑表,适合小型网络发现,但会造成较高网络负载,发现速度也较慢。
1 需求分析和技术选择
第一步,选取支持SNMP协议的设备作为起始节点,将次节点加入队列,启动拓扑发现迭代算法;
第二步,从队列中取出一个节点,根据SNMP协议采集道德MIB库中IP.IfAddTable中数据发现新的网络节点,根据第2.2节的方法判断节点类型,若为主机,将其记录为叶子节点,若为路由器或交换机,则压入队列。重复第二步过程,直至没有新的节点加入队列;
第三步,根据已发现节点的IP地址以及地址掩码,可以获得各个节点所属的子网;
第四步,根据采集到的节点IP地址和下一跳的IP地址,可以获得路由器与子网之间的连接关系、路由器与路由器之间的连接关系子网内部交换机之间的连接关系。从而完成了第三层网络层中路由器、交换机和子网之间的拓扑关系。算法流程图如下图1所示。
对于基于SNMP协议和ICMP协议的第二层链路层的拓扑发现,主要是发现同一个子网内部设备之间的拓扑关系。第一步的SNMP协议可以发现一部分的子网内设备,但由于发现过程用到的地址转换表是定时刷新,无法发现子网内长时间没有通信的网络设备。需要使用ICMP协议补充拓扑发现,增加拓扑发现结果的完整性。具体算法过程如下:
第一步,根据之前SNMP协议已经发现的设备IP地址和地址掩码,计算出本子网的IP范围;
第二步,通过ICMP协议发现不在已发现IP列表中的节点IP;
第三步,根据SNMP协议,获取子网内所有端口的MAC地址信息;
第四步,对第三步中的MAC地址进行匹配,如果节点本端和对端的MAC地址可以匹配,则说明两个端口之间存在物理连接关系。直至所有的MAC地址匹配完全,则完成第二层链路层的网络拓扑发现。算法流程如下图2所示。
3 系统实现
3.1 实验环境
采用的网络拓扑发现技术是自动化运维系统[13]的网络设备检测子模块,后台主要是用java实现。拓扑发现的实验对象是一个由四个子网组成的管理域。
3.2 实验结果
为了确保实验顺利进行并加快迭代,我们选择支持SNMP协议的路由器172.16.30.1启动拓扑发现算法。根据SNMP协议发现了172.16.51.254、172.16.30.18、172.16.30.183等设备,分别对这些设备进行SNMP协议采集,根据得到的具体信息,结合第2.2章的设备判断方法,对设备进行分类,如172.16.51.254和172.16.30.18是交换机,172.16.30.183是主机,分类保存各个设备的信息,将交换机和路由器的网络设备加入队列,然后进行下一次迭代发现,直至队列为空。根据迭代发现的所有主机节点的ip地址和子网掩码,计算出管理域中子网为172.16.30.*、172.16.51.*、172.16.52.*和172.16.53.*。至此网络层拓扑结束。对于链路层拓扑,以子网172.16.30.*为例,根据目前该子网中已有的主机得知其ip范围为172.16.30.1~172.16.30.254,通过ICMP协议遍历并匹配SNMP协议获取到的物理地址信息,得到链路层所有设备的拓扑关系。展示结果如上图3所示,右上角为子网172.16.53的二层拓扑结构。
4 结 论
阐述了目前自动化运维中对于网络拓扑发现的重要作用。之后说明了实际使用过程中的功能性需求和非功能性需求,并据此选择了SNMP协议和ICMP协议结合的拓扑发现技术,即在第三层网络层使用SNMP协议拓扑发现,在第二层链路层根据SNMP协议拓扑发现的结果结合ICMP协议补充发现。之后详细解释了拓扑发现中的数据结构、设备识别方法和迭代算法,并用实验说明了该方法的可行性和有效性。为自动化运维过程在,网络设备的自动拓扑发现提供了一种完整、准确的可行方案。但目前市面上网络设备种类繁多,现有的网络设备判断方法可能无法适应所有情况,如三层交换机,对于此类问题尚待分析和研究。
参考文献
[1] 刘澜涛,李淼,高福祥. 基于SNMP的网络资源管理系统的设计与实现[J]. 中国教育网络,2009(1):101—103.
[2] ISARD M. Autopilot:automatic data center management[J]. Acm Sigops Operating Systems Review,2007,41(2):60—67.
[3] 黄健. 数据集中模式下电网企业信息系统运维管理探讨[J]. 电子技术与软件工程,2013(16):235—236.
[4] EMMA D,VENTRE G. Discovering topologies at router level[C]// Global Telecommunications Conference,2007. GLOBECOM '07. IEEE. IEEE,2005:2696—2701.
[5] PANDEY S,CHOI M J,WON Y J,et al. SNMP-based enterprise IP network topology discovery[J]. International Journal of Network Management,2011,21(3):169—184.
[6] SHEN N,CHEN E. ICMP with IP routing instance information:US,US 7986689 B2[P]. 2011.
[7] 周智,寇晓蕤,罗军勇. 基于SNMP 的远程网络拓扑发现方法[J]. 计算机应用,2006 ,26(4):961—962 .
[8] 庄锁法,龚俭. 网络拓扑发现综述[J]. 计算机技术与发展,2007,17(10):80—83.
[9] Analog Devices Inc .AD9957 data sheet [M].[S.l.]:Analog Devices Inc,2008.
[10] 王慧,罗军勇,寇晓蕤. 基于OSPF协议报文的网络拓扑分析算法[J]. 计算机工程,2008,34(6):103—105.
[11] 杨家海. 网络管理原理与实现技术[M]. 北京:清华大学出版社,2000.
[12] SHEN N,CHEN E. ICMP with IP routing instance information:US,US 7986689 B2[P]. 2011.
[13] 王晔,黄海,萬明,等. 基于采集集群的自动化运维系统设计与实现[J]. 计算机技术与发展,2018.28(05):106—1.