Как установить eve ng
Перейти к содержимому

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

  • автор:

Установка и использование виртуальной сетевой лаборатории EVE-NG совместно с Ansible. Первый опыт

image

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

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

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

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

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

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

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

Для процессоров Intel:

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

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

Образы сетевых устройств для подключения находятся в свободном доступе на самом cisco.com, для скачивания достаточно иметь учётную запись начального уровня. Нам понадобятся XRv и CSR.
Скачиваем по указанными ссылкам и следуем рекомендациям в how-to.

Проблема, с которой я столкнулся при добавлении образов — как называть директории, куда нужно складывать файлы 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 — насущная необходимость при изучении сетевых технологий. Очень много написано про его использование. Не стану повторяться. Опишу процесс его настройки.

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

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

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

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

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

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

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

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

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

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

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

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

Но мы старые инженеры и не привыкли отступать! Если гора не идёт к Магомету, то двинем мы к ней — настроим отдельный инстанс с ububtu в самой топологии, благо для этого есть возможность.
Как разворачивать в KVM образ скаченный с ubuntu.com я приводить не буду. Делал я это на отдельной машине, настраивал и заливал в EVE-NG. После установки нам понадобятся пакеты с telnet-сервером и настройка статического IP-адреса.

Настройка 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 доступен в OVA и ISO формате. Открытый стандарт виртуальных машин (OVA) представляет собой tar-архив, в который упакованы диски и конфигурационные файлы виртуальной машины. Данный файл может использоваться для развертывания машины в VMware workstation, Player, ESXI. Обратите внимание, что использования EVE-NG как гостевой виртуальной машины снижает производительность. Это может быть незаметно, если у вас достаточно ресурсов на хосте виртуализации. Также EVE-NG может быть установлен на физические машины, без использования гипервизора, используя установку с iso образа. Данный метод называется установкой на “голое железо” (bare metal) и является рекомендуемым методом установки EVE.

    (предпочтительный вариант)

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

Основные потребности и ограничения

Для EVE-NG требуется:

  • Поддержка технологии Intel CPU VT-x/EPT
  • Одно из следующего списка:
    • Ubuntu 18.04 64bit / 16.04 64bit. (Ubuntu 18 не поддерживается, т.к. не содержит необходимых библиотек для EVE). Начиная с 3 версии EVE-NG Pro поддерживается только 18.04 версия. EVE-NG Community работает на 16.04.
    • VMware ESXi 6.0 или новее
    • VMware Workstation 12.5 или новее
    • VMware Fusion 8 или новее
    • VMware Player 12.5 или новее
    • Не поддерживается Oracle VM VirtualBox.
    • Не поддерживается Citrix XenServer.
    • AMD-V/RVI процессоры совместимы (практически без ограничений), но официально не поддерживаются командой разработчиков EVE-NG Team, т.к. возможны проблемы с виртуализацией qemu образов.
    • Hyper-V and Proxmox не официально поддерживаются, но не рекомендуются.

    Примеры конфигураций

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

    Минимальная конфигурация

    CPU (ядра) RAM (Gb) HDD (Gb)
    4 6 40

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

    • IOL: 40-50 устройств
    • Dynamips: 20-25 устройств
    • vIOS: 8-10 устройств
    • CSRv1000: 2-3 устройства

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

    Установка и настройка eve-ng эмулятора

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

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

    1) VMware workstation

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

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

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

    Будем считать, что у вас уже стоит VMware. Для скачки готового образа переходим на сайт разработчиков «http://www.eve-ng.net/index.php/downloads/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

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

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

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

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

    В этой статье кратко будет рассмотрена установки Установка EVE-NG бесплатной редакции Community.

    Что такое EVE-NG? Это эмулятор сетевого оборудования и операционных систем очень широкого набора вендоров (Cisco, Juniper, Mikrotik, Linux, MS Windows и т.д.). Полный перечень поддерживаемых образов доступен в соответствующем разделе документации.

    EVE-NG позволяет строить, например, вот такие схемы (картинка с официального сайта):

    Предварительные требования

    Подробное описание предварительных требование приведено вот на этой странице официального сайта продукта.

    Кратко рассмотрим основные требования:

    • Процессор с поддержкой Intel CPU VT-x/EPT.
    • Гипервизор нужен VMware ESXi 6.0 или новее.
    • Поддерживается VMware Workstation/Player 14.0 или новее.

    На других популярных гипервизорах (например, Hyper-V или Proxmox) могут наблюдаться проблемы со вложенной виртуализацией.

    Количество ядер CPU и размер оперативной памяти зависят от размеров вашей лабораторной схемы. Например, 4vCPU и 8 ГБ оперативной памяти будет достаточно для работы с Cisco IOU/IOL. Однако, более свежие версии маршрутизаторов и коммутаторов Cisco будут требовать больше ресурсов.

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

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

    Гипервизор VMware Workstation 15
    vCPU 6
    RAM, GB 16
    Disk storage, GB 60

    Важный момент – необходимо включить поддержку инструкций Intel VT-x или AMD-V для процессора. Как это сделать – зависит от вашей платформы виртуализации. Например, в VMware Workstation для этого есть отдельная опция в настройках процессора.

    Процесс установки

    Процесс установки довольно прямолинеен. EVE-NG основан на дистрибутиве Ubuntu. Поэтому, если вы знакомы с установкой этого дистрибутива Linux, то установка EVE-NG для вас будет очень легким занятие.

    1. Итак, запускаем виртуальную машину. На первом шаге мастера установки выбираем пункт “Install EVE-NG Community”. Либо подождите пару секунд и автоматически запустится установка EVE-NG.

    2. Я выберу английский язык локализации.

    3. Раскладку клавиатуры так же укажу английскую.

    4. На этапе установки я оставлю вариант получения IP-адреса по DHCP, но в следующем разделе покажу, как настроить статический адрес.

    5. Я не использую прокси сервер, поэтому на этапе настройки прокси просто нажимаю “Done”.

    6. На последнем шаге мастер предупредит нас о том, что вносимые изменения уничтожат все данные на нашем диске. Даем наше согласие на эту операцию – нажимаем “Continue”.

    7. Дожидаемся окончания процесса установки.

    8. Перезагружаем виртуальную машину.

    Первоначальная настройка

    После установки EVE-NG нам осталось выполнить следующие шаги:

    1. Изменить пароль пользователя root

    2. Задать статический IP-адрес.

    Выполним эти настройки:

    1. Подключаемся к консоли виртуальной машины.

    2. Стандартные логин и пароль:

    Указываем логин и пароль в консоли виртуальной машины.

    3. Сразу же после запуска нам будет предложено изменить пароль.

    Можем либо изменить пароль, либо указать прежний пароль (eve), а затем повторно указываем пароль.

    4. Указываем имя хоста.

    5. Указываем имя DNS домена виртуальной машины:

    6. Вот теперь мы можем указать, что намерены сконфигурировать статический IP-адрес:

    7. Указываем IP-адрес:

    8. Конфигурируем маску подсети:

    9. Далее необходимо указать шлюз по умолчанию:

    10. Последним шагом указываю адрес сервера DNS:

    11. Настройку второго сервера DNS и сервера NTP я пропущу.

    12. Прокси сервер я не использую, поэтому выбираю вариант “direct connection”.

    Теперь мы можем открыть браузер и перейти в веб интерфейс по следующему адресу:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *