ID del nodo o ID della rete: quale si unisce a una rete ZeroTier
Un ID del nodo nomina un dispositivo e un ID della rete nomina la rete virtuale. Per unirsi serve la rete, per autorizzare un membro serve l'identità del dispositivo.
Due identificatori compaiono in ogni conversazione su ZeroTier, e si somigliano abbastanza da essere confusi in una finestra di chat. L'ID del nodo nomina un dispositivo. L'ID della rete nomina la rete virtuale a cui quel dispositivo vuole unirsi. Unirsi richiede il secondo, e autorizzare un membro richiede il primo.
Due identificatori, due compiti
L'identità del nodo viene generata al primo avvio del servizio su una macchina, ed è un indirizzo esadecimale di dieci caratteri. Resta con quell'installazione finché non vengono rimossi i file di identità, ed è per questo che una reinstallazione può produrre un nuovo membro che nessuno ha approvato. Un ID della rete è di sedici caratteri esadecimali e identifica una rete virtuale anziché una macchina. Il controller che possiede la rete è a sua volta un nodo, perciò i primi dieci caratteri dell'ID della rete coincidono con l'indirizzo del controller.
Nessuno dei due valori è un segreto e nessuno sostituisce l'altro. Condividere l'ID della rete con ogni partecipante è normale; condividere un ID del nodo indica un dispositivo al controller.
Leggi ogni valore dal comando che lo riporta
Un comando riporta l'identità del servizio locale, e un altro riporta le reti a cui si è unito. Chiedere un valore al comando sbagliato è il modo in cui le persone finiscono per incollare un ID della rete in un elenco di membri.
zerotier-cli info zerotier-cli status zerotier-cli listnetworks
Il primo stampa l'indirizzo del nodo e se il servizio è in linea. Il secondo aggiunge informazioni su versione e porta. Il terzo elenca le reti unite con i loro ID, lo stato e gli indirizzi assegnati, ed è l'unico da usare quando serve l'ID della rete.
Unisciti con la rete, autorizza con il nodo
Il comando di unione prende l'ID della rete fornito da chi gestisce il controller. Una risposta positiva del comando significa che la richiesta è stata inviata, non che l'appartenenza a una rete privata sia stata concessa.
Dopo l'unione, l'amministratore autorizza il dispositivo tramite il suo ID del nodo nell'elenco dei membri di quella rete. Non ha più bisogno dell'ID della rete, e non può autorizzare un dispositivo tramite il nome host, perché l'identità è l'indirizzo. Se sei l'amministratore, leggi l'elenco dei membri e confronta l'indirizzo del nodo con la richiesta. Una richiesta che nomina una rete ma non un indirizzo del nodo non è eseguibile.
Il prefisso condiviso ha un motivo
Poiché un ID della rete inizia con l'indirizzo del nodo del controller, gli stessi dieci caratteri compaiono in entrambi i punti. È una comodità di instradamento, non un indizio che i due valori siano intercambiabili.
Spiega anche perché l'identità di un controller conta più del suo nome visualizzato. Ripristinare un controller con una nuova identità crea uno spazio di indirizzi diverso, quindi le reti definite con quella vecchia non sono le stesse reti anche se i nomi vengono riutilizzati.
Conserva l'identità del controller nel backup insieme alla sua configurazione. Trattare quell'identità come un'etichetta rigenerabile trasforma un ripristino in una riprogettazione.
Verifica il risultato, non l'output del comando
Un'unione riuscita è l'inizio del controllo, non la fine. Poi guarda la voce di rete e leggi tre campi: lo stato, l'indirizzo assegnato e l'ID della rete.
zerotier-cli listnetworks -j ip -br addr show | grep zt ping -c 2 10.147.20.5
Il primo comando stampa lo stesso elenco in una forma analizzabile, il che facilita il confronto con ciò che l'amministratore si aspettava. Il secondo conferma che l'interfaccia ha ricevuto un indirizzo, e il terzo prova un pari sulla rete anziché lo stato locale.
Se la voce dice ACCESS_DENIED, l'ID del nodo non è autorizzato. Se dice NOT_FOUND, l'ID della rete è errato. Se dice OK senza indirizzo, l'assegnazione degli indirizzi del controller è la domanda successiva, e nessuna di queste tre si risolve unendosi di nuovo.