УСТАНОВКА EVE-NG

Установка EVE-NG — как поставить EVE-NG на Windows 10 от начала и до полной работоспособности со всеми подробностями. Рассматривается установка на Hyper-V, VMware и VirtualBox. В статье есть все нужные сведения и ссылки, которые помогут легко развернуть EVE-NG с минимальными затратами времени.

EVE-NG Cookbook На официальном сайте выложен подробнейший мануал 165 страниц (на английском) с описанием всего, что есть в EVE-NG

Рекомендую также сразу скачать Cookbook и держать его под рукой, а при возникновении любых вопросов искать ответы в первую очередь там.

Варианты развёртывания EVE-NG

  1. На голое железо (bare metal) с ISO — отдельный сервер;
  2. В среде виртуализации с ISO — домашний компьютер или сервер виртуализации (должна быть доступна и включена функция вложенной виртуализации — netsted virtualization);
  3. Использование готового виртуального диска в VMware ESXi/Workstation/Player — домашний компьютер или сервер виртуализации.

Первое тут: ISO не является готовым образом, требует подключения к интернету при установке с него (будет далее).

Вариант 1 хорош, однако довольно дорог, поэтому будем рассматривать сначала вариант 3 — как самый быстрый и простой, затем вариант 2 — ничуть не сложнее, но более универсальный и удобный в дальнейшем использовании. Оба варианта естественно будут развёрнуты на домашнем компьютере. После развёртывания VM рассмотрим работу с ней.

Развертывание на отдельном сервере

Сервер виртуализации можно заюзать на работе, если есть такая возможность — добавить 1 виртуалку никому хуже не будет. Или же покупать/собирать сервер самому. Если бы решил покупать сервер, то обратил бы внимание на следующие компоненты:

  • CPU Intel Core i7;
  • Недорогую mATX материнскую плату ASRock с поддержкой SSD M.2;
  • 2x16Gb DDR4;
  • SSD M.2 250/512GB Samsung;
  • Маленький корпус (к примеру, Exegate MI-208 450W);
  • Низкопрофильный CPU Fan 20dB.

Получился бы относительно холодный, маленький и тихий сервер. Для дома — то, что надо.

Почему 2x16Gb? Для подавляющего большинства лаб этого количества памяти за глаза. Исследование потребления ресурсов памяти и процессора в конце статьи.

Развертывание на домашнем компьютере

Не у всех есть место под сервер, да и денег это стоит. Хороший вариант использовать уже имеющийся домашний компьютер.

Системные требования

Полезно прочитать ветку форума.

Эмулятор EVE-NG весьма прожорлив, компьютер, на который будет производиться установка, должен иметь:

  • Хороший многоядерный процессор. Кроме этого процессор должен поддерживать SLAT, чтобы работала вложенная виртуализация. Раньше на Intel был удобный инструмент проверки поддержки SLAT по модели CPU, сейчас они всё переделали и его нет. Однако можно не беспокоиться: для всех новых CPU SLAT поддерживается;
  • Памяти минимум 8Gb. Так как самой виртуальной машине EVE-NG придётся выделить 3-4Gb для простых топологий;
  • Накопитель SSD под VM. Новые M.2 SSD предпочтительнее старых Sata: производительность, нет шнуров, размер, но старые Sata в общем тоже сгодятся

Относительно слабый процессор ещё как-то можно пережить, хотя загрузка его будет строго 100% и разогреваться он будет в кипяток, но если компьютер имеет 4Gb оперативной памяти, то однозначно апгрейд или же смотреть в сторону GNS3 и совсем простых лаб.

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

Также не надо отдавать VM EVE-NG почти всю память и почти все потоки CPU. Для Hyper-V не меньше 4Gb памяти и никак не меньше 2 потоков CPU надо оставить под операционную систему и систему виртуализации. Это самый экстрим минимум, возможна нестабильная работа как самой ОС, так и VM.

Либо же использовать управление ресурсами CPU. Можно почитать это и вот это.

Развёртывание с VMware Player

Единственная платформа виртуализации официально «благословлённая» на использование с EVE-NG это VMware:

Mware Player бесплатен для некоммерческого использования, поэтому его и беру. Скачиваем по ссылке, устанавливаем, для комфортной работы и снижения трафика при установке отключаем проверку обновлений и отсылку информации об использовании.

Если на компьютере используется встроенный Hyper-V, то его нужно предварительно отключить (cmd запускать от имени Администратора):

C:\WINDOWS\system32>bcdedit /set hypervisorlaunchtype off

Затем перезагрузить компьютер.

Для включения Hyper-V (машины VMware стартовать не смогут):

C:\WINDOWS\system32>bcdedit /set hypervisorlaunchtype auto
Подготовка VM

Качаем образ VM отсюда, формат OVA:

Размер образа VM в формате .ova — 1,3Gb. Запускаем Player, выбираем Open a Virtual Machine и затем выбираем наш образ EVE Community Edition.ova:

Pleyer предложит выбрать место для распаковки. Кто не знает, OVA просто архив и его можно распаковать любым архиватором. Внутри будет файл .vmdk и файлы настройки.

Update 02.07.2020

Прошло время и формат OVA заменили на OVF, вроде как он прогрессивнее. Размер образа стал поменьше ~1,04Gb. В плане установки принципиальных отличий нет.

Распаковка в формат VMDK займёт некоторое время, после чего VM появится в списке для запуска. Выбрать VM и обязательно отредактировать свойства:

Выбрать необходимое количество памяти для VM и в свойствах Processors отметить чекбокс Virtualize Intel VT-x/EPT or AMD-V/RVI. Если этого не сделать не будет работать вложенная виртуализация и всё будет печально, а при входе в машину отображается сообщение:

Выбрать сетевую карту, которая смотрит в интернет: Network adapters — Configure adapters. Если этого не сделать, то машина может при старте зацепиться не за ту физическую сетевую и в результате веб-интерфейс окажется недоступным, поэтому нужно:

После всех настроек стартуем VM. Это уже готовый образ EVE-NG, его нужно было только подцепить, что мы и сделали — в этом отличие (и удобство) данного вида установки.

Вводим root/eve и при отработке скрипта первичной настройки VM жмём везде Enter. Машина получит адрес в подсети домашнего компьютера.

Развёртывание с VirtualBox

Платформа виртуализации VirtualBox официально не поддерживается и не рекомендуется к использованию (!)

Развёртывание с Hyper-V

Платформа виртуализации Hyper-V официально не поддерживается для развёртывания EVE-NG. И тут ещё есть здоровенный косяк в работе, о нём в конце статьи.

Для себя всё же по совокупности плюсов считаю эту установку основной, поэтому далее все детали работы EVE-NG будут рассматриваться в Hyper-V.

Подготовка Windows

Windows 10 Pro имеет встроенный Hyper-V последней версии — удобно, бесплатно и грех им не пользоваться. Если есть быстрый интернет, то всегда неплохо загрузить помощник по обновлению и обновиться:

Далее, Коммутатор по умолчанию в Hyper-V появился довольно давно вместе с очередной новой сборкой Windows 10, пользоваться им было удобно, но после обновления на версию 1809 с ним какие-то непонятные глюки, поэтому от его использования отказался.

Идём Диспетчер Hyper-V — Диспетчер виртуальных коммутаторов, создаём там новый Внутренний HUB1:

Среди сетевых адаптеров появился новый vEthernet (HUB1):

Расшариваем для него общий доступ к интернету через основную сетевую карту:

иртуальная сетевая vEthernet (HUB1) получает статический адрес 192.168.137.1/24

Подготовка VM

Создаём новую VM, выбираем машину 1 поколения, остальное по умолчанию. После создания редактируем параметры:

  • Память. Увеличить количество памяти, динамическую память использовать не надо;
  • Процессор. Увеличить количество виртуальных процессоров;
  • Сетевой адаптер. Выбираем подключение к HUB1;
  • Контрольные точки. Снять чекбокс Использовать автоматические контрольные точки — это сэкономит время на ожидание слияния дисков после выключения и последующего запуска VM;
  • Автоматическое действие при запуске. Выбрать Ничего.

Запускаем PowerShell от имени Администратора и выполняем (VM должна быть выключена):

Set-VMProcessor -VMName VMName -ExposeVirtualizationExtensions $true

Это включит вложенную виртуализацию для VM.

Качаем образ VM отсюда, формат ISO:

Размер ISO 800Mb, добавляем ISO в DVD-дисковод VM, стартуем VM.

Установка Ubuntu

Убунту она Убунту и есть, никаких отличий от установки оригинала и везде можно жмакать Yes/Enter, кроме:

  • Install EVE VM

После установки Ubuntu будет перезагрузка и потом работает скрипт по установке уже EVE-NG. Всё очень просто и довольно быстро.

Главное отличие от предыдущего метода: это не готовая машина ENE-NG, а такой полуфабрикат (можно сравнить размер загружаемых файлов, «полуфабрикат» ISO 800Mb и готовый образ OVA 1,3GB). После установки Ubuntu происходит установка скриптом EVE-NG из скачанных с интернета файлов. Другими словами, после установки Ubuntu у неё сразу должен быть выход в интернет (иначе ничего не срастётся).


Обновление

По факту новые версии EVE-NG Community выходят редко, последняя версия уже была установлена, поэтому на данный момент обновлять ничего не надо:

Когда через полгода появится новая версия, то подробно шаги обновления расписаны здесь.

После обновления на версию v2.0.3-102/105 нужно почистить кеш браузера. По крайне мере, Яндекс.Браузер (версия 19.12.2.61 beta) постоянно обновляет страницу входа, пока не почистишь кеш.

Не забываем также чистить виртуалку после обновления:

# apt-get autoremove

Ещё 1 момент: если VM работает штатно, в новой версии нет существенных исправлений, то в общем-то лучше и не обновляться. Надо понимать, что обновление всегда может нарушить существующую работу VM и уж конечно перед обновлением всегда нужно создавать контрольную точку.

Работа с VM

Предварительные действия

Первым делом нужно добавить в исключения антивируса все виртуалки, если это ещё не было сделано. По репортам при глубоком анализе антивируса (deep inspection) сильно замедляется работа VMware. И тормозить может даже на системах i7/64Gb+, хотя на моём Hyper-V и бесплатном Касперском никаких эффектов не обнаружил (бесплатный?). Уровень безопасности в антивирусе выставлен на высокий.

Первый запуск

VM загрузилась, на стартовом экране указаны реквизиты для входа root/eve, вводим их.

При первом входе отрабатывает скрипт, который позволяет сменить пароль рута, выбрать имя хоста и сетевые настройки. Меняем сетевые настройки:

  • Выбираем static;
  • IP 192.168.137.2, маска 255.255.255.0;
  • Шлюз 192.168.137.1;
  • DNS произвольные, например гугловские 8.8.8.8 и 8.8.4.4;
  • Подключение direct connection

После работы скрипта VM ещё раз перезапускается:

Сразу доступен SSH, можно подключаться через Putty. Если потом захочется запустить скрипт и изменить настройки, то написано как это сделать в FAQ (могут улететь настройки лаб).

Пингуем с компьютера 192.168.137.2, пингуем с VM сайт в интернете (ya.ru). Всё должно воркать.

Подключение к Веб

Забиваем в браузере IP VM, логин/пароль admin/eve, третий параметр пока трогать не надо. Попадаем в рабочую среду — тут можно создавать папки и непосредственно файлы лаб.

Для лабы достаточно задать имя, сохранить и лаба открывается — это основная среда для работы. Самый важный пункт тут Add an object — Node, открывается список поддерживаемых железок. Пока все железки выделены серым, то есть недоступны, нужно загрузить образы прошивок для них в VM:

Единственное что доступно — это очень простой по своим возможностям Virtual PC в самом низу списка.

В версии v2.0.3-102 vIOS переименован в vIOS Router, а vIOS L2 в vIOS Switch.

Загрузка образов

Полный список образов в документации.

Тут надо сказать, что образы отличные от списка могут как нормально работать, так и не работать. К примеру ASAv 9.5.2 нормально работает, хотя нет в списке. Коммутатор ExtremeXOS v30 нормально работает, тоже нет в списке и так далее.

Время идёт, на сайте EVE-NG выложен подробный Howto к каждому образу. Написано всё доступно. Можете почитать там. Можете читать тут, как делал я с моими комментариями.

Спасибо читателям за ссылку на большую коллекцию образов для EVE-NG. Если попадётся образ в формате tar.gz, то распаковываем:

# ls
nxosv9k-7.0.3.I7.4.tar.gz
# tar xvzf nxosv9k-7.0.3.I7.4.tar.gz
nxosv9k-7.0.3.I7.4/
nxosv9k-7.0.3.I7.4/sataa.qcow2

Закидывать образы на машину с помощью WinSCP. Цепляемся к VM, поэтому логин/пароль root/eve по умолчанию, ну или если при работе скрипта пароль root был сменен, то соответственно.

  • Залить образы и запустить скрипт по настройке прав:
# cd /opt/unetlab/wrappers
# ./unl_wrapper -a fixpermissions

У меня все образы нормально работали сразу без этого скрипта. Но в документации пишут, что его нужно выполнять. Нужно, значит нужно. Далее выполнение этого скрипта подразумевается после установки нового образа.

VM перезапускать не надо, добавленные образы сразу будут доступны.

Образы CISCO

Образов для CISCO больше всего и они в разных форматах:

  • Из всех образов, что я нашёл, образы IOL/IOU самые свежие и в них больше всего плюшек;
  • Возможно есть более свежие vIOS, нашёл только эти;
  • Образы для Dynamips сами по себе довольно старые.
Образы IOL/IOU

Забирать тут:

i86bi_LinuxL2-AdvEnterpriseK9-M_152_May_2018.bin
i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin

Заливать как есть (названия файлов менять не нужно) в:

/opt/unetlab/addons/iol/bin/

Для запуска IOL/IOU нужна лицензия. Как сделать лицензию там же, в файле Readme.

QEMU

На образах QEMU роутеров vIOS обнаружил кучу глюков, при работе с NAT, при работе с IPsec. Лучше выбирать образы посвежее.

Молчаливый парень с Youtube показывает как заливать и раздаёт образы для QEMU (в описании к видео).

Папки для образов:

/opt/unetlab/addons/qemu - создать папки vios.. и viosl2.., стандартное название образа внутри папки virtioa.qcow2 

Полный список как должно начинаться название папки для конкретного оборудования можно посмотреть в файле:

/opt/unetlab/html/includes/init.php

Или в документации.

Называйте папки образов сразу по версии прошивки, это удобно потом при создании лабы.

Dynamips

Он же раздаёт образы для Dynamips:

Залить образы:

/opt/unetlab/addons/dynamips - все образы прям в корень
vIOS L2

Всё рассказанное в статье — рабочее, стараюсь максимально проверять. Однако в процессе работы всегда обнаруживаются косяки нюансы, так для образа из видео vIOS L2 15.0 от 05.06.2014 выяснилось (смотри комментарий к статье), что его порты L3 по умолчанию и их нужно перевести на L2 командой switchport.

Стал разбираться, что же должен уметь vIOS L2:

  • Layer-2 forwarding;
  • Switchport;
  • 802.1q trunk, 802.1q vlans;
  • Spanning Tree;
  • Port-Channel (Pagp and Lacp);
  • 802.1x passthrough;
  • Port-ACLs;
  • Dynamic Arp Inspection;
  • DHCP Snooping;
  • IP device tracking;
  • Switched Virtual Interfaces;
  • Layer-3 forwarding over SVIs;
  • Routing protocols.

Что не умеет:

  • Зеркалирование трафика (SPAN);
  • Private Vlan;
  • L3 Port-Channel;
  • QoS.

Заодно нашёл образ посвежее тут (версия 15.2 от 14.05.2015). Если ссылка не работает.

То используйте Tor Browser, пока он ещё разрешён в РФ.

У данного образа порты по умолчанию L2. Файл нужно переименовать в virtioa.qcow2, положить в папку viosl2..

Там же лежит более свежий vIOS (15.5(2)T против 15.4 из видео).

Mikrotik

Официально поддерживается Mikrotik 6.30.2, 6.40, идём на сайт и там таких версий уже нет. Минимальная на момент 6.45.8, качаем её.

Распаковываем chr-6.45.8.img.zip, переименовываем chr-6.45.8.img в hda.qcow2, заливаем в:

/opt/unetlab/addons/qemu/mikrotik-6.45.8/

По умолчанию логин admin без пароля.

ExtremeXOS

Эмулирует работу свича фирмы Extreme Networks  с прошивкой v21. Сейчас поддерживается только 1 образ ExtremeOS 21.1.14. Взять его можно тут.  Называется он там EXOS-VM_v21.1.1.4-disk1.qcow2.

Скачать файл, переименовать в hda.qcow2, залить в папку:

/opt/unetlab/addons/qemu/extremexos-21/

По умолчанию образ загружается с 3 интерфейсами, 1 из которых менеджмент. Можно увеличить до 12. Это ограничение образа. Получится 11 обычных интерфейсов и 1 менеджмент.

S-Terra FW

Официально поддерживается Gate 4.1, но это штука довольно-таки устаревшая. Заходим сюда, качаем зазипованный Gate 4.2 в формате .qcow2, разархивируем, переименовываем в virtioa.qcow2, кладем в папку:

/opt/unetlab/addons/qemu/sterra-42/

Реквизиты для входа administrator/s-terra, а лучше срезу перейти на сайт и прочитать про начальную инициализацию.

одробнее в записи S-terra VPN


Создание образов для EVE-NG

Для всяких виндузов и линухов можно их сначала устанавливать на VMware, потом закидывать файл .vmdk виртуальной машины в EVE-NG, конвертировать в .qcow2, пользоваться. Подробнее на примере Kali Linux далее.

Kali Linux

Рано или поздно потребуется Kali Linux, чтобы наводить ужас на железки CISCO. Кому лень делать самому, могут забрать здесь (логин/пароль для входа в VM root/toor).

Если работать с Kali не доводилось, то что тут есть хорошего для сети:

  1. Терминальная утилита macof (пример: macof -n 1000, для генерации 1000 mac-адресов), генерирует mac-адреса для атаки переполнения CAM-таблицы коммутатора. После переполнения CAM-таблицы, коммутатор будет работать как концентратор, рассылая кадр из всех портов, кроме того, через который кадр поступил. Такая ситуация даёт возможность перехватывать чужие кадры, что при нормальной работе коммутатора невозможно;
  2. Сниффер dsniff (пример: dsniff -c, для автоматического сбора паролей, передаваемых открытом тестом), привет telnet’у.
  3. Терминальная утилита arpspoof (пример: arpspoof -t IP1 IP2, подменяет ARP-кеш жертв IP1 и IP2), позволяет проводить атаку man in the middle, когда все пакеты между жертвами идут через компьютер атакующего. Необходимо включить пересылку пакетов на интерфейсе: sysctl -w net.ipv4.ip_forward=1;
  4. Многофункциональная утилита Yersinia (запуск yersinia –G ), для сбора информации и атак на 2 уровне: CDP, DTP и так далее.

Данные сведения представлены исключительно в целях обучения противодействию сетевым атакам.

Для тех, кто хочет разобраться — нужно скачать готовую VM Kali для VMware, распаковать zip-архив, запустить консольную утилиту vmware-vdiskmanager (идёт в комплекте с Workstation Pro):

C:\WINDOWS\system32\ cd C:\Program Files (x86)\VMware\VMware Workstation\

C:\Program Files (x86)\VMware\VMware Workstation\ vmware-vdiskmanager.exe -r "J:\Kali\Kali-Linux-2018.2-vm-amd64.vmdk" -t 0 "J:\Kali\kalinew.vmdk"
...
Creating disk 'J:\Kali\kalinew.vmdk'
Convert: 100% done.
Virtual disk conversion successful.

Задача получить единый диск для VM. После конвертации, старые части диска *.vmdk нужно удалить, Workstation Pro тоже больше не нужна. Теперь получившуюся папку с файлами нужно закинуть в EVE:

И запустить конвертацию уже в QEMU (все сборки Linux в EVE имеют название hda.qcow2):

# cd /opt/unetlab/addons/qemu/kali
# /opt/qemu/bin/qemu-img convert -f vmdk -O qcow2 kalinew.vmdk hda.qcow2

После чего получившийся диск закинуть уже по месту (папка должна обязательно называться /opt/unetlab/addons/quemu/linux..), а исходные файлы удалить.

ACS сервер

Нода ACS сервера жрёт ресурсы и сильно тормозит EVE, на слабых установках лучше её не ставить.

Для полноценной работы с AAA нужен ACS сервер. Со странички проекта видим, что версия ACS 5.8.1.4 точно подойдёт, файл должен называться hda.qcow2 и лежать в папке /opt/unetlab/addons/qemu/acs-5814, к примеру.

Вконтакте есть готовый образ, но он без пароля для CLI и без реквизитов.

  • Скачать ACS ISO;
  • Установить VMware Workstation Pro, при запуске выбрать пробную лицензию;
  • Создать машину 2 ядра, 4Gb оперативки, тип Red Hat 6 64-bit, диск 1 файлом и подсунуть ISO;
  • Выбрать тип установки 1:
  • Дождаться пока отработает и перезагрузится:
  • На этом моменте выключить машину и закачать файл диска vmdk на EVE, затем конвертнуть:
# cd /opt/unetlab/addons/qemu/acs
# /opt/qemu/bin/qemu-img convert -f vmdk -O qcow2 acs.vmdk hda.qcow2
  • Перенести готовый диск по месту, кильнуть vmdk и иже с ним.

Дальше уже ACS сервер запускается в лабе EVE, настраивается по месту с момента когда машину потушили — setup. Ряд простых настроек, дальше сервер проводит окончательное конфигурирование, перезагрузка и вот можно присоединяться через Веб: HTTPS, реквизиты: ACSAdmin/default. Будет предложена смена пароля:

После этого попадаем на страницу ввода лицензии:

И пока лицензия не будет введена, дальше ничего сделать нельзя. Как установить демо-лицензию:

Ещё важный момент, продукт для лицензирования называется Cisco Secure Access Control System Evaluation:

Файл лицензии ACS……..lic приходит на почту, его нужно подпихнуть через браузер в ACS и готово — 90 дней/50 устройств:

На сайте EVE-NG написано как выполненные настройки сделать настройками по умолчанию для образа.

Windows 2012 R2

Из нормальных образов Windows, что я нашёл, были Windows 7 и Windows 2008 lite. Возможности этого lite сильно урезаны в пользу размера образа.

Создание образа по найденным солюшенам без использования конвертации с VMware.

Смысл в 2 словах: нужно создать VM внутри VM EVE, скормить туда установочный образ Windows, образ с дровами Virtio, запустить VM и во время установки Windows подсунуть дрова Virtio. Пошагово:

  • Качаем virtio-win.iso тут;
  • Качаем с помощью WinSCP этот ISO и ISO Windows в папку /tmp/iso/ VM EVE;
  • Создаём виртуальную машину:
# cd /tmp
# qemu-img create -f qcow2 ws2012r2.qcow2 15g
  • Включаем виртуальную машину, подпихивая туда оба образа ISO (лучше сначала скопировать в блокнот, потому как команда должна быть в 1 строчку, иначе ошибка):
# qemu-system-x86_64 -m 2048 -enable-kvm -cpu host -smp cores=2,threads=1,sockets=1 -net nic,model=virtio,macaddr=00:16:35:AF:92:4B -net tap -drive file=ws2012r2.qcow2,if=virtio -device virtio-balloon-pci -vnc :1 -drive file=/tmp/iso/en_windows_server_2012_r2_x64_dvd_2707946.iso,index=0,media=cdrom -drive file=/tmp/iso/virtio-win-0.1.141.iso,index=1,media=cdrom

Не смог разобраться какой он там хитрый cfg-файл использует (в видео), поэтому без него. Также не смог разобраться почему при параметре -display sdl ошибка Could not initialize SDL(No available video device) — exiting, поэтому запускаем VNC-сервер  с параметром -vnc :1. Далее запускаем на компьютере VNC-viewer к хосту 192.168.137.2:5901 (нужно установить клиентский пак, рассказано в следующем пункте Работа с образами):

  • Далее Windows не видит диска, нажимаем Load driver, нажимаем Browse, раскрываем CD-ROM с virtio-win-0.1.1, папка viostor, папка 2k12r2, папка amd64:
  • Драйвер подгружается, выбираем его, запускаем установку:
  • Когда Windows установится, вбиваем пароль администратора. Если Windows англоязычная как у меня, то нужно на компьютере переключить раскладку клавиатуры в EN, иначе пароль вбиваться не будет. Затем в Диспетчере устройств ставим драйвера для сетевой из папки NetKVM и для balloon из папки Balloon;
  • Размер получившейся VM примерно 7,7Gb, переименовываем файл в virtioa.qcow2, переносим по месту /opt/unetlab/addons/qemu/win-2012r2.

Внешний доступ

Как сказано в разделе 9.2 Cookbook, чтобы внутри лабы порт ноды связать с внешними ресурсами, нужно использовать Management Cloud:

Также для нормальной работы в vSwitch ESXi должен быть разрешён режим Promiscuous mode. Проверил, у меня получилось, что должны быть разрешены Promiscuous mode и Forget transmits:

Выключение любого из них приводит к неработоспособности.

Внешний доступ из Hyper-V включается через PowerShell (спасибо читателям, за подсказку):

Set-VMNetworkAdapter -VMName EVE -MacAddressSpoofing On

Где EVE — имя VM EVE-NG.

Варианты работы с устройствами

Образы залиты, вот теперь по поводу 3 пункта:

  • Html5 console — консоль каждого устройства открывается в новой вкладке браузера, копипаст не работает и вообще неудобно;
  • Native console — более удобная штука, далее работа только с ней, требует установки клиентского пака.

Если для какой-то железки было залито несколько версий образов, то как уже говорил, выбрать версию можно при добавлении устройства в лабу:

Пользуемся конечно же возможностями клиентского пака.

Клиентский пак

Чтобы открыть консоль, надо щёлкнуть на железке. В Яндекс.Браузере выглядит так:

Сколько чекбокс Запомнить выбор ни отмечай, не запоминает. Отписал в поддержку, поддержка подтвердила наличие проблемы и обещала исправить в ближайших версиях (24.05.18 прислали письмо, что пофиксили, проверил, теперь всё в норме). Поэтому скачал специально для EVE-NG Chrome, в нём всё нормально и выглядит это так:

Прошло время и опять всё поменялось, теперь в Яндекс.Браузере так (уже без чекбокса):

Ещё прошло время, снова появился чекбокс «Запомнить выбор».  Уже дальше не буду этот момент отслеживать.

Если при нажатии на работающую ноду (при установленном клиентском паке и работе через Native console) ничего не происходит, то возможно сбились настройки обработчика ссылок. Файлы, для внесения в реестр информации какая программа будет обработчиком, находятся в папке установки клиентского пака:

C:\Program Files\EVE-NG

Если для Putty не решает, то как вариант попробовать выполнить эту инструкцию. Всё тоже самое: reg-файл, но возможно именно он поможет.

Теперь про буфер обмена:

  • Для Putty буфер обмена работает;
  • Что касается UltraVNC, то тут всё печально, кусок переписки с поддержкой:
Hi! How to enable ultravnc clipboard for eve-ng?

You can't ....
VNC Server is embedded in Qemu binary

Как это обойти? Разрешить внешний доступ, подключить ноду через Management Cloud, использовать RDP-подключение с домашнего компьютера. Не самое изящное решение, но лучше чем ничего.

SecureCRT

Гораздо более удобная штука нежели Putty. Окошки терминалов устройств расположены очень компактно.

Программу забирал здесь. Патч от версии v7.3.1.685. Для регистрации в качестве обработчика нужно запустить файл win10_64bit_sCRT.reg из установки клиентского пака EVE-NG. Ну и выглядит это так:

Wireshark

Установка клиентского папка позволяет запускать Wireshark для каждого интерфейса.

Пароль рута обязательно менять через скрипт, если просто сменить его через passwd, то Wireshark не сможет подключиться к VM. Возможно отвалится что-то ещё.

Правой кнопкой на устройстве Capture — выбор интерфейса:

И может вылезти вот такое вредное окошко:

"Connecting to "root"@192.168.1.68..."
The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is.
The server's ssh-ed25519 key fingerprint is:
ssh-ed25519 255 1a:04:1b:c8:5e:85:fb:2b:33:fb:b8:7a:21:5f:82:69
Connection abandoned.

Внутри окна самого Wireshark при этом будет пусто. Это значит что ещё не было подключений к VM EVE-NG через SSH и ключ SSH не был сохранён в реестре. Достаточно подключиться через Putty, подтвердить установку ключа и заново запустить Wireshark:

Что делать, если eve-ng wireshark не захватывает трафик? Аааа, па-маги-тееее! Открывается пустое окно и привет. Уже говорил выше — неверный пароль для root. Проверяем:

C:\Program Files\EVE-NG\wireshark_wrapper.bat

и видим что там неправильный пароль, замена в файле может не помочь. Лучше всего запустить первоначальный скрипт (могут улететь настройки лаб) и сменить пароль на рута.

Импорт и экспорт лаб

Лабы можно легко перемещать между разными инстансами EVE-NG:

Вот подробное видео как всё это можно сделать.

Обращаю внимание что выгружается конфигурационный файл лабы. Чтобы лаба заработала после её импорта нужно догрузить используемые в ней образы. Версии образов и их название должны быть как в лабе.

Настройка образов

Не хочется каждый раз запуская ноду, настраивать дефолтный образ с нуля, на это уходит время. Особенно это касается образов с операционными системами. Поэтому есть штатная возможность выполнить настройки/установить программы и сохранить всё это в образ. Как это сделать сказано тут.

# cd /opt/unetlab/tmp/0/00177a37-4c91-4648-95a0-ac4f0281f7a2/3/
# qemu-img commit virtioa.qcow2
Image committed.

При этом не меняются дефолтные настройки самой ноды: количество интерфейсов, выделяемая память и так далее. Всё то надо менять руками (может можно как-то настроить тоже, не знаю как). Ещё можно посмотреть видео по данной нстройке.

Также есть хорошее видео как работать с начальной конфигурацией устройств.

Баги EVE-NG

Собственно каких-то особых багов не обнаружил.

Первый баг, который встретил, что совместное использование нод IOL и QEMU в лабе под Hyper-V вызывает kernel panic. В вебку при этом вылезают красные прямоугольники сообщений об ошибке, а если открыть машину в Hyper-V, то там трейс-лист упавшей Ubuntu:

Методов как-то обойти это нет, на форуме тишина. Соответственно для таких лаб переключаюсь на VMware.

Второй баг связан с обновлением. Так после некоторых обновлений у меня переставала запускаться часть сохранённых лаб. Образы в лабе стартуют и тут же останавливаются. Пересоздаешь лабу, всё нормально.

Вкусняшка

Под конец на сладкое оставил вкусняшку. Лучшим, тем кто дочитал до конца. Честно признаться не верил, что это всё заработает и подозревал какой-то развод. Но оно работает. Заинтриговал? 

Это VM с EVE-NG от проекта PNETLab. Идём сюда, выполняем все шаги как указано.

В браузере переходим по IP адресу VM, перекидывает на сайт (у VM должен быть выход в интернет). Логинимся на сайт, а попадаем внутрь VM. Жмакаем кнопку Download labs, затем в открывшемся окне Go to Store. Выбираем лабы по категориям. Количество лаб (несколько десятков), качество проработки — поражают:

Нажимаем на нужную лабу, затем Get lab, оказываемся снова внутри виртуалки и там Download:

Самое приятное, что необходимые образы будут закачаны автоматом (это просто праздник какой-то..). Ну а потом эти образы можно использовать уже для своих лаб.

Конкретно в лабах раздела CCIE Enterprise легко и просто загружаются образы для CISCO SD-WAN. Не надо шерстить десятки форумов в поисках этих образов. Подарок? Конечно!

Опробовал на VirtualBox и VMware. Если не работает Wireshark, читай соответствующий раздел (особенно если до этого стояла обычная EVE-NG).

Оно же на Hyper-V

Несмотря на баг хотелось всё же на Hyper-V попробовать тоже. Когда запустил эту VM на Hyper-V, то увидел вот такую картинку.., ничего не загружается.. и сильно опечалился:

На самом деле это сообщение можно смело проигнорировать (как его убрать будет дальше), а долгая загрузка (5 минут) была из-за ожидания DHCP, которого в случае с Hyper-V нет.

По порядку (VM на VirtualBox):

  • Запускаем скрипт начальной инициализации EVE-NG (смотри выше) и перенастраиваем IP на статику для Hyper-V;
  • Делаем конвертацию диска в .vhd силами VirtualBox (смотри здесь, второй способ);
  • Создаём VM для Hyper-V с включением вложенной виртуализации через пошик (рассказано выше в секции по Hyper-V)

Теперь как избавится от зловредной надписи при старте. Залогиниться в VM:

# vim /etc/modprobe.d/blacklist.conf

blacklist i2c_piix4 - добавить строчку

Закрыть редактор и:

# update-initramfs -u -k all

Всё, можно юзать. На данный момент пользую EVE-NG только от PNETLab, только на VMware, а установку на Hyper-V забросил. Хотя в целом лично для меня Hyper-V лучше и удобнее, кроме этого случая (из-за непобедимого бага).

VM от проекта активно обновляется, пока во всяком случае, число лаб растёт. Как оказалось не все лабы рабочие, не все лабы подгружают образы. Тем не менее этот проект — хорошее подспорье.

Потребление ресурсов

Сначала про потребление памяти, потом про процессор.

Память

Ограничил VM 3Gb памяти. Накидал простую топологию из 1 ASA, 1 vIOS, 1 vIOS L2, 1 3725 и 3 VPS (настройки для устройств по умолчанию), запустил:

Смотрим, пункт меню Nodes:

Для VPC потребление памяти не указано, ну наверное совсем мало, оставшиеся 4 железки — 2 гига, смотрим в самой Ubuntu:

Free memory is the amount of memory which is currently not used for anything. This number should be small, because memory which is not used is simply wasted.
Available memory is the amount of memory which is available for allocation to a new process or to existing processes.

Доступно памяти 1,4Gb из 3, а 690Mb вообще ничем не занято.

Это было для Hyper-V, проверяем для VMware (топология та же):

Доступно памяти 1,5Gb из 3, при этом 1Gb ничем не занят. Гипервизоры разные, поэтому отличия есть.

ВыводСреда EVE-NG выделяет реальной памяти для устройств меньше, чем расчётное значение. И этим можно пользоваться, уменьшая размер памяти для нод ( в зависимости от предполагаемой нагрузки на ноду). 

Рассмотрим следующее (взято тут):

Теперь смотрим потребление памяти:

Как так, доступно 14,7Gb из 16? Оказывается почти для всех нод  размер памяти уменьшен до 256Mb со стандартных 1024:

Процессор

Мне нужно запустить лабу, где 59 нод (из PNETLab, лаба для CCIE с SD-WAN). Понятно что важна в первую очередь не частота ядер, а их количество.

Начинаю с Hyper-V. Попытки задействовать 6,8,10 потоков моего 12-поточного i7-8700 ни к чему хорошему не привели. Ядра загружены под 100%, температура на CPU >60°C. Ну и VM работает как-то нестабильно.

Поэтому  задействую все 12 потоков. А как же хостовая ОС? Ограничу для VM потребление каждого потока 60%.

Переводим гипервизор в новый режим Core, этот режим позволит детально управлять ресурсами CPU:

C:\WINDOWS\system32>bcdedit /set hypervisorschedulertype core
Операция успешно завершена.

Перезагружаем компьютер, проверяем:

Теперь вставляем принудительно для VM 2 потока на ядро:

Set-VMProcessor -VMName PNETLAB -HwThreadCountPerCore 2

И выставляем 12 потоков 60% уже в свойствах VM:

Сначала запускаю все образы IOL, на удивление всё стабильно и вообще не потребляет ресурсов:

Теперь нужно запустить адовые по потреблению образы SD-WAN. Запускаю их отдельно от IOL из-за бага Hyper-V.:

И хотя внутри VM загрузка CPU под 100% на самом деле это всего лишь 60%:

На этом всё. Продолжаем на VirtualBox, он оказался аутсайдер, после запуска буквально нескольких нод из SD-WAN в вебе VM посыпались ошибки.

Продолжаем на VMware Player. Вот на нём наконец-то всё запустилось и выглядит это так:

Ядра снова под 100% и температура >60°C. Каких-то средств по управлению ресурсами CPU, Player не предоставляет. Попробовал VMware Workstation всё тоже самое, тонко настроить использование процессора нет возможности.

?

Так что тут пока патовая ситуация: в Hyper-V баг, а VMware не умеет процессором пользоваться. Может это я не умею VMware пользоваться?  Если знаешь что тут можно придумать, напиши в комментариях.

Обращаю внимание что расход памяти для 59 нод меньше 10Gb (41% от 24Gb). И всё упирается в ядра CPU, а не в память. Ну и просто посмотри как выглядит это великолепие:

Ответить

Вы должны быть зарегистрированы в для возможности комментировать.