Monday, September 21, 2015

Как импортировать образы QEMU в UNetLAB - Cisco ASA и ASAv.


Автор: Sauron от 22-06-2015, 19:47
Вы не любите кошек? Вы просто не умеете их готовить (c) Мы рассмотрим как правильно и безболезненно загрузить или импортировать образы ASA и ASAv в UNetLab, а также иные различные полезные образы. Разумеется данная статья предназначена для того, чтобы направить вас на грамотный путь по инсталляции того или иного образа. Сами образы не предоставляются. Предполагается, что вы уже имеете тот или иной образ в виде ova или vmdk файла, причем образ не поврежденный.

В статье посвященной обзору UNetLab мы уже приводили пример инсталляции Cisco IOL образов. В этой статье мы рассмотрим инсталляцию QEMU образов, т.е образы виртуальных машин которые могут работать под эмулятором QEMU. Начнем мы на примере ASA. Садитесь детишки в круг, и мы расскажем, что нужно делать, чтобы ваши образы ASA заработали на стенде UNetLab или как приготовитькошку

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.


Предисловие

QEMU — свободное программное обеспечение с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ. Включает в себя эмуляцию процессоров Intel x86 и устройств ввода-вывода
В настоящее время идёт разработка поддержки технологий аппаратной виртуализации (Intel VT и AMD SVM) на x86-совместимых процессорах Intel и AMD в QEMU. Первоначально разработка велась в рамках проекта Linux KVM (Kernel-based Virtual Machine), в котором, помимо собственно KVM (поддержки технологий аппаратной виртуализации x86-совместимых процессоров на уровне ядра Linux), разрабатывались патчи для QEMU, позволяющие QEMU использовать функциональность KVM. Однако недавно разработчики QEMU в содружестве с разработчиками KVM приняли решение в ближайшем будущем интегрировать поддержку KVM в основную ветку QEMU (mainline).

Первое что нужно отметить, это то, что в UNetLab образы должны находится в папках, которые имеют строго определённый префикс в имени, которые в свою очередь должны лежать в папке /opt/unetlab/addons/qemu

Для разных устройств – имена папок содержащих образы имеют разные префиксы в имени. Например образы ASA должны находиться в папках имя которых начинается на asa-XXXX или asav-XXXX, в зависимости от того какой именно типа образа ASA используется. Образ ASA 8.2, 8.4, 9.1 – так называемый portable должен находиться в папке asa-XXXX, где XXXX – любая алфавитно-цифровая строка. Например “asa-8.4.2/” или “asa-myasa_with_ASDM/”, главное чтобы имя папки начиналось с четырех символов “asa-“. Образ Cisco ASAv должен находиться в папке имя которой начинается на asav-, например “asav-9.32/” или “asav-mynew_ASAv/”

Аналогично делается и для других устройств. Например образ IPS должен лежать в папке имя которой начинается на “cips-“ Узнать какие префиксы используются для имен тех или иных устройств можно в файле /opt/unetlab/html/includes/init.php. Там содержится массив префиксов и их соответствие тому или иному образу.

Пример:
# cat /opt/unetlab/html/includes/init.php | grep asa
               'asa'        =>  'Cisco ASA',
               'asav'       =>  'Cisco ASAv',


Второй момент – для того, чтобы образ работал в UnetLab, он должен быть импортирован в формате файла .qcow2. Qcow2 — это формат дискового образа программы QEMU. Название является аббревиатурой названия формата Copy-On-Write (копирование при записи). Среди поддерживаемых форматов QEMU, этот — наиболее универсальный

Образы под VMware как правило имеют формат VMDK или OVA (тот же vmdk только запакованный). Поэтому прежде чем запускать образы под VMware в среде UNetLab их необходимо конвертировать в формат qcow2. Для этого в среде UnetLab можно воспользоваться встроенным конвертором:

/opt/qemu/bin/qemu-img convert -f vmdk -O qcow2 XXX.vmdk YYY.qcow2


Импорт ASA в UNetLAB

В этом примере мы будем импортировать образ ASA 8.4(2), но вы можете использовать его для импорта образа ASA 9.1(5) или 8.0(2)
Прежде всего нам нужно загрузить .vmdk файл содержащий образ 8.4(2) в любую папку виртуальной машины UnetLab по протоколу SCP. Используете инструменты из набора putty или winscp. В качестве временной папки возьмем /tmp и туда положим vmdk-файл.

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Далее необходимо конвертировать файл ASA842-disk1.vmdk в формат qcow2. При этом имя файла должно быть hda.qcow2 для первого диска, hdb.qcow2 для второго диска и т.д. В данном случае образ ASA 8.4(2) содержится в одном диске, как видно из названия файла, поэтому конвертируем файл ASA842-disk1.vmdk в файл hda.qcow2 командой:
/opt/qemu/bin/qemu-img convert -f vmdk -O qcow2 ASA842-disk1.vmdk hda.qcow2


После несложного процесса преобразования у нас появился файл hda.qcow2
Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Далее все просто. Создаем папку которая будет содержать наш qcow2 образ в каталоге /opt/unetlab/addons/qemu/
mkdir -p /opt/unetlab/addons/qemu/asa-8.42/


И перемещаем созданный образ hda.qcow2 туда
mv hda.qcow2 /opt/unetlab/addons/qemu/asa-8.42/


Проверяем и устанавливаем права доступа
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions


Все. Образ ASA импортирован и теперь мы можем выбрать его в меню Actions – Nodes
Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.


Если вы ошибетесь в названии каталога для образа, вы не сможете выбрать устройство Cisco ASA в меню Actions – Nodes

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Поле для выбора образа будет пустым. Обязательно обратите внимание на объем RAM. По умолчанию там стоит 256Mb. С таким объемом ASA не запустится, минимально можно выставить 512-768Mb. Теперь объект ASA можно попробовать запустить, нажав на него правой кнопочкой мыши и выбрав Start из контекстного меню.

У ASA portable образов, т.е ASA 8.4(2), ASA 9.1(5) и т.д есть одна особенность – они загружают одно ядро CPU на 100%. Это нормально явление при работе образов ASA в виртуальных средах. Тоже самое вы будете наблюдать в VMWare Workstation/ ESXI или в среде GNS3. Так работает ASA Dispatcher.
На рисунке показано потребление одного ядра образом ASA
Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.


Причем внутри ASA вы не увидите загрузку CPU. Таким образом будьте готовы к существенному потреблению ресурса CPU, если вы хотите запускать несколько ASA одновременно.

Особенности загрузки образа ASA в память.

Пара слов о загрузке образа виртуальной машины ASA в память UNetLab. Сам процесс загрузки можно наблюдать подключившись telnet-консолью к устройству Cisco ASA, просто кликните левой кнопкой мыши на устройство в топологии.

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Скорость загрузки образа зависит от ваших ресурсов (CPU, скорость файловой системы и т.д) на хост-машине на которой работает виртуальная машина UNetLab и может быть не очень быстрой и занимать больше одной минуты. Кроме того, загрузка образа зависит от того в какой именно момент времени вы подключили консоль.
На рисунке ниже красным выделены места в которых загрузка образа происходит дольше всего.

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Наиболее затратным по времени является запуска процесса Likewise Service Manager. Если в этот момент вы попытаетесь выполнить подключение консолью - то загрузка ASA прерывается. При этом на консоли вы ничего не увидите – пустой экран. Связно с тем, что при подключении консолью, в оболочку ASA посылается символ перевода каретки и перевода строки, что является Break для процесса загрузки. Если несколько раз нажать Enter – загрузка продолжиться где-то через пять минут.
Вся беда в том, что мы не знаем точно, в какой момент загрузки мы подключимся консолью к ASA, поэтому всегда дайте образу ASA время на загрузку, либо подключайтесь консолью сразу после нажатия Start.

Импорт ASAv в UNetLAB

После того как образ portable ASA импортирован, попробуем аналогичным образом импортировать образ ASAv. О том где взять ASAv можно узнать помучив Гугл или скачать с официального сайта cisco.com. Лицензия на него не нужна.
В UnetLab поддерживается только версии 9.3(2)200 и 9.4(1). Остальные не поддерживаются. На сайте разработчиков представлен документ со списком поддерживаемых версий.

Cisco ASAv поставляется в виде OVA-файла для импорта в виртуальную среду ESXi и в виде qcow2 формата для импорта в среду Cisco VIRL. Можно сразу взять образ asav932-200.qcow2 и именно его мы будем использовать в виртуальной среде UNetLab.

Прежде всего нам нужно его загрузить в виртуальную машину UnetLab по протоколу SCP. Используете инструменты из набора putty или winscp. В качестве временной папки возьмем /tmp и туда положим наш qcow2-файл
Далее нам необходимо создать папку с именем начинающимся на “asav-“ в в каталоге /opt/unetlab/addons/qemu/

mkdir -p /opt/unetlab/addons/qemu/asav-9.32/


Далее необходимо переименовать загруженный файл asav932-200.qcow2 в virtioa.qcow2 и перемещаем полученный файл в созданную папку

mv asav932-200.qcow2 /opt/unetlab/addons/qemu/asav-9.32/virtioa.qcow2


Проверяем и устанавливаем права доступа

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

Образ ASAv импортирован и теперь мы можем выбрать его в меню Actions – Nodes

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Обратите внимание, что данный образ требует 2048 Mb RAM. Минимально вы его можете загрузить на 1536 Mb. Если поставите меньше, то образ не загрузиться. Также обратите внимание, что доступ к консоли осуществляется через VNC, а не Telnet. Для этого у вас должен стоять пакет VNC на машине откуда осуществляется доступ к устройству. Более подробно от том как настроить VNC описано в статьеИнтеграция Telnet/SSH/VNC на Windows.

Особенности загрузки образа ASAv.

Процесс загрузки образа в память можно наблюдать подключившись vnc-консолью к устройству Cisco ASAv, просто кликните левой кнопкой мыши на устройство в топологии. Если все настроено верно, то откроется VNC- консоль, где отображается меню начальной загрузки образа.

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

По умолчанию через 10 сек, если не трогать клавиатуру, начинает грузиться образ 9.3(2)200. Если образ загружается в первый раз, то об этом будет сообщено на экране “Initial bootup detected. ASA will reboot after initializing system variables

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

После первого запуска, образ автоматически перезагружает сам себя. При этом выводится сообщения Successfully discovered platform. Rebooting to apply the platform type

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Осталось еще немножко подождать, пока образ загрузиться еще раз и нам выдается стандартное приглашение для ввода команд.

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Мы можем выполнить команду show version чтобы посмотреть версию образа, наличие интерфейсов, доступный функционал и т.п

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Обратите внимание, что образы ASAv не поддерживают MultiContext и как следствие Active/Active Failover.

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.

Поэтому если вам требуется Failover Active/Active или контексты, то добро пожаловать к образам portable ASA 8.4(2) или ASA 9.1(5). Однако образ ASAv в отличие от образов ASA не потребляет ресурсы CPU. Загрузка CPU для образа ASAv составляет 3% одного ядра. Но минимальное требование к памяти составляет 1536 Mб на одно устройство.

Подключение Serial консоли 

Вы можете подключить serial-консоль, вместо VNC. Для этого запустите образ ASAv, который у вас лежит в /opt/unetlab/addons/qemu/командой:
/opt/qemu-2.0.2/bin/qemu-system-x86_64 --enable-kvm -serial none -nographic -nodefconfig -nodefaults -display none -vga std -no-shutdown -smp 1 -m 2048 -drive file=/opt/unetlab/addons/qemu/asav-941-200/virtioa.qcow2,if=virtio,bus=0,unit=0,cache=none -vnc :0

Далее, используя VNC клиент, подсоединитесь к ASAv на порт 5900 и принудительно включите Serial консоль, командами

ciscoasa(config)# cd coredumpinfo
ciscoasa(config)# copy coredump.cfg disk0:/use_ttyS0


Завершить процесс qemu-system-x86_64, командой

killall qemu-system-x86_64


Теперь при добавлении устройства в топологию, можно выбирать консоль telnet вместо VNC.

Как импортировать образы QEMU в UNetLAB -  Cisco ASA и ASAv.


Ура! Теперь ASAv можно управлять через Telnet - console, со всеми преимуществами, такими как Copy-Paste, и работает она в разы быстрее.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

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

Цитата
  • Liks

  • 6 июля 2015 11:12
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • 0 комментариев
  • 0 публикаций
^
/usr/bin/qemu-system-x86_64 --enable-kvm -serial none -nographic -nodefconfig -nodefaults -display none -vga std -no-shutdown -smp 1 -m 2048 -drive file=c/opt/unetlab/addons/qemu/asav-941-200/virtioa.qcow2,if=virtio,bus=0,unit=
0,cache=nonei -vnc :

копипаста с сайта, работать не будет.

cache=none -vnc
file=/opt/unetlab/addons/qemu/asav-941-200/virtioa.qcow2
Поменяйте

так же, в новой версии UNL не получиться юзать qemu как тут описано, нужно поставить подсистему в ручную или заменить на
/opt/qemu-2.0.2/bin/qemu-system-x86_64

No comments: