Nebula static_host_map: d’Adress, déi e Liichtdurm net ka ginn
D’Kaart paart eng Overlay-Adress mat Endpunkten, déi am richtege Netz erreechbar sinn. Genau déi Paarung mécht den éischten Handshake méiglech.
All Liichtdurm kann engem Host vun all anere Peer erzielen, ausser wou de Liichtdurm selwer läit. Eppes muss bekannt sinn, ier den Overlay existéiert, an Nebula setzt dat Eppes an eng kleng Kaart. D’Kaart paart eng Overlay-Identitéit mat enger Adress, déi am gewéinleche Netz funktionéiert. Alles wat méi spéit geléiert gëtt, hänkt dovun of, datt déi Paarung richteg ass.
Zwee Adressen mat zwee Aufgaben
All Nebula-Host huet eng Overlay-Adress, déi fest bleift, während den Apparat tëscht Netzwierker wechselt. Déi Adress ass d’Identitéit, déi Zertifikater, Firewall-Reegelen a Peer-Bezéiungen benotzen, an eleng rout se néierens hin. Den erreechbaren Endpunkt ass eppes anescht: e Hostnumm oder eng Adress am ënnerleeënden Netz plus en UDP-Port, an en ännert sech, all Kéier wann d’Maschinn d’Plaz wiesselt. D’statesch Kaart ass d’Verbindung tëscht deenen zwee.
An d’Kaart kommen nëmmen Hosts, déi kal misse gewielt ginn, wat meeschtens d’Liichtdürm a vläicht eng Relais bedeit. Dës Lëscht kuerz ze halen ass en Designzil, well all manuell Entrée eng Tatsaach gëtt, déi een ënnerhalen muss. Déi zwou Adresstypen ze verwiesselen ass de gewéinleche Konfiguratiounsfeeler: eng ëffentlech Adress an der Liichtdurm-Lëscht fänkt d’Entdeckung net un.
Identitéit geet dohinner, wou Identitéit erwaart gëtt. Erreechbarkeet geet an d’Kaart.
static_host_map:
"10.42.0.1": ["lighthouse-01.example.net:4242"]
lighthouse:
am_lighthouse: false
hosts:
- "10.42.0.1"
Anatomie vun enger Kaartentrée
De Schlëssel ass d’Overlay-Adress als Zeechekette an Anführungszeechen geschriwwen, an de Wäert ass eng Lëscht vun Endpunkten, sou datt eng Identitéit verschidde Agäng ka hunn. All Endpunkt dréit en Host an en Port, an de Port muss zu deem passen, op wat déi aner Säit tatsächlech lauschtert. Nebulas Standard ass UDP 4242, wat en Ausgangspunkt ass an net e Verspriechen iwwer deng Installatioun.
Méi Endpunkten sinn nëtzlech, wann e Liichtdurm méi wéi ee Wee erab huet, zum Beispill eng ëffentlech Adress an eng privat Adress fir Hosts am selwechte Segment. De Client probéiert se der Rei no, also setz dee zouverlässegsten als éischten. Fir IPv6 setz d’Adress an eckeg Klammeren, ier de Port ugehänkt gëtt; e Feeler dobäi gëtt e Parsefeeler, deen op déi falsch Linn weist.
En falschen Port gëtt Stille amplaz engem Feeler, well UDP keen Handshake huet, dee kéint ofleenen. Dofir ass et derwäert, d’Format vun der Entrée géint déi Nebula-Referenz fir static_host_map ze kontrolléieren an net géint d’Erënnerung. D’Referenz deckt och Endpunktlëschten an d’Verhalen vum DNS-Opfrëschen of.
Bootstrap muss virum Overlay funktionéieren
En DNS-Numm an der Kaart muss iwwer de Resolver opgeléist ginn, deen den Host virun engem Tunnel huet, dat heescht de gewéinleche Systemresolver. Test et vun der selwechter Maschinn, beim Start, mam Overlay gestoppt. En Numm, deen nëmmen iwwer den eegenen DNS vum Overlay opgeléist gëtt, kann den Overlay net bootstrappen. Dee selwechten Test gëllt fir d’Route: eng Firewall-Reegel, déi den Overlay erlaabt awer net den éischten UDP-Austausch, blockéiert deenen éischten Pak.
Iwwerpréif de Port mat engem UDP-Werkzeug amplaz unzehuelen, datt en oppen ass. Bestäteg, datt all Portweiderleeung um Wee op den richtegen internen Host weist an datt et en Zeréckwee gëtt. Wann den Hostnumm op verschidden Adressen opgeléist gëtt, test jiddereen, well de Client eng Adress ka wielen, déi s du ni iwwerpréift hues.
Statesch Entréeë ginn direkt gewielt a froen ni e Liichtdurm. Dofir gesäit en Ausfall hei aus wéi en normale Timeout ouni ee betraffene Peer.
Wat geschitt nom éischten Handshake
Soubal en Host e Liichtdurm erreecht, léiert en iwwer Peers an hir erreechbar Adressen ouni weider manuell Entréeën. Hosts, déi zënter der leschter Verbindung geplënnert sinn, ginn iwwer dee Kanal entdeckbar. Dat ass d’Belounung dofir, déi manuell Kaart kleng ze halen.
Hosts kënnen och hir eege zousätzlech erreechbar Adressen annoncéieren, an sou hëlleft e Peer hannert enger bekannter ëffentlecher Adress aneren, hien ze fannen. Déi Annoncen ginn geléiert, net an d’statesch Kaart getippt.
D’Opfrëschverhalen ass wichteg fir Endpunkten, déi als DNS-Nimm geschriwwe sinn, well eng opgeléist Adress sech ännere kann, während de Prozess nach leeft. D’Astellunge vu Nebula steieren, wéi déi Lookupen geschéien, dorënner wéi ee Resolver benotzt gëtt, also lies se amplaz de Systemstandard unzehuelen. Op engem Host, deem säi Resolver sech ännert, wann en Tunnel eropkënnt, kann déi falsch Astellung en funktionéierende Bootstrap an en Numm verwandelen, deen an der Mëtt vun der Sitzung ophält opzeléisen. D’Lookup un ene stabile Resolver ze befestegen ass dacks den Ënnerscheed tëscht engem zouverlässegen Overlay an engem, deen ënnerbrëcht.
Wann d’Entdeckung funktionéiert an een Peer net
Wann d’Liichtdürm erreechbar sinn a méi wéi déi meescht Peers sech verbannen, ass de Bootstrap net de Problem. Déi reschtlech Pair fënnt entweder kee brauchbare Wee zueneen oder versoeet iwwer der Erreechbarkeet. Eng aner Schreifweis vun der Liichtdurm-Adress bäizesetzen reparéiert keen vun den zwee Fäll.
Iwwerpréif d’Pair, ier s de d’Kaart änderst, op déi sech schonn alles anescht stützt. Eng Kaartännerung stéiert all Host, also ass et dat lescht, wat ee beréiert, net dat éischt.
Fänk mat Zertifikater vun der selwechter Autoritéit un, well en ofgeleenten Handshake aus der Distanz wéi en onerreechbare Peer ka ausgesinn. Préif duerno, ob d’Pair en direkte Wee kann opbauen an ob eng Relais fir Netzwierker konfiguréiert ass, déi direkten Traffic ofleenen. Eng Relais setzt en Hopp an eng Ofhängegkeet derbäi, awer et ass eng ënnerstëtzte Äntwert, an de Wee vun der Pair ze reparéieren ass eng aner Aufgab wéi d’Entdeckung ze reparéieren.