网络设备配置自动备份方法的设计与实现

2015-06-02 19:55苏萌王莎
科技创新导报 2015年6期
关键词:配置文件

苏萌 王莎

摘 要:路由器、交换机等网络设备的配置备份是日常维护工作的重要内容,但路由器、交换机的配置比较复杂,一旦配置丢失,恢复工作极为繁重,而且极容易出错。该文论述了在Linux环境下运用Expect脚本,通过TFTP协议远程实现网络设备配置定期自动备份的方法。

关键词:Linux TFTP 配置文件 自动备份

中图分类号:TP393 文献标识码:A 文章编号:1674-098X(2015)02(c)-0055-02

海油大网的网络结构是由多种设备组成的,包括服务器、路由器、交换机和防火墙等,每个设备上面都配置了详细的网络参数,在这些设备中又以路由交换设备最为重要。对路由交换设备的配置信息进行备份是日常维护的重要内容,因为路由交换设备的配置比较复杂,一旦配置丢失,手工恢复不仅工作量相当大,而且容易出错。因此有必要对路由交换设备的配置进行定期备份,保障海油大网的正常运行。

实现配置自动备份的软件有多种,但价格比较昂贵,而Linux系统是开源免费的,不仅功能强大,而且安全性高,稳定性好,已成为当前企业的重要服务器平台。因此本文在基于Linux的环境下编写备份脚本程序,以实现网络设备配置信息的定期自动备份功能。

1 Linux下TFTP服务的安装与配置

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是用来下载远程文件的最简单网络协议,它是基于UDP协议实现的。Linux系统的tftp-client是内置的,无需配置,只需对Linux服务器端的tftp-server进行安装与配置。

(1)在Linux系统下安装TFTP服务。

说明Linux系统安装TFTP成功。

(2)修改TFTP配置文件。

安装完TFTP软件包后,需要开启TFTP服务才能正常使用,TFTP服务默认情况下是禁用的,需要修改配置文件/etc/xinetd.d/tftp开启TFTP服务,主要是将其disable的状态修改为no,使其生效,并在server_args中设置tftp根目录。

(3)关闭防火墙。

从安全角度来说,服务器的防火墙不应关闭,应该按照其所提供的服务开启相应端口,本文所进行的操作为探索模式,仅搭建测试服务器,因此选择暂时关闭防火墙。

Redhat的Linux包含两种防火墙,一个是IPtables,另一个是Selinux,我们首先将selinux关闭,通过以下命令将其状态设置为enforcing:

随后,对IPtables进行操作,我们用脚本形式对其策略进行设置:

将其保存为一个脚本,必须执行a.sh才能对防火墙策略生效:

chmod u+x a.sh 加執行权限

./a.sh 执行

(4)创建备份保存目录,并赋予相应权限,随后启动tftp-server

(5)检查TFTP所使用的69号端口已打开

在命令行输入netstat –nlp

有如下结果,说明TFTP服务可以正常工作。

2 Linux下配置备份的设计与实现

2.1 备份脚本程序的实现

由于我们需要根据设备返回的一些信息进行相应的操作,因此我们利用Liunx下的Expect脚本,实现对网络设备配置的定期自动备份,单独的Expect必须要与Shell相互配合,以使Linux shell能够支持交互。通过预先编制脚本,让路由交换设备的配置文件按备份日期自动备份到TFTP对应的目录下,不仅可以提高效率而且可以保证备份信息的完整性,方便维护人员查看了解。具体实现过程如下:

(1)编写TXT文本文件,用于存放路由器、交换机等网络设备的IP地址、远程登录密码、使能密码及网络设备的名称,建议在实际生产环境中,要对该文件进行加密,在后面的脚本执行过程中会依次调用TXT文件中的参数。如在本设计中使用的routers.txt文件,即为路由交换设备配置列表。

(2)编写Expect脚本文件,主要思路为:自动Telnet网络设备→输入登陆密码→执行备份命令→将下载下来的配置文件重命名并保存到指定文件夹→备份完成并退出设备。Expect脚本需要设置可执行权限,脚本依次登录每台设备并在每台上执行“copy run tftp:”命令,即完成一台设备的配置备份工作后,将自动执行下一台设备的备份工作,直至将所有的设备都备份完成为止。

(3)编写主执行程序main-shell.sh,需要设置为可执行权限,通过../backup/main-shell.sh执行,用于从routers文件循环取值并调用expect脚本。

2.2 Linux下实行计划任务

因为网络的需求随时会有变化,网络设备的配置也需要随之进行修改,所以不可能网络设备的配置备份一次就一劳永逸,而应该是循环定期备份网络设备的配置,及时将最新的配置备份下来。Linux系统支持atd和crond两种计划任务,由于atd服务使用的at命令只能执行一次,所以我们采用crond服务,使用crontab定义的命令,因为其具有循环作用,可以满足我们的需求。

编写/etc/crontab文件可以对系统的计划任务进行定义,系统会定时读取该文件,并根据里面的定义执行命令。下面配置中表示每周一的12:30对/backup/main-shell.sh文件执行一次,即对routers文件中的网络设备进行一次配置备份。

修改完/etc/crontab文件后,需要重启一下crond服务:service crond restart ,否则计划任务可能不生效。

2.3 验证结果

如下图所示,可以看到在12:30之前,查看/backup/configbackup目录,并没有文件,而在12:30之后再查看/backup/configbackup,发现生成了4个以.config结尾的文件,即路由交换设备的配置备份文件,且其名称中包含有备份的日期,便于查找。结果也表明在Linux环境下运用Expect脚本,通过TFTP协议远程实现网络设备配置定期自动备份的方法是可行的。

3 结论

该文在Linux环境下采用编制脚本的方式实现了对路由交换设备的定期自动备份,不仅减少了人力、时间的浪费,提高了效率,而且保证了备份数据的无误,其结果也验证了该方法的优越性和可行性,具有一定的实用价值。

参考文献

[1] 石进.巧用SecureCRT脚本实现网络设备配置备份自动化[J].有线电视技术,2011(3):57-58.

[2] 鸟哥.鸟哥的Linux私房菜基础学习篇[M].3版.北京:人民邮电出版社,2013.

[3] 刘宇.关于交换机配置文件实现自动备份的研究[J].电脑与电信,2011(3):59-61.

猜你喜欢
配置文件
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
为View桌面准备父虚拟机
打印机设置