cisco 라우터와 작동하도록 snmp를 통해 scp를 얻는 방법?


10

나는 router.I 같은 일부 온라인 문서를 발견 나는 시스코에 SNMP를 통해 SCP를 사용하기 위해 노력하고있어 실험실 설정을 가지고 : 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로 활성화해야합니다. 우분투 서버에서 openSSH를 설치 / 실행 하고이 cmd를 수행했습니다.

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

"badfilename"을 의미하는 정수 (2)를 얻습니다.

그래서 하이픈이 있거나없는 다른 파일 확장자를 포함하여 위의 ".6.111 문자열"에 대한 파일 이름의 다른 순열을 시도했지만 config cmds를 실행하는 것과 동일한 파일 이름, 지정된 절대 경로 파일 이름조차도 작동하지 않는 것 같습니다.

sshd다양한 로깅 수준으로 디버깅 하고 저장 / 저장된 syslog 파일에서 출력을 얻지 못했습니다.

누구든지 이것을 작동시킬 수 있었습니까?


다음은 내가 문서화에 사용한 다른 두 가지 링크입니다. tools.cisco.com/Support/SNMP/do/…cisco.com/en/US/tech/tk648/tk362/…
user1609

SCP 서버에서 문제를 폐기하기 위해 라우터에서 수동으로 사본을 실행하면 문제가 있습니까? 새 파일을 작성할 수없는 TFTP 서버를 기억하는 것 같습니다. 먼저 서버 측에 빈 파일을 만든 다음 빈 파일 이름을 가리키는 대상 파일로 복사본을 실행해야합니다.
Daniel Yuste Aroca

네, scp를 통해 라우터에서 서버로 너무 수동으로 시도했지만 정상적으로 작동했습니다. 빈 파일을 만들지 않아도 파일을 서버에 수동으로 복사 할 수있었습니다.
user1609

어떤 대답이 도움이 되었습니까? 그렇다면 질문에 대한 답변이 계속 나오지 않도록 답변을 수락해야합니다. 또는 자신의 답변을 제공하고 수락 할 수 있습니다.
Ron Maupin

답변:


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)을 네트워크 (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로 변경하고 여전히 패킷에 오류가 발생하여 다시 시도했습니다. 이유 : 값이 일치하지 않습니다. 매번했던 것처럼 "6"으로 snmpset을 지 웠습니다. 그건 그렇고, 위의 설정에서 작동하도록 할 수 있었습니까?
user1609 2016 년

예. 위의 15.1 (2) T5를 실행하는 881G에서 제대로 작동합니다. 스크립트 출력을 추가했습니다. 색인 / ID (9)가 걸려 있으면 동일한 '일관되지 않은 가치'불만이 접수되며 파괴하기까지 시간이 오래 걸립니다. 새로운 인덱스 / ID로 테스트하여 확신 할 수 있습니다.
ytti

다른 인덱스 / ID로 시도했지만 여전히 발생하지 않습니다. 다른 장치를 사용해 보겠습니다. 이 특정 장치는 실제로 지원되지 않을 수 있습니다. 시스코 mib 및 소프트웨어 매트릭스에서도 이러한 MIB가 현재 테스트중인 IOS i에서 지원됨을 보여줍니다.
user1609 2016 년

지금은 5 년에서 10 년 정도의 오래된 MIB입니다. 아마 그렇지 않을 것입니다. '실행 - 설정 scp를 복사 : // 사용자 이름 : 암호 @ 서버 / 파일 이름'IOS에서 CLI는이 작업을 수행
ytti

예, 라우터에서 서버로 수동 scp 복사를 수행하면 정상적으로 작동합니다. 심지어 크론 스케줄러 또는 EEM 스크립트를 작성하여이를 수행하고 라우터에서 서버로 scp를 수행하는 것이 좋습니다. 그냥 snmp 통해 ...
user1609

4

Cisco SNMP Object Navigator에 따르면 값 4는 1.3.6.1.4.1.9.9.96.1.1.1.1.3에서 지원되지 않습니다. 대신, 값 2는 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

아마 그 때문에 badFileName 오류가 발생합니다.

편집하다:

사실이 SNMP 개체 탐색기와 사이에 모순이 보인다 MIB 정의 에 대한 유형으로, 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 패킷 오류. 이유 : wrongValue (설정된 값이 잘못되었거나 어떤 방식 으로든 지원되지 않습니다.) 실패한 오브젝트 : iso.3.6.1.4.1.9.9.96.1.1.1.1.3.111 *** .3 및.로 다른 순열을 시도했습니다. 4 두 경우 모두 정수가 다를 수 있습니다. 라우터에서 서버로 복사하려고하는데, 내가 이해하는 것처럼 run-cfg는 networkfile입니다.
user1609 2016 년

필자는 2 세대의 복사 bs이 있기 때문에 모순이있을 수 있다고 생각합니다. 원래는 훨씬 간단하고 어둡고 tftp를 사용했습니다. 기억할 수는 없지만 1 시대는 시작과 2 년이었습니다.
ytti

그건 좋은 지적이야. 코드 업그레이드로 변경된 것 같습니다.
user1609 2016 년

"write-net"mib는 "config-copy"mib에 찬성하여 여러 가지 이유로 감가 상각되었습니다 (이는 여전히 현행 방법 임).
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"항목을 삭제 한 적이없는 것 같습니다. 이것들은 그렇지 않으면 snmpset리눅스 박스의 ssh 서버를 사용하여 2960S에 대한 정확한 순서입니다 . (내 프롬프트에서 알 수 있듯이 데비안 상자.)


나는 당신의 제안에 따라 시도했지만 여전히 작동하지 않았습니다 :-(. 나는 동일한 실패와 실패의 이유를 얻습니다.이 특정 IOS 코드에 대해 버그가 있는지 궁금합니다. 12.2 (33) SCF4
user1609

어떤 장치를 사용하고 있습니까?
Ricky Beam

하고 같은 결과를 얻고, 또한 시스코 3725 (12.4T 코드)를 시도 시스코 ubr10k의 CMTS에 내 테스트를 수행
user1609

badFilenamessh 로그인 실패를 나타낼 수도 있지만 그럴 수 noConfig(5)있습니다. (이것은 말과 반대입니다)
Ricky Beam

나는 badFileName(2)12.4T에서 얻는다 . (2960S는 15.x입니다)
Ricky Beam

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.