Nebula static_host_map: adresas, kurio švyturys negali duoti
Žemėlapis susieja overlay adresą su galiniais taškais, pasiekiamais tikrame tinkle. Būtent šis susiejimas leidžia pirmąjį rankos paspaudimą.
Kiekvienas švyturys gali hostui papasakoti apie kiekvieną kitą partnerį, išskyrus tai, kur gyvena pats švyturys. Kažkas turi būti žinoma prieš atsirandant overlay tinklui, ir Nebula tą kažką padeda į vieną mažą žemėlapį. Žemėlapis susieja overlay tapatybę su adresu, kuris veikia įprastame tinkle. Viskas, kas išmokstama vėliau, priklauso nuo to, ar šis susiejimas teisingas.
Du adresai su dviem užduotimis
Kiekvienas Nebula hostas turi overlay adresą, kuris lieka pastovus, kol įrenginys juda tarp tinklų. Tas adresas yra tapatybė, kurią naudoja sertifikatai, ugniasienės taisyklės ir partnerių ryšiai, ir vienas pats jis niekur nemaršrutizuoja. Pasiekiamas galinis taškas yra kažkas kito: pagrindiniame tinkle esantis hosto vardas arba adresas ir UDP prievadas, ir jis keičiasi kaskart, kai mašina pakeičia vietą. Statinis žemėlapis yra jungtis tarp jų dviejų.
Į žemėlapį patenka tik tie hostai, kuriuos reikia rinkti šaltus, o tai paprastai reiškia švyturius ir galbūt vieną relę. Šio sąrašo trumpumas yra dizaino tikslas, nes kiekvienas rankinis įrašas tampa faktu, kurį kažkas turi prižiūrėti. Dviejų adresų tipų painiojimas yra įprasta konfigūracijos klaida: viešas adresas, įrašytas į švyturių sąrašą, nepradeda atradimo.
Tapatybė eina ten, kur tapatybės tikimasi. Pasiekiamumas eina į žemėlapį.
static_host_map:
"10.42.0.1": ["lighthouse-01.example.net:4242"]
lighthouse:
am_lighthouse: false
hosts:
- "10.42.0.1"
Žemėlapio įrašo anatomija
Raktas yra overlay adresas, parašytas kaip eilutė kabutėse, o reikšmė yra galinių taškų sąrašas, todėl viena tapatybė gali turėti kelis įėjimo taškus. Kiekvienas galinis taškas turi hostą ir prievadą, o prievadas turi atitikti tai, ko kita pusė iš tikrųjų klausosi. Nebula numatytoji reikšmė yra UDP 4242, ir tai yra starto taškas, o ne pažadas dėl jūsų diegimo.
Keli galiniai taškai naudingi, kai švyturys turi daugiau nei vieną kelią į vidų, pavyzdžiui, viešą adresą ir privatų adresą to paties segmento hostams. Klientas bando juos iš eilės, todėl patikimiausią dėkite pirmą. IPv6 atveju įrašykite adresą laužtiniuose skliaustuose prieš pridėdami prievadą; suklydus gaunama analizės klaida, rodanti neteisingą eilutę.
Neteisingas prievadas duoda tylą, o ne klaidą, nes UDP neturi rankos paspaudimo, kuriuo būtų galima atsisakyti. Todėl įrašo formatą verta patikrinti pagal Nebula static_host_map nuorodą o ne pagal atmintį. Nuoroda taip pat apima galinių taškų sąrašus ir DNS atnaujinimo elgseną.
Paleidimas turi veikti prieš overlay
DNS vardas žemėlapyje turi būti išsprendžiamas per tą resolverį, kurį hostas turi prieš bet kokį tunelį, tai yra įprastas sistemos resolveris. Patikrinkite tai iš tos pačios mašinos, paleidimo metu, sustabdę overlay. Vardas, kuris sprendžiamas tik per paties overlay DNS, negali paleisti overlay. Tas pats bandymas galioja maršrutui: ugniasienės taisyklė, kuri leidžia overlay, bet ne pirmąjį UDP apsikeitimą, blokuoja pradinį paketą.
Patikrinkite prievadą UDP įrankiu, o ne manydami, kad jis atidarytas. Patvirtinkite, kad bet koks prievadų persiuntimas kelyje nukreiptas į teisingą vidinį hostą ir kad yra grįžimo kelias. Jei hosto vardas sprendžiamas į kelis adresus, patikrinkite kiekvieną, nes klientas gali pasirinkti adresą, kurio niekada netikrinote.
Statiniai įrašai renkami tiesiogiai ir niekada neklausia švyturio. Todėl gedimas čia atrodo kaip įprastas laiko limitas be jokio partnerio.
Kas nutinka po pirmojo rankos paspaudimo
Kai hostas pasiekia švyturį, jis sužino apie partnerius ir jų pasiekiamus adresus be papildomų rankinių įrašų. Hostai, kurie pasislinko nuo paskutinio ryšio, tampa aptinkami per tą kanalą. Tai atlygis už rankinio žemėlapio laikymą mažu.
Hostai taip pat gali skelbti savo papildomus pasiekiamus adresus, ir taip partneris už žinomo viešo adreso padeda kitiems jį rasti. Tie skelbimai išmokstami, o ne įrašomi į statinį žemėlapį.
Atnaujinimo elgsena svarbi galiniams taškams, įrašytiems kaip DNS vardai, nes išspręstas adresas gali pasikeisti, kol procesas vis dar veikia. Nebula nustatymai valdo, kaip tie ieškojimai vyksta, įskaitant tai, kuris resolveris naudojamas, todėl skaitykite juos, o ne manykite sistemos numatytąją. Hoste, kurio resolveris pasikeičia, kai pakyla tunelis, neteisingas nustatymas gali paversti veikiantį paleidimą vardu, kuris nustoja spręsti sesijos viduryje. Ieškojimo pririšimas prie stabilaus resolverio dažnai yra skirtumas tarp patikimo overlay ir protarpinio.
Kai atradimas veikia, o vienas partneris ne
Jei švyturiai pasiekiami ir dauguma partnerių jungiasi, paleidimas nėra problema. Likusi pora arba neranda naudojamo kelio vienas pas kitą, arba nepavyksta aukščiau pasiekiamumo. Dar vienos švyturio adreso rašybos pridėjimas negali pataisyti nė vieno iš dviejų atvejų.
Patikrinkite porą prieš redaguodami žemėlapį, kuriuo jau remiasi visa kita. Žemėlapio pakeitimas sutrikdo kiekvieną hostą, todėl tai paskutinis dalykas, kurį reikia liesti, o ne pirmas.
Pradėkite nuo tos pačios institucijos sertifikatų, nes atmestas rankos paspaudimas iš tolo gali atrodyti kaip nepasiekiamas partneris. Tada patikrinkite, ar pora gali užmegzti tiesioginį kelią ir ar relė sukonfigūruota tinklams, kurie atsisako tiesioginio srauto. Relė prideda šuolį ir priklausomybę, bet tai palaikomas atsakymas, o poros kelio taisymas yra kita užduotis nei atradimo taisymas.