К основному контенту

Как я реанимировал CISCO-2950

Установленный "на территории" коммутатор cisco catalyst 2950, в один прекрасный день, перестал подавать признаков жизни. По-этому бы оперативно доставлен для последующего ремонта.

При попытке загрузки я получил следующий вывод:
C2950 Boot Loader (C2950-HBOOT-M) Version 12.1(14)AZ, RELEASE SOFTWARE (fc2)
Compiled Tue 14-Oct-03 17:14 by antonino
WS-C2950T-48-SI starting...
Base ethernet MAC Address: 00:##:##:##:##:c0
Xmodem file system is available.
Initializing Flash...
flashfs[0]: 357 files, 6 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 7741440
flashfs[0]: Bytes used: 5703680
flashfs[0]: Bytes available: 2037760
flashfs[0]: flashfs fsck took 7 seconds.
...done initializing flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
Parameter Block Filesystem (pb:) installed, fsid: 4
Loading "flash:/c2950-i6k2l2q4-mz.121-22.EA14.bin"...#####...######

File "flash:/c2950-i6k2l2q4-mz.121-22.EA14.bin" uncompressed and installed, entry …

Python + telnet

Столкнулся с проблемой организации telnet из python'а. Казалось бы, что проще — подключил библиотеку telnetlib и пользуйся? Однако не все так просто. В примерах, которые приведены на сайтах разработчиков и официальном сайте, при вводе логина/пароля и передаче команд используется символ \n (якобы для эмулирования нажатия клавиши enter), однако этот пример не работает у меня и нужно использовать "\r». Поясню почему. В документации говорится, что "\n» - символ перехода на новую строку с внутренним кодом 0x0A, а "\r» - символ возврата каретки с внутренним кодом 0x0D. Получается, что устройства, к которым я пытался подключиться отлавливают именно 0x0D, а 0x0A просто добавляли вконец написанной строки. В итоге код получился таким:


#!/usr/bin/env python
import sys
import telnetlib
import time


tn = telnetlib.Telnet("10.10.0.1", 23) #подключаемся к узлу 

tn.read_until("Router  >") # отлавливаем приглашение, которое заканчивается "Router  >"
tn.write("enable\r") # вводим команду (Обратить внимание на \r)

tn.read_until("Password:") #отлавливаем приглашение с вводом пароля
tn.write("my_pass\r") # вставляем пароль (Обратить внимание на \r)

tn.read_until("telnet@BigIron Router#") #отлавливаем приглашение, информирующее о входе в систему
tn.write("show chassis\r") # выполняем команду
s = tn.read_until(" C degrees") # считываем результат до определенного слова

print type(s) #навсякий случай узнаем что мы получили, а то мало ли

tn.close(); #закрываем сессию
print s # выводим полученный результат.

Комментарии

Популярные сообщения из этого блога

Всё о SNR-S2950-24G

По просьбам трудящихся и всех остальных кто google'ил и Яндекс'ил и случайно попадал на мою страницу в с вопросами "настройка ip snr-s2950-24g" и "snr-s2950-24g как узнать его ip", а таких немало.

Итак по порядку: Настройка этого оборудования происходит через консольный порт, расположенный у нее на "морде" кабелем, который идет в комплекте, с одной стороны кабель RS-232, а с другой RJ-45. 

Теперь вопрос "как узнать его IP", ответ - по умолчаниюip 192.168.1.1 с маской 255.255.255.0, логин по умолчанию admin


Теперь о непосредственной настройке:
snr-s2950 - это управляемый коммутатор второго уровня. CLI (command line interface) визуально похож на CLI компании CISCO, но тем не менее им не является, т.к. CISCO написан на IOS, а snr, все же на linux, это мы можем узнать из логов загрузки, хотя в моем случае используется предыдущая модель:
System is booting, please wait...
Testing RAM...
0x04000000 RAM OK.
Attaching to file system ... done.

Loading flash…

Сброс CISCO 2950 на заводские настройки.

Способ 1 (если есть доступ в систему).
Сразу обращаю внимание, что делать это по удалёнке - не лучшая затея. Придется админить ногами.
После аутентификации даем команду erase startup-config
CISCO_2950>enable
Password: 
CISCO_2950#erase startup-config CISCO_2950#reload
Система будет спросит надо ли перезагружаться. Подтверждаем действие. После ребута, получим систему с чистым конфигом, но vlan'ы останутся, а вот конфиг станет чистым, далее запустится диалог первоначальной настройки, но от него можно отказаться.
Способ 2 (когда иного пути нет, а делать надо).
Случилось так, что не смог авторизоваться на CISCO 2950 по причине забытого пароля. Вариант был только один - его сбросить. Но как?
Вот это было в cu (гипертерминале)

CISCO_2950>enable
Password: 
Password: 
Password: 
% Bad secrets

На передней панели зажимаем кнопку MODE. После чего подаем питание. В окне cu (гипертерминала) должно появиться: C2950 Boot Loader (C2950-HBOOT-M) Version 12.1(14)AZ, RELEASE SOFTWARE (fc2) Compiled Tue 14-Oc…

Как я реанимировал CISCO-2950

Установленный "на территории" коммутатор cisco catalyst 2950, в один прекрасный день, перестал подавать признаков жизни. По-этому бы оперативно доставлен для последующего ремонта.

При попытке загрузки я получил следующий вывод:
C2950 Boot Loader (C2950-HBOOT-M) Version 12.1(14)AZ, RELEASE SOFTWARE (fc2)
Compiled Tue 14-Oct-03 17:14 by antonino
WS-C2950T-48-SI starting...
Base ethernet MAC Address: 00:##:##:##:##:c0
Xmodem file system is available.
Initializing Flash...
flashfs[0]: 357 files, 6 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 7741440
flashfs[0]: Bytes used: 5703680
flashfs[0]: Bytes available: 2037760
flashfs[0]: flashfs fsck took 7 seconds.
...done initializing flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
Parameter Block Filesystem (pb:) installed, fsid: 4
Loading "flash:/c2950-i6k2l2q4-mz.121-22.EA14.bin"...#####...######

File "flash:/c2950-i6k2l2q4-mz.121-22.EA14.bin" uncompressed and installed, entry …