Виртуальная лаборатория нового поколения
для IT профессионалов — EVE-NG 2018

ВИДЕО КУРС ПО УСТАНОВКЕ И РАБОТЕ С ВИРТУАЛЬНОЙ ЛАБОРАТОРИЕЙ EVE-NG
Версия v1.0

Что такое EVE-NG Community Edition?

EVE-NG (Emulated Virtual Environment – Next Generation) — это эмулированная виртуальная среда следующего поколения, позволяющая создать полноценную виртуальную лабораторию с сетевым оборудованием и программным обеспечением ведущих мировых производителей.

Вы можете посмотреть обзорное видео по функционалу и архитектуре EVE-NG, либо скачать это описание в PDF формате.

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

Новый официальный сайт проекта EVE-NG теперь находится по адресу: http://www.eve-ng.net.

Содержание видео курса по установке и работе с «Виртуальной лабораторией нового поколения для IT профессионалов — EVE-NG 2017» будет постоянно пополняться, так как проект EVE-NG очень динамично развивается и регулярно появляется новый полезный и удобный функционал.

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

Кроме того, онлайн вариант курса позволяет просматривать его на устройствах с различными операционными системами, такими как Window и Mac Os X.

Для получения доступа к видео курсу, пожалуйста, ознакомьтесь с пошаговой Инструкцией.

Что представляет собой EVE-NG физически:

Это целостная и стабильная виртуальная машина VMware, в основе которой лежит Linux Ubuntu 16.04 x64. В зависимости от выбранного способа установки, EVE-NG также может работать и непосредственно на Ubuntu 16.04 со специально собранным ядром kernel.

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

Например, это может выглядеть так:

Способы подключения к EVE-NG

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

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

В зависимости от типа устройства, подключатся консолью к ним можно по протоколам telnet, RDP или VNC.

А к уже сконфигурированным соответствующим образом устройствам можно по сети получать доступ через SSH, telnet, HTTP, HTTS.

EVE-NG включает три основные подсистемы эмуляции:

  • Dynamips
  • QEMU
  • Cisco IOL

Архитектура EVE-NG

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

Например, с помощью Dynamips эмулируется аппаратная платформа маршрутизатора Cisco, на которой уже запускается реальный боевой IOS для нее.

Подсистема IOL разработана Cisco для внутреннего использования и позволяет запускать виртуальные образы IOS на операционных системах Linux.

А QEMU позволяет эмулировать как различные аппаратные платформы, включая ПК, серверы, так и запускать готовые виртуальные образы многочисленных сетевых устройств.

Какую из подсистем, в каких случаях лучше использовать, будет подробно разбираться в этом видео курсе по EVE-NG.

Где и как можно запускать EVE-NG:

Виртуальная машина EVE-NG может запускаться в VMware Workstation 11 или 12, VMware Player 5 и выше, а также на ESXi 5.5 и старше.

Более того, ее можно запускать и на Mac-e в VMware Fusion 5 и выше.

Но самый интересный, на мой взгляд, это вариант установки на голое железо, bare metal. В этом случае в качестве основной операционной системы ставится Linux Ubuntu 16.04 x64 и на него уже EVE-NG.

При этом исключается один из уровней наследуемой виртуализации, что критично, в первую очередь, для устройств, эмулируемых подсистемой QEMU.

Общая производительность и эффективность всей системы виртуализации в этом случае становится заметно выше.

Источник

Блог дяди Freemanа

EVE-NG: creating own modified host image / EVE-NG: создание модифицированного образа хоста

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

Итак, все начиается с выбора системы, которую будем подготавливать и настраивать. У меня это в основном linux и windows дистрибутивы, поэтому покажу на примере одного из них.
По инструкциям EVE-NG, надо создать папку в директории /opt/unetlab/addons/qemu/. Для windows-дистрибутивов применяется именование директории win-*, для linux соответственно linux-*.

Кроме этого:  Установка камеры заднего вида в Hyundai i30 Хендай АЙ 30

теперь в эту директорию любым удобным способом нужно закачать установочный образ Ubuntu-16.04 и переименовать его в cdrom.iso.

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

Итого, в директории /opt/unetlab/addons/qemu/linux-ubuntu-desktop-16.04 будет два файла virtioa.qcow2 и cdrom.iso.

Теперь нужно поправить права на файлы, выполняем

После этого можно использовать любую симуляцию и создать там хост, из списка выбрать нужный тип хоста, в этом случае Linux, далее в параметрах выбрать linux-ubuntu-desktop-16.04-xfce.

Запускаем, начинаем установку. Маленькая ремарка, в случае хост windows, то для того, чтобы установочный мастер смог определить диск, нужно загрузить драйвер с диска FDD B/storage/2003R2/AMD64 or 86/,
(выбирать AMD или x86 зависит от устанавливаемой версии windows: 64 или 32 bit), после установки драйвера будет доступен HDD RedHat VIRTIO SCSI HDD.

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

Дело в том, что при запуске qemu создается снимок диска в директории /opt/unetlab/tmp/, в который пишутся только изменения относительно родительского образа, соответственно поэтому все изменения после удаления
хоста стираются. Но мы можем их закоммитить в изначальный образ, тем самым закрепив изменения в родительском образе. Таким образом можно насоздавать кучу разных презаготовленных образов довольно просто манипулируя
файлами в директории /opt/unetlab/addons/qemu/.

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

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

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

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

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

Источник



EVE-NG – тестовая среда для Mikrotik Router OS

У Cisco есть удобный инструмент, используемый для отладки или обучения, Cisco Packet Tracer. У Mikrotik таких вещей нет, но для создания тестовой среды можно использовать виртуальную машину EVE-NG. Для этого будем использовать VMware Workstation.

VMware Workstation уже установлен, больше интересен процесс установки и настройки EVE-NG. Скачиваем готовый образ с сайта разработчиков. Для наших целей вполне подходит бесплатная версия Community.

Там же можно скачать клиентский пакет для Windows, который установит все необходимое для запуска приложений telnet, vnc, wireshark, rdp.

Теперь импортируем скачанный образ в VMware Workstation. Для того, чтобы устройства из тестовой среды имели доступ к интернет, а мы наоборот могли пользоваться winbox для подключения к виртуальным роутерам снаружи тестовой среды, добавим второй сетевой адаптер в режиме моста с физическим сетевым интерфейсом компьютера.

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

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

Следующим шагом добавим Mikrotik Cloud router в эмулятор.

Скачиваем актуальный релиз, архив образа chr-6.46.4.img.zip с сайта производителя. Извлекаем из скачанного архива chr-6.46.4.img.

В консоли EVE создадим папку

Загрузим в нее chr-6.46.4.img с помощью WinSCP

Переходим в папку с образом и конвертируем его в qcow2 формат

Последний шаг – профиксить разрешения

Завершающим этапом будет настройка EVE, чтобы виртуальные роутеры имели доступ к физической сети компьютера, а мы могли ими управлять с помощью Winbox на любом компьютере в локальной сети. Сделаем это на примере интерфейса CLOUD1 (Всего таких интерфейсов 10 в EVE, один из которых – управляющий).

С помощью SSH-консоли на EVE-NG убедимся, что эмулятор видит обе сетевые карты, с помощью следующей команды

Отредактируем настройки сети

Нас интересует настройка интерфейса eth1 и его связка с pnet1. Включим на нём DHCP-клиента

Можно подобным образом подключить и остальные CLOUD-интерфейсы EVE. После этих не сложных настроек, роутеры подключенные к CLOUD1 получают адреса от нашего физического роутера, могут выходить в интернет и доступны для управления из локальной сети.

Источник

Установка и использование виртуальной сетевой лаборатории 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-адреса.

Кроме этого:  Вариант 1 Обновление программы или драйвера

Настройка 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.

Источник