bagaimana cara mendapatkan scp via snmp untuk bekerja dengan router cisco?

10

Saya memiliki pengaturan lab di mana saya mencoba menggunakan SCP via SNMP ke router cisco. Saya menemukan beberapa dokumentasi online seperti: http://ccie20728.wordpress.com/2008/05/20/get-the-cisco- konfigurasi-over-snmp /

Inilah pengaturan tingkat tinggi saya. Di router:

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

Untuk membuat router bertindak sebagai server SCP, perlu diaktifkan dengan cmd di atas. Di server ubuntu, saya telah menginstal / menjalankan openSSH dan melakukan cmds ini:

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

Kemudian untuk memeriksa statusnya, saya melakukan snmpget dan / atau snmpwalk melalui:

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

ketika saya menjalankan ini, saya mendapatkan integer (2), yang berarti sedang berjalan, kemudian masuk ke integer (4), yang berarti gagal.

Lalu saya memeriksa alasan kegagalan:

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

dan saya mendapatkan integer (2), yang berarti "badfilename".

Jadi saya sudah mencoba permutasi yang berbeda dari nama file untuk ".6.111 string" di atas, termasuk ekstensi file yang berbeda, dengan dan tanpa tanda hubung, nama file yang sama dengan menjalankan config cmds, bahkan menentukan nama file path absolut tetapi tidak ada yang berfungsi.

Saya sudah mencoba men-debug sshddengan berbagai level logging dan tidak mendapatkan output dari file syslog yang disimpan / disimpan.

Adakah yang bisa membuat ini bekerja?

pengguna1609
sumber
berikut adalah dua tautan lain yang saya gunakan untuk dokumentasi: tools.cisco.com/Support/SNMP/do/… dan cisco.com/en/US/tech/tk648/tk362/…
user1609
Untuk membuang masalah pada server SCP, apakah itu berfungsi jika Anda menjalankan salinan secara manual dari router Anda? Saya sepertinya ingat beberapa server TFTP yang tidak memungkinkan kami membuat file baru saat menulis, jadi pertama-tama kami harus membuat file kosong di sisi server dan kemudian menjalankan salinan dengan file tujuan yang menunjuk ke nama file yang kosong
Daniel Yuste Aroca
ya, saya mencoba ini juga secara manual dari router ke server melalui scp dan itu berfungsi dengan baik. Saya dapat menyalin file ke server secara manual bahkan tanpa membuat file kosong sebelumnya.
user1609
Apakah ada jawaban yang membantu Anda? jika demikian, Anda harus menerima jawabannya sehingga pertanyaan tidak terus muncul selamanya, mencari jawaban. Atau, Anda bisa memberikan dan menerima jawaban Anda sendiri.
Ron Maupin

Jawaban:

6

Saya baru saja mencoba ini di CPE saya:

[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 ~]% 

Salinan yang menjalankan config (4) ke jaringan (1), dengan menukar ini Anda dapat mengubah arah (dari jaringan ke berjalan).

Menjalankan skrip di atas, direktori home saya akan memiliki file 'nama file', yang berisi CPE running-config saya:

[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 ~]% 

Di atas apa yang @daniel sebutkan juga '14' atau 'rowstatus' Anda salah, Anda menggunakan 1 'aktif', sedangkan Anda harus menggunakan 4 'createAndGo'.

ytti
sumber
hanya mencobanya lagi dengan mengubah "14" ke integer 4 dan masih mendapatkan Kesalahan dalam paket, Alasan: nilai tidak konsisten. Saya bahkan membersihkan snmpset dengan "6" seperti yang Anda lakukan setiap waktu. ngomong-ngomong, Anda bisa membuatnya bekerja dengan pengaturan Anda di atas?
user1609
Iya. Di atas berfungsi dengan baik pada 881G saya yang menjalankan 15.1 (2) T5. Saya menambahkan output skrip. Jika saya memiliki indeks / id (9) yang menggantung, maka saya mendapatkan keluhan 'nilai tidak konsisten' yang sama, butuh waktu cukup lama sebelum Anda dapat menghancurkannya. Anda mungkin menguji dengan indeks / ID baru untuk memastikan.
ytti
mencobanya dengan indeks / ID yang berbeda, masih belum terjadi. Saya akan mencoba perangkat lain. mungkin perangkat khusus ini sebenarnya tidak didukung. Masalahnya, bahkan dalam cisco mib dan matriks perangkat lunak, ini menunjukkan bahwa MIB ini didukung untuk iOS yang sedang saya uji.
user1609
Ini MIB yang sudah sangat tua sekarang, mungkin sekitar 5 <10 tahun. Jadi mungkin bukan itu. Dari IOS CLI melakukan pekerjaan ini: 'copy running-config scp: // username: password @ server / filename'
ytti
ya, melakukan copy scp manual dari router ke server berfungsi dengan baik. Saya bahkan dapat membuat penjadwal kron atau skrip EEM untuk melakukan ini dan berfungsi dengan baik melakukan scp dari router ke server. tidak hanya melalui snmp ...
user1609
4

Menurut Cisco SNMP Object Navigator, nilai 4 tidak didukung untuk 1.3.6.1.4.1.9.9.96.1.1.1.1.1.3. Sebaliknya, nilai 2 berarti menjalankan-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

Mungkin itu sebabnya Anda mendapatkan kesalahan badFileName.

EDIT:

Sebenarnya sepertinya ada kontradiksi antara SNMP Object Navigator dan MIB Definition , sebagai tipe untuk ccCopySourceFileTypedan ccCopyDestFileTypeis ConfigFileTypedan menurut definisi MIB:

ConfigFileType ::= TEXTUAL-CONVENTION

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

Dan ini sepertinya didukung oleh jawaban ytti

Daniel Yuste Aroca
sumber
ya, saya melihat itu di mib juga, tetapi bahkan jika saya mengubahnya menjadi bilangan bulat 2, saya mendapatkan pesan kesalahan: *** snmpset -c <str> -v 2c <ip> 1.3.6.1.4.1.9.9 .96.1.1.1.1.3.111 i 2 Kesalahan dalam paket. Alasan: nilai salah (Nilai yang ditetapkan ilegal atau tidak didukung dalam beberapa cara) Objek gagal: iso.3.6.1.4.1.9.9.96.1.1.1.1.11.111 *** Saya sudah mencoba permutasi yang berbeda juga dengan .3 dan. 4 di mana mungkin bilangan bulat berbeda dalam kedua kasus. Saya mencoba menyalin dari router ke server, yang seperti yang saya mengerti, dijalankan-cfg ke networkfile.
user1609
Saya pikir kontradiksinya mungkin karena ada dua generasi copy mibs. Yang asli jauh lebih sederhana / bodoh dan hanya melakukan tftp, saya tidak ingat tapi mungkin di era 1 itu startup dan 2 berjalan.
ytti
itu poin yang bagus. jadi sepertinya perubahan dibuat dengan peningkatan kode.
user1609
mib "write-net" disusutkan (karena berbagai alasan) demi mib "config-copy", yang masih merupakan cara saat ini untuk melakukannya.
Ricky Beam
3

Saya telah memposting ini sebelumnya: http://checkforbees.com/router-backup/

Saya pikir masalah Anda adalah dengan beberapa snmpset. Anda harus mulai dengan membuat entri untuk melakukan ini. [14.xxx = 5 (createAndWait)] Kemudian Anda dapat mengatur entri sebagaimana diperlukan sebelum mengatur rowStatus ke "1" (aktif).

[Catatan: Skrip saya sudah berumur puluhan tahun, jadi mereka disetel untuk 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

Saya mengulang ... 10.111 (status) ketika sedang "berjalan". Saya menduga Anda tidak pernah menghapus entri "111" Anda. Itu adalah urutan tepat Anda snmpsetterhadap 2960S dengan server ssh dari kotak linux. (seperti saran saya, kotak debian.)

Ricky Beam
sumber
Saya mencoba sesuai saran Anda, masih tidak berhasil :-(. Saya mendapatkan kegagalan yang sama dan alasan kegagalan. Saya ingin tahu apakah ini harus menjadi bug kemudian untuk kode IOS khusus ini. 12.2 (33) SCF4
user1609
Perangkat apa yang Anda gunakan?
Ricky Beam
telah melakukan pengujian saya pada CMTS cisco ubr10k, juga mencoba dengan cisco 3725 (kode 12,4T), mendapatkan hasil yang sama
user1609
badFilenamejuga bisa menandakan kegagalan login ssh, tapi saya mengerti noConfig(5). (yang bertentangan dengan apa yang seharusnya dikatakan)
Ricky Beam
Saya mendapatkan badFileName(2)dari 12,4T. (2960S adalah 15.x)
Ricky Beam