Postavke static_host_map i advertise_addrs obje stavljaju adresu ispred peera i odgovaraju na različita pitanja. Jedna je lokalna datoteka koja navodi overlay adresu i krajnju tačku underlaya za pozivanje. Druga je host koji svojim svjetionicima govori koje dodatne krajnje tačke mogu doći do njega. Stvarna razlika je vlasništvo: mapu održava svako kome treba, a oglas host sam.

Odlučite prema tome ko posjeduje informaciju

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

Svaki promjenjivi peer u statičkoj datoteci svakog peera je posao održavanja koji raste s kvadratom flote. To je praktični razlog da posegnete za drugom postavkom kad sam host zna odgovor.

Pitanje vlasništva takođe predviđa šta se dešava kad se adresa promijeni. Sa statičkom mapom, neko mora pamtiti svaki peer koji drži stari unos. Sa oglasom, host objavljuje novu krajnju tačku i njegovi svjetionici je prenose dalje, pa promjena ostaje lokalna na mašini koja se preselila.

Bootstrap još uvijek treba statične unose

Klijent mora doći do najmanje jednog svjetionika prije nego što može bilo koga pitati o drugim peerima. Taj prvi skok ne može doći iz otkrivanja, pa dolazi iz statični unos u konfiguraciji klijenta. Učinite taj jedan unos ispravnim i ostatak overlayja se može naučiti.

Unos mape povezuje Nebula adresu s jednom ili više dostupnih IP ili DNS krajnjih tačaka i portova. Držati svjetionike tamo je normalno; držati svaki peer tamo je obrazac koji loše stari, jer svaki novi peer znači uređivanje datoteka na mašinama koje možda ne kontrolišete. Držite listu dovoljno kratkom da je čovjek još može provjeriti čitajući je.

Oglašavajte kad host zna krajnju tačku

Host iza prosljeđivanja portova dostupan je na javnoj adresi koja nije dodijeljena nijednom od njegovih vlastitih interfejsa. On ne može otkriti tu adresu gledajući sebe. advertise_addrs mu omogućava da objavi krajnju tačku kroz svoje svjetionike kako bi drugi peeri naučili putanju koja zaista radi. Postavka postoji upravo zato što je host jedina strana koja zna da je mapiranje napravljeno.

Koristite adresu i port do kojih drugi peeri zaista mogu doći. Isto razmišljanje važi za host s nekoliko mrežnih putanja, gdje je jedna putanja poželjnija za peere na određenoj mreži. Oglašavanje je tvrdnja o underlayu, a ne zahtjev za bilo šta. Kad se mapiranje promijeni, ažurirajte oglas na hostu i pustite otkrivanje da ga prenese, umjesto da uređujete statične datoteke po cijeloj floti.

Oglašavanje nije dostupnost

Objavljivanje krajnje tačke ne stvara pravilo prosljeđivanja rutera, ne otvara firewall uzvodno i ne čini da se DNS ime razriješi. To su odvojeni dijelovi posla, a ispravan oglas s nedostajućim prosljeđivanjem porta proizvodi tačno onaj kvar koji ste pokušavali popraviti. Oglašavanje je tvrdnja o dostupnosti, a ne mehanizam koji je uspostavlja.

Provjerite putanju izvana prije nego optužite otkrivanje. Peer koji nauči krajnju tačku ali ne može završiti handshake ima problem rutiranja ili filtriranja na underlayu, i ponavljanje iste adrese u obje postavke to neće promijeniti.

Držite overlay adresu odvojeno od krajnje tačke

Certifikat čvora identificira njegovu Nebula adresu. Oglašene adrese pripadaju donjoj mreži i smiju se mijenjati bez diranja certifikata. Izdavanje novog certifikata s drugom overlay IP adresom je druga operacija, sa svojim posljedicama za svaki odnos povjerenja koji je prikvačio staru. Držite dvije promjene odvojeno u runbooku, inače će premještanje krajnje tačke biti zabilježeno kao ponovno izdavanje.

Kad trijaža zastane, eksplicitno razdvojite dva sloja: vraća li otkrivanje očekivanu krajnju tačku i dolazi li handshake do nje? Ako je otkrivanje ispravno a paketi ne prolaze, problem je ispod overlayja. Ako je otkrivanje pogrešno, problem je u mapi ili oglasu, i popravka pripada tamo.

Povezani članci