[Из песочницы] Эмулятор UNetLab — революционный прыжок

Данная статья посвящена новому Эмулятору UNL, с помощью которого вы можете создавать свои собственные виртуальные стенды для подготовки как к экзаменам CCNP/CCIE, так для решения своих инженерных задач.

ae49d87b15864e788310c382c196796a.png

Что такое UNetLab


UNenLab (Unified Networking Lab, UNL) — это мульти-вендорная и многопользовательская платформа для создания и моделирования самых различных лабораторий и дизайнов, которая позволяет смоделировать виртуальную сеть из маршрутизаторов, коммутаторов, устройств безопасности и др.

Это продолжение того же девелопера, который в своё время создал веб фронтенд для IOU. Теперь разработка iou-web завершена, разрабатывается только UNetLab и является незаменимым инструментом для подготовки к CCIE, сетевого инженеринга, в том числе и Troubleshooting. Это, по сути, убийца GNS, IOU и даже VIRL.

UnetLab — полностью бесплатен. Вы можете запускать столько экземпляров оборудования (роутеров, коммутаторов, устройств безопасности и т.д) сколько вы хотите и какого хотите. Например, в том же Cisco VIRL Personal Edition вы ограничены 15-ю узлами и набор устройств довольно скромный. Например полноценную ASA получить не представляется возможным, равно как и маршрутизатор с Serial-интерфейсом.

Поддержка оборудования в UNetLab очень широкая. Вы можете запускать Cisco IOL-образы, образы из VIRL (vIOS-L2 и vIOS-L3), образы ASA Firewall (как портируемые 8.4(2), 9.1(5), так и официальные ASAv), образ Cisco IPS, образы XRv и CSR1000v, образы dynamips из GNS, образы Cisco vWLC и vWSA, а также образы других вендоров, таких как Juniper, HP, Checkpoint и т.д.
Кроме того, начиная с версии UNetLab 0.9.54 появилась многопользовательский функционал. На одной и той же VM, каждый авторизованный пользователь может создавать свои стенды независимо друг от друга, а также совместно работать с общим стендом, который разделяют несколько пользователей одновременно. При этом пользователи запускают общий стенд независимо друг от друга.

На текущий момент поддерживаются следующий список оборудования:

  • Aruba ClearPass
  • Alcatel 7750 SR
  • Arista vEOS
  • Brocade Virtual ADX
  • Citrix Netscaler VPX virtual
  • Checkpoint Firewall
  • Cisco ASA (porting)
  • Cisco ASAv
  • Cisco CSR 1000V
  • Cisco IPS (porting)
  • Cisco IOS 1710/3725/7206 (dynamips, ethernet only)
  • Cisco IOL (for Cisco internal use only)
  • Cisco NX-OSv — titanium (for VIRL customers only)
  • Cisco vIOS (for VIRL customers only)
  • Cisco vIOS L2 (for VIRL customers only)
  • Cisco XRv
  • Cisco WSA virtual appliance
  • Cisco Wireless controller — vwlc
  • Extreme Networks virtual
  • F5 BIG-IP LTM VE
  • Fortinet FortiGate (new)
  • HP VSR1000
  • Juniper Olive (porting)
  • Juniper Networks vMX router
  • Juniper vSRX
  • Palo Alto VM-100 Firewall
  • VyOS
  • MS Windows hosts


С более подробным списком можно ознакомится на сайте разработчиков.

Самые существенные плюсы UnetLAB по сравнению с Cisco VIRL

  • Полностью бесплатен
  • Практически полноценная поддержка L2 (за счет EOS-коммутатора, который полностью cisco-like)
  • Широкая поддержка Cisco оборудования
  • Число запускаемых узлов ничем неограничен, кроме ваших ресурсов (CPU, RAM)
  • Мультивендорность
  • Многопользовательский функционал
  • Низкие требования к ресурсам ПК


Данная платформа подойдет как новичкам для подготовки к CCNA/CCNP, так и для профессионалов для подготовки CCIE Routing and Switching, CCIE Security, CCIE Service Provides, CCIE Data Centers и т.д, а также для других разнообразных инженерных задач.

В отличие от предыдущего проекта IOU-WEB, в UNetLAB реализован полностью графический интерфейс дизайна топологии, примерно так, как это делается в GNS. Теперь нет необходимости писать netmap файлы для каждой топологии. Недостатком является полное отсутствие совместимости с предыдущим проектом. Файлы топологий собранные в iou-web необходимо переписывать для UNL. Но в последней версии разработчики предоставляют скрипт который поможет автоматизировать процесс.

Также в UNL включена поддержка так называемой Custom Topology, т.е кликабельных красивых картинок-диаграмм, которые вы можете нарисовать в MS Visio и импортировать в вашу лабу, так как это было в iou-web.

9a74ab4884ac471888c97b2204e7cc7e.png

Проект постоянно развивается, добавлением нового функционала и расширением списка поддерживаемых устройств.

Установка UNetLab


UnetLAB поставляется в виде отдельной виртуальной машины основанной на Linux Ubuntu 14×64. В комплект НЕ входят образы какого-либо оборудования. Например, использование образов IOU не законно, если ты не сотрудник Cisco. Даже для обучения. По этой причине сами образы L2IOU и L3IOU не предоставляются, равно как и другие образы (например образы из VIRL). При желании вы можете найти их в Интернете, а также на официальных сайтах производителей, например Cisco ASAv, Cisco XRv, Cisco CSR1000v, Juniper vSRX и т.п.

На сайте разработчика UnetLAB имеются всеобъемлющие инструкции по инсталляции тех или иных образов в среду UNL. Далее мы рассмотрим установку VM UNetLAB на VmWare Workstation или VmPlayer, а также установку под ESXi.

Ставим виртуальную машину


Для начала нам понадобится vmware player для установки нашей виртуальной машины. Скачать можно с сайта VmWare, так же подойдет Vmware Workstation или ESXi vsphere. После установки vmware player необходимо скачать виртуальную машину UNetLAB примерно 700Mb с сайта разработчика и открыть при помощи VmWare Player или VM Workstation файл .ova

bb0d672673e6473a85d5d4d0bb0f4884.png

В течении нескольких секунд VM будет создана.

1b8d102c4c33499796105f988fb60d38.png

Далее необходимо выбрать меню «Edit virtual machine settings» вашей VM и настроить соответствующее ресурсы CPU и памяти. По умолчанию для VM стоит 1G, 1 CPU и 1 NIC (сетевой интерфейс). Для простейших задач этого хватит, но для серьезного CCIE стенда, данные параметры необходимо увеличить. Я использовал 6 CPU и 12Gb на моем 16G ноутбуке. А под ESXi выделил 8 vCPU и 24Gb. Все зависит от того, что вы хотите запускать. Если например вы готовитесь для сдачи CCIE SP или CCIE Security, то памяти надо выделить побольше. Для CCIE RS хватит 4Gb и 1CPU.

418c6915ce2f4944a6d50378df88f825.png

В заключении обязательно включите опцию «Virtualize Intel VT-x/EPT or AMD-V/RVI» в настройках CPU. UNetLAB умеет определять в какой среде она запущена, а также доступны ли ей команды виртуализации CPU. Если у вас Поддержка CPU виртуализации выключена в BIOS, или процессор не поддерживает виртуализацию, UnetLAB детектирует это и выдаст соответствующие предупреждение при загрузке. Вы все еще сможете запускать 32 бит образы, такие как IOL или vIOS, но не сможете запускать 64 бит образы, такие как ASAv, vSRX и т.п. Поэтому обязательно стоит включить поддержку виртуализации для VM UNetLAB. Если UNetLAB развертывается в среде ESXi, то аналогичная опция должна быть включена в настройках CPU виртуальной машины UNetLAB.

Запуск виртуальной машины UNetLAB


После старта VM вы должны зайти на ее Linux-консоль используя [b]root/unl[/b] в качестве логина и пароля. Сразу после этого запускается скрипт инициализации, который предлагает вам настроить такие параметры, как IP-адрес сетевого интерфейса, имя хоста, время и т.п. Просто следуйте инструкциям на экране.

a1db4230b618459fb2c596ef5d80ff71.png

После первоначальной настройки виртуальная машина перегрузится. После установки Виртуальной машины, зайдите на нее под пользователем root и выполните обновление с текущей версии до последней. На сегодняшний день это UNetLab 0.9.54, командами

apt-get update
apt-get -o Dpkg::Options::="--force-overwrite" install unetlab


После обновления VM желательно еще раз перезагрузить, так как будет обновлен linux-kernel.

Далее с помощью браузера можно зайти на веб-интерфейс UNetLAB. Вводим в строке браузера адрес виртуальной машины, который мы задали во время начальной установки, например, 10.0.200.91, и мы увидим интерфейс UNetLAB.

829760b834804dff9ada4573f3a00d67.png

Начиная с версии 0.9.54 введена многопользовательская поддержка, в связи с чем был немного изменен web-интерфейс. Теперь необходимо пройти авторизацию. Используйте login: admin и password: unl.

Добавляем образы устройств


Первым шагом должно быть импортирование образов того оборудования которое мы хотим использовать. В текущей статье мы импортируем IOU образы, как наиболее простые. Первая задача здесь состоит в том, что вам нужна лицензия на IOU. Я не буду вдаваться в подробности, как и где ее получить, но это легко сделать, немного помучив Google.

Вторая особенность — это то, что образы IOU должны иметь расширение .bin, поэтому убедитесь, что вы добавляете его к имени файла.

Нам необходимо для работы как минимум два образа — L2 и L3. Cisco идет в ногу со временем и эти два уровня не разделяются явно на канальный и сетевой. В данный момент L3 более или менее соответствует маршрутизатору уровня ISR, а L2 — коммутатору уровня 3560. Самая свежая версия на сегодня это IOS 15.5T для маршрутизаторов и IOS 15.1 для коммутаторов.

Образы добавляются в UNetLAB из CLI.Т. е вы должны загрузить IOU образ по SCP в папку /opt/unetlab/addons/iol/bin и настроить права доступа к ним с помощью команды.

/opt/unetlab/wrappers/unl_wrapper -a fixpermissions


Вот как это может выглядеть в конечном результате:

ab76ba68b2e14b80bc90abf0d1e489bb.png

Так же помним, что IOU образ заглядывает в файл iourc при каждом своем запуске на предмет лицензионного ключа, который использует информацию о текущем хосте.

# cat /opt/unetlab/addons/iol/bin/iourc
[license]
unl01 = 0123456789abcdef;


Для того, чтобы протестировать, что образы IOU будут у нас запускаться, выполните следующие команды.

# cd /opt/unetlab/addons/iol/bin
# touch NETMAP
# LD_LIBRARY_PATH=/opt/unetlab/addons/iol/lib /opt/unetlab/addons/iol/bin/L3-ADVENTERPRISEK9-M-15.4-2T.bin 100


Здесь L3-ADVENTERPRISEK9-M-15.4–2T.bin — это IOU образ L3-маршрутизатора который мы загрузили, а 100 — это просто ID запущенного устройства. Может быть любым числом.

Если у вас появилось на экране, что-то типа:

67736f014ac7436d858e287f45bf08b5.png

То, значит, образы IOU запускаются корректно и могут быть использованы в вашем стенде.

Создаем свою топологию в UNetLAB


Из меню Lab→Actions выбираем «Add a new lab» и назовем ее скажем IOL test и нажимаем кнопку ADD:

a15087633cb3457f969c2cbb1a228d23.png

Далее мы попадаем в режим редактирования нашей топологии. Здесь вы должны добавить в вашу топологию те устройства, с которыми вы будете работать. Так как мы импортировали только образы IOU мы будем добавлять только L2 и L3 IOU устройства. Из меню Actions выбираем пункт Nodes.

d92b1ec7608248f9a871628e4f66d2d2.png

Перед вами откроется низ спадающий список со всем поддерживаемым оборудованием. Но так как мы импортировали только IOU образы, нам необходимо выбрать из списка Cisco IOL.

fd5298da793a4f538a8de76233efe504.png

В появившимся окне свойств мы можем выбрать образ IOU, который мы хотим запускать, в данном случае это L3 маршрутизаторы, а также количество таких устройств (в данном случае 2), объемы памяти для каждого устройства (по умолчанию 256Mb), имя устройства, его графическое представление в топологии количество портов Ethernet и Serial.

0464092d18bd4cc4a48c6970c43a9542.png

Указав все параметры, жмем ADD и на экране появятся два роутра.

7bbb5dda2ce74a7abe6cc17e6023e42e.png

Давайте сделаем небольшое отступление и добавим ASA Firewall (porting) и IOU коммутатор. IOU-коммутатор добавляется в топологию так же, как и IOU маршрутизатор — выбором пункта меню Cisco IOL. А вот для ASA выбирается пункт Cisco ASA.

8339cf13d5734e0791f54b1517d806d5.png

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

3e555980743c4f2d8003003589e164da.png

Теперь данные устройства необходимо связать друг с другом. Для этого в UNL есть понятие Networks (сеть) и соответствующий пункт меню.

49573a3bffc449debb11d9fee3d19dee.png

Устройства в UNL не связываются как GNS через прямой провод (Direct Link), а связываются через сеть (Network). Общее правило такое, что два устройства связываются друг с другом через один и тот же Network (сеть), так как если бы вы соединяли их одним проводом. Просто объявите для провода свой уникальный Network.

Для нашего простого стенда необходимо три линка. Устройтва ASA, R1 и R2 все подключаются к коммутатору SW1. Поэтому в меню Networks выбираем количество сетей 3 и ждем ADD.

c10b1b6f570c4c06bce5f9860140cb99.png

По умолчанию имя для сети начинается с Net и наши сети будут называться Net1, Net2 и Net3. Но имена можно всегда поменять, чтобы точно знать какая сеть куда должна вести. Тип сети ставим по умолчанию Bridge. О типах сетей расскажем в одной из следующих статей. Во вкладке Objects можно увидеть созданные сети, равно как и объекты устройств и их параметры. Сети которые не подключены к интерфейсам устройств в топологии (вкладка Topology) не показываются.

1644e6ea9f8343f69a77bdc6b84aea04.png

Далее нам необходимо соединить устройства друг с другом. Т.к сети определены, мы можем это сделать через контекстное меню Interfaces конкретного устройства. Во вкладке Topology нашей топологии выберем нужное устройство, например, роутер R1 и кликаем на него правой кнопкой мыши.

7a5e42f694894561bc9469bd45aa2171.png

В появившимся контекстном меню выбираем Interfaces. Откроется окно, в котором показывается все интерфейсы устройства и каким сетям они подключены:

8bcd2e948b3a444b959d5d22477579ec.png

Если интерфейс не подключен ни какой сети, он показан как Disconnected. В нашем случае R1 имеет 4 Ethernet интерфейса e0/0 — e0/3 и 4 Serial интерфейса s1/0 — s1/3. Нам нужно подсоединить e0/0 к коммутатору e0/0. Поэтому выбираем для интерфейса e0/0 сеть Net1 и нажимаем Save.

b38c217f50354d8d95e464f092b5c967.png

В топологии появилась сеть Net1 подключенная к интерфейсу e0/0 роутера R1. Повторим туже процедуру, но для коммутатора SW1 и подключим его интерфейс e0/0 к сети Net1.

d739966c0afd4d4098a022776a32bc19.png

Теперь R1 и SW1 соединены Ethernet линком и могут взаимодействовать друг с другом. Аналогичным образом соединим R2 e0/0 с SW1 e0/1 через Net2, a ASA e0 c SW1 e0/2 через Net3. Вот что получилось:

5eff362d9e9e43c280aedf91c20e7169.png

После того, как дизайн закончен, можно попробовать запустить наш стенд. Из меню Actions выбираем «Open this Lab», затем кликаем правой кнопкой на устройство и нажимаем Start:

f8dd03057e374a7fbc681c7c82b4b7b5.png

Когда устройство запустилось успешно, у него меняется индикатор состояния с квадратика (символ Stop) на треугольник (символ Play).

9b1e8bbce15f43319e82addaae50ee8b.png

Повторите тоже самое для каждого устройства в топологии. Дадим им минуты три для полной загрузки. Теперь можно получить доступ ко всем устройствам. Однако по умолчанию клик на устройствах будет приводить к запуску стандартного telnet клиента. Это не очень удобно, особенно если учесть, что в последних версиях Windows он уже не предустановлен. Гораздо привычнее использовать PuTTY или SecureCRT.

a30537c24e3c42b982798eced321873e.png

Зайдем на роутер R1, поднимем интерфейс e0/0 в UP и убедимся, что все работает. Ротуер R1 видим по CDP наш коммутатор SW1.

Теперь назначим на интерфейс e0/0 маршрутизатора R1 IP-адрес 192.168.1.1/24, а на e0/0 ASA интерфейс 192.168.1.12/24 и убедимся, что все работает.

bd98d82e29f64e9ca7aaf4a143233a1d.png

Заключение


С появлением UNetLab работа с образами не представляет особой сложности, все реализовано достаточно логично. Во многих случаях этот эмулятор оставляет далеко позади GNS/Dynamips, VIRL, особенно когда идет речь о разнообразных моделях устройств в стенде, не только коммутаторах и маршрутизаторах. А аж об оборудовании других вендоров речь вообще не идет. Например, если нужно смоделировать взаимодействие оборудование разных вендоров друг с другом, например, IPSEC VPN туннель между Cisco ASA и Juniper SRX или Checkpoint Firewall и т.п

f326e9e33c4f4f32bfb339363eaf82f9.png

Также UNetLab значительно менее ресурсоемок как и IOU, чем тот же VIRL. На сегодняшний день UNetLab остается лучшим инструментом как для подготовки к CCNP/CCIE, так и для моделирования разнообразных инженерных задач.

Полезные ссылки и используемые материалы


Сайт разработчика UNetLab
Статьи по UNetLab на русском
Лаборатория сетей CiscoLAB.

© Habrahabr.ru