Cisco

使用 snmpget 下載 cisco 配置

  • May 10, 2018

我目前無法使用 snmpset 從監控伺服器獲取 cisco 配置。

這是我的提示:

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。此外,我無法弄清楚第二個錯誤是什麼意思。

誰能給我一些建議?任何幫助或線索將不勝感激

非常感謝 :)

您最初的問題表明您試圖監控伺服器獲取配置,但您對 petrus 的響應表明您希望將配置複製伺服器,這就是您的原始範例所顯示的,所以我假設這就是您的後。

兩件事情:

1 - 如果沒有 . 在數字 OID 的開頭。

2 - 看起來您的 snmpget 版本可用的 TYPE 值與 Cisco 文件中的值不匹配(它說他們使用的是 HPOV 版本的 snmpset)。嘗試不帶任何參數執行“snmpset”,看看你得到了什麼;如果您使用的是 Net-SNMP,則在底部附近應該有一個部分指定可用的類型。

以下是我過去使用過的步驟,使用 Net-SNMP 和 CISCO-CONFIG-COPY-MIB(對長度表示歉意):

第 1 步:使用所需的協議 (tftp=1)、源文件類型 (runningConfig=4)、目標文件類型 (networkFile=1)、tftp 伺服器的 IP 地址和所需的文件名配置ccCopyEntryTable 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)

第 4 步:去驗證它是否真的被複製到了 tftp 伺服器。

引用自:https://serverfault.com/questions/311675