使用 snmpget 下载 cisco 配置

使用 snmpget 下载 cisco 配置

我目前在使用 snmpset 从监控服务器获取思科配置时遇到了麻烦。

以下是我的建议:

snmpset -v2c -cvtmYdXVHfo9v38oAbtACikvV calcium \
1.3.6.1.4.1.9.9.96.1.1.1.1.2.111 integer 1 \
1.3.6.1.4.1.9.9.96.1.1.1.1.3.111 integer 4 \ 
1.3.6.1.4.1.9.9.96.1.1.1.1.4.111 integer 1 \
1.3.6.1.4.1.9.9.96.1.1.1.1.5.111 ipaddress 172.23.129.4 \
1.3.6.1.4.1.9.9.96.1.1.1.1.6.111 octetstring "config" \
1.3.6.1.4.1.9.9.96.1.1.1.1.14.111 integer 4

遵循以下文档:cisco_snmp_doc

ccCopyProtocol is 1.3.6.1.4.1.9.9.96.1.1.1.1.2
ccCopySourceFileType 1.3.6.1.4.1.9.9.96.1.1.1.1.3
ccCopyDestFileType 1.3.6.1.4.1.9.9.96.1.1.1.1.4
ccCopyServerAddress 1.3.6.1.4.1.9.9.96.1.1.1.1.5
ccCopyFileName 1.3.6.1.4.1.9.9.96.1.1.1.1.6
ccCopyEntryRowStatus 1.3.6.1.4.1.9.9.96.1.1.1.1.14

Cisco 文档指示指定一个随机整数(这里是 111,如文档中所述,但指定 1 不会改变任何内容)

以下是我得到的结果:

1.3.6.1.4.1.9.9.96.1.1.1.1.5.111: Value out of range (172.23.129.4)
1.3.6.1.4.1.9.9.96.1.1.1.1.6.111: Unknown Object Identifier \
(Sub-id not found: (top) -> config)

显然,我无法将我的服务器的 ip 地址设置为相关的 oid。此外,我无法弄清楚第二个错误是什么意思。

有人能给我一些建议吗?任何帮助或线索都将不胜感激

多谢 :)

答案1

你最初的问题是,你试图获取配置监控服务器,但你对 petrus 的回应表明你想复制配置服务器,这就是您的原始示例所显示的,因此我认为这就是您所追求的。

两件事情:

1-如果数字 OIDS 的开头没有 .,这对我来说不起作用。

2 - 看起来您的 snmpget 版本中可用的 TYPE 值与 Cisco 文档中的值不匹配(它说他们使用 snmpset 的 HPOV 版本)。尝试运行不带任何参数的“snmpset”,看看会得到什么;如果您使用的是 Net-SNMP,底部附近应该有一个部分指定可用的 TYPE。

--

以下是我过去使用过的步骤,使用 Net-SNMP 和 CISCO-CONFIG-COPY-MIB(篇幅较长,请谅解):

步骤1:配置ccCopyEntryTable 包含所需协议 (tftp=1)、源文件类型 (runningConfig=4)、目标文件类型 (networkFile=1)、tftp 服务器的 IP 地址以及所需文件名在 tftp 服务器上.最后,将 RowStatus 设置为“createAndGo”(4)。

数字上:

snmpset -v 2c -c private lab-rtr1 \
.1.3.6.1.4.1.9.9.96.1.1.1.1.2.111 i 1 \
.1.3.6.1.4.1.9.9.96.1.1.1.1.3.111 i 4 \
.1.3.6.1.4.1.9.9.96.1.1.1.1.4.111 i 1 \
.1.3.6.1.4.1.9.9.96.1.1.1.1.5.111 a 10.1.1.1 \
.1.3.6.1.4.1.9.9.96.1.1.1.1.6.111 s "lab-rtr1-confg" \
.1.3.6.1.4.1.9.9.96.1.1.1.1.14.111 i 4

使用 MIB 中的文本 OID:

snmpset -O s -m CISCO-CONFIG-COPY-MIB -v 2c -c private lab-rtr1 \
ccCopyProtocol.111 i 1 \
ccCopySourceFileType.111 i 4 \
ccCopyDestFileType.111 i 1 \
ccCopyServerAddress.111 a 10.1.1.1 \
ccCopyFileName.111 s "lab-rtr1-confg" \
ccCopyEntryRowStatus.111 i 4

你应该得到类似这样的结果:

ccCopyProtocol.111 = INTEGER: tftp(1)
ccCopySourceFileType.111 = INTEGER: runningConfig(4)
ccCopyDestFileType.111 = INTEGER: networkFile(1)
ccCopyServerAddress.111 = IpAddress: 10.1.1.1
ccCopyFileName.111 = STRING: lab-rtr1-confg
ccCopyEntryRowStatus.111 = INTEGER: createAndGo(4)

第2步:查看状态:

snmpget -v 2c -c private lab-rtr1 .1.3.6.1.4.1.9.9.96.1.1.1.1.10.111

文字版:

snmpget -O s -m CISCO-CONFIG-COPY-MIB -v 2c -c private lab-rtr1 ccCopyState.111

您应该会得到“3”以表示成功(检查 MIB 以了解其他可能的值):

ccCopyState.111 = INTEGER: successful(3)

步骤3:破坏您创建的行:

snmpset -v 2c -c private lab-rtr1 .1.3.6.1.4.1.9.9.96.1.1.1.1.14.111 i 6

文字版:

snmpset -O s -m CISCO-CONFIG-COPY-MIB -v 2c -c private lab-rtr1 ccCopyEntryRowStatus.111 i 6

你应该得到类似这样的结果:

ccCopyEntryRowStatus.111 = INTEGER: destroy(6)

第四步:开始核实它实际上已被复制到 tftp 服务器。

答案2

snmpset -v 2c -c <community> <router address> OLD-CISCO-SYS-MIB::netConfigSet.<tftp server> s <config-file>

<tftp-server>是点分十进制。

<config-file>是相对于您的 TFTP 根的路径。

例子:

snmpset -v 2c -c private 192.168.0.254 OLD-CISCO-SYS-MIB::netConfigSet.192.168.0.10 s router-confg.txt

答案3

非常感谢您的回答。

然而,根据旧思科系统 MIB

oid 是 1.3.6.1.4.1.9.2.1.50,提示的命令是

snmpset -v2c -c public 172.23.176.71 1.3.6.1.4.1.9.2.1.50.172.23.129.4 s config

返回

Error in packet.
Reason: commitFailed Failed object: iso.3.6.1.4.1.9.2.1.50.172.23.129.4

我是否选择了合适的 OID?

此外,它看起来将配置放入交换机中,我想执行相反的传输:从交换机到服务器

感谢您的帮助

相关内容