вторник, 29 апреля 2014 г.

Обновление софта на ASA CX 5515-X. Обход проблемы No Cfg structure found in downloaded image file

   Обновление ПО на ASA CX имеет некоторые нюансы, о которых не стоит забывать. Процесс проходит в два этапа: сначала обновляется ОС непосредственно ASA, после чего происходит обновление ПО CX-модуля (физического или виртуального).
   Ниже в примере будет использоваться ASA 5515-X. Начальная конфигурация (из коробки) имеет следующие версии софта:
ASA OS - 9.1.(1)
CX Image: 9.1
   На момент обновления и написания статьи были доступны версии 9.1.(3) для ASA и 9.2.1.2 (77) для CX. Задача - обновиться до указанных версий.
   Перед началом обновления необходимо ознакомиться с совместимостью версии ПО Cisco CX и Prime Security Manager (PRSM) - система управления для межсетевого экрана (фактически веб-интерфейс для удобства управления им) (совместимость версий). И это нужно сделать обязательно! В данном случае у ASA 5515-X отсутствует физический CX-модуль. Вместо него присутствует виртуальный образ. Поэтому смотрим соответствующую табличку и видим, что данное устройство поддерживает переход на версию 9.2.(1):
     В процессе обновления потребуются дополнительные инструменты: TFTP-server и/или FTP-server. При обновлении софта я в данном случае использовал сначала TFTPd32, а после FTP (FileZilla-server), но можно и нужно использовать только FTP (лучше), т.к. софт на CX качается только с FTP/HTTP/HTTPS-хранилища.

Этап 1: Обновление ASA OS

   Самый очевидный способ (но провальный в данном случае) - использовать TFTP-server для скачивания образа на диск ASA с последующей его загрузкой.
   Для начала выполним настройку интерфейса, который будем использовать для работы.

ciscoasa# conf t
ciscoasa(config)# interface management 0/0
ciscoasa(config-if)# ip address 10.1.1.1 255.255.255.0
ciscoasa(config-if)# nameif MGMT
ciscoasa(config-if)# exit
ciscoasa(config)# exit
ciscoasa#

Проверяем доступность TFTP-сервера:

ciscoasa# ping 10.1.1.22  
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.66.22, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms
ciscoasa#

Проверяем свободное место:

ciscoasa# dir disk0:

Directory of disk0:/

10     drwx  4096         21:35:24 Feb 19 2014  log
20     drwx  4096         21:35:50 Feb 19 2014  crypto_archive
21     drwx  4096         21:35:58 Feb 19 2014  coredumpinfo
94     -rwx  37416960     21:39:56 Feb 19 2014  asa911-smp-k8.bin
95     -rwx  69318656     21:47:06 Feb 19 2014  asacx-5500x-boot-9.1.1-1-RelWithDebInfo.x86_64.img
96     -rwx  17851400     22:14:50 Feb 19 2014  asdm-66114.bin

7994621952 bytes total (4648271872 bytes free)
ciscoasa#

Начинаем заливать IOS в соответствии с рекомендацией
ciscoasa# copy tftp://10.1.1.22/asa913-8-smp-k8.bin disk0:/asa912-8-smp-k8.bin
Address or name of remote host [10.1.66.22]?
Source filename [asa912-8-smp-k8.bin]?
Destination filename [asa912-8-smp-k8.bin]?
Accessing tftp://10.1.66.22/asa912-8-smp-k8.bin...!!!!!!!!!!!!!!!!!!!!!!!!!!!
No Cfg structure found in downloaded image file

   Описание данной проблемы присутствует на сайте Cisco. Однако, предлагаемый обход проблемы путем последовательного обновления с 9.1.1 на 9.1.2, а после уже на 9.1.3 не помогает: при попытке скачать файл возникает все та же ошибка, после чего файл отсутствует в памяти ASA.

   Аналогичная проблема возникает при попытке залить с USB-flash на диск ASA.

ciscoasa# copy disk1:/asa913-smp-k8.bin disk0:/asa913-smp-k8.bin
Source filename [asa913-smp-k8.bin]?
Destination filename [asa913-smp-k8.bin]?
Copy in progress...CCCCCCCCCCCCCCCCCCCC
No Cfg structure found in downloaded image file

   В качестве нового обхода проблемы предлагается загрузиться прямо с USB-flash или с FTP/TFTP-server (второй вариант не проверялся). Данный способ позволяет обновиться сразу до версии 9.1.3 без промежуточных обновлений.

   Загрузка с USB-flash:
ciscoasa# show boot   
BOOT variable = disk0:/asa911-smp-k8.bin
Current BOOT variable = disk0:/asa911-smp-k8.bin
CONFIG_FILE variable =
Current CONFIG_FILE variable =
ciscoasa# conf t
ciscoasa(config)# no boot system disk0:/asa911-smp-k8.bin
ciscoasa(config)# boot system disk1:/asa913-smp-k8.bin
ciscoasa(config)# exit
ciscoasa# write
ciscoasa# reload
Proceed with reload? [confirm]
ciscoasa#
   В случае успешной загрузки системы производим копирование образа на диск и настраиваем загрузку с данного образа. На этом первый этап обновления завершен.

Этап 2: Обновление CX

   Для того, чтобы была связь с модулем CX, необходимо сделать перенаправление трафика на него. В примере показаны настройки перенаправления всего трафика на CX.

ciscoasa(config)# policy-map global_policy
ciscoasa(config-pmap)# class class-default
ciscoasa(config-pmap-c)# cxsc fail-open auth-proxy
ciscoasa(config-pmap-c)# exit
ciscoasa(config)# no service-policy global_policy global
ciscoasa(config)# service-policy global_policy global

   После производит обновление ПО модуля. Процесс двухступенчатый: сначала делаем реимэйдж, т.к. необходимо обновить загрузочный образ до версии, поддерживающей устанавливаемое обновление, после чего уже непосредственно обновить PRSM.
   Закачку буду производить с TFTP, но можно использовать и FTP. Для этого я предварительно скачал образ загрузочного диска:  asacx-5500x-boot-9.2.1.2-77.img (70 мб) , и обновление asacx-sys-9.2.1.2-77.pkg (800 мб).
   Копируем образ диска для реимэйджа на диск:
ciscoasa# copy tftp://10.1.1.22/asacx-5500x-boot-9.2.1.2-77.img disk0:/
Address or name of remote host [10.1.66.22]?
Source filename [asacx-5500x-boot-9.2.1.2-77.img]?
Destination filename [asacx-5500x-boot-9.2.1.2-77.img]?
Accessing tftp://10.1.66.22/asacx-5500x-boot-9.2.1.2-77.img...!!!!!!!
Writing file disk0:/asacx-5500x-boot-9.2.1.2-77.img...!!!!!!!
69849088 bytes copied in 58.170 secs (1204294 bytes/sec)

   Деинсталируем виртуальную машину CX, выключаем модули (например, IPS) если они имеются в наличии.
ciscoasa# sh module ips
Mod  Card Type                                    Model              Serial No.
---- -------------------------------------------- ------------------ -----------
 ips Unknown                                      N/A               ХХХХХХХХ
Mod  MAC Address Range                 Hw Version   Fw Version   Sw Version    
---- --------------------------------- ------------ ------------ ---------------
 ips хххххххххххххххххх  N/A          N/A         
Mod  SSM Application Name           Status           SSM Application Version
---- ------------------------------ ---------------- --------------------------
 ips Unknown                        No Image Present Not Applicable
Mod  Status             Data Plane Status     Compatibility
---- ------------------ --------------------- -------------
 ips Unresponsive       Not Applicable       
Mod  License Name   License Status  Time Remaining
---- -------------- --------------- ---------------
 ips IPS Module     Disabled        perpetual    

   Модуль IPS отсутствует.

ciscoasa# sh module cxsc
Mod  Card Type                                               Model                   Serial No.
---- -------------------------------------------- ------------------             -----------
cxsc ASA CX5515 Security Appliance     ASA CX5515         ХХХХХХХХХХ
Mod  MAC Address Range        Hw Version   Fw Version   Sw Version    
---- --------------------------------- ------------       ------------      ---------------
cxsc  ххх                                             N/A            N/A                  9.1.1
Mod  SSM Application Name           Status           SSM Application Version
---- ------------------------------ ---------------- --------------------------
cxsc ASA CX                         Up               9.1.1
Mod  Status             Data Plane Status     Compatibility
---- ------------------ --------------------- -------------
cxsc     Up                 Up                   

Красным выделен статус CX-модуля (виртуального).

ciscoasa(config)# sw-module module cxsc shut          // переводим модуль в состояние Down
ciscoasa(config)# sw-module module cxsc uninstall   // деинсталяция модуля СХ
Module cxsc will be uninstalled. This will completely remove the disk image assocated with the sw-module including any configuration that existed within it.
Uninstall module cxsc? [confirm]                                  // жмем Enter
Uninstall issued for module cxsc.
ciscoasa(config)# sw-module module ips shut            //выключаем модуль IPS
Shutdown module ips? [confirm]                                  // Нажимаем Enter
Shutdown issued for module ips.
ciscoasa(config)# sw-module module ips uninstall

   Производим установку boot-образа.


ciscoasa(config)# sw-module module cxsc recover configure image disk0:/asacx-5500x-boot-9.2.1.2-77.img
ciscoasa(config)# sw-module module cxsc recover boot
Module cxsc will be recovered. This may erase all configuration and all data
on that device and attempt to download/install a new image for it. This may take
several minutes.
Recover module cxsc? [confirm]
Recover issued for module cxsc.

    После чего ждем 15 минут (+/-), пока не завершится реимэйдж. Проверку можно осуществлять периодической попыткой входа:
ciscoasa# session cxsc con
Opening console session with module cxsc.
ERROR: Failed to connect to unix socket /dev/ttyS1_vm2

   Как только реимэйдж завершится, попытка доступа к консоли CX будет успешной:
ciscoasa# sess cxs con
Opening console session with module cxsc.
Connected to module cxsc. Escape character sequence is 'CTRL-^X'.

Cisco ASA CX Boot Image 9.2.1.2

   Значение логинов и паролей по умолчанию: admin/Admin123

asacx login: admin
Password:
             Cisco ASA CX Boot 9.2.1.2 (77)
                  Type ? for list of commands
asacx-boot>
Делаем разметку и форматирование диска:
asacx-boot>partition
Disk /dev/sda doesn't contain a valid partition table
  WARNING: You are about to erase all policy configurations and data.
  You cannot undo this action.
Are you sure you want to proceed? [y/n]:y

!<output omitted>!


Для закачки обновления PRSM требуется первоначальная настройка CX, запускаемая командой setup.

asacx-boot>setup

                Welcome to Cisco Prime Security Manager Setup
                          [hit Ctrl-C to abort]
                        Default values are inside []

Enter a hostname [asacx]: asacx
Do you want to configure IPv4 address on management interface?(y/n) [Y]: Y
Do you want to enable DHCP for IPv4 address assignment on management interface?(y/n) [N]:N
Enter an IPv4 address [192.168.8.8]: 10.1.1.21
Enter the netmask [255.255.255.0]: 255.255.255.0
Enter the gateway [192.168.8.1]: 10.1.1.22
Do you want to configure static IPv6 address on management interface?(y/n) [N]:n
Stateless autoconfiguration will be enabled for IPv6 addresses.
Enter the primary DNS server IP address: 8.8.8.8
Do you want to configure Secondary DNS Server? (y/n) [n]:n
Do you want to configure Local Domain Name? (y/n) [n]:n
Do you want to configure Search domains? (y/n) [n]:n
Do you want to enable the NTP service? [Y]:N

Apply the changes?(y,n) [Y]: y

   Проверяем доступность запущенного FTP-server. Для загрузки обновления PRSM требуется FTP/HTTP/HTTPS. Другие варианты загрузки обновления не поддерживаются. После проверки доступности начинаем закачку обновления:

asacx-boot>system install ftp://10.1.1.22/asacx-sys-9.2.1.2-77.pkg
Verifying    
Enter credentials to authenticate with ftp server
Username: user
Password:
Verifying    
Downloading    
Extracting    
Package Detail
        Description:                    Cisco ASA-CX 9.2.1.2-77 System Upgrade
        Requires reboot:                Yes

Do you want to continue with upgrade? [y]: y
Warning: Please do not interrupt the process or turn off the system.
Doing so might leave system in unusable state.
Upgrading    
Starting upgrade process ...    
Populating new system image    
Copying over new application components    
Cleaning up old application components    

 Если процесс дошел до нижеследующей строчки, то обновление можно считать успешным. Нажимаем Enter  и здем загрузки устройства.

Reboot is required to complete the upgrade. Press 'Enter' to reboot the system.

Broadcast message from root (ttyS1) (Wed Apr 23 03:56:33 2014):

The system is going down for reboot NOW!
Console session with module cxsc terminated.

2 комментария:

  1. В статье описано не обновление модуля CX а развёртование его "с ноля"
    В последних версиях такая необходимость встречается редко.

    Для обновления CX модуля достаточно:

    1. Убрать с него траффик (через global_policy)

    2. Обновить образ.
    Заходим на модуль -session cxsc console

    Имя - Пароль

    system upgrade http://сервер с образом/asacx-sys-9.2.1.х-хх.pkg

    После обновления модуль перегружается (только сам модуль)

    3.Запускаем трафик на модуль через global_policy

    Перед этим желательно забэкапить конфигурацию на случай отката.

    Описанный в статье вариант пригодиться если обновления прошло не удачно и службы СХ модуля либо не поднимаются, либо падают под нагрузкой. В этом случае понадобится boot-image старой версии и собственно сама старая версия СХ модуля.

    ИМХО - Не вижу глубокого смысла в предварительной деинсталяции модуля СХ, т.к. команда partition (в boot-image) Заново разбивает носители и удаляет с них информацию.

    ОтветитьУдалить
    Ответы
    1. Игорь,
      Спасибо за комментарий. В следующий раз попробую Ваш вариант. В данном же случае описывал вариант, рекомендуемый гайдами и мануалами) Результатом доволен, хотя и муторно. Ваш вариант выглядит быстрее)

      Удалить