суббота, 7 июля 2012 г.

Восстановление из rommon Cisco 871

Вообщем, произошла вчера неприятная ситуация с клиентским маршрутизатором Cisco 871. Не грузится и все тут.  Подключили консольный кабель, в  настройках putty ввожу

Baud rate: 9600
Data: 8 bit
Parity: none
Stop: 1 bit
Flow control: none.


На экране высвечивается:
rommon 1>
Понятно - IOS не загрузился.
Для начала немного теории. В работе с маршрутизаторами иногда возникают непредвиденные ситуации, например, потеря пароля для входа в привилегированный режим, или маршрутизатор по каким-либо причинам не может обнаружить образ операционной системы в памяти или во всех доступных по сети ресурсах. Из данного режима возможно восстановить работоспособность маршрутизатора загрузив новый/предыдущий образ, используя tftp или X-modem. Стоит заметить, что в данном режиме не доступны функции автодополнения команд, как при загруженном IOS.
Смотрим что на flash:
> dir flash:
Файлов нет, только свободное пространство. Придется заливать новый образ, куда делся старый будем разбираться потом.

Собственно, план работ:
1. Скачать нужный образ IOS из сети
2. Поднять/настроить tftp-сервер
3. Подключиться к консоли cisco, запустить скачивание образа на flash-память
4. Перегрузить/проверить работу

1. Для заливки  будем использовать tftp, потому как он быстрее xmodem. Скачиваем образ c870-advipservicesk9-mz.124-24.T7.bin. ОБЯЗАТЕЛЬНО проверить md5-сумму фала и размер с данными об образе на сайте cisco.com. Лучше скачать несколько образов (на всякий случай). Особое внимание стоит обратить на размер flash-памяти и объем оперативной памяти. Сначала был соблазн скачать новую версию 15-серии , но для нее требуется больше оперативной памяти.

2. Далее поднимаем tftp-сервер. Поскольку делал все с Win7, по старинке скачал tftpd32 отсюда. Настройка его слишком тривиальна, чтоб описывать (выбрать корневую папку). Далее разбираемся с Windows firewall, нужно временно открыть 69 порт по протоколу udp для выделенного для  cisco IP-адреса или для всей локальной подсети. Обязательно проверить tftp-клиентом (входит в состав tftpd32) работу tftp-сервера.

3. Параметры подключения указаны в начале заметки. Итак, какие команды вообще есть:

rommon 1 > ?
alias               set and display aliases command
boot                boot up an external process
break               set/show/clear the breakpoint
confreg             configuration register utility
cont                continue executing a downloaded image
context             display the context of a loaded image
cookie              display contents of cookie PROM in hex
dev                 list the device table
dir                 list files in file system
dis                 disassemble instruction stream
dnld                serial download a program module
frame               print out a selected stack frame
help                monitor builtin command help
history             monitor command history
meminfo             main memory information
repeat              repeat a monitor command
reset               system reset
set                 display the monitor variables
stack               produce a stack trace
sync                write monitor environment to NVRAM
sysret              print out info from last system return
unalias             unset an alias
unset               unset a monitor variable
xmodem              x/ymodem image download
rommon 2 >

Команда tftpdnld используется только случае аварийного восстановления, так как предварительно стирает все существующие данные с flash-памяти перед загрузкой нового IOS в маршрутизатор (есть вариант загрузки образа в память БЕЗ сохранения на flash-память). Для выполнения tftpdnld необходимо заполнение системных переменных режима ROMmon, которые будут использованы для создания соединения и передачи. Вот эти обязательные переменные:

IP адрес маршрутизатора    IP_ADDRESS=ip_address
Маска подсети     IP_SUBNET_MASK=subnet_mask
IP адрес шлюза по умолчанию   DEFAULT_GATEWAY=ip_address
IP адрес TFTP сервера      TFTP_SERVER=ip_address
Имя загружаемого файла IOS     TFTP_FILE=filename

В моем случае это были:
> IP_ADDRESS=192.168.1.1
IP_SUBNET_MASK=255.255.255.0
DEFAULT_GATEWAY=192.168.1.234
TFTP_SERVER=192.168.1.234
TFTP_FILE=c870-advipservicesk9-mz.124-24.T7.bin


Далее запускаем команду:
> tftpdnld
Соглашаемся с приведенными настройками. Смотрим за прогрессом скачивания образа. 
Тут случается главная засада: получаем сообщение о поврежденном файле или ошибке устройства хранения. 

File reception completed.
TFTP flash copy: Invalid file header, copy terminated.
Reason: Wrong target platform OR corrupt file.

Пытаюсь загрузить несколько разных образов IOS - результат тот же. Пытаюсь загрузить образ в память (tftpdnld -r) - ноль на массу. Начинаю уже грешить на сбойную flash-память, и тут решаю перегрузить на всякий случай маршрутизатор по питанию.  После загрузки процесс записи прошел успешно. Залил ранее сохраненный конфигурационный файл и заработало.



Литература:
http://telecom.opennet.ru/cisco/rommon.shtml

Комментариев нет:

Отправить комментарий