Asetukset static_host_map ja advertise_addrs asettavat molemmat osoitteen peerin eteen, ja ne vastaavat eri kysymyksiin. Toinen on paikallinen tiedosto, joka luettelee overlay-osoitteen ja soitettavan underlay-päätepisteen. Toinen on isäntä, joka kertoo majakoilleen, mitkä muut päätepisteet voivat tavoittaa sen. Todellinen ero on omistajuus: karttaa ylläpitävät kaikki, jotka sitä tarvitsevat, ja mainoksen isäntä itse.

Päätä sen mukaan, kuka tiedon omistaa

SettingWhere it livesBest for
static_host_mapEvery peer that needs the entryBootstrap endpoints, deliberately fixed paths
advertise_addrsThe host's own configEndpoints the host cannot otherwise discover

Jokainen muuttuva peer kunkin peerin staattisessa tiedostossa on ylläpitotyö, joka kasvaa laivueen neliöllä. Se on käytännön syy tarttua toiseen asetukseen aina, kun isäntä itse tietää vastauksen.

Omistajuuskysymys ennustaa myös, mitä tapahtuu, kun osoite muuttuu. Staattisella kartalla jonkun on muistettava jokainen peer, jolla on vanha merkintä. Mainoksella isäntä julkaisee uuden päätepisteen ja sen majakat välittävät sen, joten muutos pysyy paikallisena koneessa, joka muutti.

Bootstrap tarvitsee yhä staattisia merkintöjä

Asiakkaan on päästävä ainakin yhteen majakkaan ennen kuin se voi kysyä keneltäkään muista peereistä. Tämä ensimmäinen hyppy ei voi tulla löytämisestä, joten tarvitaan staattinen merkintä asiakkaan kokoonpanossa. Tee se yksi merkintä oikein, ja loput overlaystä voidaan oppia.

Karttamerkintä yhdistää Nebula-osoitteen yhteen tai useampaan tavoitettavaan IP- tai DNS-päätepisteeseen ja porttiin. Majakoiden pitäminen siellä on normaalia; jokaisen peerin pitäminen siellä on malli, joka vanhenee huonosti, koska jokainen uusi peer tarkoittaa tiedostojen muokkaamista koneilla, joita et ehkä hallitse. Pidä lista tarpeeksi lyhyenä, että ihminen voi vielä varmentaa sen lukemalla.

Mainosta, kun isäntä tuntee päätepisteen

Portin edelleenohjauksen takana oleva isäntä on tavoitettavissa julkisesta osoitteesta, jota ei ole osoitettu millekään sen omista liittymistä. Se ei voi löytää tuota osoitetta katsomalla itseään. advertise_addrs antaa sen julkaista päätepisteen majakoidensa kautta, jotta muut peerit oppivat polun, joka todella toimii. Asetus on olemassa juuri siksi, että isäntä on ainoa osapuoli, joka tietää kartoituksen tehdyn.

Käytä osoitetta ja porttia, jotka muut peerit todella voivat tavoittaa. Sama päättely pätee isäntään, jolla on useita verkkopolkuja, joissa yksi polku on parempi tietyn verkon peereille. Mainostaminen on väite underlaysta, ei pyyntö mistään. Kun kartoitus muuttuu, päivitä mainos isännällä ja anna löytämisen kantaa se, sen sijaan että muokkaisit staattisia tiedostoja koko laivueessa.

Mainostaminen ei ole tavoitettavuutta

Päätepisteen julkaiseminen ei luo reitittimen edelleenohjaussääntöä, ei avaa ylävirran palomuuria eikä saa DNS-nimeä ratkeamaan. Ne ovat erillisiä työvaiheita, ja oikea mainos, josta puuttuu portin edelleenohjaus, tuottaa täsmälleen sen vian, jota yritit korjata. Mainostaminen on väite tavoitettavuudesta, ei mekanismi, joka sen luo.

Tarkista polku ulkopuolelta ennen kuin syytät löytämistä. Peerillä, joka oppii päätepisteen mutta ei voi suorittaa handshakea loppuun, on reititys- tai suodatusongelma underlayssä, eikä saman osoitteen toistaminen molemmissa asetuksissa muuta sitä.

Pidä overlay-osoite erillään päätepisteestä

Solmun varmenne tunnistaa sen Nebula-osoitteen. Mainostetut osoitteet kuuluvat taustaverkkoon, ja ne saavat muuttua koskematta varmenteeseen. Myönnä uusi varmenne eri overlay-IP:llä on eri toimenpide, jolla on omat seurauksensa jokaiselle luottamussuhteelle, joka kiinnitti vanhan. Pidä kaksi muutosta erillään runbookissa, tai päätepisteen siirto kirjataan uudelleenmyöntönä.

Kun triage juuttuu, erottele kaksi kerrosta selvästi: palauttaako löytäminen odotetun päätepisteen, ja saavuttaako handshake sen? Jos löytäminen on oikein ja paketit epäonnistuvat, ongelma on overlayn alla. Jos löytäminen on väärin, ongelma on kartassa tai mainoksessa, ja korjaus kuuluu sinne.

Aiheeseen liittyvät artikkelit