Happy - это инструмент для упрощенной оркестровки смоделированных сетевых топологий. Используйте его для тестирования сетевых протоколов и других программ распределенного выполнения на одной машине разработки Linux без использования оборудования устройства IoT.
Что это?
Happy моделирует сложные сетевые топологии. На одной машине Linux Happy может создать несколько узлов с независимыми друг от друга сетевыми стеками. Некоторые узлы могут быть подключены к смоделированным сетям потоков, другие могут подключаться к смоделированным сетям Wi-Fi, WAN (Интернет) или сотовым сетям.
Happy рассматривает следующие варианты использования:
- Тестирование сетевых протоколов и других программ распределенного выполнения на одной машине разработки Linux без использования оборудования
- Выполнение автоматизированного функционального тестирования в сети
- Запуск нескольких одновременных параллельных сетей в одной системе для повышения производительности тестирования
Happy решает эти проблемы, создавая абстракции сетевой топологии с минимальными издержками на пользователя. Сложные топологии могут быть созданы с помощью одного вызова команды оболочки. Happy поддерживает как интерактивное использование, так и автоматическое создание сценариев.
Используйте команды оболочки Happy для настройки, тестирования и отладки их кода во время разработки. Затем можно создать сценарий той же сетевой конфигурации и тестовых программ и использовать их в автоматическом тестировании.
Начать
Самый быстрый и простой способ начать работу с Happy - пройти через Codelab. Он знакомит пользователя со всеми основными принципами Happy, включая:
- Создание и удаление топологии
- Сетевые узлы вместе
- Сохранение и восстановление топологий
- Подключение топологии к Интернету
- Основы плетения
Попробуйте начать работу с Happy Codelab
См Настройка и Использование для получения дополнительной информации о настройке и использовании Happy.
Архитектура
Хэппи моделирует следующее:
- Узел - Linux - сеть пространства имен. Процессы, составляющие узел, выполняются в указанном сетевом пространстве имен.
- Link - сетевой интерфейс Linux - . Счастливые использует
veth
сетевое устройство для поддержки L3 интерфейсов (IP) иtap
сетевое устройство для поддержки L2 интерфейсов из коробки. - Сеть - сетевые пространства имен Linux с мостом Ethernet работает в них.
Выполнение
Happy - это набор модулей Python. Модули Core Happy предоставляют абстракции для:
- Управление абстракциями узлов
- Добавление, изменение и удаление узлов
- Запуск набора процессов внутри узла
- Управление ссылками
- Добавление, изменение и удаление ссылок
- Назначение ссылок на узел и сеть
- Назначение и изменение присвоения адресов
- Управление сетями
- Создание, изменение и уничтожение сетей
- Подключение к сети
- Согласованное управление общим состоянием фреймворка
Большинство абстракций, реализованных модулями Happy, преобразуются в команды, вызывающие сетевые инструменты Linux.
Днем также содержит набор плагинов , найденных в /plugins
. Плагины заключают в себе набор функций, связанных с определенной технологией. Например, /plugins/weave
содержат помощник , которые обруч различных переплетений приложения для исполнения в Хэппи.
Исполнение
Пользователи могут создавать моделируемые топологии двумя способами:
- Команды оболочки - Все команды находятся в
/bin
. - Скрипты Python - импортируйте модули Happy для вызова команд Happy в ваших собственных скриптах Python. Модули в
/happy
.
Для получения дополнительной информации об использовании жизнерадостных модулей в вашем собственных сценариях Python см Python сценарии .