
Continuando il racconto su ZeroTier, dalla teoria esposta nell'articolo «Switch Ethernet intelligente per il pianeta Terra», passo alla pratica, in cui:
- Creeremo e configureremo un controller di rete privato
- Creeremo una rete virtuale
- Configureremo e collegheremo nodi ad essa
- Verificheremo la connettività di rete tra di loro
- Chiuderemo l'accesso all'interfaccia grafica del controller di rete dall'esterno
Controller di rete
Come già detto in precedenza, per creare reti virtuali, gestirle e connettere nodi, l'utente ha bisogno di un controller di rete, la cui interfaccia grafica (GUI) esiste in due forme:
Opzioni ZeroTier GUI
- Una da parte degli sviluppatori di ZeroTier, disponibile come soluzione cloud pubblica, offerta secondo il modello SaaS, con quattro piani di abbonamento, incluso uno gratuito ma limitato nel numero di dispositivi gestiti e nel livello di supporto.
- La seconda - da uno sviluppatore indipendente, un po' semplificata nelle funzionalità, ma disponibile come soluzione open source privata, per l'uso in loco o su risorse cloud.
Nella mia pratica ho utilizzato entrambe e alla fine ho optato per la seconda. La ragione di ciò sono state le avvertenze dello sviluppatore.
«I controller di rete servono come centri di certificazione per le reti virtuali ZeroTier. I file contenenti le chiavi segrete del controller devono essere custoditi con attenzione e archiviati in modo sicuro. La loro compromissione consente a malintenzionati non autorizzati di creare configurazioni di rete fraudolente, mentre la loro perdita porta alla perdita della capacità di controllare e gestire la rete, rendendola di fatto inutilizzabile»
E, inoltre, segni di una propria paranoia sulla sicurezza 🙂
- Anche se arrivasse il Cheburnet, dovrei mantenere accesso al mio controller di rete;
- Il controller di rete deve essere utilizzato solo da me, con la possibilità di fornire accesso alle mie persone di fiducia se necessario;
- Deve esserci la possibilità di limitare l'accesso al controller di rete dall'esterno.
Non vedo particolarmente utile soffermarmi su come distribuire un controller di rete e la GUI per esso su risorse fisiche o virtuali on-premise; anche questo ha tre ragioni:
- il numero di parole sarà maggiore di quanto previsto
- di questo si è già parlato è stato raccontato su GitHab dello sviluppatore GUI
- l'argomento dell'articolo è diverso
Pertanto, scegliendo la via della minore resistenza, utilizzerò in questo racconto un controller di rete con GUI basato su VDS, creato da un modello, gentilmente sviluppato dai miei colleghi di ProHoster.
Impostazione iniziale
Dopo la creazione server dal modello specificato, l'accesso al Web-GUI del controller è effettuato dall'utente tramite il browser, accedendo all'indirizzo https://:3443

Per impostazione predefinita server è già dotato di un certificato TLS/SSL autofirmato pre-creato. Per me è sufficiente, poiché chiudo l'accesso dall'esterno. Per coloro che desiderano utilizzare altri tipi di certificati, ci sono guida all'installazione su GitHab dello sviluppatore GUI.
Al primo accesso dell'utente nel sistema Accesso con le credenziali di login e password predefinite — admin e password:

Viene offerta la possibilità di cambiare la password predefinita con quella personalizzata

Io procedo in modo leggermente diverso — non cambio la password dell'utente esistente, ma creo un nuovo utente — Crea utente.
Assegno un nome al nuovo utente — Nome utente:
Imposto una nuova password — Inserisci nuova password:
Confermo la nuova password — Re-inserisci password:
I caratteri inseriti sono sensibili al maiuscolo — fai attenzione!
Casella di controllo per confermare il cambio di password al prossimo accesso — Cambia password al prossimo accesso: non la spunto.
Per confermare i dati inseriti clicco su Imposta password:

Poi: effettuo il logout — Logout / Accesso, già con le credenziali del nuovo utente:

Poi passo alla scheda utenti — Utenti e rimuovo l'utente admin, cliccando sull'icona del cestino, che si trova a sinistra del suo nome.

In seguito, per cambiare la password dell'utente, è possibile cliccare sul suo nome oppure su imposta password.
Creazione di una rete virtuale
Per creare una rete virtuale, l'utente deve passare alla scheda Aggiungi rete. Da questo punto User è possibile farlo tramite la pagina Home — la pagina principale del Web-GUI, dove viene visualizzato l'indirizzo ZeroTier di questo controller di rete e c'è un link alla pagina dell'elenco delle reti create tramite esso.

Nella pagina Aggiungi rete l'utente assegna un nome alla rete appena creata.

Applicando i dati inseriti — Crea rete l'utente arriva alla pagina con l'elenco delle reti, dove sono indicati:
Nome rete — il nome della rete in forma di link, su cui è possibile fare clic per modificarlo
ID rete — identificativo della rete
dettaglio — link alla pagina con i dettagli della rete
installazione facile — link alla pagina per un'impostazione semplice
membri — link alla pagina di gestione dei nodi

Per ulteriori impostazioni, seguire il link installazione facile. Nella pagina aperta, l'utente imposta l'intervallo degli indirizzi IPv4 per la rete da creare. Questo può essere fatto automaticamente premendo il pulsante Genera indirizzo di rete oppure manualmente, inserendo nel campo corrispondente la maschera di rete CIDR.

Una volta confermata l'immissione dei dati, è necessario tornare alla pagina con l'elenco delle reti tramite il pulsante Indietro. A questo punto, la configurazione principale della rete può considerarsi completata.
Connessione dei nodi di rete
- Per iniziare, sul nodo che l'utente desidera connettere alla rete, è necessario installare il servizio ZeroTier One.Cos'è ZeroTier One?ZeroTier One è un servizio che funziona su laptop, computer desktop, server, macchine virtuali e container, e fornisce connessioni a una rete virtuale tramite una porta di rete virtuale, similmente a un client VPN. Dopo aver installato e avviato il servizio, è possibile connettersi alle reti virtuali utilizzando i loro indirizzi a 16 cifre. Ogni rete appare come una porta di rete virtuale nel sistema, che si comporta come una normale porta Ethernet.
I collegamenti ai pacchetti e i comandi di installazione possono essere trovati nella pagina del produttore. È possibile gestire il servizio installato tramite il terminale della riga di comando (CLI) con diritti di amministratore/root. In Windows/MacOS anche tramite interfaccia grafica. In Android/iOS solo tramite GUI. - Verifica del successo dell'installazione del servizio:CLI:
zerotier-cli statusRisultato:
200 info ebf416fac1 1.4.6 ONLINE
GUI:Il semplice fatto che l'applicazione sia in esecuzione e che ci sia una riga con Node ID con l'indirizzo del nodo.
- Connessione del nodo alla rete:CLI:
zerotier-cli joinRisultato:
200 join OKGUI:
Windows: facendo clic con il tasto destro sull'icona ZeroTier One nella tray di sistema e selezionando l'opzione — Unisciti alla rete.

MacOS: Apri l'applicazione ZeroTier One nel menu bar, se non è già avviata. Clicca sull'icona ⏁ e seleziona Unisciti alla rete.Android/iOS: + (immagine del segno più) nell'app

Nel campo che appare, inserisci quanto indicato nella GUI del controller di rete ID rete, e premi Unisciti / Aggiungi rete. - Assegnazione dell'indirizzo IP al nodo
Ora torniamo al controller di rete e nella pagina con l'elenco delle reti seguiamo il link membri. Se sullo schermo appare un'immagine simile a questa, significa che il tuo controller di rete ha ricevuto la richiesta di conferma della connessione alla rete dal nodo in fase di connessione.
Su questa pagina lasciamo tutto com'è e seguiamo il link Assegnazione IP andiamo alla pagina di destinazione del nodo con l'indirizzo IP:
Dopo aver assegnato l'indirizzo, premi il pulsante Retro torniamo alla pagina dell'elenco dei nodi connessi e diamo un nome — Nome membro e selezioniamo la casella di controllo per autorizzare il nodo nella rete — Autorizzato. A proposito, questa casella di controllo è molto comoda per disconnettere/riconnettere il nodo dalla rete in seguito.
Salviamo le modifiche utilizzando il pulsante Aggiorna. - Verifica dello stato di connessione del nodo alla rete:
Per controllare lo stato di connessione sul nodo stesso eseguiamo:
CLI:zerotier-cli listnetworksRisultato:
200 elenco reti
200 elenco reti 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATO ethernet_32774 10.10.10.2/24
GUI:Lo stato della rete dovrebbe essere OK
Per collegare gli altri nodi ripetiamo le operazioni da 1 a 5 per ognuno di essi.
Verifica della connettività di rete dei nodi
Lo faccio eseguendo il comando ping su un dispositivo connesso alla rete che attualmente gestisco.

Nello screenshot del Web-GUI del controller si possono vedere tre nodi connessi alla rete:
- ZTNCUI — 10.10.10.1 — il mio controller di rete con GUI — VDS in uno dei data center ProHoster. Per il funzionamento normale non è necessario aggiungerlo alla rete, ma l'ho fatto poiché voglio limitare l'accesso all'interfaccia web dall'esterno. Di questo parlerò più avanti.
- MyComp — 10.10.10.2 — il mio computer di lavoro — PC fisico
- Backup — 10.10.10.3 — VDS in un altro data center.
Pertanto, dal mio computer di lavoro verifico la disponibilità degli altri nodi con i comandi:
ping 10.10.10.1Pingando 10.10.10.1 con 32 byte di dati:
Risposta da 10.10.10.1: byte=32 tempo=14ms TTL=64
Risposta da 10.10.10.1: byte=32 tempo=4ms TTL=64
Risposta da 10.10.10.1: byte=32 tempo=7ms TTL=64
Risposta da 10.10.10.1: byte=32 tempo=2ms TTL=64
Statistiche del ping per 10.10.10.1:
Pacchetti: Inviati = 4, Ricevuti = 4, Persi = 0 (0% di perdita),
Tempi di andata e ritorno approssimativi in millisecondi:
Minimo = 2ms, Massimo = 14ms, Medio = 6ms
ping 10.10.10.3Pingando 10.10.10.3 con 32 byte di dati:
Risposta da 10.10.10.3: byte=32 tempo=15ms TTL=64
Risposta da 10.10.10.3: byte=32 tempo=4ms TTL=64
Risposta da 10.10.10.3: byte=32 tempo=8ms TTL=64
Risposta da 10.10.10.3: byte=32 tempo=4ms TTL=64
Statistiche del ping per 10.10.10.3:
Pacchetti: Inviati = 4, Ricevuti = 4, Persi = 0 (0% di perdita),
Tempi di andata e ritorno approssimativi in millisecondi:
Minimo = 4ms, Massimo = 15ms, Medio = 7ms
L'utente ha il diritto di utilizzare altri strumenti per verificare la disponibilità dei nodi nella rete, sia quelli integrati nel sistema operativo che strumenti come NMAP, Advanced IP Scanner, ecc.
Nascondiamo l'accesso al GUI del controller di rete dall'esterno.
In generale, per ridurre il rischio di accesso non autorizzato al VDS su cui si trova il mio controller di rete, posso utilizzare il firewall nel pannello di controllo di ProHoster. Questo argomento richiederebbe un articolo a parte. Quindi, qui mostrerò come garantire l'accesso al GUI del controller solo dalla rete che ho creato in questo articolo.
Per fare ciò, è necessario connettersi tramite SSH al VDS su cui si trova il controller, aprire il file di configurazione con il comando:
nano /opt/key-networks/ztncui/.envNel file aperto, dopo la riga «HTTPS_PORT=3443», che contiene l'indirizzo della porta tramite cui si apre il GUI, bisogna aggiungere una riga aggiuntiva con l'indirizzo tramite cui si aprirà il GUI — nel mio caso è HTTPS_HOST=10.10.10.1.
Poi salverò il file
Ctrl+C
Y
Invio
ed eseguirò il comando:
systemctl restart ztncuiE tutto, ora il GUI del mio controller di rete è accessibile solo dai nodi della rete 10.10.10.0.24.
In conclusione
Con questo voglio concludere la prima parte della guida pratica sulla creazione di reti virtuali basate su ZeroTier. Attendo i vostri commenti.
Nel frattempo, per passare il tempo fino alla pubblicazione della prossima parte, in cui spiegherò come unire una rete virtuale con una fisica, come organizzare una modalità «road warrior» e altro ancora, vi propongo di provare a organizzare la vostra rete virtuale con un controller di rete privato con GUI basato su VDS dal marketplace di sito ProHoster. Inoltre, per tutti i nuovi clienti è disponibile un periodo di prova gratuito di 3 giorni!
P.S. Sì! Per poco non me ne sono ricordato! È possibile rimuovere un nodo dalla rete con il comando nel CLI di quel nodo.
zerotier-cli leave200 leave OK
oppure con il comando Delete nel GUI del client sul nodo.
-> Introduzione. Parte teorica. Switch Ethernet intelligente per il pianeta Terra
-> Guida pratica alla costruzione di reti virtuali. Parte 1
-> Guida pratica alla costruzione di reti virtuali. Parte 2
Fonte: habr.com





