李 真 黄斯旎
(广西电网有限责任公司信息中心,广西 南宁 510000)
基于混合编程的网络设备自动备份的设计与实现
李 真 黄斯旎
(广西电网有限责任公司信息中心,广西 南宁 510000)
交换机在现今的网络中有着非常广泛的应用,对网络的稳定运行起了巨大的作用。文章针对交换机手动备份十分繁琐和不便的现状,通过分析研究,设计和实现了windows平台下交换机配置文件的自动备份系统。该系统能够实现对网络内交换机配置文件的自动备份和定时执行备份的功能,同时能减轻网络管理人员的工作量,大幅提高工作效率。
交换机;配置文件;自动备份
在网络环境中,网络设施的配置文件及内部操作系统同电脑的操作系统一样,容易出现问题,常见的有系统文件损坏或丢失等。如果有某台交换机的操作系统出现问题而造成了配置文件的丢失,则会对整个网络产生比较严重的干扰。为了解决这个问题,就需要网管人员手动的给每台交换机配置文件进行备份,并且需要定期更新备份文件。手动备份的工作量是十分巨大的,同时会浪费网络管理人员的大量时间。因此,设计和实现一个交换机配置文件自动备份系统是十分紧迫和必要的。
以往的文献在这方面已经有了相关的研究。文献[2]已经实现了linux环境下交换机配置文件的自动备份,但是仍然有一定的局限性。首先它的实现使用的是telnet远程登录控制交换机,而telnet是不安全的,现在的企业网络从安全性方面考虑是禁止使用telnet登录到交换机。其次,linux环境下的实现需要网管员懂得较多的编程知识和熟悉linux系统的操作。文献[1]在window环境下实现了交换机配置文件的自动备份,但是仍然使用telnet连接交换机的,其它文献也类似。而本文基于混合编程思想实现的windows环境下交换机自动备份系统采用了更为安全的远程登录协议ssh,并且非常易于操作和维护,对网管员没有较高的要求,易于使用和推广。
传统的备份工作如图1所示。网管员每备份一台交换机时都需要一台终端与其相连,然后输入相关命令进行备份,十分的繁琐和不便。
图1 交换机配置工作连接示意图
本文实现的交换机配置文件自动备份系统主要由五个模块组成。一是界面模块;二是本地存储加密模块;三是ssh安全通信模块;四是远程备份模块;五是定时备份模块。
系统结构图如图2所示。
界面模块的主要功能是给网管员提供十分友好的操作界面。网管员可以输入交换机的相关信息,如IP地址,用户名,密码等。在运行此程序前,网管员需要设置好这些信息,并确保运行该系统的计算机能够连接到需要备份的交换机。输入完信息后可以选择需要备份的交换机,发出备份命令。
本地存储加密模块的主要功能是加密网管员输入的交换机相关信息。在备份过程中,加密模块会解密交换机的相关信息供备份程序使用。
ssh安全通信模块的主要功能是建立计算机到交换机的安全连接,让计算机控制交换机进行备份工作。
远程备份模块的主要功能是进行备份工作。在界面模块获得交换机相关信息后,网管员可以选择需要备份的交换机,然后程序就开始备份工作,并将备份文件保存在本地磁盘中。
定时备份模块的主要功能是定时进行备份操作。网管员可以设定执行备份的时间,如每天凌晨4点,系统就会在指定时间执行备份。
图2 交换机自动备份系统系统结构
3.1 技术选型
本系统是一个Window平台下的综合集成系统,采用C#+Python+TFTP的技术路线。
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。它是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言,特别适合Window平台下桌面程序的开发。
Python是一种面向对象、解释型计算机程序设计语言,Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。在系统中,我们将交换机的配置文件上传到TFTP服务器。这里我们使用的是Window平台下SolarWinds TFTP Server服务器。
自动备份系统的界面程序使用C#编写,主要用来和网管员进行交互。首先网管员输入交换机的相关信息,系统会进行保存,然后选择需要备份的交换机进行备份。备份程序采用Python脚本语言编写。没有直接用C#写备份程序是因为C#实现ssh连接交换机并且模拟交互操作比较复杂,而采用Python脚本语言实现相对简单。备份时Python程序会先读取保存下来的交换机相关信息,然后对应的进行备份,生成配置文件。TFTP是简单文件传输协议,可以传输文件。配置文件生成后,我们将其传输至主机上的TFTP服务器。
3.2 界面模块实现
系统界面如图3所示。该界面主要由三个模块组成:设备信息,备份,定时操作。
图3 系统界面示意图
设备信息界面是网管员用来输入交换机相关信息的界面,主要就是一个表格。网管员只需将相关信息输入表格中,点击保存按钮就能将信息加密保存到系统中。其中最重要的信息是交换机的管理IP,只有知道了交换机的IP,系统才能够连接到该交换机,并执行下一步的工作。
备份界面是执行备份命令的界面,也是由一个表格组成。网管员输入信息后再打开该界面就能看到输入的交换机信息,选择需要进行备份的交换机,点击备份按钮就能实现备份功能。
定时操作界面是设置定时执行备份的界面,主要由日期和时间空间组成。网管员可以选择定时执行的时间,系统就能定时进行备份。
3.3 本地存储加密模块实现
交换机的相关信息加密存储在本地,每台交换机的信息经过加密处理后保存到一个文本文件中。加密处理使用DES对称加密算法。DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,安全性较高。
DES算法在C#中已经有了完整的实现。加密时只需要调用加密函数,解密时调用解密函数,十分的方便。加密函数代码如下:
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
Encoding utf = new UTF8Encoding();
ICryptoTransform encryptor = des.CreateEncryptor(DesKey, DesVi);
byte[] bData = utf.GetBytes(data);
byte[] bEnc = encryptor.TransformFinalBlock(bData, 0, bData.Length);
3.4 ssh安全通信模块实现
由于公司网络交换机禁止telnet访问,所以本文采用SSH安全外壳协议连接到交换机。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH实现是调用了paramiko模块。paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。在程序里面调用paramiko里的相关函数就能够连接到交换机
3.5 远程备份模块实现
网管人员点击备份按钮后,系统就自动调用备份模块进行备份工作。备份模块其实就是一个Python程序,它所做的工作就是模拟网管员手动备份交换机配置文件。首先,程序会调用ssh安全通信模块连接到交换机中;然后,程序读取经加密处理后的文本文件得到交换机相关信息,随后利用这些信息进行登录;最后,程序向交换机发送备份的相关命令,模拟网管员备份的过程,交换机收到备份命令后开始备份,并将备份文件上传至TFTP服务器。至此,备份工作已基本完成。
3.6 定时备份模块实现
备份是Python程序完成的。网管员在界面程序点击备份按钮,系统会自动调用Python程序来完成备份。所以定时备份也就是定时由系统执行相应的Python程序。定时功能由C#中的Timer实现。Timer是多线程计时器,在界面程序设定好定时执行时间后,Timer会在到达指定时间后执行相应的工作,这里就是执行Python程序进行备份。定时操作设置好后,系统就能自动的进行备份工作,不再需要任何操作。
比如笔者设定每天凌晨 4点对公司网络的几百台交换机进行遍历,采集配置文件并自动存储。系统不但不会影响到管理人员的正常休息, 而且对网络服务质量的影响也可以降为最小。
笔者在机房对10台交换机进行了测试,结果还是比较满意的。点击备份按钮后,马上能够看到生成的交换机配置文件。不过程序执行需要时间,生成10个配置文件大概用了30秒左右。定时执行也比较成功,我们设定定时执行时间为1小时。程序运行1小时后,配置文件就一个一个自动的生成。随后又设为每天凌晨4点自动运行,经过一个星期的测试,系统能够正常运行,比较稳定。
在大型网网络中,交换机是网络通信的基本设备,通过它们不仅可以联通计算机,还能选择数据传送的途径,并阻断非法的访问,保障重点业务的网络带宽,因此交换机的维护变得尤为重要。交换机配置的备份是交换机日常维护工作的一项重要内容,当交换机停止正常运行时,能够利用这些备份文件迅速恢复交换机配置。如果没有做好交换机配置的备份,一旦交换机出了故障导致配置文件丢失的情况出现,恢复工作将很繁重,而且容易出错。
运行在Window平台上的备份系统通过利用 C# + Python模块+TFTP服务器自动备份交换机配置文件,设定固定时段遍历工作区域内的交换机,并进行存储。这种方式提高了备份的有效性,方便了工作人员的维护,缩减了维护成本。以后视情况可以添加交换机自动恢复的功能,就能够实现交换机的自动备份和恢复。
[1] 胡绍立.企业网络交换机配置文件的批量备份[J].计算机与网络,2014,(21):67-70.
[2] 刘宇.关于交换机配置文件实现自动备份的研究[J].电脑与电信,2011,(3):59-61.
[3] 戴元.网络设备配置信息备份系统的设计与实现[J].微型电脑应用,2011,(11):14-15.
[4] 唐寿高,陶永,王洪涛.用批处理和VBS批量配置交换机[J].中国教育网络,2010,(7):76-77.
[5] 孙绪华,魏楚元,李敏.如何自动备份大型交换机配文件[J].中国教育网络,2010,(4):71-72.
[6] 靳亚楠.批量备份校园网路由器/交换机配置数据的探索[J].科技信息,2010,(16):236-237.
[7] 苏轶,刘树峰,张晓平,等.路由器配置文件自动备份的实现[J].山东气象,2010,(1):41-43.
[8] 袁海峰,张道军,吴银芳.基于Telnet协议实现网络设备的自动管理[J].苏州科技学院学报,2006,(4):69-73.
本篇为顺应高校信息化的发展,将学生日常一卡通数据运用数据挖掘的技术进行整合与分析,主要针对某大学学生校园一卡通消费数据进行消费习惯分析。首先通过数据清洗、数据集成、数据转换与数据归约等数据预处理手段提取出一个小型数据仓库,然后采用一种优化的K-means算法进行聚类分析。该算法优化了初始聚类中心,通过类密集程度这一指标寻求一个最优聚类效果。所得结果将学生分为几类,并分析不同类别行为特征,最后还运用决策树模型和十折交叉验证法评估聚类结果,辅助学生工作管理人员将学生按特征分类管理,并对后勤管理部门更好的服务学生提供帮助,对高校的学生管理工作具有参考价值。
【参考文献】
[1] 梁莹.基于数据挖掘技术的客户消费行为分析系统的开发与应用[D].广西:广西大学,2011.
[2] 廖珣.基于K-means和CBR方法的高校就业预测模型应用研究[J].人力资源管理, 2010,3(3):79-80.
[3] 叶炼.电信客户行为分析系统数据仓库的设计与实现[D].西安:西安电子科技大学,2009.
[4] 姚双良.数据挖掘在高校课程相关性中的应用研究[J].科技通报, 2012, 28(12):232-234
The design and implementation of network equipment automatic backup based of hybrid programming
Switch has a very wide range of application in today's networks, it played a huge role for the stable operation of the network. In this paper, we designed and implemented a automatic backup system for switch configuration file in windows in case of the tedious and inconvenient situation of switch manually back up.The system can automatically backup configuration file switch within network, it also can timing backup. The system can reduce the workload of network management, improve efficiency obviously.
Switch; configuration file; automatic backup
TP31
A
1008-1151(2015)01-0037-03
2014-12-12
李真(1983-),男,广西电网有限责任公司信息中心助理工程师,从事系统运维工作。