En Google, luchamos por la equidad racial de la comunidad negra. Más información
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 distribuida en una sola máquina de desarrollo de Linux sin usar hardware de dispositivo IoT.

¿Qué es?

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

Happy aborda los siguientes casos de uso:

  • Prueba de protocolos de red y otros programas de ejecución distribuida en una sola máquina de desarrollo Linux sin usar hardware
  • Realización de pruebas funcionales automatizadas en una red
  • Ejecución de varias 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 para el usuario. Se pueden crear topologías complejas con una sola llamada de comando de shell. Happy admite tanto el uso interactivo como la creación de scripts automatizados.

Utilice los comandos de Happy shell para configurar, probar y depurar su código durante el desarrollo. La misma configuración de red y programas de prueba se pueden escribir y usar en pruebas automatizadas.

Empezar

La forma más rápida y sencilla de comenzar con Happy es pasar por Codelab. Guía al usuario a través de todos los fundamentos de Happy, que incluyen:

  • Crear y eliminar una topología
  • Conectando nodos de red juntos
  • Guardar y restaurar topologías
  • Conectar una topología a Internet
  • Fundamentos de tejido

Pruebe el Getting Started with Happy Codelab

Consulte Configuración y uso para obtener más información sobre cómo configurar y usar Happy.

Arquitectura

Happy modela lo siguiente:

  • Nodo : un espacio de nombres de red de Linux. Los procesos que componen 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 de 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 de Core Happy proporcionan abstracciones para:

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

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

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

Ejecución

Los usuarios pueden construir topologías simuladas mediante dos métodos:

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

Para obtener más información sobre el uso de módulos Happy en sus propios scripts de Python, consulte Scripts de Python .