Как установить eve ng

Обновлено: 01.07.2024

Добрый день. Не смог толком найти информации о pnetlab кроме той что на сайте pnetlab, и ругательного поста на форуме евы с обвинегиями в плагиате и других смертных грехах. Что это за зверь, есть ли унего преимущемтва перед евой ?

У меня рабочая станция: XEON E5-2628L (8 ядер 16 потоков) - 2 шт
64 Gb озу
Raid 0 - два вертуальных диска по 1Тв
64 Gb swap у каждого.
Так вот я провел эксперимент. На одном VD был установлен PNETlab а на другом EVE-NG community.
Цел - посмотреть предельные возможности обеих систем. Загружался образ Juniper vmx-14.1R4.8.
Результат.
PnetLab загрузил около 60 образов и вывел ошибку типа ОЗУ занята больше чем на 75%.
EVE-NG community загрузил 128 образов (несмотря на то что по документации для community только 64).
После 30 образов я включал по 5 шт. Обе системы кряхтели но загружали до требования пароля. Swap у обоих систем был занят примерно на 2-3 %.
Скриншоты всех ситуаций сохранены. Но в принципе они нужны для подтверждения, если кто не верит. Все остальное на любителя. Доккер мне не пондравился, особенно терминал. Я пользуюсь SecureCRT мне удобно. Включение нескольких лаб одновременно очень хорошо, но я рисую все на одной лабе и могу включить что мне надо.
Поэтому для одиночного пользователя не вижу больших различий.

image

В данной статье приведен опыт инженера-сетевика по развертыванию виртуальной лаборатории EVE-NG в домашних условиях, для целей подготовки к экспертным экзаменам Cisco.

Я постарался собрать все основные вехи настройки, разбросанные по статьям в интернете и попытался добавить в топологию, попутно изучая, ansible — систему управления конфигурациями. Черновик статьи появился случайно, поскольку мне стало жаль терять накопленный опыт и решил сохранять его в отдельный файл. Вот его я и представляю на ваш суд.

Все решения, приведенные в статье, не претендуют на оптимальность, но абсолютно точно работают.

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.

Сегодня мы с вами поговорим о том, как добавляются образы устройств в эмулятор Eve-NG, рассмотрим это на примере Cisco L2, L3 и mikrotik. Напомню, что в предыдущей статья я рассказывал, как установить эмулятор eve.

Если вы хотите углубить свои знания по работе с роутерами MikroTik, то наша команда рекомендует пройти курсы которые сделаны на основе MikroTik Certified Network Associate и расширены автором на основе опыта . Подробно читайте ниже.

Ну и на вкусное, windows в eve-ng

Все, спокойно добавляйте win7 как обычную ноду и стройте топологии.

Windows в eve-ng

Всем спасибо за внимание! Если есть вопросы пишите в комментариях.

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.

Добавление образов Cisco

Первым делом подключаемся через WinSCP к нашей VM c eve, вводим ip логин и пароль. Далее переходим в каталог /opt/unetlab/addons/qemu/.

В нем создаем две папки с названием:

  1. viosl2-15 – это для L2 образа 15 версии;
  2. vios-15 – это для L3 образа 15 версии.

Образы Cisco l2 l3

Сами образы внутри папок нужно назвать virtioa.qcow2 – как на рисунке ниже.

Переименование образов

Далее для удобной работы можно также скачать и установить утилиты (если они еще у вас не стоят) которые предлагают разработчики там, putty, vnc, wireshark и тд.

Windows integration Pack

После заходим по ssh на нашу виртуальную машину и вводим команду «/opt/unetlab/wrappers/unl_wrapper -a fixpermissions» для того чтобы система увидела наши добавленные образа.

Применение образа eve

Теперь можно идти в web-интерфейс EVE-NG и в нодах выбирать cisco роутер и свитч.

Cisco vios l2 l3

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

Соединение устройств в eve эмуляторе


Образы циско

Зайти на устройство можно кликнув на него мышкой. Проверим командой «show cdp neighbor» видят ли устройства друг друга.

Cisco show cdp neighbor

Как видим все отлично работает, образ cisco успешно добавлены в эмулятор eve.

Установка EVE-NG

Подготовка хоста

В качестве хостовой я использую следующую систему: Intel Xeon X3240, 32Gb RAM под управлением Gentoo. Настройка KVM на Gentoo дело достаточно тривиальное и, по правде сказать, я не помню с какими подводными камнями мне пришлось столкнуться при её развертывании. Дело было давно.

Основное, что катастрофически сказывается на производительности лабораторного стенда типа EVE-NG, — это параметр ядра, который запускает возможность использования nested virtualization (вложенную виртуальзацию).

Подробнее можно прочесть по ссылке.

Подключение образов сетевых устройств

Проблема, с которой я столкнулся при добавлении образов — как называть директории, куда нужно складывать файлы hda.qcow2. Решение, как всегда, — реверс-инжиниринг. Список заголовков, обрабатываемых EVE-NG зашит в файле:

Приведу его здесь:

То есть, если нам необходимо добавить образ с любым Linux, как мы будем делать ниже, то достаточно создать директорию /opt/unetlab/addons/qemu/linux-что-то-там/ и положить в неё файл образа hda.qcow2.

Настройка окружения

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

Доступ к консоли маршрутизаторов

Несмотря на то, что в EVE-NG разработчики внедрили возможность доступа к консолям сетевых устройств по web с использованием HTML5, доступ со сторонних клиентов удобнее и привычнее. Основное удобство, которое предоставляется putty в моём случае, — это возможность использования буфера обмена. Не работает copy/paste в web-консоли.

Итак, процесс выглядит следующим образом:

Установка putty на машине, откуда будет осуществляться доступ. Я работаю на ПК c ubuntu, поэтому:

Но этого мало, нужно еще рассказать браузеру, в моём случае это chrome, как реагировать на ссылки вида telnet://. Для этого необходимо создать файл

/.local/share/applications/telnet.desktop следующего содержания:

После этого консоли будут отлично открываться в putty. Задачу перехода на gnome-terminal с вкладками или его аналог оставлю на потом.

Запуск сниффера трафика

Wireshark — насущная необходимость при изучении сетевых технологий. Очень много написано про его использование. Не стану повторяться. Опишу процесс его настройки.

Установка на клиенте:

Объяснять ему это придется в три этапа:

Этап 1:
Как и в случае с консолями, файл

Этап 2:
Обработчик в виде скрипта на bash на клиентской машине в любой директории из списка PATH:

Этап 3:
Ключевой ssh-доступ между клиентской машиной и EVE-NG.

На клиентской машине (вместо ip_eve поставить адрес EVE-NG):

После этого будет работать захват трафика в wireshark на стороне клиента. Что нам и требовалось.

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

Настройка инстанса сервера ansible

Необходимость ansible для виртуальных лабораторных топологий в начале пути была для меня неочевидна. Но со временем, на втором десятке лабораторных часов, приходит мысль — а не автоматизировать ли загрузку стартовых топологий в устройства, не перегружая их, тем самым экономя время?

Итак, с чего начать? С ограничений ansible! Да, они действительно есть. Для меня, как достаточно далекого от программирования, слишком жестоким оказалось предложение на одном из форумов — дописать обработчик телнета самому. Телнет нужен был для решения в лоб — настроить ansible на виртуальной машине EVE-NG и телнетится на консольные порты виртуальных маршрутизаторов. Но не тут-то было — работает только ssh.

Настройка telnet-сервера

У меня не вышло заставить EVE-NG показать мне консоль сервера стандартным способом через клик по девайсу. Чтобы не закапываться глубоко, я пошел в обход — настроил telnet-сервер. SSH v2, конечно, тоже имеется и работает с CSR, но уж очень медленно для интерактивной работы, да и бесполезно — у нас лабораторный стенд, а не продакшн.

Потом необходимость в сервере отпала, но запись в шпаргалке осталась, поэтому приведу и её.

После автоматического запуска xinetd, конечно, ничего не произошло, как нам обещали в интернете.

Нужно добавить в /etc/xinetd.d файл telnet следующего содержания:

и перезапустить сервер xinetd:

Проверяем телнет локально:

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

Теперь мы можем, настроив на соседней цыске в топологии адрес из подсети сервера, до него достучаться по telnet. Всё работает быстро, не в пример SSH.

Сбор топологии

Здесь всё чрезвычайно просто. Моя топология выглядит следующим образом:

image

Развёртывание подсистемы аnsible

Настройка CSR для работы с ansible

Выделим на каждом маршрутизаторe отдельный порт для управления и подключим к общему хабу с сервером ansible портами Gi2. Выберем подсеть для управления, у меня это 192.168.0.0/24. И назначим IP-адреса на портах в соответствии с номером маршрутизатора.

Эту же информацию занесем в /etc/hosts сервера:

На каждом маршрутизаторе настроим SSH v2 согласно ссылки. Всё тривиально, скажу лишь то, что для запуска требумеого нам SSHv2 нужно генерировать ключ более 768 бит, я выбрал размер 2048.

Проверяем доступ с сервера до маршрутизаторов по SSH, заодно собирая в хранилище ключи.

Сохраняем конфигурацию на маршрутизаторе:

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

image

Эта фича в EVE-NG, как и Unetlab до неё, работает с переменным успехом. Но будем надеяться.

Создание первого воркбука

Как мы помним, структура ansible состоит из двух основных частей — описания девайсов (inventory), и воркбука, собственно с логикой работы системы.

В нашем случае inventory достаточно примитивен и файл его содержащий (/etc/ansible/hosts) принимает вид:

Что раскрывается списком хостнеймов от R1 до R10 (помним, что мы уже прописали /etc/hosts для разрешения имён).

А вот с ворбуком придется повозиться.

Первым этапом, для того, чтобы залить конфигурацию, представляющую для нас лабораторный интерес, на виртуальный маршрутизатор IOS, нам необходимо сделать откат на начальную нулевую, содержащую только IP управления и настройки VTY.

Для этого мы попытаемся использовать модуль ios_command.

Основой всей работы по смене конфигураций в устройствах IOS для нас будет служить функционал команды привилегированного режима маршрутизатора:

Нулевые конфигурации будем хранить на сервере в домашнем каталоге нового пользователя под именем router в директории /home/router/default_configs/. Забегая вперед, скажу, что файлы будут иметь имена такие же, как и в inventory, т.е. в нашем случае это R1, R2 и т.д.

Создадим в /opt/ansible файл rollback.yml вида:

Итак, по порядку:

Название используемого инвентори:

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

Как я понял, это говорит о соединении с локальным обработчиком заданий. Могу ошибаться.

Отключение сбора информации о хостах:

Имя пользователя для соединения с устройствами:

Передача команды в устройство из инвентори:

Время ожидания отклика в секундах:

Ничего особо сложного, как мы видим, но есть одно но!

Гугл нам об этом не особо много расскажет, поэтому вооружаемся смекалкой и пытаемся найти кто же нам это заявил. И находим файл самого используемого нами модуля: /usr/local/lib/python2.7/dist-packages/ansible-2.3.0-py2.7.egg/ansible/modules/network/ios/ios_command.py, содержащий вот такой код:

Явно, что разработчики немного перегнули палку, отнеся все параметры configure к конфигурационному режиму, поэтому дописываем в соответсвующую строку:

Создание второго воркбука

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

Файлы начальных конфигурации лежат в /opt/ansible/IOS-XE-initials/base.ipv4, соответственно. Основное отличие данного сценария — это использование функционала модуля ios_config и передача права ему интерпретировать те команды, которые необходимо выполнить на устройствах.

На этом всё, спасибо за внимание. Если статья достойна продолжения, то следующей темой станет настройка взаимодействия IOS XR и ansible.

В данной статье приведено описание установки самого лучшего эмулятора сетевых устройств EVE-NG. Разработкой этого чуда занимаются те же ребята что сделали всеми нами любимый эмулятор UNetLab. Что для нас самое главное в eve можно собрать топологию с использованием микротиков (mikrotik), cisco, можно добавлять сервера и много еще интересного.

Для установки на домашний ПК нам понадобиться:

1) VMware workstation

2) Место 20 ГБ (можно и меньше, но лучше столько)

3) Поддержка CPU Inte-VT или AMD-V

Если вы хотите углубить свои знания по работе с роутерами MikroTik, то наша команда рекомендует пройти курсы которые сделаны на основе MikroTik Certified Network Associate и расширены автором на основе опыта . Подробно читайте ниже.

Добавление CHR MikroTik

Добавления микротика происходит почти аналогичным образом. Заходим также на виртуалку через winscp, переходим в каталог /opt/unetlab/addons/qemu/ и создаем там папку с именем mikrotik-X где X можно писать что угодно, главное, чтобы все что до него было так.

Добавление mikrotik в Eve-ng

Не забываем в консоли выполнить команду «/opt/unetlab/wrappers/unl_wrapper -a fixpermissions». Добавляем нашу виртуальную os микротика в эмулятор соединяем с реальной сетью (перед этим назначив ip интерфейсу CHR). Теперь можем зайти на него через winbox и проверить.

Тест CHR в Eve-ng

Развертывание эмулятора EVE-NG

Образ EVE-NG

Установка образа EVE-NG на vmware

Далее импортируем образ в удобное место (нажав два раз на скаченный файл) у меня вот так.

После дожидаемся импорта нашего образа с эмулятором EVE и заходим в настройки появившийся VM. Добавляем ей ресурсов (сколько не жалко). Я накинул 8GB озу и 4 проца.

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

Конфигурирование vm eve

В разделе процессор нужно обязательно поставить галочку «Виртуальный Intel-VT-x/ или AMD-V/RVI»


Включение Intel-v

Нажимаем ОК выходим на главный экран виртуалки и видим над разделом устройства надпись: «Обновить виртуальную машину». Жмем на надпись и делаем как на рисунках. (ее может и не быть)

Обновление EVE-NG

Мастер обновления ВМ

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

Логин и пароль eve-ng

После авторизации откроется мастер настроек, который предложит вам установить ip, dns, gateway, hostname и тд.

Мастер настроек Eve-NG Setup

После сервер должен загрузится полностью и можно заходить на веб интерфейс по ip который мы ему дали 192.168.13.249.

Web интерфейс EVE-NG

Раздел проектов Eve-NG

В следующий статье рассмотрим то как добавлять образы в систему и строить различные топологии. А на этом все, всем спасибо надеюсь статья будет полезной. Если есть вопросы оставляйте их в комментариях.

Читайте также: