- Установка и использование виртуальной сетевой лаборатории EVE-NG совместно с Ansible. Первый опыт
- Установка EVE-NG
- Подготовка хоста
- Подключение образов сетевых устройств
- Настройка окружения
- Доступ к консоли маршрутизаторов
- Запуск сниффера трафика
- Настройка инстанса сервера ansible
- Настройка telnet-сервера
- Сбор топологии
- Развёртывание подсистемы аnsible
- Настройка CSR для работы с ansible
- Создание первого воркбука
- Создание второго воркбука
- Eve ng установка linux
- About
- Установка с ISO образа
- Содержание
- Установка с ISO образа
- Введение
- Подготовка
- Установка
- Этап 1: Установка Ubuntu
- Этап 2: Установка эмулятора EVE
- Этап 3: Первоначальная настройка эмулятора EVE
Установка и использование виртуальной сетевой лаборатории EVE-NG совместно с Ansible. Первый опыт
В данной статье приведен опыт инженера-сетевика по развертыванию виртуальной лаборатории 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.
Сбор топологии
Здесь всё чрезвычайно просто. Моя топология выглядит следующим образом:
Развёртывание подсистемы аnsible
Настройка CSR для работы с ansible
Выделим на каждом маршрутизаторe отдельный порт для управления и подключим к общему хабу с сервером ansible портами Gi2. Выберем подсеть для управления, у меня это 192.168.0.0/24. И назначим IP-адреса на портах в соответствии с номером маршрутизатора.
Эту же информацию занесем в /etc/hosts сервера:
На каждом маршрутизаторе настроим SSH v2 согласно ссылки. Всё тривиально, скажу лишь то, что для запуска требумеого нам SSHv2 нужно генерировать ключ более 768 бит, я выбрал размер 2048.
Проверяем доступ с сервера до маршрутизаторов по SSH, заодно собирая в хранилище ключи.
Сохраняем конфигурацию на маршрутизаторе:
И экспортируем в EVE-NG конфигурацию для того, чтобы заново не настраивать при перезагрузках девайсы:
Эта фича в 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 установка linux
EVE-NG Integration
This repo contains the equivalent of EVE-NG (aka UNetLab) Windows Client Side Pack for Ubuntu/Debian and other Linux distros.
Currently supports the following URL schemes:
Includes a script to work with .rdp files that are generated by EVE-NG.
Ubuntu and derivatives
You can install eve-ng-integration from the official PPA:
or download .deb packages from here.
Alternatively, you can install eve-ng-integration from terminal using the following command:
This method works on most Linux distros. Tested on Arch Linux, Manjaro, Fedora, openSUSE, CentOS, and potentially works with other systems.
If your Linux distribution is not supported yet, don’t give up, try Manual install or open a new issue.
Packages in this section are not part of the official repositories. If you have a problem or a question, please contact the package maintainer.
Distro | Maintainer | Package |
---|---|---|
Arch Linux | Aleksandr Boiko | eve-ng-integration-git AUR |
Arch Linux | Konstantin Shalygin | eve-ng-integration AUR |
NOTE: If you are a maintainer and want to be in the list, please create an issue or make a pull request.
or download and extract the tarball
- Install dependencies
- python >= 2.7 (required)
- telnet (required)
- wireshark (recommended)
- ssh-askpass (recommended)
- vinagre (recommended)
- docker-engine (optional)
- Enjoy!
Error Couldn’t run /usr/bin/dumpcap in child process: Permission denied when starting Wireshark
Add your user to wireshark group:
If you use a Debian-like distro, you can run the next command and choose answer as Yes :
You will need to log out and then log back in again for this change to take effect.
Error End of file on pipe magic during open when starting Wireshark
Install ssh-askpass package for your distro, or setup SSH key-based authentication with EVE-NG (UNetLab) machine.
Click on a node does not open an app (opens another app) in all browsers
Execute the following commands to set the eve-ng-integration.desktop as default handler for telnet, capture, and docker URL schemes:
Does not work in Google Chrome but works in another browser
Quit Chrome and reset protocol handler with the command:
NOTE: Path to the Preferences file will be different for Chromium and other Chromium-based browsers.
Does not work in Firefox but works in another browser
Go to Preferences → Applications (or paste about:preferences#applications in your address bar) and change Action to Always ask for telnet, capture and docker Content Types.
Firefox says The address wasn’t understood when you clicked on a node
- Type about:config into the Location Bar (address bar) and press Enter.
- Right-click → New → Boolean → Name: network.protocol-handler.expose.telnet → Value → false (Repeat this for each supported protocol)
- Next time you click a link of protocol-type foo you will be asked which application to open it with.
Chrome/Chromium downloads RDP files instead of opening
To make RDP file open on your browser, instead of downloading, you have to download the file type once, then right after that download, look at the status bar at the bottom of the browser. Click the arrow next to that file and choose «Always open files of this type». Done.
If your problem hasn’t been solved or reported, please open a new issue.
English, Russian, and Ukrainian are welcomed.
About
integrates EVE-NG (aka UNetLab) with Linux desktop
Источник
Установка с ISO образа
Содержание
Установка с ISO образа
В данной статье рассматривается установка на подготовленную виртуальную машину
Введение
Существует 2 ISO дистрибутива EVE-NG:
Оба образа практически идентичны, т.к. построены на базе Ubuntu 16.04. Единственная разница: после установки ОС с образа EVE-20171007.iso будет автоматически начата установка Community версии EVE-NG, а при установке с EVE-PRO.iso соответственно автоматически запустится установка EVE-NG Pro. Если вы устанавливаете EVE первый раз — выбирайте нужный образ сразу, если вы знаете как сменить редакцию после установки тогда можете использовать любой.
EVE-NG Community | EVE-NG Pro |
---|
Подготовка
Любой из существующих образов можно взять по ссылкам ниже:
Pro | Community | |
---|---|---|
eve-ng.net | MEGA Google | MEGA Google |
Для успешного завершения установки необходим доступ к сети интернет, т.к. ISO образы не содержат пакетов с EVE-NG.
Установка
Этап 1: Установка Ubuntu
На данном этапе производится установка базовой системы Ubuntu 16.04.
Шаг 1: Включите Виртуальную машину EVE. Выберите English и нажмите Enter.
Шаг 2: Выберите «Install EVE PRO VM» и нажмите Enter.
Шаг 3: Выберите English и нажмите Enter
Шаг 4: Вы можете выбрать ваше расположение, или, после установки ip адреса, расположение будет выбрано автоматически.
Шаг 5: Если настройка по DHCP доступна будет запрошена смена имени компьютера. Имя по умолчанию eve-ng. Вы можете сменить его по своему усмотрению. Клавишей Tab «continue» и нажмите Enter. Перейдите к шагу 14
Шаг 6: Если у вас в сети нет dhcp сервера, то IP-адрес необходимо настроить вручную. Нажмите Enter.
Шаг 7: Выберите «Configure network manually» и нажмите Enter
Шаг 8: Задайте адрес по которому будет осуществляться управление EVE (management IP), используя клавишу Tab выберите «Continue» и нажмите Enter
Шаг 9: Введите маску подсети, используя клавишу Tab выберите «Continue» и нажмите Enter
Шаг 10: Введите IP-адрес шлюза, используя клавишу Tab выберите «Continue» и нажмите Enter
Шаг 11: ВАЖНО. Указанный DNS сервер должен быть корректно настроен и отвечать на запросы DNS имен из внешних сетей. Введите IP-адрес вашего DNS сервера, используя клавишу Tab выберите «Continue» и нажмите Enter
Шаг 12 По умолчанию имя хоста — eve-ng. Вы можете задать произвольное. Используя клавишу Tab выберите «Continue» и нажмите Enter
Шаг 13: Введите имя домена (DNS суффикс). Можно задать любое значение, например: eve-ng.ru Используя клавишу Tab выберите «Continue» и нажмите Enter
Шаг 14: Если ваши сетевые настройки корректны Ubuntu автоматически определит ваше расположение и подключится Ubuntu репозиториям. Нажмите Enter.
Шаг 15: Если для доступа к сети Интернет используется proxy сервер, укажите его. Если прокси не используется, выберите «Continue» и нажмите Enter.
Шаг 16: Выберите no automatic updates и нажмите Enter. Обновления безопасности можно установить позднее из командной строки EVE.
Этап 2: Установка эмулятора EVE
На данном этапе производится установка эмулятора EVE-NG
Шаг 17: После появления сообщения «Finish the installation», не отключайте ISO образ от виртуальной машины и не нажимайте Enter, до того, как мы не убедимся, что установщик готов перейти ко 2му этапу
Шаг 18: Не отключая виртуальную машину, зайдите в свойства оборудования и убедитесь, что CD/DVD ISO находится в статусе «Device status connected» и включена опция «Connect at power on». Нажмите OK.
Шаг 19: Вернитесь к установочному процессу Ubuntu и нажмите Enter, виртуальная машина перезагрузится и запустится вторая фаза установки
Шаг 20: Когда появится экран приглашения EVE, войдите в систему используя логин/пароль: root/eve и перейдите к 3му этапу
Этап 3: Первоначальная настройка эмулятора EVE
При первой авторизации под пользователем root будет запущен скрипт смены пароля для пользователя root и настройки IP адреса для Managment интерфейса (pnet0)
На данном шаге необходимо ввести новый пароль для пользователя root. После нажатия ОК будет запрошено подтверждение нового пароля.
Если необходимо можно сменить hostname.
Если необходимо можно сменить имя домена.
На данном шаге предлагается выбрать способ настройки IP адреса. Мы рекомендуем настроить статический IP адрес.
Настройка IP адреса для интерфейса pnet0
Настройка IP маски интерфейса pnet0
Настройка шлюза по умолчанию для интерфейса pnet0
Настройка основного DNS сервера
Настройка вторичного DNS сервера
Можно указать предпочитаемый NTP сервер, но по факту данная опция сейчас не работает. Будут использоваться ntp сервера из пула Ubuntu.
Настройка прокси сервера. Рекомендуется использовать прямое подключение (direct connection).
По окончанию настройки будет произведена перезагрузка, после перезагрузки необходимо выполнить продолжить установку, если устанавливаете Pro версию.
После перезагрузки необходимо продолжить установку (только для Pro версии) выполнив команды:
Правильный вывод команды «dc images»
Неправильный вывод команды «dc images»
Если один или несколько контейнеров отображается как необходимо выполнить одну из следующих команд:
Если вы всё выполнили — поздравляем! У вас установлена среда виртуализации EVE-NG!
Источник