Pull to refresh

Эмуляция Cisco ASA в GNS3 на Ubuntu 11.10

image
На Хабре существует множество статей на тему GNS3, но ни одна из них не затрагивала вопрос эмуляции Cisco ASA. Собственно тема эта довольно разжевана в Сети и если в качестве хостовой ОС выступает Windows проблем вообще не должно возникнуть, достаточно просто скачать готовый All-in-one инсталятор с оффсайта. Если же в качестве хостовой ОС выступает Linux, тут уже придется произвести кое-какие действия. А именно — самостоятельно скомпилировать qemu с патчами, для поддержки UDP туннелей. Тут перед пользователем встает выбор: либо поступить так, как написано в how-to опубликованном в блоге GNS3 (установка из исходников), либо самостоятельно собрать пакеты и установить их «православным методом» (кстати недавно на Хабре был полезный топик на тему: «Почему не стоит пользоваться make install»).

Итак, приступим… Хостовая ОС — Ubuntu 11.10. В репозитариях имеется GNS3 0.7.4, QEMU 0.14.1, Dynamips 0.2.8 RC2. Для начала ставим GNS3 из репозитария, для того что бы сразу подтянулись все его зависимости:

m0ps@pc:~$ sudo apt-get install gns3

Настраиваем его под свои нужды, проверяем что работает эмуляция IOS. Далее приступаем к сборке qemu. Первым делом нам нужно установить «несколько» пакетов, которые потребуются для самостоятельной сборки deb пакетов:

m0ps@pc:~/GNS3/Install/temp/qemu-kvm-0.14.1+noroms$ sudo apt-get install dpkg-dev bcc debhelper hardening-wrapper iasl libaio-dev libasound2-dev libattr1-dev libcurl4-gnutls-dev libgnutls-dev libncurses5-dev libpci-dev libpulse-dev libsasl2-dev libsdl1.2-dev libx11-dev nasm quilt texi2html texinfo uuid-dev zlib1g-dev

Теперь нам нужны исходники qemu из которых собирались deb пакеты для Ubuntu:

m0ps@pc:~/GNS3/Install/temp$ apt-get source qemu

В результате скачиваются 3 файла:
qemu-kvm_0.14.1+noroms-0ubuntu6.dsc, qemu-kvm_0.14.1+noroms-0ubuntu6.diff.gz, qemu-kvm_0.14.1+noroms.orig.tar.gz,
и в директорию qemu-kvm-0.14.1+noroms распаковывается архив с исходными текстами.
Теперь идем сюда и скачиваем архив с патчами для qemu от проекта GNS3. Распаковываем их в директорию с исходниками qemu и применяем их:

m0ps@pc:~/GNS3/Install/temp/qemu-kvm-0.14.1+noroms$ for i in *.patch; do patch -p1 -i $i; done

Далее нам необходимо увеличить версию qemu, т.к. если версия установленного пакета будет одинакова с версией установленной из репозитария, то при следующем обновлении самосборные пакеты будут заменены на пакеты из репозитария. Для этого редактируем changelog файл:

m0ps@pc:~/GNS3/Install/temp/qemu-kvm-0.14.1+noroms$ vi debian/changelog

добавив в его начала информацию по аналогии с остальными записями:

qemu-kvm (0.14.1+noroms-0ubuntu7) oneiric; urgency=low

* UDP patches from GNS3 Team.

-- GNS3 Team <gns3dev@users.sourceforge.net> Mon, 24 Oct 2011 16:00:00 +0300


Здесь мы указываем что наши пакеты будут иметь версию 0ubuntu7 (на данный момент версия 0ubuntu6). Когда в репозитарии версия пакета обновиться до 0ubuntu7 нам придется проделать все (скачать исходники, наложить патчи, скомпилировать и установить пакеты) заново, увеличив версию еще на единичку (к примеру 0ubuntu8). Следующим шагом собираем пакеты из исходников:

m0ps@pc:~/GNS3/Install/temp/qemu-kvm-0.14.1+noroms$dpkg-buildpackage -b -uc -us

В результате, в директории на уровень выше, мы получим следующие пакеты:
kvm_84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu7_i386.deb
qemu_0.14.1+noroms-0ubuntu7_i386.deb
qemu-common_0.14.1+noroms-0ubuntu7_all.deb
qemu-kvm_0.14.1+noroms-0ubuntu7_i386.deb
Первый нам не нужен, остальные те, которые нас интересуют. Инсталируем их:

m0ps@pc:~/GNS3/Install/temp/$sudo dpkg -i qemu-common_0.14.1+noroms-0ubuntu7_all.deb
m0ps@pc:~/GNS3/Install/temp/$sudo dpkg -i qemu-kvm_0.14.1+noroms-0ubuntu7_i386.deb
m0ps@pc:~/GNS3/Install/temp/$sudo dpkg -i qemu_0.14.1+noroms-0ubuntu7_i386.deb


Вот и все, теперь можно строить лабы в GNS3 с использованием Cisco ASA. Модифицированные пакеты практически ничем не отличаются от оригинальных, их можно удалять, обновлять и т.д. с помощью пакетного менеджера не нарушая общую идеологию современных ОС — установка софта из пакетов.

P.S. Процесс подготовки софта Cisco ASA для запуска в GNS3 и сама настройка GNS3 прекрасно описан в блоге GNS3.
P.S.S. Вышеперечисленные действия можно проделать и на более старых релизах Ubuntu.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.