GNS3 - Решение для начинающих администраторов. Часть 1.

Блог им. dreamhunter
Предисловие
Хочется предаться воспоминаниям, как я на недопиленной FreeBSD 4.7, Р166 и с 10 мегабайтами интернета в день мастерил свой первый DHCP/DNS/SMB/HTTP сервер. О наличии управляемого коммутатора и тем более маршрутизатора речи вообще не шло (до поры). Но к моему счастью наш админ быстро уволился и мне досталось небогатое, но всеже наследство: Сеть с коммутаторами HP Procurve 2524, несколькими серверами FreeBSD ну и прочая требуха, включая капризных пользователей. К сожалению знаний у меня было вообще ноль, а освоить все за один раз очень сложно. Естественно первым делом я освоил FreeBSD и тогда еще WinNT Server. Непосредственно маршрутизацией (и switching) я занялся через 5 лет после начала работы на месте системного администратора. Но время идет и все становится лучше в сфере IT. Однако без опыта все равно сделать ничего не получится. Не хочу показаться ненавистником Microsoft, но они и впрямь усугубляют все дело. Современный администратор Microsoft серверов может полностью настроить сервер DNS/HTTP/DHCP/NTP/etc, при этом не понимая, как это на самом деле работает… Когда я это обсуждал с ними, были случаи что на меня смотрели пустыми глазами и задавали вопрос: а зачем мне понимать? У меня есть интеграторы, горячая линия поддержки Microsoft. За глаза им скажу: Ты либо понимаешь принципы работы, либо ты всего лишь ненужная жировая прослойка между этим саппортом и твоим работодателем.
Итак, дорогой друг, ты решил пойти трудным путем сетевого администратора. Что это значит? На моем предприятии сетевой администратор это тот, кто занимается исключительно сетевыми устройствами. В моем понимании сетевой администратор должен заниматься сетевыми сервисами. То есть внутри отдела можно распределить задачи и взаимодействовать без лишних обращений в группу серверов. Если возложить сетевые сервисы на серверных специалистов (например DNS и DHCP), то возникает необходимость в разработке регламентов работ — очень больная тема. Грубо говоря со своими проще договориться чем с коллегами из другого отдела. Для тех, на кого ориентирована статья эти проблемы могут быть непонятными и далеко впереди идущими, так что отнесем это к лирике.

Задача: Создать полнофункциональный виртуализированный стенд из маршрутизаторов Cisco и виртуальных машин для проведения различных тестов и обучения.

GNS3 — Graphical Network Simulator.

Обзор
Это комплекс, который позволяет смоделировать виртуальную сеть из маршрутизаторов и виртуальных машин. Незаменимый инструмент для обучения и тестов. Работает практически на всех платформах. Отлично подходит для создания стендов на десктоп машинах.
К сожалению есть один вполне закономерный минус: Система очень требователна к ресурсам. Оборудование Cisco само по себе очень мощное. Представляете если вы попытаетесь запустить образ, для которого используется отдельный процессор плюс пару виртуальных машин. К счастью современные desktop компьютеры вполне мощные. Главное побольше оперативной памяти и помощнее ЦПУ. Плюс ко всему если вы будете грамотно распределять ресурсы в своих схемах — вы сможете добиться неплохих результатов.
Одной из лучших desktop операционных систем является Ubuntu. Кроме того эта система бесплатная, что тоже является плюсом. Попробуем создать первый стенд на Ubuntu 12.10. У меня под рукой оказался двухядерный Intel с 2GB RAM. На него я решил установить 64-х битную систему.

Подготовка к работе
Установка GNS3, Dynamips и VirtualBox
К сожалению через центр приложений Ubuntu можно установить только устаревшую версию GNS3. Собственно установить то не проблема. Однако она будет с ограниченым функционалом. Нам нужна новая версия. Потому колдуем в консоли:
~$ wget http://downloads.sourceforge.net/project/gns-3/GNS3/0.8.3.1/GNS3-0.8.3.1-src.tar.gz
tar -xf GNS3-0.8.3.1-src.tar.gz
less GNS3-0.8.3.1-src/README

обратим внимание на список зависимостей:
* GNS3 VirtualBox Edition dependencies:

- Qt 4.5.1 (or higher)
- Python 2.6 (or higher)
- Sip 4.5 (or higher)
- PyQt 4.5 (or higher)
- Dynamips 0.2.8+
- VirtualBox 4.1.x
- QEMU (with UDP patch)
- PEMU
- xdotool (on X11 UNIX-like platforms)
- Wireshark

Скорей всего большинство необходимого у вас уже установлено. Установить нам скорей всего понадобится Dynamips, VirtualBox и QEMU. Устанавливаем, а потом после установки необходимых приложений устанавливаем GNS3:
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install dynamips
sudo apt-get install qemu
sudo apt-get install virtualbox
sudo apt-get install xdotool
sudo apt-get install wireshark
cd ~/GNS3-0.8.3.1-src
sudo python setup.py install

Внимание грабли!
1) Хочу предупредить, что без linux-headers у вас могут возникнуть проблемы… практически во всем. Я не знаю, почему этот пакет не включен в стандартный набор программ, но без него реально не работает практически ничего.
2) GNS3 версии 0.8.4rc2 и ниже не умеют работать с VirtualBox 4.2. У вас будет скорей всего выдаваться ошибка
vboxapi module cannot be loaded

Будем очень надеяться, что наш доблестный разработчик Алексей Еременко соместно с неменее доблестными Thomas Pani и Jeremy Grossmann допилит в ближайшее время. Т.к. близится убунту 13-й версии с ядром 3.8, а Virtualbox 4.1 не умеет работать с ним.
Вот такой вот порочный круг.

К сожалению установщик не создает ярлыки для GNS3 (по крайней мере в этой версии). Есть два способа:
1) gnome-panel:
sudo apt-get install --no-install-recommends gnome-panel
sudo gnome-desktop-item-edit /usr/share/applications/ --create-new

После этого появится окно, где пропишем gns3 во всех строчках и оно появится в приложениях.

2) Создать вручную *.desktop фаил в /usr/share/applications с примерно следующими настройками данными:
sudo nano /usr/share/applications/gns3.desktop

[Desktop Entry]
Name=GNS3
Type=Application
Categories=Application;
Exec=gns3
TryExec=gns3
Terminal=false
StartupNotify=true

жмем CTRL+X

Теперь вы его сможете найти в главном меню и вынести ярлык на панельку.

Так же опционально вы можете установить pemu — эмулятор Firewall PIX. В статье GNS3 PIX Firewall Emulation/ четко все расписано, что необходимо:
1) Скачать архив отсюда
2) Распаковать архив
3) Скопировать содержимое в папку с qemuwrapper. Поскольку работаем в Ubuntu, используем sudo:
$ sudo cp * /usr/lib/gns3

Лично я не знаю, где в современном мире вы сможете получить знания по PIX. Скоро охлаждающие вентиляторы на последних PIXах остановятся и они вымрут окончательно.

Настройка GNS3
После установки запускаем GNS3 и открываем «Edit/Preferences». В окне настроек мы можем настроить язык интерфейса и проверить работоспособность модулей и правильность указания путей.

Первым делом проверим Dynamips — основной модуль эмуляции устройств Cisco.
Test dynamips

Далее идем провеять qemu и virtualbox:
Qemu-test
vboxwrapper
На самом деле Qemu и VirtualBox выполняют одну и ту же функцию. Потому далее мы будем работать только с VirtualBox. Желающие написать гайд с применением Qemu — флаг в руки.

Теперь необходимо указать расположение образов IOS и виртуальных машин.

Dynamips

Собственно именно это ПО обеспечивает виртуализацию маршрутизаторов. GNS обеспечивает его визуализацию и связку с другими программами. (не запутайтесь)

Отступление
15 ноября 2010 года компания Cisco включила ограничение на закачку ПО со своих сайтов. Успешная практика рубить бабло за лицензии пришлась по вкусу и им. Ибо лексусы новые хочется, а инженеры вводят новые потребные фичи медленно.
Что бы мы могли обучаться — нам нужен GNS.
Что бы GNS мог эмулировать Cisco — нужны IOSы.
Что бы скачать IOS, мы должны скачать его с торрента обладать правами на закачку (небесплатно естественно).
Что бы до конца прочесть эту статью, все быстро скинулись мне по десять баксов.

Открываем «Edit/IOS images and hypervisors». Для примера я использовал c2600-ipbase-mz.124-25c.bin
IOS

Пояснения:
Image file — путь к файлу IOS;
Base config — путь к файлу с базовым файлом конфигурации;
Platform и Model определятся сами, либо вы можете выставить ее вручную;
Default RAM — необходимый объем оперативной памяти для образа. Вы можете узнать необходимое значение на официальном сайте Cisco.
IdlePC — это значение устанавливается для того, что бы виртуальные маршрутизаторы не потребляли слишком много ресурсов вашего компьютера. Значение может определяться самим GNS. Для этого вам необходимо:
— добавить образ
— создать виртуальный маршрутизатор
— запустить его
— когда он загрузится вызвать контекстное меню и выбрать пункт idle pc. Он вычислит подходящее значение.
Вы так же можете скопировать его в настройки.

На этом будем считать вводную часть работы с виртуальными маршрутизаторами оконченной. Перейдем к виртуальным машинам.

VirtualBox

Так же как Dynamips виртуализирует маршрутизаторы, VirtualBox виртуализирует компьютер. После того как мы установили и настроили vboxwrapper, можно приступать к интеграции.

Шаг 1. Создание гостевой ОС.
То есть нам необходимо создать виртуальную машину и установить на нее дополнения гостевой ОС. В качестве клиентской выбрал WinXP. Даже если не морочиться на лицензии, можно 30 дней пользоваться этим «благом». Плюс ко всему на него лекго ставятся дополнения. Не стоит баловать тестовые клиентские виртуалки (RAM достаточно 256 MB; HDD ~10GB и т.д.). Я рекоммендую так же не заниматься особым тюнингом установленной операционки.
Для установки ОС вам понадобится ISO образ установочного диска.
Дополнения гостевой ОС — это тоже образ, который «вшит» в состав VirtualBOX. Что бы его замонтировать — необходимо в меню окна виртуальной машины выбрать пункт «Устройства»->«Установить дополнения гостевой ОС»
Если честно в версии 12.10 долго искал это меню и ругался сильно пока не понял, что меню окон располагаются отдельно в верхней части экрана.
После установки дополнений, выключаем виртуальную машину и переходим к окну настроек GNS.
vboxguest
На скриншоте видно, что я присвоил идентификатору winxp виртуальную машину с именем winclient. Как вы ее назовете — ваше дело.
Замечания:
1) Одну сетевую карту GNS задействует для связи с виртуальной машиной.
2) Если вы хотите использовать в своей схеме более одной виртуальной машины — вам придется создать/клонировать дополнительные машины. Собственно это и логично.

На этом непосредственно вводная часть с созданием виртуальной среды для построения рабочих схем завершена. В следующих статьях мы попробуем собрать работоспособные схемы.

result

6 комментариев

avatar
А часть 2 когда будет??)) а то у меня уже было всё установлено… жду историй про интересные плюшки GNS
avatar
Даже не знаю что и сказать…
Во-первых работаю усердно на одним интересным проектом, который скоро выложу.
А во-вторых я не знаю чего людям хочется узнать.
Будет вторая часть. Когда? — Скоро. =)
avatar
А не нужно писать о том, что интересно людям… Это неблагодарная работа… Нужно писать, что интересно для себя)))
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.