Сетевые эмуляторы и симуляторы предлагают разные возможности. Однако и те и другие выступают неплохим инструментом для обучения и практики специалистов в области сетевых технологий. В сегодняшней подборке мы решили рассмотреть несколько профильных решений, обсудить их возможности и области применения.
Containerlab
Платформу Containerlab разработали инженеры Nokia и распространяют по лицензии BSD-3-Clause. Она позволяет строить виртуальные сетевые лаборатории на базе контейнеров Docker. Управление окружением происходит в специальном CLI.
Решение поддерживает работу со множеством сетевых операционных систем — например, Nokia SR-Linux, Arista cEOS, Cisco XRd, Juniper cRPD. В то же время утилита умеет объединять контейнеры и виртуальные машины в единую топологию. Для этого расширение vrnetlab «заворачивает» обычную ВМ внутрь контейнера. Узлы, которым необходимы TLS-сертификаты, получают их автоматически при запуске эмуляции.
Разработчики утилиты также предлагают ряд заготовок для быстрой развертки полнофункциональных сетевых лабораторий. Среди других преимуществ Containerlab — простая настройка контейнеров и широкие возможности автоматизации. Один из пользователей отметил быстрое создание файла инвентаризации Ansible и поддержку фреймворка Nornir, упрощающего управление сетевыми устройствами. Так, с помощью Containerlab он воссоздал топологию с четырьмя маршрутизаторами на базе протоколов OSPF (Open Shortest Path First) и BGP (Border Gateway Protocol).
Mininet
Позволяет строить простые сети для интерактивной разработки и тестирования сетевого окружения на OpenFlow и SDN. Что интересно, настройки контроллеров на базе OpenFlow можно мигрировать на физическое оборудование с минимальными модификациями.
Узлы сети в Mininet представляют собой bash-процессы, запущенные в сетевом пространстве имён. Такой подход позволяет изолировать хосты на одной машине друг от друга, но при этом каждый из них имеет собственный интерфейс. Еще одна фишка утилиты — многопользовательский режим. Так, сразу несколько специалистов могут редактировать одну топологию. В то же время решение поддерживает Python API и позволяет строить кастомизированные модели.
Инструмент представили исследователи из Стэнфордского университета. Изначально его применяли для обучения студентов, но со временем проект вышел за пределы вуза, и теперь его используют крупные организации — например, IBM. В прошлом году на его основе вышла утилита для симуляции сетей Kubernetes. В ней рабочие узлы представляют собой хосты Mininet, а поды и контейнеры — сетевые пространства имен.
Mininet опубликован под лицензией BSD-3-Clause.
Kathará
Инструмент продолжает идеи сетевого эмулятора Netkit. Его разработала группа инженеров из Третьего римского университета (Roma Tre), занимающихся изучением сетей и аспектов информационной безопасности. Kathará распространяют по лицензии GPL-3.0, и решение получает обновления в среднем раз в несколько месяцев.
Kathará позволяет моделировать виртуальные сети на базе контейнеров Docker или кластеров Kubernetes. Поддерживает платформы Windows, MacOS, Linux, технологии SDN, NFV (Network function virtualization), а также BGP и OSPF. Репозиторий содержит готовые Docker-образы на Debian 11 и для архитектур AMD64 и ARM64. Они содержат пакеты ПО для маршрутизации — например, Quagga, FRRouting, P4 и OpenVSwitch.
В целом Kathará упрощает моделирование топологий благодаря сетевым сценариям. Они представляют собой директории с файлом топологии (lab.conf) и файлами конфигураций для каждого сетевого устройства. Для написания собственных сценариев можно использовать Python API. Работать с инструментом можно в командной строке. Но есть и графический интерфейс в виде дополнительного клиента Netkit-Lab-Generator.
IMUNES
С помощью этого решения можно развернуть сотни виртуальных узлов на одной физической машине. Все благодаря делению ядра Linux или FreeBSD на легковесные виртуальные ноды. В то же время IMUNES позволяет запустить на виртуальной машине полноценные UNIX-приложения — например, генераторы трафика и серверы приложений.
Проект выпустили под лицензией CC BY 4.0 при поддержке специалистов из хорватской телеком-компании, Калифорнийского университета в Беркли, подразделения Boeing, организации FreeBSD Foundation, а также Министерства науки, образования и спорта Хорватии. Как отмечают разработчики, сейчас IMUNES применяют для тестирования продуктов в Ericsson Nikola Tesla, а также в лабораториях Загребского университета.
В целом инструмент достаточно старый, его обновления выходят раз в несколько лет. Так, разработчики долгое время планировали добавить поддержку сразу нескольких интернет-протоколов на одном узле, чтобы виртуальный сервер мог одновременно работать с IPv4 и IPv6. Такая схема актуальна в условиях дефицита IPv4-адресов и продолжающегося перехода на новый стандарт, о чём мы уже писали на хабре.
CORE
Представляет собой форк симулятора IMUNES от инженеров из Boeing. Он позволяет разворачивать сетевые лаборатории на основе контейнеров, а также подключать моделируемую топологию к физической сети. CORE работает на Linux и FreeBSD, а для конфигурирования виртуальной сети предусмотрены XML-файлы и скрипты на Python.
Сами разработчики позиционируют свое решение как инструмент для исследования сетей и протоколов, разработки демонстрационных стендов, тестирования приложений и платформ. В 2018 году команда Boeing открыла исходный код по лицензии BSD-2-Clause. Сейчас эмулятор используют в различных исследованиях, связанных с IoT-сетями.
Пользователи инструмента отмечают удобный графический интерфейс и простую настройку эмуляции. Утилита также умеет моделировать работу сетей, состоящих из мобильных и IoT-устройств, а также подключенных автомобилей. Но некоторые сталкиваются с трудностями, например, в работе пакетов FRR (Free Range Routing).
Toxiproxy
Решение позволяет изучить отказоустойчивость решений в сетевой среде — имитирует аномалии и сбои: создает задержку при получении ответа от сервера, изменяет пропускную способность и прочее. Инструмент состоит из двух элементов: TCP-прокси и клиента, взаимодействующего с ним по HTTP. Писать скрипты проверок разработчики предлагают с помощью Ruby API. Клиент подключается к демону Toxiproxy по HTTP API.
Среди преимуществ — возможность интеграции с CI-платформами, средами тестирования и разработки. Из недостатков симулятора отмечают отсутствие поддержки конфигурационных файлов в формате JSON и веб-интерфейса для удалённого доступа.
Инструмент разработала компания Shopify, которая развивает крупную e-commerce платформу. Его распространяют по лицензии MIT, а апдейты выходят несколько раз в год.
Cloonix
Инструмент позволяет моделировать сети на базе виртуальных машин и контейнеров: первые можно развернуть с помощью модуля KVM, вторые — с помощью Podman и crun. Cloonix поддерживает только Linux-системы. Согласно документации, утилита заточена под развертку демо-сетей, проведение антирегрессионного тестирования сетевого ПО и экспериментов с ним. Линки между узлами основаны на Open vSwitch — программном многоуровневом коммутаторе для работы с гипервизорами. Его инстанс запущен внутри отдельного пространства имен, поэтому для соединения узлов не нужны сетевые мосты.
Из преимуществ симулятора выделяют наглядный интерфейс, а также механику drag-and-drop, которая помогает быстро построить топологию сети. Первые упоминания проекта относятся ещё к 2012 году, но утилиту продолжают развивать — обновления выходят примерно каждые два-три месяца. Ее можно использовать по лицензии AGPLv3.
Что еще почитать в нашем блоге на Хабре:
FCC, общественный интернет и 5G: что с сетевым нейтралитетом — разбираем ситуацию в США, начиная с действий федеральных органов и до связи развития 5G и общественного интернета с ходом обсуждения актуальных проблем net neutrality.
Как применяется и для чего нужен local first подход — рассматриваем релевантные примеры решений и протоколов, их особенности и общие принципы подхода.
Угроза DoS и уязвимости протокола ICMP — обсуждаем свежие ИБ-находки, особенности механизма маршрутизации, вариант атаки и возможности для защиты.
Как меняются ботнеты и методы борьбы с ними — компактный обзор актуальных методов формирования ботнетов, также приводим кейсы с ликвидацией таких сетей. В качестве дополнительного чтения по теме — собрали небольшой дайджест.
Корпоративные децентрализованные соц. сети — рассказываем, почему крупные структуры интересуются такими технологиями и какой вносят вклад в эту сферу.
Тренд на общественный широкополосный интернет — говорим о спросе на муниципальные сети, практике работы с инвесторами в такие проекты, первых результатах в различных городах США и планах по совершенствованию подобной инфраструктуры. Также в отдельном материале на хабре мы рассказали о влиянии телеком-монополистов на развитие и массовое внедрение подобных сетей в США.