Google se compromete a promover la equidad racial para las comunidades negras. Ver cómo.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Contento

Happy es una herramienta para la orquestación ligera de topologías de red simuladas. Úselo para probar protocolos de red y otros programas de ejecución distribuidos en una sola máquina de desarrollo de Linux sin usar hardware de dispositivo IoT.

¿Qué es?

Happy simula complejas topologías de red. En una sola máquina Linux, Happy puede crear múltiples nodos con pilas de red que son independientes entre sí. Algunos nodos pueden conectarse a redes Thread simuladas, otros pueden conectarse a redes Wi-Fi, WAN (Internet) o celulares simuladas.

Happy aborda los siguientes casos de uso:

  • Probar protocolos de red y otros programas de ejecución distribuidos en una sola máquina de desarrollo de Linux sin usar hardware
  • Realizar pruebas funcionales automatizadas en una red
  • Ejecutar múltiples redes paralelas simultáneas en el mismo sistema para mejorar el rendimiento de las pruebas

Happy resuelve estos problemas creando abstracciones de topología de red con una sobrecarga mínima del usuario. Se pueden crear topologías complejas con una sola llamada de comando de shell. Happy es compatible tanto con el uso interactivo como con las secuencias de comandos automatizadas.

Use los comandos de Happy Shell para configurar, probar y depurar su código durante el desarrollo. La misma configuración de red y los programas de prueba pueden ser programados y utilizados en pruebas automatizadas.

Empezar

La forma más rápida y fácil de comenzar con Happy es pasar por Codelab. Lleva al usuario a través de todos los fundamentos de Happy, incluidos:

  • Crear y eliminar una topología
  • Nodos de red juntos
  • Guardar y restaurar topologías
  • Conectar una topología a internet
  • Fundamentos de tejido

Pruebe Comenzar con Happy Codelab

Consulte Configuración y uso para obtener más información sobre la configuración y el uso de Happy.

Arquitectura

Happy modela lo siguiente:

  • Nodo : un espacio de nombres de red Linux. Los procesos que comprenden el nodo se ejecutan dentro de un espacio de nombres de red especificado.
  • Enlace : una interfaz de red de Linux. Happy utiliza el dispositivo de red veth para admitir interfaces L3 (IP) y el dispositivo de red tap para admitir interfaces L2 de fábrica.
  • Red : espacios de nombres de red Linux con un puente Ethernet que se ejecuta dentro de ellos.

Implementación

Happy es una colección de módulos de Python. Los módulos Core Happy proporcionan abstracciones para:

  • Gestionar abstracciones de nodos
    • Agregar, modificar y eliminar nodos
    • Ejecutar un conjunto de procesos dentro del nodo
  • Administrar enlaces
    • Agregar, modificar y eliminar enlaces
    • Asignación de enlaces a un nodo y una red
    • Asignación y modificación de asignaciones de direcciones
  • Administrar redes
    • Crear, modificar y destruir redes.
    • Conectividad de red
  • Administrar el estado general del marco de forma coherente

La mayoría de las abstracciones implementadas por los módulos Happy se asignan a comandos que invocan herramientas de red de Linux.

Happy también contiene un conjunto de complementos encontrados en /plugins . Los complementos envuelven un conjunto de funcionalidades relacionadas con una tecnología en particular. Por ejemplo, /plugins/weave contiene ayudantes que envuelven varias aplicaciones de Weave para su ejecución dentro de Happy.

Ejecución

Los usuarios pueden construir topologías simuladas a través de dos métodos:

  • Comandos de shell: todos los comandos están en /bin .
  • Scripts Python: importe módulos Happy para llamar a comandos Happy en sus propios scripts Python. Los módulos están en /happy .

Para obtener más información sobre el uso de módulos Happy en sus propias secuencias de comandos de Python, consulte las secuencias de comandos de Python .