APP下载

扁平化结构下的网络管理系统设计与实现

2019-10-31冯健飞宁玉文靳豪杰张军超

电脑知识与技术 2019年22期
关键词:网络管理局域网运维

冯健飞 宁玉文 靳豪杰 张军超

摘要:空军军医大学在实行校园网扁平化改造后形成了核心网络简化、接入网络规模扩大的结构特征,传统的运维工具暴露出功能针对性弱和自动化程度低的缺陷。针对接入层局域网内设备数量多、品牌型号混杂的问题,设计实现了扁平化结构下的网络管理系统。在解决异构设备兼容问题的同时,实现了设备的自动发现、信息采集、拓扑分析、状态监控、异常告警等功能,有效提高了接入网络运维管理效率。

关键词:网络管理;运维;监控;局域网;拓扑分析

中图分类号:TP393      文献标志码:A

文章编号:1009-3044(2019)22-0033-04

开放科学(资源服务)标识码(OSID):

Design and Implementation of Network Management System under Flat Network Structure

FENG Jian-fei, NING Yu-wen, JIN Hao-jie, ZHANG Jun-chao

(Air Force Medical University of PLA, Xi'an 710032, China)

Abstract: After the implementation of the flat transformation, the campus network in the Air Force Military University formed a structural feature of simplified core network and expanded access network scale. The traditional operation and maintenance tools exposed their defects of weak function and low automation. Aiming at the large number of devices in the access network and the various brands and types, the network management system under the flat structure is designed and implemented. While the compatibility of the various devices is solved, automatic discovery, information collection, topology analysis, status monitoring, and abnormal alarms of devices are implemented, which effectively improves the efficiency of access network operation and maintenance management.

Key words: network management; operation and maintenance; Monitor; LAN; topological analysis

1 背景

為了实现用户流量隔离、网络集中管理、策略精细化控制等目标,各高校都陆续开展了校园网络扁平化改造[1-2]。我校于2016年实施了改造,改造后核心网络结构简化,但接入网络规模扩大,且每个子网内都存在多品牌、型号设备并存的情况。面对新的网络结构和运维需求,现有的网络管理系统暴露出操作复杂、功能针对性差、设备兼容性差等问题[3],针对这一现状笔者结合空军军医大学校园网实际,设计并开发了扁平化结构下的网络管理系统,有效解决多品牌设备兼容问题,同时简化了操作难度,实现了网络设备在发现、信息采集、状态监控、拓扑生成多维度的自动化管理。

2 技术原理

2.1 简单网络管理协议SNMP

SNMP为不同厂家、不同种类的设备定义了统一的标准,使得管理系统可以使用统一的方法监测和管理连接到网络上的不同设备。基于SNMP的网络管理模型由管理信息库(MIB)、管理代理、管理协议、管理系统四部分组成。MIB定义了被管理设备的一系列属性,格式为(属性名,属性值)二元键值对,属性名以树状结构的对象标识符(OID)表示,主要包括单独节点和表节点,分别用以表示一个独立的值和一组连续的值。除了RFC标准规定的通用MIB外,各厂商还会设置许多私有MIB作为扩充。每台被管理设备上运行着管理代理进程,负责维护本机的MIB,同时接收管理系统的请求并返回相关信息,或者主动向管理系统上报信息。管理协议定义了管理系统与被管理设备间的通信格式和方法,SNMP协议即为目前广泛使用的管理协议,SNMP协议使用团体名称作为简单的身份验证手段,即提供了正确团体名的管理系统才能访问设备信息。管理系统是人机交互的接口,帮助网络管理员进行运维管理工作。[3-5]

2.2 Django框架

B/S架构即浏览器/服务器架构,是指通过浏览器实现用户界面,将主要业务逻辑实现在服务器端的一种系统结构,因其具有客户端免安装、开发周期短、维护性强等优点,成了主流应用开发模式。Django是Python的一个优秀的开源Web开发框架,符合MVC的软件设计模式,在Web开发方面具有简洁、清晰、高效、安全的优点,是目前主流B/S应用开发框架之一。[6]

3 系统设计与实现

3.1 校园网运维需求

我校网络进行扁平化改造后将所有用户网关上移至BRAS设备,接入网络根据用户属性及所属地理区域共划分为七个子网,各个子网设置独立管理VLAN进行设备管理,管理VLAN的网关设置在各区域的最上层汇聚设备。每个子网的设备数量均在70台以上,最多的本科生区达230台,接入和汇聚设备共计620余台,涵盖华为、锐捷、思科等主流品牌,且各个子网均存在多种品牌型号设备混合使用的情况。

由于接入网络相对核心网络具有设备数量多、拓扑复杂、分布面广、故障率高的特点,因此日常运维工作量主要集中在接入网络。针对接入网络的管理系统重点要关注四个方面内容:一是兼容各品牌、型号设备,要能对所有设备提供无差异的信息采集和在线监管功能。二是简化操作提高效率,由于接入网络设备数量较多,应避免人工录入,实现自动化的设备信息采集、状态监控、异常告警。三是拓扑分析,应当自动分析绘制子网拓扑并精确到互联端口,帮助运维人员快速定位设备。四是提高灵活性,对于主要的使用参数提供自定义设置功能,有效应对不同场景需求。

3.2 网络管理系统设计

立足上述需求,系统进行了多个方面的针对性设计,首先是增加了现网设备中使用的大量MIB库,特别是私有MIB库,从而可以准确全面地获取设备信息,同时还提供根据MIB对象标识符手动获取设备信息的功能,进一步弥补可能的内置MIB库不全的问题。其次是可以通过自动网络扫描方式获取设备信息并分析拓扑结构,对于每一台设备都记录(本机IP,上联接口,目的IP,目的接口)的互联关系。最后还针对用户交互和使用体验进行了优化,提供了丰富的信息检索和系统自定义功能,并针对不同操作提供了列表、图形等多种信息展示方式。

系统功能主要包括:1)登入登出功能。2)网络扫描功能:根据网络地址、子网掩码、网关地址、SNMPv2协议团体号等信息,对网络进行自动扫描,发现在网设备并采集信息。3)信息查看查询:用户可以通过列表页查看设备基础信息,通过详情页查看设备具体信息,通过监控页查看设备运行状态,通过拓扑图查看设备互联关系;同时支持通过IP地址、MAC地址等信息查询设备。4)SNMP扫描工具:支持用户根据指定的MIB对象标识符获取对应信息。5)系统设置:系统支持自定义连通性测试报文数量和超时时间、连通性刷新周期、设备信息更新时间等,以应对不同的应用场景,同时提供设备信息的导出功能。

系统采用B/S架构,基于Python3.6.4和Django2.0 Web框架进行开发,数据库为MySQL,前端综合运用了jQuery、BootStrap、AJAX等技术。系统共包含设备发现、数据处理、对外展示、数据更新、用户管理、系统设置和系统工具六部分,系统结构如图1所示。

3.3 功能模块

3.3.1 获取网络设备基本信息

系统采用Python开源库PySNMP,根据设备IP地址、端口号、团体名和MIB对象标识符获取对应设备信息。PySNMP功能函数返回一个可迭代对象,对于独立节点只调用一次next()方法即可获取返回结果,对于表节点则需对迭代器进行遍历。系统共采集三类信息:设备的基本信息,包括系统名称、设备描述、软硬件版本、序列号、设备位置、联系人等;网络信息,包括IP地址、MAC地址、上联端口、目的IP、目的端口;运行状态信息,包括:运行时间、CPU使用率、内存使用率、内存容量、CPU温度,以及相关参数的报警阈值。这些信息同时也可以作为固定资产管理的重要支撑。为了加快扫描速度,在子网IP地址数量大于64个时会采四线程加速扫描,同时允许用户自定义连通性测试报文数量和超时等待时间,进一步加快扫描速度。扫描流程如图2。

3.3.2 拓扑分析

获取局域网内设备拓扑关系的方法主要有两种:第一种是通过生成树协议配合转发表分析设备互联关系[7],比较适合自动分析;第二种是根据设备ARP表和转发表等信息进行综合分析,转发表中记录了每个接口所连接的设备MAC地址,通过将MAC地址和设备进行对应即可逐步分析出互联关系,这种方式适合人工运维中小范围分析网络结构。根据实际运维经验,由于不同厂商设备在生成树协议实现方式上略有差别,导致在同一子网中不同品牌设备互联时协议有时无法正常工作,甚至会出现因设备频繁获取邻居信息而导致网络拥塞,因此我校关闭了大多数设备的生成树协议。针对这一现状,笔者将传统的人工运维分析方式进行了自动化实现。

具体方法是,根据输入的网络地址和网关地址对整网段进行扫描,记录每台设备的ARP表和转发表,ARP表中记录了IP地址和MAC地址的对应关系,转发表中记录了每个接口连接的设备MAC地址。首先根据ARP表确定子网内IP地址和MAC地址的映射关系。然后依次分析每台设备的转发表,将表中的MAC地址替换为对应的IP地址,没有对应IP地址的记录项为用户而地址非互联设备地址,从表中删除。至此确定了每个接口上所连接的设备IP地址,其中连接了网关的接口为设备上联接口,其余接口所连接的设备包括直连和非直连两类。遍历每个接口的下联IP,如果该IP也是当前接口其他下联设备的下联IP,表示该设备为非直连关系,从表中删除,最后剩余的即为直连设备IP。获取互联关系后在数据库中记录每台设备的上联接口、目的IP和目的接口信息。

由于局域网拓扑是以网关为根的树状拓扑,因此在拓扑显示时采用了树状目录显示结构,可进行“展开”和“折叠”操作。進行显示前,首先在后端将邻接表方式存储的树形结构转换成列表结构并传递至前端。具体方法是将每对邻接关系记录为(IP,DestIP,Flag)三元组形式,分别表示当前IP、上联设备IP(网关地址上联IP为空)、是否已经遍历标志符,初始状态只有网关的标志为True。将所有的三元组记录封装为列表EdgeList,然后从网关节点开始进行深度优先遍历,方法如下所示。返回结果列表后传递至前端,前端对列表进行顺序遍历转换为树形目录显示代码即可。

[def DFS(Edgeslist, resultList): #resultList为返回列表

for edge in Edgeslist:

if (edge[2] == True or edge[1] != resultList [0][0]):

continue#如果已遍历或者不是当前设备下联设备则继续

else:

edge[2] = True#标记为已遍历

son = [edge[0]]

resultList.append(son) #记录当前设备的下联设备

DFS(Edgeslist, son)#深度优先遍历 ]

3.3.3 设备监控

设备监控主要是对设备的连通性和运行状态进行监测。系统周期性不断测试设备在线情况,对于异常下线设备给出告警;对于在线设备记录网络往返延时,作为衡量网络质量的指标。系统同时监测设备的温度、CPU使用率、内存使用率等主要参数,超出阈值时立即进行告警。对于监测周期可进行自定义设置以应对不同的运维需求,默认情况下每30秒轮询一次。除了设置监测周期外,还可设置设备信息更新时间,这一功能是为了应对网络结构调整造成信息大规模变化的情况,默认情况下每天1:00会将网络重新进行扫描收集设备信息并绘制拓扑图,管理员也可以通过手动重新扫描网络或设置新的更新时间进行系统信息更新。

3.3.4 系统管理功能

系统管理部分提供了四大功能,一是提供了根据MIB库手动获取设备信息的功能,通过输入设备IP地址、团体名、和对象标识符并选择独立节点或表节点即可获取对应信息。二是展示系统当前存储的所有子网信息,并可对子网进行删除操作,删除子网将同步删除网内所有设备和网络拓扑信息,通过删除某一子网并重新扫描可以实现子网信息的手动全量更新。三是提供了常用参数设置,包括检测刷新周期、系统信息更新时间、连通性测试报文数量和超时时间等,另外还提供了SNMP协议端口设置功能,对于使用非默认SNMP协议端口的网络可进行端口调整。四是提供了信息导出功能,可将当前系统中存储的设备信息以Excel文件格式导出。

4 系统使用

4.1 部署方法

4.1.1 交换机配置

交换机端只需进行SNMP协议的常用配置,包括SNMP协议版本号、设备地址、联系人等,协议端口可采用默认的161端口,需要注意的是由于本系统以子网为单位进行设备信息获取,因此同一网段内的设备SNMP团体名需配置一致。

4.1.2 服务器部署

本系统适用于Django项目常用的各种部署方式,本文以Nginx+uWSGI部署方式为例进行说明,其中Nginx是Web服务器,uWSGI是Web服务器和Web框架的调用接口,服务器使用Centos7作为操作系统。

首先下载Python3进行编译和安装,然后使用pip3工具安装Django和uWSGI。将工程文件夹复制到服务器“/home/admin/www”目录下(自行确定即可),在工程目录中新建系统配置文件,并在其中配置服务的IP地址、端口号、工程路径等。系统采用MySQL数据库,根据数据库实际配置情况修改工程文件目录下的settings.py配置文件,包括数据库地址、用户名、口令等。最后下载并编译安装Nginx,进入安装目录/usr/local/nginx,打开/conf目录下的nginx.conf文件,在http标签中加入以下内容:

[server {

listen 8080; #外部访问的端口

server_name www.netmngsys.com;

charset utf-8;

location / {

include uwsgi_params;        uwsgi_pass 127.0.0.1:8081; #将外部对8080的访问转发到内部8081

}

location /static/ {

alias /home/admin/www/NegMngSys/static/; #项目静态路径设置

}

} ]

保存配置后使用命令“./nginx”启动Ngix服务,并进入工程目录使用命令“uwsgi –x NetMngSys.xml”即可启动系统。

4.2 使用方法及效果

系统登录后的主界面分为菜单栏和操作界面,菜单栏集成了网络扫描、设备列表、设备监控、网络拓扑、SNMP工具等功能,操作界面是每个功能的输入以及结果输出部分。“设备列表”展示了设备基本信息和运行状态并提供查询功能,点击设备IP地址即可进入设备详情页,查看更加详细的设备信息,包括设备基础信息、网络信息、运行状态、更新时间等,如图3。

“设备监控”显示了设备的IP地址,设备名和网络时延,如图4。对异常设备会通过红色显示进行告警。

“网络拓扑”以树形目录方式展示了每个网段内的设备互联关系,如图5(部分截图)。

5 总结

本系统针对我校进行大二层网络改造后新的运维需求进行开发设计,测试后使用效果良好,实现了异构品牌型号的网络设备自动发现、实时监测、拓扑分析等功能,有效提高了大规模接入局域网的日常运维效率。系统目前只支持SNMPv2版本协议,后续可进行v3版本协议扩充,并进一步增加系统审计等功能。

参考文献:

[1] 尹忆民, 郝宇红, 孙浩志, 等. 建设扁平化新型校园网络[J]. 华东师范大学学报: 自然科学版, 2015(B03): 146-151.

[2] 吴乃忠. 基于扁平化架构的下一代高校校园网的建设研究[J]. 电子世界, 2012(18): 28-29.

[3] 侯天雄, 马迅飞, 张进铎, 等. 网络监控系统的设计与实现[J]. 计算机时代, 2016(1): 25-28.

[4] 乐宁莉. 基于SNMP网络监控的应用研究[J]. 福建商学院学报, 2011(5): 99-108.

[5] 趙婕. 基于SNMP协议的分布式计算机网络监控系统设计[J]. 自动化与仪器仪表, 2016(6): 124-125.

[6] 阳祝. 基于Django框架的设备管理系统的设计与实现[J]. 电脑知识与技术, 2013(12X): 7960-7961.

[7] 崔婧昱, 董小国. 交换式局域网物理拓扑发现系统的研究与设计[J]. 现代电子技术, 2008, 31(18): 97-99.

【通联编辑:谢媛媛】

猜你喜欢

网络管理局域网运维
轨道交通车-地通信无线局域网技术应用
基于VPN的机房局域网远程控制系统
运维技术研发决策中ITSS运维成熟度模型应用初探
电动汽车充电服务网络管理初探
基于802.1Q协议的虚拟局域网技术研究与实现
局域网性能的优化
基于EOC通道的SHDSL网络管理技术
基于ITIL的运维管理创新实践浅析
校园网络管理及安全防护
卫星导航网络管理设计