як змусити 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.