Iga tuletorn saab rääkida hostile igast teisest peerist peale selle, kus tuletorn ise asub. Midagi peab olema teada enne, kui overlay olemas on, ja Nebula paneb selle midagi ühte väikesesse kaarti. Kaart seob overlay-identiteedi aadressiga, mis töötab tavalises võrgus. Kõik hiljem õpitu sõltub sellest, et see sidumine oleks õige.

Kaks aadressi, kaks ülesannet

Igal Nebula hostil on overlay-aadress, mis jääb muutumatuks, kui seade võrkude vahel liigub. See aadress on identiteet, mida kasutavad sertifikaadid, tulemüürireeglid ja peer-suhted, ja üksi ei suuna see kuhugi. Kättesaadav lõpp-punkt on midagi muud: hostinimi või aadress alusvõrgus pluss UDP-port, ja see muutub iga kord, kui masin asukohta vahetab. Staatiline kaart on nende kahe vaheline ühendus.

Kaardile kuuluvad ainult hostid, mida tuleb helistada külmalt, mis tavaliselt tähendab tuletorne ja võib-olla üht releed. Selle nimekirja lühikesena hoidmine on disainieesmärk, sest igast käsitsi kirjest saab fakt, mida keegi peab haldama. Kahe aadressitüübi segamine on tavaline seadistusviga: tuletornide nimekirja pandud avalik aadress ei pane avastust algama.

Identiteet läheb sinna, kus identiteeti oodatakse. Kättesaadavus läheb kaardile.

static_host_map:
  "10.42.0.1": ["lighthouse-01.example.net:4242"]

lighthouse:
  am_lighthouse: false
  hosts:
    - "10.42.0.1"

Kaardikirje anatoomia

Võti on overlay-aadress, mis on kirjutatud jutumärkides stringina, ja väärtus on lõpp-punktide loend, nii et ühel identiteedil võib olla mitu sissepääsu. Iga lõpp-punkt kannab hosti ja porti, ja port peab vastama sellele, mida teine pool tegelikult kuulab. Nebula vaikeväärtus on UDP 4242, mis on lähtepunkt, mitte lubadus sinu juurutuse kohta.

Mitu lõpp-punkti on kasulikud, kui tuletornil on rohkem kui üks tee sisse, näiteks avalik aadress ja privaatne aadress samas segmendis olevatele hostidele. Klient proovib neid järjest, seega pane kõige usaldusväärsem esimeseks. IPv6 puhul pane aadress nurksulgudesse enne pordi lisamist; sellega eksimine annab parsinguvea, mis osutab valele reale.

Vale port annab vaikuse vea asemel, sest UDP-l pole käepigistust, millega keelduda. Seetõttu tasub kirje vormingut kontrollida Nebula static_host_map viite vastu, mitte mälu järgi. Viide katab ka lõpp-punktide loendid ja DNS-i värskendamise käitumise.

Alglaadimine peab töötama enne overlayd

Kaardil olev DNS-nimi peab lahenema resolveri kaudu, mis hostil enne mis tahes tunnelit on, see tähendab tavalise süsteemiresolveri kaudu. Testi seda samast masinast, alglaadimisel, overlay peatatud. Nimi, mis laheneb ainult overlay enda DNS-i kaudu, ei saa overlayd alglaadida. Sama test kehtib marsruudi kohta: tulemüürireegel, mis lubab overlayd, kuid mitte esimest UDP-vahetust, blokeerib algse paketi.

Uuri porti UDP-tööriistaga, selle asemel et eeldada, et see on avatud. Kinnita, et iga portide edastus teel osutab õigele sisemisele hostile ja et tagasitee on olemas. Kui hostinimi laheneb mitmeks aadressiks, testi igaüht, sest klient võib valida aadressi, mida sa pole kunagi kontrollinud.

Staatilisi kirjeid helistatakse otse ja need ei konsulteeri kunagi tuletorniga. Seetõttu näeb tõrge siin välja nagu tavaline aegumine ilma ühegi peerita.

Mis juhtub pärast esimest käepigistust

Kui host jõuab tuletornini, õpib ta peeride ja nende kättesaadavate aadresside kohta ilma täiendavate käsitsi kirjeteta. Hostid, mis on pärast viimast ühendust liikunud, muutuvad selle kanali kaudu avastatavaks. See on tasu käsitsi kaardi väikesena hoidmise eest.

Hostid võivad ka reklaamida oma täiendavaid kättesaadavaid aadresse, ja nii aitab teada oleva avaliku aadressi taga olev peer teistel seda leida. Neid reklaame õpitakse, neid ei trükita staatilisse kaarti.

Värskendamise käitumine loeb DNS-nimedena kirjutatud lõpp-punktide puhul, sest lahendatud aadress võib protsessi töötamise ajal muutuda. Nebula seaded juhivad, kuidas need otsingud toimuvad, sealhulgas millist resolverit kasutatakse, seega loe neid, selle asemel et eeldada süsteemi vaikeväärtust. Hostil, mille resolver muutub, kui tunnel üles tuleb, võib vale seade muuta töötava alglaadimise nimeks, mis lõpetab sessiooni keskel lahenemise. Otsingu kinnitamine stabiilse resolveri külge on sageli vahe usaldusväärse overlay ja katkendliku vahel.

Kui avastus töötab ja üks peer mitte

Kui tuletornid on kättesaadavad ja enamik peere ühendub, pole alglaadimine probleem. Ülejäänud paar kas ei leia omavahel kasutatavat teed või ebaõnnestub kättesaadavusest kõrgemal. Veel ühe kirjaviisi lisamine tuletorni aadressile ei paranda kumbagi juhtu.

Kontrolli paari enne kaardi muutmist, millele kõik muu juba toetub. Kaardi muutmine häirib iga hosti, seega on see viimane asi, mida puutuda, mitte esimene.

Alusta sama asutuse sertifikaatidest, sest tagasi lükatud käepigistus võib kaugelt näha kättesaamatu peerina. Seejärel kontrolli, kas paar suudab luua otsese tee ja kas otsest liiklust keelavate võrkude jaoks on relee seadistatud. Relee lisab hüppe ja sõltuvuse, kuid see on toetatud vastus, ja paari tee parandamine on teine ülesanne kui avastuse parandamine.

Seotud artiklid