使用TCP/IP协议实现网络设备的智能化管理
2015-10-21马玉国仲立婷
马玉国 仲立婷
【摘要】针对电信企业内部网络设备复杂、多样、分散等特性,通过使用TCP/IP协议编程实现了此类设备的智能化管理,实时收集各网络设备的运行状态,并实现与各类网络设备的一对多对话,简化了维护人员的操作,提高了企业的自动化管理水平。
【关键词】网络设备;TCP/IP协议;TELNET协议;工作脚本
一、背景
随着各电信运营商全业务市场运营的开展,电信企业内部的竞争日趋激烈,在电信企业如火如荼的竞争过程中,企业内部的人力、成本等资源都集中到了市场营销、客户服务与维系等窗口中,作为后台网络、设备维护人员,如何使用有限的人力资源和维护成本,来保障设备更稳定、更高效的运行成了各电信企业运维管理、系统支撑部门必须考虑的问题。
二、问题分析
电信企业内部接入网络的设备主要由应用服务器、生产终端设备和内部局域网的组建、管理、支撑设备组成。在日常的维护过程中,我们发现这些设备存在以下特性:
1)设备的多样性。上述设备中有网络交换机、路由器、小型机、工控机等,涉及操作系统有HP UNIX、SCO UNIX、LINUX、SUN SOLARIS等多种。
2)设备数量较多。随着电信企业内部的信息化水平不断提高,各类设备数量也不断增加,仅以路由器、交换机为例,德州的数量就数以百计。
3)地理位置的分散性。由于上述设备主要为各级分公司的系统提供服务,由于各级分公司、营业部位置的相对分散,就决定了此类设备在地理位置上的分散性。
设备多样、数量庞大、位置分散的特性就造成了此类设备管理的复杂性,那么,如何对上述设备进行有效的维护和管理呢?本文结合德州的实践经验,基于TCP/IP协议族,提出了电信企业内部设备智能化管理系统设计方法。
三、技术介绍
传输控制协议(TCP)、Telnet协议都是TCP/IP协议族中的一员。这两种协议为用户提供了在本地计算机上完成连接、控制远程服务器的能力。在终端使用者的电脑上使用TCP或telnet协议,连接到远程服务器,并可以通过程序,在本地终端上输入命令,送到服务器上运行,就像直接在服务器的控制台上输入一样。
TCP协议、TELNET协议是各类设备或其操作系统上普遍支持的两种网络协议,基于上述两种协议,通过编程可以实现对各种网络设备自动控制、数据采集,来为我们的维护工作提供便利。
四、系统结构
应用服务器通过C语言编写程序通过TCP协议、TELNET协议与各网络设备建立连接通道,通过两种方式与设备之间进行交互。一种方式是定时解析通过既定的数据采集脚本向各网络设备发送数据采集命令,由结果分析程序将命令返回的结果进行分析,写入数据库。第二种方式,终端用户通过主动向应用服务器发起查询、操作命令请求,由应用服务器将操作命令对一台或多台设备进行命令处理,并将处理结果返回。
在整个处理过程中,应用服务器扮演了两种角色,一方面与各网络设备建立双向命令处理通道,一方面通过发布网页来接受终端用户的查询、操作命令请求。
五、系统实现关键技术难点分析
在智能化网络设備管理系统的实现过程中,我针对系统实现过程的两个重点、难点问题,来介绍系统的设计方案。
1、TCP、TELNET协议接口设计
在使用TCP、TELNET协议与各网络设备连接过程中,在两个过程中下可能会出较长的时间延迟。
(1)在使用SOCKET、CONNECT函数与网络设备建立连接的过程中,如果远程设备掉电,或出现局部的网络中断,这部分设备在整个局域网中将变为不可见状态。而无论是TCP协议还是TELNENT协议,在面向连接的协议,如果CONNET函数在建立连接的过程中阻塞,会进行多次重试,直到重试次数超过操作系统设置最大超时次数位置,这个过程一般会持续3分钟左右的时间。(2)在CONNECT连接建立后,与SOCKET套接字进行命令发送的过程中,如果服务器对命令返回的结果未正确识别出有效的命令结束符号,或由于网络设备自身硬件故障的原因造成命令处理过程放缓、或不执行,从而无法获得正确的返回结果,造成长时间存在一个无效连接,这实际也是一种阻塞状态。
上述两种状态如果在程序编写的过程中,如果不增加超时处理,将大大放缓命令的执行效率,造成终端用户对系统的认同度下降。因此,在上述两种过程中,我们首先需要两种基本数据局域网内部的正常时间延迟、网络设备的回显延时。
(1)局域网内部的正常通信延时的计算过程中,可要选取各IP网段的最大网络延时作为参考。(2)网络设备的回显延时,由于网络设备的生产厂家、设备型号、硬件配置、软件配置、发送命令的不同,回显时间延时也会不同,这种情况下,对于同厂家、同型号设备,选取一个日常维护操作处理时间最长的操作时间作为参考。
通过上述两种时间的界定,使用SELECT函数来设置超时时间,在超时时间到达前如果没有收到正确的命令返回结果描述符,则产生一个中断信号,来打破阻塞状态。
2、各网络设备采集命令管理问题
由于网络设备类型众多、变更较为频繁,如果将所有的操作、数据采集命令都固化到程序中,虽然会对程序代码的执行效率有一定的提升作用,但是同时会面临程序拓展性差、维护困难的问题。会让我们工作陷入不断进行代码更新,同时由于设备更替,代码中又会产生部分冗余代码僵局。为解决此问题,首先,我们编写了一个工作脚本分析进程,固化部分关键字,如TELNET_IP(使用TELNET协议连接IP地址)、 AUTO_TCP_IP(使用TCP协议连接IP地址)、FIND(搜索返回结果串)、ENTER(输入命令)、TO(将结果输出到文件)等。然后,根据上述关键字规范,结合日常使用较为频繁的操作命令。下面我通过SCO UNIX工控机和CISCO路由器的两个工作脚本,来给大家介绍下此系统德州联通内部的实际应用。
六、技术总结
在电信企业网络设备智能化管理实现过程中,通过TCP/IP协议族协议的灵活使用,成功地解决了对多种数量庞大、位置离散的网络设备的管理难题,实现各网络设备数据的采集、入库、显示,以及管理人员与网络设备的双向交互。通过在德州联通内部的建设和使用,实践表明此系统可以在网络设备维护、监控、操作方面,有效地缩短人工处理时间,此系统的实现方案对于各电信企业具有较强的借鉴意义。
参考文献
[1]尚穆盖姆.TCP/IP详解(第2版).电子工业出版社,2003
[2]查普尔,蒂特尔.TCP/IP协议原理与应用(第3版).清华大学出版社,2009
[3]UNIX平台下C语言编程.喻志虎.清华大学出版社,2001