Jokainen majakka voi kertoa isännälle jokaisesta muusta vertaisesta paitsi siitä, missä majakka itse sijaitsee. Jotain täytyy tietää ennen kuin overlay on olemassa, ja Nebula laittaa sen jonkin yhteen pieneen karttaan. Kartta parittaa overlay-identiteetin osoitteeseen, joka toimii tavallisessa verkossa. Kaikki myöhemmin opittu riippuu siitä, että tuo paritus on oikein.

Kaksi osoitetta, kaksi tehtävää

Jokaisella Nebula-isännällä on overlay-osoite, joka pysyy samana, kun laite liikkuu verkkojen välillä. Tuo osoite on identiteetti, jota varmenteet, palomuurisäännöt ja vertaissuhteet käyttävät, ja yksinään se ei reititä mihinkään. Tavoitettava päätepiste on jotain muuta: isäntänimi tai osoite taustaverkossa sekä UDP-portti, ja se muuttuu aina, kun kone vaihtaa sijaintia. Staattinen kartta on näiden kahden välinen liitos.

Karttaan kuuluvat vain isännät, jotka täytyy valita kylmänä, mikä yleensä tarkoittaa majakoita ja kenties yhtä välittäjää. Listan pitäminen lyhyenä on suunnittelutavoite, koska jokaisesta käsin tehdystä merkinnästä tulee tosiasia, jota jonkun täytyy ylläpitää. Kahden osoitetyypin sekoittaminen on tavallinen kokoonpanovirhe: majakoiden listaan laitettu julkinen osoite ei käynnistä löytämistä.

Identiteetti menee sinne, missä identiteettiä odotetaan. Tavoitettavuus menee karttaan.

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

lighthouse:
  am_lighthouse: false
  hosts:
    - "10.42.0.1"

Karttamerkinnän anatomia

Avain on lainausmerkeissä merkkijonona kirjoitettu overlay-osoite, ja arvo on luettelo päätepisteistä, joten yhdellä identiteetillä voi olla useita sisäänkäyntejä. Jokainen päätepiste kantaa isännän ja portin, ja portin täytyy vastata sitä, mitä toinen puoli todella kuuntelee. Nebulan oletusarvo on UDP 4242, mikä on lähtökohta eikä lupaus käyttöönotostasi.

Useat päätepisteet ovat hyödyllisiä, kun majakalla on useampi kuin yksi sisääntuloreitti, kuten julkinen osoite ja yksityinen osoite samassa segmentissä oleville isännille. Asiakas kokeilee niitä järjestyksessä, joten laita luotettavin ensin. IPv6:n kohdalla laita osoite hakasulkeisiin ennen portin lisäämistä; väärin tekeminen tuottaa jäsennysvirheen, joka osoittaa väärälle riville.

Väärä portti tuottaa hiljaisuuden virheen sijaan, koska UDP:llä ei ole kättelyä, jolla kieltäytyä. Siksi merkinnän muoto kannattaa tarkistaa Nebulan static_host_map -viitteestä eikä muistista. Viite kattaa myös päätepisteluettelot ja DNS-päivityksen käyttäytymisen.

Käynnistyksen täytyy toimia ennen overlayta

Kartan DNS-nimen täytyy ratketa resoluuterin kautta, joka isännällä on ennen mitään tunnelia, eli tavallisen järjestelmän resoluuterin kautta. Testaa sitä samalta koneelta käynnistyksen yhteydessä overlayn ollessa pysäytettynä. Nimi, joka ratkeaa vain overlayn omalla DNS:llä, ei voi käynnistää overlayta. Sama testi koskee reittiä: palomuurisääntö, joka sallii overlayn mutta ei ensimmäistä UDP-vaihtoa, estää aloituspaketin.

Tutki portti UDP-työkalulla sen sijaan, että olettaisit sen olevan auki. Varmista, että mikä tahansa portinohjaus reitillä kohdistuu oikeaan sisäiseen isäntään ja että paluureitti on olemassa. Jos isäntänimi ratkeaa useaksi osoitteeksi, testaa jokainen, koska asiakas voi valita osoitteen, jota et koskaan tarkistanut.

Staattiset merkinnät valitaan suoraan eivätkä ne koskaan kysy majakalta. Siksi vika täällä näyttää tavalliselta aikakatkaisulta ilman yhtään vertaista.

Mitä tapahtuu ensimmäisen kättelyn jälkeen

Kun isäntä saavuttaa majakan, se oppii vertaisista ja niiden tavoitettavista osoitteista ilman lisää käsin tehtyjä merkintöjä. Isännät, jotka ovat liikkuneet viimeisen yhteyden jälkeen, tulevat löydettäviksi tuota kanavaa pitkin. Se on palkinto käsin tehdyn kartan pitämisestä pienenä.

Isännät voivat myös mainostaa omia muita tavoitettavia osoitteitaan, ja niin tunnistetun julkisen osoitteen takana oleva vertainen auttaa muita löytämään sen. Ne mainokset opitaan, niitä ei kirjoiteta staattiseen karttaan.

Päivityskäyttäytyminen on tärkeää DNS-niminä kirjoitetuille päätepisteille, koska ratkennut osoite voi muuttua prosessin yhä pyöriessä. Nebulan asetukset ohjaavat, miten nuo haut tehdään, mukaan lukien se, mitä resoluuteria käytetään, joten lue ne sen sijaan, että olettaisit järjestelmän oletuksen. Isännällä, jonka resoluuteri vaihtuu tunnelin noustessa, väärä asetus voi muuttaa toimivan käynnistyksen nimeksi, joka lakkaa ratkeamasta kesken istunnon. Haun sitominen vakaaseen resoluuteriin on usein ero luotettavan overlayn ja ajoittaisen välillä.

Kun löytäminen toimii ja yksi vertainen ei

Jos majakat ovat tavoitettavissa ja useimmat vertaiset yhdistyvät, käynnistys ei ole ongelma. Jäljellä oleva pari ei joko löydä käyttökelpoista reittiä toisiinsa tai epäonnistuu tavoitettavuuden yläpuolella. Vielä yhden kirjoitusasun lisääminen majakan osoitteeseen ei korjaa kumpaakaan tapausta.

Tarkista pari ennen kuin muokkaat karttaa, jonka varassa kaikki muu jo on. Kartan muutos häiritsee jokaista isäntää, joten se on viimeinen asia, johon kosketaan, ei ensimmäinen.

Aloita saman viranomaisen varmenteista, koska hylätty kättely voi kaukaa näyttää tavoittamattomalta vertaiselta. Tarkista sitten, voiko pari muodostaa suoran reitin ja onko välittäjä määritetty verkoille, jotka kieltäytyvät suorasta liikenteestä. Välittäjä lisää hypyn ja riippuvuuden, mutta se on tuettu vastaus, ja parin reitin korjaaminen on eri tehtävä kuin löytämisen korjaaminen.

Aiheeseen liittyvät artikkelit