有没有办法向思科路由器提交一批命令并让它们从路由器执行?

有没有办法向思科路由器提交一批命令并让它们从路由器执行?

由于远程(6 小时车程)客户端的位置有新的互联网服务,我需要从我的位置更改其 Cisco 871(IOS 12.4.15T)的配置。更准确地说,我需要更改默认路由、外部接口(Fa4)的 IP 地址并禁用那里的 PPPoE 设置。不幸的是,执行任何这些操作都会(显然)中断与路由器的连接。我没有设置带外管理调制解调器(我知道,我知道)。

有没有办法从闪存上的文件中输入我需要运行的命令并让它们一个接一个地执行?我以前从未尝试过这样的事情。本质上,DOS 风格的批处理文件正是我所需要的。除了使用 kron 执行 CLI 命令之外,似乎没有类似的东西,但这是指定的这里只接受 EXEC 命令,不接受配置命令。还有希望吗,还是我得走了?

答案1

我相信可以将文件从 flash: 复制到 running-config,但我不能 100% 确定。您最好将现有的 running-config 复制到known-good-startup,将所需的配置复制到 startup-config 之上,然后重新加载路由器(理想情况下,如果新配置被破坏,现场有人可以指导他进行密码恢复式恢复)。

或者,如果相关配置可以轻松地放入单个 TCP 帧中,您可以编写一些代码来发出命令reload in 10,然后config t使用 CR NL 分隔的所有相关配置命令在单个帧中完成。

编辑:然后手动登录路由器或发送第二个帧,其中包含足够的命令以取消重新加载(相关的 IOS 命令是reload cancel)。

答案2

您可以使用 tclsh 宏来执行此操作。

创建宏

路由器#tclsh
路由器(tcl)#设置foo{
+>conf t
+> int f0/1
+>ip 地址.....
+>没有 IP 路由 0.0.0.0.....
+>ip 路由 0.0.0.0.....
+>退出  
+>退出  
+>}     

执行并退出tclsh:

路由器(tcl)#eval $foo
...
路由器(tcl)#tclq

在实验室中进行测试,以熟悉 Cisco 路由器中的 tclsh。

答案3

如果您有一个tftp可供路由器访问的服务器,您可以在那里编辑您的配置,然后从 tftp 服务器加载配置。

只需非常小心,并制定备用计划。如果出现任何问题,您将处于离线状态,需要亲自访问,或找其他本地人来充当您的助手。

答案4

如果你使用的是较新的 IOS,你可以使用iOS版。一旦你这样做了term shell,你可以在一行上用分号分隔命令,它们将按顺序运行,就像bash或类似的一样。

下面是一个示例,我在其中更改了一条路线:

LAB-6807#show run | incl 111.111
ip route 172.31.111.111 255.255.255.255 Loopback0
LAB-6807#term shell
LAB-6807#conf t; no ip route 172.31.111.111 255.255.255.255 Loopback0; ip route 172.31.111.111 255.255.255.255 Null0; end
Enter configuration commands, one per line.  End with CNTL/Z.
LAB-6807#
*May 18 22:33:27.772: %SYS-5-CONFIG_I: Configured from console by hunter on vty1 (x.x.x.x)
LAB-6807#show run | incl 111.111
ip route 172.31.111.111 255.255.255.255 Null0
LAB-6807#

相关内容