Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Счастливый

Happy - это инструмент для упрощенной оркестровки смоделированных сетевых топологий. Используйте его для тестирования сетевых протоколов и других программ распределенного выполнения на одной машине разработки Linux без использования оборудования IoT.

Что это?

Happy имитирует сложные топологии сети. На одной машине Linux Happy может создать несколько узлов с независимыми друг от друга сетевыми стеками. Некоторые узлы могут быть подключены к смоделированным сетям потоков, другие могут подключаться к смоделированным сетям Wi-Fi, WAN (Интернет) или сотовым сетям.

Happy рассматривает следующие варианты использования:

  • Тестирование сетевых протоколов и других программ распределенного выполнения на одной машине разработки Linux без использования оборудования
  • Выполнение автоматизированного функционального тестирования в сети
  • Запуск нескольких одновременных параллельных сетей в одной системе для повышения производительности тестирования

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

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

Начать

Самый быстрый и простой способ начать работу с Happy - пройти через Codelab. Он знакомит пользователя со всеми основными принципами Happy, включая:

  • Создание и удаление топологии
  • Сетевые узлы вместе
  • Сохранение и восстановление топологий
  • Подключение топологии к Интернету
  • Основы плетения

Попробуйте начать работу с Happy Codelab

См. Раздел « Установка и использование» для получения дополнительной информации о настройке и использовании Happy.

Архитектура

Happy моделирует следующее:

  • Узел - сетевое пространство имен Linux. Процессы, составляющие узел, выполняются в указанном сетевом пространстве имен.
  • Ссылка - сетевой интерфейс Linux. Счастливые использует veth сетевое устройство для поддержки L3 интерфейсов (IP) и tap сетевое устройство для поддержки L2 интерфейсов из коробки.
  • Сеть - сетевые пространства имен Linux с работающим в них мостом Ethernet.

Реализация

Happy - это набор модулей Python. Модули Core Happy предоставляют абстракции для:

  • Управление абстракциями узлов
    • Добавление, изменение и удаление узлов
    • Запуск набора процессов внутри узла
  • Управление ссылками
    • Добавление, изменение и удаление ссылок
    • Назначение ссылок на узел и сеть
    • Назначение и изменение присвоения адресов
  • Управление сетями
    • Создание, изменение и уничтожение сетей
    • Подключение к сети
  • Согласованное управление общим состоянием фреймворка

Большинство абстракций, реализуемых модулями Happy, преобразуются в команды, вызывающие сетевые инструменты Linux.

Happy также содержит набор подключаемых модулей, находящихся в /plugins . Плагины включают в себя набор функций, связанных с определенной технологией. Например, /plugins/weave содержат помощники, которые обертывают различные приложения Weave для выполнения в Happy.

выполнение

Пользователи могут создавать моделируемые топологии двумя способами:

  • Команды оболочки - все команды находятся в /bin .
  • Скрипты Python - Импортируйте модули Happy для вызова команд Happy в ваших собственных скриптах Python. Модули есть в /happy .

Дополнительные сведения об использовании модулей Happy в ваших собственных сценариях Python см. В разделе сценарии Python .