如何从 Linux 备份和恢复大量 Cisco 路由器和交换机上的配置?

如何从 Linux 备份和恢复大量 Cisco 路由器和交换机上的配置?

我正在寻找一种方法来备份、保存、版本化和恢复思科网络设备配置。

我需要能够在许多路由器和交换机上自动获取和推送配置文件。

我正在寻找某种 Linux 替代品,以便Orion我可以:

  • 当设备配置发生变化时自动从设备获取配置(由系统日志触发)
  • 保存配置的每个版本
  • 在单个设备上推送配置
  • 通过脚本方式将配置推送到一组设备上

所以我研究了一下看似不错的解决方案,但没有找到符合这些标准的解决方案。很奇怪,没有针对这些需求构建的 Linux 产品。

以下是我发现的:

  • Rancid 是一个很好的脚本,可以获取配置并将每个版本保存在 CVS 或 SVN 存储库中
  • Syslog-ng 可以帮助我告诉 Rancid 在发送系统日志时再次检查设备的配置
  • CVS/SVN/Git/无论什么都可以实现版本控制并提供很好的差异
  • 我可以使用 clogin(Rancid)推送配置,但这并不好
  • 我可以使用 TFTP 推送配置,但我必须编写脚本(主要用于大规模部署)。

我是否缺少提供所需功能的工具?很奇怪它在 Linux 上不存在。

感谢您的帮助 :)

答案1

这是我发现迄今为止最容易管理的...虽然它有点粗糙,特别是对于不喜欢 CLI 的人来说。

http://sourceforge.net/projects/cosi-nms/files/ciscocmd/

这是一个用于向许多思科设备发送命令的预期脚本。

它允许您传递一个文件,其中包含所有设备的名称以及您想要在设备上执行的命令。

我每晚只需将其 tftp 配置发送至我们的中央配置 tftp 服务器。

copy system:running-config tftp://mytftpserver/this-router-config

要恢复,您只需应用:

copy tftp://mytftpserver/this-router-config system:running-config

一个简单的例子是有一个文件叫做“myrouters”

--- CUT --- 
#!/bin/sh
DATE=`date +%Y%m%d`
for THISHOST in `cat myrouters`
do
ciscocmd [auth params] -c "copy system:running-config tftp://mytftpserver/$THISHOST.$DATE"
done
--- CUT ---

这将创建一个名为的配置文件路由器x.20130707

如果你改变

DATE=`date +%Y%m%d`

DATE=`date +%w`

您将拥有连续 7 天的配置窗口 路由器 x.1,路由器 x.2,..路由器 x.7

上面是一个非常简化的示例,但这主要是我所做的。我实际上有一个“config-backup.sh”和一个“config-restore.sh”。

每个脚本都接受一个文件名参数,该文件名中填入了设备名称,第二个参数是“YYYYMMDD”格式的日期。如果是备份,它会将日期附加到配置文件名中。如果是恢复,它会告诉设备加载“$HOST.$DATE”。

我使用 cron 运行备份。

有了它,我只需通过手机上的 SSH 即可轻松恢复任何内容。

相关内容