Node-ID of netwerk-ID: welke stapt in een ZeroTier-netwerk
Een node-ID benoemt een apparaat en een netwerk-ID benoemt het virtuele netwerk. Meedoen vereist het netwerk, en een lid autoriseren vereist de identiteit van het apparaat.
Twee identificaties duiken op in elk ZeroTier-gesprek, en ze lijken genoeg op elkaar om in een chatvenster te worden verward. De node-ID benoemt een apparaat. De netwerk-ID benoemt het virtuele netwerk waar dat apparaat bij wil. Meedoen neemt de tweede, en een lid autoriseren neemt de eerste.
Twee identificaties, twee taken
Een node-identiteit wordt aangemaakt wanneer de dienst voor het eerst op een machine draait, en het is een hexadecimaal adres van tien tekens. Het blijft bij die installatie tot de identiteitsbestanden worden verwijderd, waardoor een herinstallatie een nieuw lid kan opleveren dat niemand heeft goedgekeurd. Een netwerk-ID bestaat uit zestien hexadecimale tekens en duidt een virtueel netwerk aan, niet een machine. De controller die het netwerk bezit is zelf een node, waardoor de eerste tien tekens van de netwerk-ID overeenkomen met het adres van de controller.
Geen van beide waarden is geheim en geen ervan vervangt de ander. De netwerk-ID met elke deelnemer delen is normaal; een node-ID delen wijst één apparaat aan bij de controller.
Lees elke waarde uit het commando dat hem meldt
Eén commando meldt de identiteit van de lokale dienst, en een ander meldt de netwerken waarmee hij is verbonden. Een waarde bij het verkeerde commando vragen is hoe mensen uiteindelijk een netwerk-ID in een ledenlijst plakken.
zerotier-cli info zerotier-cli status zerotier-cli listnetworks
De eerste drukt het node-adres af en of de dienst online is. De tweede voegt versie- en poortinformatie toe. De derde somt verbonden netwerken op met hun ID's, status en toegewezen adressen, en het is de enige die je moet gebruiken wanneer je de netwerk-ID nodig hebt.
Doe mee met het netwerk, autoriseer met de node
Het verbindingscommando neemt de netwerk-ID die degene die de controller beheert aanlevert. Een positief antwoord van het commando betekent dat het verzoek is verstuurd, niet dat lidmaatschap op een privénetwerk is verleend.
Na het verbinden autoriseert de beheerder het apparaat op zijn node-ID in de ledenlijst voor dat netwerk. Hij heeft de netwerk-ID niet opnieuw nodig, en hij kan een apparaat niet op zijn hostnaam autoriseren, omdat de identiteit het adres is. Als u de beheerder bent, lees de ledenlijst en vergelijk het node-adres met het verzoek. Een verzoek dat een netwerk noemt maar geen node-adres is niet uitvoerbaar.
Het gedeelde voorvoegsel heeft een reden
Omdat een netwerk-ID begint met het node-adres van de controller, verschijnen dezelfde tien tekens op beide plaatsen. Dat is een routeringsgemak, geen aanwijzing dat de twee waarden uitwisselbaar zijn.
Het verklaart ook waarom de identiteit van een controller belangrijker is dan zijn weergavenaam. Een controller onder een nieuwe identiteit herstellen maakt een andere adresruimte, dus de netwerken die onder de oude zijn gedefinieerd zijn niet dezelfde netwerken, zelfs als de namen opnieuw worden gebruikt.
Bewaar de identiteit van de controller in je back-up samen met de configuratie. Die identiteit als een opnieuw te genereren label behandelen maakt van een herstel een herontwerp.
Controleer het resultaat, niet de uitvoer van het commando
Een geslaagde verbinding is het begin van de controle, niet het einde. Kijk daarna naar de netwerkinvoer en lees drie velden: de status, het toegewezen adres en de netwerk-ID.
zerotier-cli listnetworks -j ip -br addr show | grep zt ping -c 2 10.147.20.5
Het eerste commando drukt dezelfde lijst af in een parseerbare vorm, wat het vergelijken met wat de beheerder verwachtte makkelijker maakt. Het tweede bevestigt dat de interface een adres heeft gekregen, en het derde test een peer op het netwerk in plaats van de lokale toestand.
Als de invoer ACCESS_DENIED zegt, is de node-ID niet geautoriseerd. Als er NOT_FOUND staat, is de netwerk-ID verkeerd. Als er OK zonder adres staat, is de adrestoewijzing van de controller de volgende vraag, en geen van die drie wordt beantwoord door opnieuw te verbinden.