Làm thế nào để có được scp qua snmp để làm việc với các bộ định tuyến cisco?


10

Tôi có một thiết lập phòng thí nghiệm nơi tôi đang cố gắng sử dụng SCP qua SNMP cho bộ định tuyến cisco. Tôi tìm thấy một số tài liệu trực tuyến như: http://ccie20728.wordpress.com/2008/05/20/get-the-cisco- cấu hình-over-snmp /

Đây là thiết lập cấp cao của tôi. Trên bộ định tuyến:

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

Để có được bộ định tuyến hoạt động như máy chủ SCP, cần phải bật với cmd ở trên. Trên máy chủ Ubuntu, tôi đã cài đặt / chạy openSSH và thực hiện các lệnh này:

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

Sau đó, để kiểm tra trạng thái là gì, tôi thực hiện một snmpget và / hoặc snmpwalk thông qua:

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

Khi tôi chạy cái này, tôi nhận được số nguyên (2), có nghĩa là nó đang chạy, sau đó nó chuyển sang số nguyên (4), có nghĩa là nó không thành công.

Sau đó, tôi kiểm tra lý do thất bại:

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

và tôi nhận được số nguyên (2), có nghĩa là "badfilename".

Vì vậy, tôi đã thử các hoán vị khác nhau của tên tệp cho "chuỗi .6.111" ở trên, bao gồm các phần mở rộng tệp khác nhau, có và không có hypens, cùng tên tệp khi chạy cmds cấu hình, thậm chí chỉ định tên tệp đường dẫn tuyệt đối nhưng dường như không hoạt động.

Tôi đã thử gỡ lỗi sshdvới các mức ghi nhật ký khác nhau và không nhận được đầu ra từ tệp nhật ký hệ thống đã lưu / lưu trữ.

Có ai có thể làm cho điều này để làm việc?


đây là hai liên kết khác mà tôi đã sử dụng cho tài liệu: tools.cisco.com/Support/SNMP/do/ , và cisco.com/en/US/tech/tk648/tk362/
user1609

Để loại bỏ các sự cố trên máy chủ SCP, nó có hoạt động không nếu bạn chạy bản sao thủ công từ bộ định tuyến của mình? Tôi dường như nhớ một số máy chủ TFTP không cho phép chúng tôi tạo các tệp mới trong khi ghi vào nó, vì vậy trước tiên chúng tôi phải tạo một tệp trống ở phía máy chủ và sau đó chạy bản sao với tệp đích trỏ đến tên tệp trống
Daniel Yuste Aroca

vâng, tôi đã thử điều này quá thủ công từ bộ định tuyến đến máy chủ thông qua scp và nó hoạt động tốt. Tôi đã có thể sao chép tệp qua máy chủ theo cách thủ công ngay cả khi không tạo tệp trống trước đó.
user1609

Có câu trả lời nào giúp bạn không? nếu vậy, bạn nên chấp nhận câu trả lời để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời. Ngoài ra, bạn có thể cung cấp và chấp nhận câu trả lời của riêng bạn.
Ron Maupin

Câu trả lời:


6

Tôi vừa thử cái này trên CPE của tôi:

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

Bản sao nào đang chạy cấu hình (4) sang mạng (1), bằng cách hoán đổi các bản sao này, bạn có thể thay đổi hướng (từ mạng sang chạy).

Chạy trên kịch bản thư mục nhà của tôi sẽ có tệp 'tên tệp', chứa CPE running-config của tôi:

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

Trên hết, những gì @daniel cũng đề cập đến '14' hoặc 'rowstatus' của bạn là sai, bạn sử dụng 1 'hoạt động', trong khi bạn nên sử dụng 4 'createdAndGo'.


chỉ cần thử lại bằng cách thay đổi "14" thành số nguyên 4 và vẫn nhận được Lỗi trong gói, Lý do: giá trị không nhất quán. Tôi thậm chí đã xóa snmpset với "6" như bạn đã làm mỗi lần. Nhân tiện, bạn đã có thể làm cho nó hoạt động với thiết lập của bạn ở trên?
user1609

Đúng. Ở trên chỉ hoạt động tốt trên 881G của tôi chạy 15.1 (2) T5. Tôi đã thêm đầu ra của kịch bản. Nếu tôi có chỉ số / id (9) đó bị treo, thì tôi nhận được cùng một khiếu nại 'giá trị không nhất quán', phải mất khá lâu trước khi bạn có thể phá hủy nó. Bạn có thể kiểm tra với chỉ số / ID mới để chắc chắn.
ytti

đã thử nó với chỉ số / ID khác nhau, vẫn không xảy ra. Tôi sẽ thử một thiết bị khác. có thể thiết bị cụ thể này không thực sự được hỗ trợ. điều này là, ngay cả trong ma trận cisco mib và phần mềm, nó cho thấy những MIB này được hỗ trợ cho iOS hiện tại tôi đang thử nghiệm.
user1609

Bây giờ nó là MIB khá cũ, có thể là 5 <10 năm. Vì vậy, có lẽ không phải vậy. Từ IOS CLI thực hiện công việc này: 'sao chép running-config scp: // tên người dùng: password @ server / tên tệp'
ytti

có, thực hiện một bản sao scp thủ công từ bộ định tuyến đến máy chủ hoạt động tốt. Tôi thậm chí có thể tạo một bộ lập lịch kron hoặc tập lệnh EEM để làm điều này và hoạt động tốt khi thực hiện scp từ bộ định tuyến đến máy chủ. chỉ không qua snmp ...
user1609

4

Theo Điều hướng đối tượng SNMP của Cisco, giá trị 4 không được hỗ trợ cho 1.3.6.1.4.1.9.9.96.1.1.1.1.3. Thay vào đó, giá trị 2 có nghĩa là running-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

Có lẽ đó là lý do tại sao bạn nhận được lỗi badFileName.

BIÊN TẬP:

Trên thực tế dường như có sự mâu thuẫn giữa SNMP Object Navigator và Định nghĩa MIB , như kiểu cho ccCopySourceFileTypeccCopyDestFileTypeConfigFileTypevà theo định nghĩa MIB:

ConfigFileType ::= TEXTUAL-CONVENTION

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

Và điều này dường như được hỗ trợ bởi câu trả lời của ytti


vâng, tôi cũng thấy điều đó trong mib, nhưng ngay cả khi tôi thay đổi nó thành số nguyên bằng 2, tôi vẫn gặp lỗi: *** snmpset -c <str> -v 2c <ip> 1.3.6.1.4.1.9.9 .96.1.1.1.1.3.111 i 2 Lỗi trong gói. Lý do: falseValue (Giá trị cài đặt là bất hợp pháp hoặc không được hỗ trợ theo một cách nào đó) Đối tượng không thành công: iso.3.6.1.4.1.9.9.96.1.1.1.1.3.111 *** Tôi cũng đã thử các hoán vị khác nhau của điều này với .3 và. 4 trong đó có thể số nguyên là khác nhau trong cả hai trường hợp. Tôi đang cố gắng sao chép từ bộ định tuyến sang máy chủ, mà theo tôi hiểu, là run-cfg sang networkfile.
user1609

Tôi nghĩ rằng mâu thuẫn có thể là do có hai thế hệ mib sao chép. Bản gốc đơn giản hơn rất nhiều / dumber và chỉ hoạt động, tôi không thể nhớ lại nhưng có lẽ trong thời đại đó 1 là khởi động và 2 chạy.
ytti

đó là một điểm hay. Vì vậy, có vẻ như những thay đổi đã được thực hiện với nâng cấp mã.
user1609

mib "write-net" đã bị khấu hao (vì nhiều lý do) có lợi cho mib "config-copy", đây vẫn là cách hiện tại để làm điều đó.
Ricky Beam

3

Tôi đã đăng bài này trước đây: http://checkforbees.com/router-backup/

Tôi nghĩ vấn đề của bạn là với nhiều snmpset. Bạn phải bắt đầu bằng cách tạo mục để làm điều này. [14.xxx = 5 (createAndWait)] Sau đó, bạn có thể thiết lập mục nhập khi cần thiết trước khi đặt rowStatus thành "1" (hoạt động).

[Lưu ý: Các tập lệnh của tôi đã có hàng thập kỷ, vì vậy chúng được điều chỉnh cho 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

Tôi đang lặp lại ... 10.111 (trạng thái) trong khi nó "đang chạy". Tôi nghi ngờ bạn chưa bao giờ xóa mục "111" của bạn. Đó là những chuỗi snmpsets chính xác của bạn so với 2960S với máy chủ ssh của hộp linux. (như lời nhắc của tôi gợi ý, một hộp debian.)


Tôi đã thử theo đề nghị của bạn, vẫn không hoạt động :-(. Tôi nhận được cùng một thất bại và lý do thất bại. Tôi tự hỏi liệu đây có phải là một số lỗi sau đó cho mã IOS cụ thể này không. 12.2 (33) SCF4
user1609

Bạn đang sử dụng thiết bị gì?
Ricky Beam

đang thực hiện thử nghiệm của tôi trên CMTS cisco ubr10k, cũng đã thử với cisco 3725 (mã
12,4T

badFilenamecũng có thể biểu thị một lỗi đăng nhập ssh, nhưng tôi nhận được noConfig(5)điều đó. (trái ngược với những gì nó nên nói)
Ricky Beam

Tôi nhận được badFileName(2)từ 12,4T. (2960S là 15 lần)
Ricky Beam

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.