Happy

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Happy est un outil d'orchestration légère de topologies de réseau simulées. Utilisez-le pour tester 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 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 :

  • Tester les protocoles réseau et autres programmes d'exécution distribués sur une seule machine de développement Linux sans utiliser de matériel
  • Réalisation 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 de test

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 les scripts automatisés.

Utilisez les commandes du shell Happy 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éation et suppression d'une topologie
  • Nœuds de réseautage ensemble
  • Enregistrement et restauration de topologies
  • Connecter 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 Heureux.

Architecture

Happy modèles les suivants :

  • Noeud - Un espace de noms de réseau Linux. Les processus comprenant le nœud s'exécutent dans un espace de noms de réseau spécifié.
  • Link - Une interface réseau Linux. Bonne utilise le veth dispositif de réseau pour supporter les interfaces L3 (IP) et le tap dispositif de réseau pour soutenir L2 interfaces hors de la boîte.
  • Réseau - réseau Linux avec namespaces un pont Ethernet en cours d' exécution en eux.

Mise en œuvre

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

  • Gestion des abstractions de nœuds
    • Ajout, modification et suppression de nœuds
    • Exécution d'un ensemble de processus dans le nœud
  • Gestion des liens
    • Ajout, modification et suppression de liens
    • Affectation de liens à un nœud et à un réseau
    • Attribution et modification des attributions d'adresses
  • Gestion des réseaux
    • Création, modification et destruction de réseaux
    • Connectivité réseau
  • Gérer l'état général du cadre de manière cohérente

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

Heureux contient également un ensemble de plugins trouvés dans /plugins . Les plug-ins enveloppent un ensemble de fonctionnalités liées à une technologie particulière. Par exemple, /plugins/weave contiennent des aides qui enveloppent diverses applications Weave pour l' exécution au sein heureux.

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 dans /happy .

Pour plus d' informations sur l' utilisation de modules Happy dans vos propres scripts Python, voir les scripts Python .