Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
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 usare 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 collegati a reti Thread simulate, altri possono connettersi a reti Wi-Fi, WAN (Internet) o cellulari simulate.

Happy risolve i seguenti casi d'uso:

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

Happy risolve questi problemi creando astrazioni di topologia di rete con un sovraccarico minimo da parte dell'utente. Topologie complesse possono essere create con una singola chiamata di comando shell. Happy supporta sia l'uso interattivo che gli script automatici.

Usa i comandi Happy shell per impostare, testare ed eseguire il debug del loro codice durante lo sviluppo. La stessa configurazione di rete e i programmi di test possono quindi essere copiati e utilizzati nei test automatizzati.

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
  • Nodi di rete insieme
  • Salvataggio e ripristino di topologie
  • Connessione 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

Happy modella 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.
  • Collegamento : 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 veth .
  • 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
    • Assegnare e modificare le assegnazioni degli indirizzi
  • Gestire le reti
    • Creazione, modifica e distruzione di reti
    • Connettività di rete
  • Gestire lo stato generale del framework in modo coerente

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

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

Esecuzione

Gli utenti possono creare topologie simulate con due metodi:

  • Comandi Shell - Tutti i comandi sono in /bin .
  • Script Python: importa moduli Happy per chiamare i comandi Happy nei tuoi script Python. I moduli sono in /happy .

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