实用网络站
白蓝主题五 · 清爽阅读
首页  > 压缩备份

网关路由表批量配置脚本:运维效率提升小妙招

在公司网络维护中,经常遇到需要给多个网关设备统一添加或修改路由规则的情况。比如新上线了一个内部服务,IP 是 192.168.100.50,子网掩码 255.255.255.0,要让所有分支机构的网关都能访问,就得在每台设备上手动加一条静态路由。如果手头有二三十个网关,一个个登录进去敲命令,不仅费时间,还容易出错。

手动配置太累?脚本才是出路

这时候写个批量配置脚本就显得特别实用。通过 SSH 登录到各个网关设备,自动执行 route add 或 ip route 命令,几分钟搞定全部设备。尤其适合那些使用 Linux 路由器、OpenWRT 系统或者支持命令行管理的企业级网关。

假设你有一份设备 IP 列表和对应的登录信息,可以用 Shell 或 Python 写一个简单的自动化流程。下面是一个基于 expect 实现的 Shell 脚本片段,用于自动登录并添加路由:

#!/usr/bin/expect -f
set timeout 30
set host [lindex $argv 0]
set user "admin"
set passwd "your_password"
set cmd "ip route add 192.168.100.0/24 via 192.168.1.1"

spawn ssh $user@$host
expect "*password*"
send "$passwd\r"
expect "#"
send "$cmd\r"
expect "#"
send "exit\r"
expect eof

把这个 expect 脚本保存为 add_route.exp,再用 Bash 循环调用它:

#!/bin/bash
for ip in 192.168.1.101 192.168.1.102 192.168.1.103
do
    echo "正在配置 $ip..."
    ./add_route.exp $ip
done

配置文件也能压缩备份一下

每次改完路由表,建议把当前的配置导出来存一份。有些设备支持 save config,有些则需要复制 running-config。把这些配置文件按日期打包成 .tar.gz 存到本地或NAS里,既方便回滚,也利于审计。比如:

tar -czf gateway_routes_$(date +%Y%m%d).tar.gz *.cfg

这样一来,哪天发现新加的路由导致网络异常,解压对应日期的包,对比一下就能快速定位问题。别小看这一步,关键时刻能省去大半天排查时间。

脚本跑完顺手打个压缩包,就像做饭前先把碗洗了,看着乱,其实是为了后面更顺。