Обновление операционной системы JunOS на Juniper SRX и EX (Juniper software update).

Больше
7 года 2 мес. назад - 5 года 10 мес. назад #36 от PNV
COM_KUNENA_MESSAGE_CREATED_NEW
В данной статье описано обновление JunOS на примере файрвола Juniper SRX 240h.

Существует два способа обновления операционной системы JunOS:
1. Через консоль CLI JunOS, когда на устройстве уже установлена ОС и требуется обновить её.
2. Через BootLoader - начальный загрузчик устройства. Данный способ используется, если на устройстве полностью отсутствует JunOS, либо предыдущее обновление прошло неудачно и JunOS не загружается, соответственно нет доступа к CLI JunOS. Или например, если нет подходящей флэшки под рукой, и требуется обновить JunOS без использования флэшки.

Способ 1: обновление через консоль CLI JunOS.

Все действия осуществляются под пользователем root!!!

На устройствах Juniper обычно проблематично обновлять операционную системы без использования внешнего flash-накопителя, т.к. на встроенной compact flash не хватает места одновременно для работающей и новой JunOS. Поэтому перед обновлением JunOS на более новую версию, необходимо сначала подключить в USB-интерфейс внешнюю флэшку, переформатировать в JunOS-файловую систему флэшки, примонтировать её в операционной системе JunOS, скачать на подключенную внешнюю флэшку новую JunOS с предварительно установленного FTP-сервера.
Далее опишем по подробнее все действия по обновлению JunOS.

1. Подключаем флэшку в USB-интерфейс.
После подключения проверяем "нашлась" ли флэшка в системе и смотрим её наименование.
В CLI запускаем JunOS shell
root@host> start shell user root   
root@host% dmesg

umass1: Generic Mass Storage Device, rev 2.00/1.00, addr 4
da1 at umass-sim1 bus 1 target 0 lun 0
da1:  Removable Direct Access SCSI-0 device
da1: 40.000MB/s transfers
da1: 955MB (1957536 512 byte sectors: 64H 32S/T 955C)
Если появилось что-то похожее на вышепоказанные строчки, то флэшка нормально определилась в системе и можно её форматировать.

2. Форматируем флэшку:
root@host% newfs -U /dev/da1
/dev/da1: nanMB (1000944 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 122.19MB, 7820 blks, 15744 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 32, 250272, 500512, 750752
3. Создаём точку монтирования для внешней флэшки:
mkdir /var/software/usb
4. Монтируем флэшку и проверяем на ней свободное место:
root@host% mount /dev/da1 /var/software/usb
root@host% df -h
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a     851M    277M    565M    33%    /
devfs           1.0K    1.0K      0B   100%    /dev
devfs           1.0K    1.0K      0B   100%    /dev/
/dev/md0        133M    133M      0B   100%    /junos
/cf             851M    277M    565M    33%    /junos/cf
devfs           1.0K    1.0K      0B   100%    /junos/dev/
procfs          4.0K    4.0K      0B   100%    /proc
/dev/bo0s1e      95M     16K     94M     0%    /config
/dev/md1        336M    7.2M    302M     2%    /mfs
/cf/var/jail    851M    277M    565M    33%    /jail/var
devfs           1.0K    1.0K      0B   100%    /jail/dev
/dev/da1        955M    4.0K    954M     0%    /cf/var/software/usb
Примечание: в точке монтирования /var/tmp/... после перезагрузки маршрутизатора все данные автоматически удаляются. Например, если подмонтировать флэшку в /var/tmp/usb , то после перезагрузки с неё удалится скачанный новый JunOS.


5. Переходим в /var/software/usb и скачиваем новую JunOS c заранее установленного FTP-сервера (заранее скопировать JunOS на флэшку в ОС Windows нельзя, т.к. в Windows не поддерживается файловая система JunOS, поэтому приходится "заливать" новую JunOS по FTP непосредственно на самом маршрутизаторе):
root@host% cd /var/software/usb
root@host% fetch ftp://user:password@10.1.0.213/junos-srxsme-10.4R5.5-domestic.tgz
Теперь новая JunOS на нашей внешней флэшке и остаётся только обновить JunOS маршрутизатора.

6. На всякий случай создаём бэкап текущей (работающей) JunOS в альтернативный root-раздел, с которого можно будет загрузиться в случае неудачного обновления:
Выходим (exit) из shell в CLI и запускаем команду бэкапирования JunOS:
root@host% exit
root@host> request system snapshot slice alternate
поверяем бэкап:
root@host> show system software backup
Backup JUNOS package information:
File name: /altroot/cf/packages/junos-10.2R3.10-domestic
File size: 208885453
7. Далее обновляем JunOS.
root@host> request system software add validate /var/software/usb/junos-srxsme-10.4R5.5-domestic.tgz
Опция validate проверяет текущую конфигурацию на совместимость с новой JunOS. Далее, если обновление прошло без ошибок, перезагружаем маршрутизатор:
root@host> request system reboot
После перезагрузки маршрутизатора проверяем версию JunOS:
root@host> show system software detail
Information for junos:

Comment:
JUNOS Software Release [10.4R4.5]


Depends on:
Description:
JUNOS Software Release
Copyright (c) 1996-2011, Juniper Networks, Inc.
All rights reserved.

Software version:       10.4R4.5

This package contains OS components.
После перезагрузки маршрутизатора флэшка автоматически отмонтируется, поэтому можно её сразу вытащить после перезагрузки. Если вдруг понадобится вытащить флэшку до перезагрузки, нужно просто отмонтировать её:
root@host% umount /var/software/usb


Способ 2: обновление через BootLoader.


Juniper BootLoader включает в себя два инструмента для настройки начальной загрузки устройства:
1) loader prompt - командная строка для осуществления непосредственно каких-либо действий с маршрутизатором (обновление JunOS, просмотр параметров загрузки и др.);
2) u-boot prompt - командная строка для задания различных переменных, связанных с загрузкой маршрутизатора.


Далее рассмотрим по шагам все действия по обновлению JunOS через BootLoader:

1.а. (для SRX) Подключаем патч-кордом интерфейс ge-0/0/0 к сети, т.к. ge-0/0/0 является mgmt-интерфейсом для SRX;

1.b. (для EX) Подключаем патч-кордом интерфейс me-0/0/0 к сети (интерфейс me-0/0/0 находится на задней панели коммутатора);

2. Подключаемся консольным кабелем к маршрутизатору и заходим на консоль (например при помощи Putty);

3. Сначала нам нужно правильно задать все переменные для загрузки JunOS по сети c TFTP-сервера:
- IP-адрес mgmt-интерфейса устройства (ge-0/0/0 для SRX, me-0/0/0 для EX);
- маску подсети mgmt-интерфейса устройства;
- шлюз;
- IP-адрес TFTP-сервера, с которого будет скачиваться JunOS;

Для этого нам нужно попасть в u-boot prompt. Чтобы попасть в U-boot prompt, нужно при загрузке маршрутизатора и появлении ниже показанных строк, нажать любую кнопку на клавиатуре:
Root Hub 0: 3 USB Device(s) found Root Hub 1: 1 USB Device(s) found
scanning bus for storage devices... 1 Storage Device(s) found
Hit any key to stop autoboot: 0
После входа в u-boot prompt прописываем необходимые параметры при помощи команды setenv и не забываем их сохранить (save):
Root Hub 0: 3 USB Device(s) found Root Hub 1: 1 USB Device(s) found
scanning bus for storage devices... 1 Storage Device(s) found
Hit any key to stop autoboot: 0
=>
=> setenv ipaddr 10.10.0.10
=> setenv netmask 255.255.255.0
=> setenv gatewayip 10.10.0.1
=> setenv serverip 10.11.0.12
=> save
Снова перезагружаем маршрутизатор командой reset.

4. Далее нам необходимо попасть в Loader prompt и начать уже сам процесс скачивания и обновления JunOS. Чтобы попасть в Loader prompt, нужно при загрузке маршрутизатора и появлении ниже показанных строк, нажать любую кнопку на клавиатуре:
Loading /boot/defaults/loader.conf
Hit [Enter] to boot immediately, or space bar for command prompt.
Далее набираем команду обновления JunOS:
Loading /boot/defaults/loader.conf
Hit [Enter] to boot immediately, or space bar for command prompt.
Loader>
Loader>install tftp://10.11.0.12/junos-srxsme-10.4R4.5-domestic.tgz

JunOS обновлён! При этом весь конфиг, который был на маршрутизаторе до обновления, восстановится :)
Last edit: 5 года 10 мес. назад by PNV.
Спасибо сказали: dima25050

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад #163 от dima25050
COM_KUNENA_MESSAGE_REPLIED_NEW
Здравствуйте! Вы очень хорошо все рассказали, спасибо. Но только вот я попробовал второй способ, установить ОС версии 10.4 по TFTP, больше часа ждал, пока она загрузиться, но потом просто остановил этот процесс. У меня к Вам вопрос - так и должно быть? Размер этой ОС 124 Мб. Или я что-то не правильно делаю?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад #164 от PNV
COM_KUNENA_MESSAGE_REPLIED_NEW
Добрый день. Вы что-то неправильно делаете. Посмотрите логи на tftp-сервере, есть ли там запросы с вашего устройства.
Спасибо сказали: dima25050

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад - 4 года 11 мес. назад #165 от dima25050
COM_KUNENA_MESSAGE_REPLIED_NEW
Сегодня разобрался, оказывается по протоколу tftp невозможно передавать файлы размером более 32 Мб, а образ ОС версии 10.4R14.2 имеет размер 124 Мб, в этом причина. В Вашем примере версия 10.4R4.5, значит ее размер не большой?
Last edit: 4 года 11 мес. назад by dima25050.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 11 мес. назад #166 от PNV
COM_KUNENA_MESSAGE_REPLIED_NEW
Размер JunOS почти 100Мб. Возможно TFTP-сервер, который Вы использовали, не поддерживает соответствующие расширения RFC, которые позволяют закачивать по TFTP файлы объёмом до 4Гб. Я использовал 3CDaemon в качестве TFTP-сервера.
Спасибо сказали: dima25050

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
4 года 9 мес. назад - 4 года 8 мес. назад #172 от dima25050
COM_KUNENA_MESSAGE_REPLIED_NEW
Здравствуйте! Пробовал устанавливать 3CDaemon в качестве TFTP-сервера, но стандартным виндовсовским tftp-клиентом никак не получается ни передать, ни получить файлы объемом больше 32 Мб. Пробовал и другие tftp-серверы с поддержкой RFC 2348, результат не меняется, или может нужен также и клиент с поддержкой RFC 2348? Скажите пожалуйста.

Да, как оказалось, клиент также должен поддерживать спецификацию RFC 2348. И как хорошо, что в Juniper клиент TFTP поддерживает возможность приема файлов больших размеров! Еще раз Большое Вам Спасибо, за Вашу статью и за подсказку!
Last edit: 4 года 8 мес. назад by dima25050.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум