як змусити scp через snmp працювати з маршрутизаторами cisco?


10

У мене є налаштування лабораторії, де я намагаюся використовувати SCP через SNMP для маршрутизатора cisco. Я знайшов деякі онлайн-документації, такі як: http://ccie20728.wordpress.com/2008/05/20/get-the-cisco- конфігурація-над-snmp /

Ось моя настройка на високому рівні. На маршрутизаторі:

R1(config)# username cisco password cisco
R1(config)# ip domain-name somedomain.com
R1(config)# crypto key generate rsa general-keys modulus 1024
R1(config)# aaa new-model
R1(config)# aaa authentication login cisco local
R1(config)# aaa authorization exec cisco local
R1(config)# ip scp server enable
R1(config)# line vty 0
R1(config)# login authentication cisco
R1(config)# snmp-server community cisco RW

Для того щоб змусити маршрутизатор діяти як сервер SCP, потрібно включити з cmd. На сервері ubuntu я встановив / запустив openSSH і роблю це cmds:

snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.2.111 i 4
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.3.111 i 4
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.4.111 i 1
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.5.111 a <svr ip addr>
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.6.111 s cisco.txt
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.7.111 s cisco
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.8.111 s cisco
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.14.111 i 1

Потім, щоб перевірити, який статус, я роблю snmpget та / або snmpwalk за допомогою:

snmpwalk -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.10.111

коли я запускаю це, я отримую ціле число (2), що означає, що воно працює, тоді воно переходить до цілого (4), а значить, воно не вдалося.

Тоді я перевіряю причину відмови:

snmpwalk -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.13.111

і я отримую ціле число (2), що означає "ім'я badfile".

Тож я спробував різні перестановки імені файлу для ".6.111 рядок" вище, включаючи різні розширення файлів, з гіперпосиланнями та без них, те саме ім'я файлу, що і запускається config cmds, навіть вказане ім'я файлу абсолютного шляху, але жодне, здається, не працює.

Я намагався налагоджувати sshdрізні рівні реєстрації та не отримував вихід із збереженого / збереженого файлу syslog.

Хтось зміг змусити це працювати?


ось два інших посилання, які я використав для документації: tools.cisco.com/Support/SNMP/do/… та cisco.com/en/US/tech/tk648/tk362/…
— user1609

Щоб усунути проблеми на сервері SCP, чи працює він, якщо запустити копію вручну з маршрутизатора? Я, мабуть, пам’ятаю якийсь сервер TFTP, який не дозволяв нам створювати нові файли під час запису на нього, тому спочатку нам довелося створити порожній файл на стороні сервера, а потім запустити копію з файлом призначення, що вказує на порожнє ім’я файлу
— Даніель Юсте Aroca

так, я спробував це занадто вручну від маршрутизатора до сервера через scp, і це спрацювало чудово. Мені вдалося скопіювати файл на сервер вручну, навіть не створюючи порожній файл раніше.
— user1609

Чи допомогла вам якась відповідь? якщо так, то слід прийняти відповідь, щоб питання не з’являлося вічно, шукаючи відповідь. Крім того, ви можете надати та прийняти власну відповідь.
— Рон Моупін

Відповіді:


6

Я просто спробував це на моєму CPE:

[ytti@lintukoto ~]% cat moi2.sh 
#!/bin/sh

snmp="snmpset -v2c -cfoo bu.ip.fi"

$snmp 1.3.6.1.4.1.9.9.96.1.1.1.1.2.9 i 4 \
      1.3.6.1.4.1.9.9.96.1.1.1.1.3.9 i 4 \
      1.3.6.1.4.1.9.9.96.1.1.1.1.4.9 i 1 \
      1.3.6.1.4.1.9.9.96.1.1.1.1.5.9 a 91.198.120.2 \
      1.3.6.1.4.1.9.9.96.1.1.1.1.6.9 s filename \
      1.3.6.1.4.1.9.9.96.1.1.1.1.7.9 s username \
      1.3.6.1.4.1.9.9.96.1.1.1.1.8.9 s password \
      1.3.6.1.4.1.9.9.96.1.1.1.1.14.9 i 4
sleep 10
$snmp 1.3.6.1.4.1.9.9.96.1.1.1.1.14.9 i 6
[ytti@lintukoto ~]% 

Які копії працює config (4) в мережу (1), замінивши їх, ви можете змінити напрямок (від мережі до запущеної).

Запустившись над сценарієм, у моєму домашньому каталозі буде файл "filename", який містить мій CPE running-config:

[ytti@lintukoto ~]% ls -la filename
ls: cannot access filename: No such file or directory
[2 ytti@lintukoto ~]% ./moi2.sh      
iso.3.6.1.4.1.9.9.96.1.1.1.1.2.9 = INTEGER: 4
iso.3.6.1.4.1.9.9.96.1.1.1.1.3.9 = INTEGER: 4
iso.3.6.1.4.1.9.9.96.1.1.1.1.4.9 = INTEGER: 1
iso.3.6.1.4.1.9.9.96.1.1.1.1.5.9 = IpAddress: 91.198.120.2
iso.3.6.1.4.1.9.9.96.1.1.1.1.6.9 = STRING: "filename"
iso.3.6.1.4.1.9.9.96.1.1.1.1.7.9 = STRING: "username"
iso.3.6.1.4.1.9.9.96.1.1.1.1.8.9 = STRING: "password"
iso.3.6.1.4.1.9.9.96.1.1.1.1.14.9 = INTEGER: 4
iso.3.6.1.4.1.9.9.96.1.1.1.1.14.9 = INTEGER: 6
[ytti@lintukoto ~]% ls -la filename
-rw-r--r-- 1 ytti ytti 16172 Jun 11 00:35 filename
[ytti@lintukoto ~]% 

Крім того, що @daniel згадує також, що ваш "14" або "rowstatus" неправильний, ви використовуєте 1 "active", тоді як ви повинні використовувати 4 "createAndGo".


просто спробував це знову, змінивши "14" на ціле число 4 і все-таки отримавши помилку в пакеті, Причина: непослідовне значення. Я навіть очистив snmpset з "6", як ви робили кожного разу. до речі, ви змогли змусити його працювати з налаштуваннями вище?
— user1609

Так. Вище працює чудово на моєму 881G під керуванням 15.1 (2) T5. Я додав вихід сценарію. Якщо у мене індекс / id (9) висить, то я отримую таку саму скаргу на "непослідовну цінність", пройде досить багато часу, перш ніж ви зможете її знищити. Ви можете протестувати із свіжим індексом / ідентифікатором, щоб бути впевненим.
— ytti

спробував це з індексом / ідентифікатором, все ще не відбувається. Я збираюся спробувати інший пристрій. можливо, цей конкретний пристрій насправді не підтримується. річ у тому, що навіть у матриці cisco mib та програмній матриці видно, що ці MIB підтримуються для поточного IOS, на який я тестую.
— user1609

На сьогоднішній день це вже досить старий MIB, як, можливо, 5 <10 років. Так що, мабуть, не так. З IOS CLI це працює: 'копіювати запуск-config scp: // ім'я користувача: пароль @ сервер / ім'я файлу'
— ytti

так, робити ручну scp-копію з маршрутизатора на сервер працює нормально. Я навіть можу створити планувальник кронів або сценарій EEM, щоб це зробити, і це добре працює, роблячи scp від маршрутизатора до сервера. просто не через snmp ...
— user1609

4

Згідно з Cisco SNMP Object Navigator, значення 1.3 не підтримується для 1.3.6.1.4.1.9.9.96.1.1.1.1.3. Натомість значення 2 означає працює-config:

Object  ccCopySourceFileType
OID     1.3.6.1.4.1.9.9.96.1.1.1.1.3
Type    ConfigFileType
1:startupConfig
2:runningConfig
Permission  read-create

Можливо, тому ви отримуєте помилку badFileName.

Редагувати:

Насправді, здається, існує суперечність між SNMP Object Navigator та MIB Definition , як типом для ccCopySourceFileTypeта ccCopyDestFileTypeє, так ConfigFileTypeі відповідно до визначення MIB:

ConfigFileType ::= TEXTUAL-CONVENTION

SYNTAX          INTEGER  {
                        networkFile(1),
                        iosFile(2),
                        startupConfig(3),
                        runningConfig(4),
                        terminal(5),
                        fabricStartupConfig(6) }

І це здається підкріпленим відповіддю ytti


Так, я бачив, що і в mib теж, але навіть якщо я зміню його на ціле число 2, я отримую помилку, кажучи: *** snmpset -c <str> -v 2c <ip> 1.3.6.1.4.1.9.9 .96.1.1.1.1.3.111 i 2 Помилка в пакеті. Причина: falseValue (Встановлене значення є незаконним або не підтримується якимось чином) Невдалий об'єкт: iso.3.6.1.4.1.9.9.9.1.1.1.1.3.111 *** Я пробував різні перестановки цього теж за допомогою .3 та. 4, де, можливо, ціле число було різним в будь-якому випадку. Я намагаюся скопіювати з маршрутизатора на сервер, що, як я розумію, запущено-cfg до мережевого файлу.
— user1609

Я думаю, що протиріччя може бути тому, що є два покоління копійних міб. Оригінал був набагато простішим / тупішим і робив просто tftp, я не можу згадати, але, можливо, в ту епоху 1 був запуск і 2 запуск.
— ytti

це хороший момент. тому здається, що зміни були внесені з оновленням коду.
— user1609

міб "запису-нетто" був знецінений (з багатьох причин) на користь мікрофона "config-copy", який досі є сучасним способом цього зробити.
— Ricky Beam

3

Я публікував це раніше: http://checkforbees.com/router-backup/

Я думаю, що ваша проблема пов'язана з декількома snmpset. Для цього потрібно створити запис. [14.xxx = 5 (createAndWait)] Потім ви можете встановити запис за необхідності, перш ніж встановити rowStatus на "1" (активний).

[Примітка: Моїм сценаріям десятиліття, тому вони налаштовані на tftp.]

[root:pts/6{8}]debian1:/tmp/[01:32 AM]:./test.sh
CISCO-CONFIG-COPY-MIB::ccCopyProtocol.111 = INTEGER: scp(4)
CISCO-CONFIG-COPY-MIB::ccCopySourceFileType.111 = INTEGER: runningConfig(4)
CISCO-CONFIG-COPY-MIB::ccCopyDestFileType.111 = INTEGER: networkFile(1)
CISCO-CONFIG-COPY-MIB::ccCopyServerAddress.111 = IpAddress: 192.168.55.25
CISCO-CONFIG-COPY-MIB::ccCopyFileName.111 = STRING: cisco.txt
CISCO-CONFIG-COPY-MIB::ccCopyUserName.111 = STRING: cisco
CISCO-CONFIG-COPY-MIB::ccCopyUserPassword.111 = STRING: cisco
CISCO-CONFIG-COPY-MIB::ccCopyEntryRowStatus.111 = INTEGER: active(1)
..
Status: successful []
CISCO-CONFIG-COPY-MIB::ccCopyEntryRowStatus.111 = INTEGER: destroy(6)
[root:pts/6{8}]debian1:/tmp/[01:32 AM]:ls -l cisco.txt
-rw-r--r-- 1 root root 15790 Jun 12 01:32 cisco.txt

Я перекидаю ... 10.111 (стан), поки він "працює". Я підозрюю, що ви ніколи не видаляли свій запис "111". Це інакше ваша точна послідовність snmpsets проти 2960S з ssh сервером вікна Linux. (як підказує мій підказки, скринька debian.)


Я спробував, згідно з вашою пропозицією, все ще не спрацював :-(. Я отримую таку ж помилку і причину відмови. Цікаво, чи має бути ця помилка, ніж для цього конкретного коду IOS. 12.2 (33) SCF4
— user1609

Який пристрій ви використовуєте?
— Ricky Beam

робив тестування на CMC cisco ubr10k, також пробував із cisco 3725 (код 12.4T), отримуючи той самий результат
— user1609

badFilenameтакож може означати збій входу в ssh, але я отримую noConfig(5)за це. (що протилежно тому, що воно повинно сказати)
— Рікі Бім

Я отримую badFileName(2)12.4T. (2960S - 15.x)
— Ricky Beam

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.