Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Contento

Happy è uno strumento per l'orchestrazione leggera di topologie di rete simulate. Usalo per testare i protocolli di rete e altri programmi di esecuzione distribuiti su una singola macchina di sviluppo Linux senza utilizzare l'hardware del dispositivo IoT.

Che cos'è?

Happy simula topologie di rete complesse. Su una singola macchina Linux, Happy può creare più nodi con stack di rete indipendenti l'uno dall'altro. Alcuni nodi possono essere connessi a reti Thread simulate, altri possono connettersi a reti Wi-Fi, WAN (Internet) o cellulari simulate.

Happy affronta i seguenti casi d'uso:

  • Test di protocolli di rete e altri programmi di esecuzione distribuiti su una singola macchina di sviluppo Linux senza utilizzare hardware
  • Esecuzione di test funzionali automatizzati su una rete
  • Esecuzione di più reti parallele e simultanee sullo stesso sistema per migliorare il throughput dei test

Happy risolve questi problemi creando astrazioni della topologia di rete con un sovraccarico minimo per l'utente. Topologie complesse possono essere create con una singola chiamata di comando della shell. Happy supporta sia l'uso interattivo che lo scripting automatizzato.

Usa i comandi di Happy Shell per configurare, testare ed eseguire il debug del loro codice durante lo sviluppo. La stessa configurazione di rete e gli stessi programmi di test possono quindi essere inseriti in script e utilizzati nei test automatici.

Iniziare

Il modo più rapido e semplice per iniziare con Happy è passare attraverso il Codelab. Guida l'utente attraverso tutti i fondamenti di Happy, tra cui:

  • Creazione ed eliminazione di una topologia
  • Collegamento in rete dei nodi
  • Salvataggio e ripristino di topologie
  • Collegamento di una topologia a Internet
  • Fondamenti del tessuto

Prova la Guida introduttiva a Happy Codelab

Vedere Configurazione e utilizzo per ulteriori informazioni sulla configurazione e l'utilizzo di Happy.

Architettura

Modelli felici quanto segue:

  • Nodo : uno spazio dei nomi di rete Linux. I processi che comprendono il nodo vengono eseguiti all'interno di uno spazio dei nomi di rete specificato.
  • Link : un'interfaccia di rete Linux. Happy utilizza il dispositivo di rete veth per supportare le interfacce L3 (IP) e il dispositivo di rete tap per supportare le interfacce L2 fuori dalla scatola.
  • Rete : spazi dei nomi di rete Linux con un bridge Ethernet in esecuzione al loro interno.

Implementazione

Happy è una raccolta di moduli Python. I moduli Core Happy forniscono astrazioni per:

  • Gestione delle astrazioni dei nodi
    • Aggiunta, modifica ed eliminazione di nodi
    • Esecuzione di una serie di processi all'interno del nodo
  • Gestione dei collegamenti
    • Aggiunta, modifica ed eliminazione di collegamenti
    • Assegnazione di collegamenti a un nodo e una rete
    • Assegnazione e modifica delle assegnazioni degli indirizzi
  • Gestione delle reti
    • Creazione, modifica e distruzione di reti
    • Connettività di rete
  • Gestire lo stato generale del quadro in modo coeso

La maggior parte delle astrazioni implementate dai moduli Happy si mappano in comandi che invocano strumenti di rete Linux.

Happy contiene anche una serie di plug-in trovati in /plugins . I plug-in racchiudono una serie di funzionalità relative a una particolare tecnologia. Ad esempio, /plugins/weave contengono helper che racchiudono varie applicazioni Weave per l'esecuzione all'interno di Happy.

Esecuzione

Gli utenti possono creare topologie simulate tramite due metodi:

  • Comandi della shell: tutti i comandi sono in /bin .
  • Script Python - Importa i moduli Happy per chiamare i comandi Happy nei tuoi script Python. I moduli sono in /happy .

Per ulteriori informazioni sull'utilizzo dei moduli Happy nei propri script Python, vedere Scripting Python .