Catalyst 9000 серии прошивка

Catalyst 9000 серии прошивка — довольно давно написал статью про прошивку коммутаторов 2950/3550. Эта статья продолжение или приемник, как хотите, той старой статьи.


Как было раньше и что изменилось

Раньше мы закачивали новый бинарник IOS на коммутатор и указывали его для загрузки:

#(config)boot system flash:название_прошивки.bin

Или можно было вообще не указывать, если на флэшке коммутатора лежал единственный образ IOS. Вот всё. При первой перезагрузке с новым образом обычно перешивался загрузчик на новую версию, а дальше стартовал наш новый образ. Как стартовал? Распаковывался с флэш в память и начинал работать. Всё было классно, а первые образы занимали всего 1,5-3Mb. Эти прошивки имели довольно непонятное имя файла, надо было потрудиться-поискать, чтобы расшифровать буквенно-цифровое название:

c2950-i6k2l2q4-mz.121-22.EA13.bin

Дальше больше, образы IOS стали расти в функционале и объёмах, 10-15Mb. А сам функционал обозначался в названии прошивки:

c3750-ipservicesk9-mz.150-2.SE11.bin

И тут прикол, поскольку каждая серия коммутаторов представлена линейкой устройств, то на какие-то младшие модели полнофункциональная прошивка могла и не поместиться. Например, прошивка выше почти 18Mb, при этом у старой модели WS-C3750G-24T флэшка всего 16Mb:

15998976 bytes total (4976640 bytes free)

Далее прошивка стала единой, со словом universal:

c3750e-universalk9-mz.152-4.E10.bin

Размер универсальной прошивки максимальный, ведь там присутствует весь возможный для устройства функционал. То есть прошивки ещё прибавили в объёмах. Доступный функционал при этом определяется лицензиями, загруженными на устройство (подробнее здесь, в самом конце).

Прошло ещё времени и IOS была заменена на IOS XE. Что там нового? Разные фичи всякие: модульность, программируемость (да здравствует автоматизация), со встроенными сертификатами для лучшей безопасности. Надо отметить что, система лицензирования несколько раз претерпевала изменения, но это уже менее интересные подробности в контексте обновления устройства. Но самое главное (на мой взгляд) с точки зрения прошивки, это совсем другие весовые категории. Возьмём актуальную версию 17.09.04a. Так для серии коммутаторов 9200 файл cat9k_lite_iosxe.17.09.04a.SPA.bin весит 450Mb. А для 9300/9500 файл cat9k_iosxe.17.09.04a.SPA.bin размером 1,2Gb. Да-да, более гигабайта.

Понятно, что старый способ загрузки коммутатора с чтением всего такого файла с флэшки в память, он устарел. Допускаю, что загрузка данных идёт параллельно распаковке и не нужно дожидаться пока весь файл распакуется. Скорее всего так и есть. Тем не менее, при существующих размерах образов, подобный метод здорово замедляет загрузку коммутатора. Поэтому был предложен новый метод, использующий как раз модульность.


Старьё

Моё субъективное мнение, подчёркиваю.

Раз уж разговор зашёл за старые модели коммутаторов, то нужно обозначить какие серии/модели актуальны сегодня. Циска навыпускала дофига плюс три разных моделей, и порой понять что это, довольно сложно. Во-первых, никаких SMB (Small Business). Довольно-таки спорная линейка, причём спорной она была прям с момента выхода. Сейчас SMB, если они ещё используются, нужно снимать и выбрасывать из окна.

Во-вторых, 2000/3000 линейки. Минимальная планка 2960X/3750X. Всё что ниже необходимо снимать/списывать/продавать/утилизировать. Сюда же старьё из 4000/6000 серий. Хотя конечно Catalyst 6500 — легенда, не спорю. Но если там старая версия Supervisor Engine, то к сожалению только снимать.

Catalyst 9000 серии прошивка

Почему так строго? Потому что нет современного ПО с закрытыми дырами в безопасности. И если хакер проникнет в периметр вашей организации, такие коммутаторы с дырявым IOS станут для него дополнительными точками закрепления.


Catalyst 9000

Посмотрим новый подход к прошивке/загрузке коммутаторов на примере 9200/9300/9500. Там всё одинаково, только для 9200 и 9300/9500 сам файл IOS XE отличается, как уже отмечал. Собственно есть два метода:

  • Bundle mode, старый, оставлен скорее для совместимости, когда прошивка лежит куском и загружается как обычно, через распаковку;
#sh ver

Switch Ports Model              SW Version        SW Image              Mode   
------ ----- -----              ----------        ----------            ----   
     1 52    C9200L-48P-4X      17.09.04a         CAT9K_LITE_IOSXE      BUNDLE
*    2 52    C9200L-48P-4X      17.09.04a         CAT9K_LITE_IOSXE      BUNDLE
     3 52    C9200L-48P-4X      17.09.04a         CAT9K_LITE_IOSXE      BUNDLE
  • Install mode, новый, прошивка хранится на флэш уже распакованной, в виде ряда файлов .pkg, а загружается через конфигурационный файл packages.conf.
#sh ver

Switch Ports Model              SW Version        SW Image              Mode   
------ ----- -----              ----------        ----------            ----   
     1 41    C9300-24T          17.09.04a         CAT9K_IOSXE           INSTALL
*    2 41    C9300-24T          17.09.04a         CAT9K_IOSXE           INSTALL

Сам файл с прошивкой на флэшке коммутатора более не нужен и даже вреден, так как занимает немало места.


Прошивка

Предполагается, что новый образ уже загружен на коммутатор. В случае стека отдельно распихивать файл образа по всем коммутаторам не нужно, установка сделает это сама. Загружал через TFTP/FTP, разницы ни по скорости, ни по надёжности, не заметил. Для FTP так:

copy ftp://name:pass@ip/Firmware/Cisco/cat9k_iosxe.17.09.04a.SPA.bin flash: {vrf MGMT}

name - логин FTP
pass - пароль FTP
ip - адрес FTP, например 192.168.1.1
/Firmware/Cisco/ - вложенность папок на FTP-сервере до образа
vrf - указать, если нужно
Подготовка к прошивке

Будем прошивать из Bundle в Install. Обновление прошивки, которая уже в Install mode, полностью аналогична. За исключением одного шага и более быстрого процесса. С этого шага и начнём. Сначала нужно удалить с конфы коммутатора строку загрузки из файла:

#show run | i boot system

boot system switch all flash:cat9k_iosxe.17.03.04.SPA.bin

#conf t
#(config) no boot system switch all flash:cat9k_iosxe.17.03.04.SPA.bin

Далее, указать загрузку из packages.conf и обязательно сохранить конфигурацию.

#(config)boot system flash:packages.conf
#(config)end
#wr

На этом шаге сохранение необходимо, но если далее внести ещё какие-то изменения и запустить установщик, то он сам уже задаст вопрос о сохранении конфигурации. Теперь чекаем:

#show boot

Должен быть указан только файл packages.conf. При первых прошивках девятитысячников пренебрёг данными рекомендациями, в результате чего потерял время, стек загрузился снова в Bundle и со старой версией. Тут надо отметить, что стек уходит в перезагруз после инсталляции минут на 10 и тем дольше, чем больше коммутаторов в стеке.

Непосредственно прошивка

Происходит в одну команду:

#install add file flash:cat9k_iosxe.17.09.04a.SPA.bin activate commit

Коммутатор задаст несколько вопросов, главный о необходимости перезагрузки:

...
This operation requires a reload of the system. Do you want to proceed? [y/n]
...
Install will reload the system now!
SUCCESS: install_add_activate_commit Wen Jan 03 13:04:15 UTC + 3 2024

Вывод может немного отличаться на разных моделях и по времени тоже по-разному, но в конце коммутатор обязательно должен сообщить об успехе и уйти в перезагрузку. Как уже говорил, новая прошивка будет установлена на все коммутаторы стека.

Команду можно разбить на несколько этапов:

#install add file flash:cat9k_iosxe.17.09.04a.SPA.bin
#install activate
#install commit

Большого смысла в этом нет, за исключением каких-то специфических случаев. Например возможно, когда на 9300 развёрнут программный WLC (EWC 9800). И вот чтобы проапгрейдить, но не сломать, понадобится такая раздельная установка. С промежуточным апгрейдом версии WLC. Этот момент как раз, апгрейд WLC на 9300, мне ещё предстоит. Разберусь, обязательно выложу.

Очистка

После установки и перезагрузки коммутатора, полезно запустить очистку флэшки:

#install remove inactive

Закачанный файл с прошивкой тоже удалится. Кстати, если установка закончится ошибкой о недостатке места, данная команда поможет. Закачивать прошивку придётся ещё раз.

Авто-апгрейд

Весьма полезная вещь. Доступна только в Install mode. Если к стеку добавить новый коммутатор, он автоматически обновится на нужную версию. Для этого надо предварительно ввести команду:

(config)#software auto-upgrade enable

Ещё не пробовал и не знаю нюансы работы (надо ли чтобы на мастере стека был исходный файл с прошивкой или нет). Попробую, дополню.


Обновление маршрутизатора

Скажу уж пару слов и про маршрутизаторы, на примере ASR1001-X. Так как обновляю и их. Здесь практически всё то же самое, за исключением того, что обновление происходит двумя файлами. Помимо прошивки есть ещё файл ROMmon. Он должен быть совместимой (c основной прошивкой IOS-XE) версии. Посмотреть соответствие релизов IOS-XE и версии ROMmon для ASR 1000 серии можно тут. Как видно из таблицы, соответствие не однозначное, а с перекрытиями. То есть одна версия ROMmon перекрывает несколько версий IOS-XE.

Последняя на момент (16.01.24) версия ROMmon ASR 1000 это 17.3(1r). Файл надо закачать на маршрутизатор и выполнить команду:

#upgrade rom-monitor filename bootflash:asr1000-rommon.173-1r.SPA.pkg all 

Затем, перенастроить загрузку из файла packages.conf, для случая когда маршрутизатор в Bundle mode. И сохранить конфигурацию.

#show run | i boot system

boot system flash bootflash:asr1001x-universalk9.17.03.03.SPA.bin

#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
(config)#no boot system flash bootflash:asr1001x-universalk9.17.03.03.SPA.bin
(config)#boot system flash bootflash:packages.conf
(config)#end
#wr

Далее, обновляем основную прошивку:

#install add file bootflash:asr1001x-universalk9.17.09.04a.SPA.bin activate commit

Устройство как всегда обругается:

This operation requires a reload of the system. Do you want to proceed? 
Please confirm you have changed boot config to bootflash:packages.conf [y/n]y

...
This operation may require a reload of the system. Do you want to proceed? [y/n]y

...
Send model notification for install_add_activate_commit before reload
Install will reload the system now!
SUCCESS: install_add_activate_commit  Tue Jan 16 07:32:18 MSK 2024

После перезагрузки выполняем очистку.

#install remove inactive

Все файлы прошивок при этом улетают.

The following files will be deleted:
    [R0]: /bootflash/asr1001x-universalk9.16.09.02.SPA.bin
    [R0]: /bootflash/asr1001x-universalk9.17.03.03.SPA.bin
    [R0]: /bootflash/asr1000-rommon.173-1r.SPA.pkg
    [R0]: /bootflash/asr1001x-universalk9.17.09.04a.SPA.bin

Do you want to remove the above files? [y/n]y

Надо заметить, файлы на маршрутизаторе отличаются по количеству и по составу от файлов на коммутаторе.

169686 -rw- 71581828  Jan 16 2024 07:26:26 +03:00  asr1001x-rpboot.17.09.04a.SPA.pkg
169685 -rw- 718668868  Jan 16 2024 07:24:49 +03:00  asr1001x-mono-universalk9.17.09.04a.SPA.pkg
169684 -rw- 5334068  Jan 16 2024 07:24:48 +03:00  asr1001x-firmware_nim_ssd.17.09.04a.SPA.pkg
169683 -rw- 11306040  Jan 16 2024 07:24:48 +03:00  asr1001x-firmware_ngwic_t1e1.17.09.04a.SPA.pkg

Последним шагом проверяем версию.

#show ver

Cisco IOS XE Software, Version 17.09.04a
Cisco IOS Software [Cupertino], ASR1000 Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 17.9.4a, RELEASE SOFTWARE (fc3)

Приглашаю поделиться мнением в Tелеграм канал

Leave a Comment

Scroll to Top