Google s'est engagé à promouvoir l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Heureux

Happy est un outil pour l'orchestration légère de topologies de réseau simulées. Utilisez-le pour tester les protocoles réseau et d'autres programmes d'exécution distribués sur une seule machine de développement Linux sans utiliser de matériel de périphérique IoT.

Qu'Est-ce que c'est?

Happy simule des topologies de réseau complexes. Sur une seule machine Linux, Happy peut créer plusieurs nœuds avec des piles réseau indépendantes les unes des autres. Certains nœuds peuvent être connectés à des réseaux Thread simulés, d'autres peuvent se connecter à des réseaux Wi-Fi, WAN (Internet) ou cellulaires simulés.

Happy aborde les cas d'utilisation suivants:

  • Test des protocoles réseau et d'autres programmes d'exécution distribués sur une seule machine de développement Linux sans utiliser de matériel
  • Exécution de tests fonctionnels automatisés sur un réseau
  • Exécution de plusieurs réseaux parallèles simultanés sur le même système pour améliorer le débit des tests

Happy résout ces problèmes en créant des abstractions de topologie de réseau avec une surcharge utilisateur minimale. Des topologies complexes peuvent être créées avec un seul appel de commande shell. Happy prend en charge à la fois l'utilisation interactive et la création de scripts automatisés.

Utilisez les commandes Happy Shell pour configurer, tester et déboguer leur code pendant le développement. La même configuration de réseau et les mêmes programmes de test peuvent ensuite être scriptés et utilisés dans des tests automatisés.

Commencer

Le moyen le plus rapide et le plus simple de démarrer avec Happy est de passer par le Codelab. Il guide l'utilisateur à travers tous les principes fondamentaux de Happy, notamment:

  • Créer et supprimer une topologie
  • Mise en réseau des nœuds ensemble
  • Enregistrement et restauration des topologies
  • Connexion d'une topologie à Internet
  • Tisser les fondamentaux

Essayez la mise en route avec Happy Codelab

Voir Configuration et utilisation pour plus d'informations sur la configuration et l'utilisation de Happy.

Architecture

Happy modèles les suivants:

  • Node - Un espace de noms réseau Linux. Les processus comprenant le nœud s'exécutent dans un espace de noms réseau spécifié.
  • Lien - Une interface réseau Linux. Happy utilise le veth réseau veth pour prendre en charge les interfaces L3 (IP) et le périphérique réseau tap pour prendre en charge les interfaces L2 veth l' veth .
  • Réseau - Espaces de noms de réseau Linux avec un pont Ethernet en cours d'exécution.

la mise en oeuvre

Happy est une collection de modules Python. Les modules Core Happy fournissent des abstractions pour:

  • Gérer les abstractions de nœuds
    • Ajout, modification et suppression de nœuds
    • Exécution d'un ensemble de processus dans le nœud
  • Gérer les liens
    • Ajouter, modifier et supprimer des liens
    • Attribution de liens à un nœud et à un réseau
    • Attribution et modification des attributions d'adresses
  • Gérer les réseaux
    • Créer, modifier et détruire des réseaux
    • Connectivité réseau
  • Gérer l'état général du framework de manière cohérente

La plupart des abstractions implémentées par les modules Happy correspondent à des commandes qui invoquent les outils réseau Linux.

Happy contient également un ensemble de plug-ins trouvés dans /plugins . Les plug-ins englobent un ensemble de fonctionnalités liées à une technologie particulière. Par exemple, /plugins/weave contient des helpers qui enveloppent diverses applications Weave pour une exécution dans Happy.

Exécution

Les utilisateurs peuvent créer des topologies simulées via deux méthodes:

  • Commandes Shell - Toutes les commandes sont dans /bin .
  • Scripts Python - Importez des modules Happy pour appeler des commandes Happy dans vos propres scripts Python. Les modules sont en /happy .

Pour plus d'informations sur l'utilisation des modules Happy dans vos propres scripts Python, consultez Script Python .