Вообщем, произошла вчера неприятная ситуация с клиентским маршрутизатором 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