Durante i primi cinque passaggi descritti nell'articolo abbiamo collegato con una rete virtuale tre nodi geograficamente distanti tra loro. Uno di questi è situato nella rete fisica, mentre gli altri due si trovano in due data center distanti.
Non ci è voluto molto tempo, anche se ciascuno di questi nodi è stato aggiunto alla rete uno alla volta. E se bisogna connettere non solo uno, ma tutti i nodi presenti nella rete fisica alla rete virtuale di ZeroTier? Questo è un compito che mi sono trovato ad affrontare quando ho iniziato a pensare a come organizzare l'accesso dalla rete virtuale a una stampante di rete e a un router.
Ho provato a utilizzare il metodo descritto sopra — non è risultato né veloce né così semplice ovunque. Ad esempio, non puoi semplicemente connettere una stampante di rete. Mikrotik — ZeroTier non lo supporta. Cosa fare? Dopo aver cercato a lungo su Google e analizzato la materia, sono giunto alla conclusione che dovevo creare un ponte di rete.
Ponte di rete (anche bridge dall'inglese bridge) — dispositivo di rete di secondo livello del modello OSI, progettato per unire segmenti (sottoreti) di una rete informatica in un'unica rete.
Voglio condividere in questo articolo la storia di come l'ho fatto.
Cosa ci costerebbe costruire un ponte…
Per cominciare, io, come amministratore, dovevo decidere quale nodo della rete avrebbe dovuto fungere da ponte. Dopo aver esaminato le opzioni, ho capito che qualsiasi dispositivo informatico capace di creare un ponte tra le interfacce di rete potrebbe funzionare. Potrebbe essere un router — un dispositivo o , oppure un normale server o computer.
Inizialmente, ovviamente, ho considerato l'uso di un router con OpenWRT a bordo. Ma considerando il fatto che il Mikrotik esistente mi soddisfa completamente, sebbene non supporti l'integrazione con ZeroTier, e non voglio complicarmi la vita con soluzioni strane, ho deciso di utilizzare un computer come ponte di rete. Precisamente, un Raspberry Pi 3 Model B sempre collegato alla rete fisica, in esecuzione con l'ultima versione di Raspbian — un sistema operativo basato su Debian Buster.
Per organizzare un bridge, è necessario che il dispositivo disponga di un'interfaccia di rete non utilizzata da altri servizi. Nel mio caso, l'Ethernet principale era già utilizzata, quindi ho creato una seconda interfaccia. Ho usato un adattatore USB-Ethernet basato sul chipset RTL8152 di Realtek per questo compito.
Dopo aver collegato l'adattatore a una porta USB disponibile, aggiornato e riavviato il sistema:
sudo apt update && sudo apt upgrade -y
sudo rebootho verificato se il sistema riconosceva l'adattatore USB Ethernet:
sudo lsusbAnalizzando i dati ricevuti
Bus 001 Device 004: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubho notato con piacere che il Device 004 è proprio il mio adattatore.
Successivamente, ho verificato quale interfaccia di rete fosse assegnata a questo adattatore:
dmesg | grep 8152[ 2.400424] usb 1-1.3: New USB device found, idVendor=0bda, idProduct=8152, bcdDevice=20.00
[ 6.363837] usbcore: registered new interface driver r8152
[ 6.669986] r8152 1-1.3:1.0 eth1: v1.09.9
[ 8.808282] r8152 1-1.3:1.0 eth1: carrier on, che eth1 🙂 E adesso posso configurarlo e creare il bridge di rete.
Ecco cosa ho fatto seguendo l'algoritmo indicato di seguito:
- Ho installato i pacchetti per la gestione del ponte di rete:
sudo apt-get install bridge-utils - ZeroTier ONE:
curl -s https://install.zerotier.com | sudo bash - a una rete ZeroTier esistente:
sudo zerotier-cli join - Ho eseguito il comando per disabilitare la gestione degli indirizzi IP e delle route di ZeroTier:
sudo zerotier-cli set allowManaged=0
Poi nel mio controller di rete:
In Reti ho cliccato su dettagli, ho trovato e sono andato al link v4AssignMode e ho disabilitato l'assegnazione automatica degli indirizzi IP, deselezionando la casella Auto-assign from IP Assignment Pool

Dopo di che ho autorizzato il nodo in connessione, assegnando un nome e selezionando le caselle Autorizzato e Active Bridge. Non ho assegnato un indirizzo IP.

Poi sono tornato a configurare il ponte di rete sul nodo, per il quale ho aperto in modifica tramite terminale il file di configurazione delle interfacce di rete:
sudo nano /etc/network/interfacesDove ho aggiunto le seguenti righe
auto eth1
allow-hotplug eth1
iface eth1 inet manual
auto br0
allow-hotplug br0
iface br0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
network 192.168.0.0
broadcast 192.168.0.255
dns-nameservers 127.0.0.1
bridge_ports eth1 ztXXXXXXXX
bridge_fd 0
bridge_maxage 0 Dove eth1 — adattatore USB Ethernet collegato, a cui non ho assegnato un indirizzo IP.
br0 — un ponte di rete creato con un indirizzo IP statico assegnato dall'intervallo degli indirizzi della mia rete fisica.
ztXXXXXXXX — il nome dell'interfaccia virtuale ZeroTier, che ho ottenuto con il comando:
sudo ifconfigDopo aver inserito le informazioni, ho salvato il file di configurazione e riavviato i servizi di rete con il comando:
sudo /etc/init.d/networking restartPer verificare il funzionamento del ponte, ho eseguito il comando:
sudo brctl show Dai dati ricevuti, il bridge è attivo.
nome del bridge bridge id STP abilitato interfacce
br0 8000.00e04c360769 no eth1
ztXXXXXXXXSuccessivamente, sono passato al controller di rete per impostare la rotta.
Per fare ciò, nella lista dei nodi della rete, ho cliccato sul link Assegnazione IP del ponte di rete. Poi nella finestra aperta ho cliccato su Managed routes. Sono passato a una nuova pagina, dove come Obiettivo ha indicato 0.0.0.0/0, e come Gateway — l'indirizzo IP del ponte di rete dall'intervallo degli indirizzi della rete dell'organizzazione, impostato in precedenza. Nel mio caso 192.168.0.10

Ho confermato i dati inseriti e ho iniziato a verificare la connettività di rete dei nodi, pingando dal nodo della rete fisica al nodo della rete virtuale e viceversa.
Ecco tutto!
A differenza del prototipo da cui sono state fatte le schermate, ho indirizzi IP per i nodi della rete virtuale che appartengono allo stesso intervallo degli indirizzi IP dei nodi fisici. Utilizzando una connessione bridge tra le reti, questo modello è possibile, a patto che non si sovrappongano agli indirizzi forniti dal server DHCP.
Non intendo approfondire la configurazione del bridge di rete sui nodi con MS Windows e altri distribuzioni Linux in questo articolo — ci sono molte risorse disponibili online su questo tema. Per quanto riguarda la configurazione sul controller di rete, è identica a quella descritta sopra.
Voglio solo sottolineare che Raspberry PI è uno strumento economico e conveniente per unire rete con ZeroTier, e non solo come soluzione fissa. Ad esempio, i fornitori di servizi possono utilizzare un bridge di rete preconfigurato basato su Raspberry PI per unire rapidamente la rete fisica del cliente servito a quelle virtuali basate su ZeroTier.
Concludo questa parte del racconto. Attendo domande, feedback e commenti, poiché sarà su queste basi che costruirò il contenuto del prossimo articolo. Nel frattempo, vi invito a provare a organizzare la vostra rete virtuale utilizzando un controller di rete privato con GUI basato su VDS del marketplace su RUVDS. Inoltre, tutti i nuovi clienti possono usufruire di un periodo di prova gratuito di 3 giorni!
->
->
->
Fonte: habr.com
