Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

第 5 章 IDC

目录

5.1. 网络设备配置管理与版本控制
5.1.1. 背景
5.1.2. 怎样实现网络设备配置管理
5.1.3. 总结
5.2. 机房迁移
5.2.1. 拓扑确立
5.2.2. 存储规划
5.2.3. 设备上架
5.2.4. 操作系统初始化
5.2.5. 服务器及运行环境
5.2.6. 部署应用程序
5.2.7. 监控系统
5.2.8. 日志中心
5.2.9. 测试
5.3. 网线怎样连接才合理
5.3.1. 单个硬件防火墙方案
5.3.2. 双防火墙方案
5.3.3. 网卡
5.4. 记录思科路由器/防火墙/交换机日志
5.4.1. 开启日志
5.4.2. syslogd 服务器脚本
5.5. 影响网络流量的因素
5.5.1. 带宽
5.5.2. 会话数
5.5.3. IO

5.1. 网络设备配置管理与版本控制

http://netkiller.github.io/journal/network.ios.html

5.1.1. 背景

我们经常会频繁的配置网络设备,但有时候做了某些操作出现了异常,我们不清楚问题出在哪里,还原配置也不起作用,甚至你根本记得你改动了什么。

另外我们希望能够监控网络设备的配置变化,一个公司可能有很多网络工程师,他们都有权限操作路由交换或防火墙设备,我们要知道网络设备配置什么时候发生了变化,并通知其他几位同事。同时我们要对修改操作记录归档,方便日后查阅。

5.1.2. 怎样实现网络设备配置管理

我们每隔一段时间便将网络设备的配置导出存档,然后通过版本控制工具进行版本化管理,远离非常简单。

有了版本控制我们可能很方便的回撤操作。下面我来详细讲解怎样安装于配置该软件

$ git clone https://github.com/netkiller/logging.git
$ cd logging
$ python3 setup.py sdist
$ python3 setup.py install

$ sudo apt-get install expect
$ sudo chmod +x /usr/local/libexec/*		
		

配置网络设备地址

打开 /usr/local/bin/cisco 文件,修改BACKUP_DIR,改为你的备份目录

$ vim /usr/local/bin/cisco

CFGFILE=$BASEDIR/etc/cisco.conf
BACKUP_DIR=~/.backup

$ cat /usr/local/etc/cisco.conf 
192.168.50.1 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK
192.168.50.2 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK
192.168.50.3 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK
192.168.50.4 mgmt EBopQ1X2vMkrl M8YJxvDiddG6QK

$ sudo chmod 600 /usr/local/etc/cisco.conf		
		

编辑/usr/local/etc/cisco.conf文件,格式如下:

host | username | password | enable password
		

初始化版本仓库

# Initialized empty Git repository in local.
$ cisco init

# Initialized empty Git repository from remote.
$ cisco init http://xxx.xxx.xxx.xxx/project/xxxx.git
$ cisco init user@host:/project/xxxx.git		
		

启动,停止等操作

$ cisco
Usage: /usr/local/bin/cisco {init|start|stop|status|restart}

# cisco start
# cisco stop 		
		

查看网络设备配置变化

查看当前与上一个版本的变化

$ cd your_backup_dir
$ git diff HEAD HEAD~ route.running-config		
		

查看当前与前面第三个版本的变化

$ cd your_backup_dir
$ git diff HEAD HEAD~3 route.running-config		
		

5.1.3. 总结

该程序主要是备份网络设备的配置文件,当然也能起到监控做用,但备份间隔时间需要根据你的情况设定,如果太频繁也不太好,间隔太长可能起不到很好的监控作用。

关于监控与报警,你可以通过git diff 命令对比与上次配置文件的变化,通常是没有变化的,一旦发生变化便通过电子邮件与短信发出警报。至于怎么实现,不再本文讨论范围,有兴趣可以参考笔者的其他技术手札。

关于版本控制软件更多细节,延伸阅读 《Netkiller Version 手札》