Nebula advertise_addrs eller static_host_map: velg etter eier
Et statisk kart vedlikeholdes av hver peer som ringer det; en annonsert adresse publiseres av verten. Velg etter hvem som kjenner endepunktet.
Innstillingene static_host_map og advertise_addrs setter begge en adresse foran en peer, og de svarer på forskjellige spørsmål. Den ene er en lokal fil som lister en overlay-adresse og underlay-endepunktet som skal ringes. Den andre er en vert som forteller fyrtårnene sine hvilke ekstra endepunkter som kan nå den. Eierskapet er den egentlige forskjellen: kartet vedlikeholdes av alle som trenger det, og annonsen av verten selv.
Bestem etter hvem som eier informasjonen
| Setting | Where it lives | Best for |
|---|---|---|
static_host_map | Every peer that needs the entry | Bootstrap endpoints, deliberately fixed paths |
advertise_addrs | The host's own config | Endpoints the host cannot otherwise discover |
Hver skiftende peer i hver peers statiske fil er et vedlikeholdsarbeid som vokser med flåtens kvadrat. Det er den praktiske grunnen til å gripe etter den andre innstillingen når verten selv kjenner svaret.
Eierskapsspørsmålet forutsier også hva som skjer når en adresse endres. Med et statisk kart må noen huske hver peer som har den gamle oppføringen. Med en annonse publiserer verten det nye endepunktet, og fyrtårnene sender det videre, så endringen forblir lokal på maskinen som flyttet.
Bootstrap trenger fortsatt statiske oppføringer
En klient må nå minst ett fyrtårn før den kan spørre noen om andre peers. Det første hoppet kan ikke komme fra oppdagelse, så det kommer fra en statisk oppføring i klientens konfigurasjon. Gjør den ene oppføringen riktig, og resten av overlayet kan læres.
En kartoppføring parer en Nebula-adresse med ett eller flere nåbare IP- eller DNS-endepunkter og porter. Å holde fyrtårnene der er normalt; å holde hver peer der er mønsteret som eldes dårlig, fordi hver ny peer betyr å redigere filer på maskiner du kanskje ikke kontrollerer. Hold listen kort nok til at en person fortsatt kan verifisere den ved å lese den.
Annonser når verten kjenner endepunktet
En vert bak portvideresending er nåbar på en offentlig adresse som ikke er tildelt noen av dens egne grensesnitt. Den kan ikke oppdage den adressen ved å se på seg selv. advertise_addrs lar den publisere endepunktet gjennom fyrtårnene sine, slik at andre peers lærer en vei som faktisk fungerer. Innstillingen finnes nettopp fordi verten er den eneste parten som vet at mappingen ble laget.
Bruk adressen og porten som andre peers virkelig kan nå. Samme resonnement gjelder en vert med flere nettverksveier, der én vei er å foretrekke for peers på et bestemt nettverk. Annonsering er en uttalelse om underlayet, ikke en forespørsel om noe. Når mappingen endres, oppdater annonsen på verten og la oppdagelsen bære den, i stedet for å redigere statiske filer i hele flåten.
Annonsering er ikke nåbarhet
Å publisere et endepunkt oppretter ikke ruterenes videresendingsregel, åpner ikke en brannmur oppstrøms og får ikke et DNS-navn til å løses opp. Det er separate arbeidsstykker, og en korrekt annonse med manglende portvideresending gir nøyaktig den feilen du prøvde å rette. Annonsering er en påstand om nåbarhet, ikke en mekanisme som etablerer den.
Kontroller veien utenfra før du klandrer oppdagelsen. En peer som lærer endepunktet, men ikke kan fullføre en handshake, har et ruting- eller filtreringsproblem på underlayet, og å gjenta samme adresse i begge innstillingene endrer ikke det.
Hold overlay-adressen atskilt fra endepunktet
Nodens sertifikat identifiserer Nebula-adressen dens. De annonserte adressene tilhører det underliggende nettverket, og de kan endres uten å røre sertifikatet. Utstede et nytt sertifikat med en annen overlay-IP er en annen operasjon, med sine egne konsekvenser for hvert tillitsforhold som festet den gamle. Hold de to endringene atskilt i runbooken, ellers blir en endepunktflytting registrert som en gjenutstedelse.
Når triagen stopper, skill de to lagene eksplisitt: returnerer oppdagelsen det forventede endepunktet, og når en handshake det? Hvis oppdagelsen er riktig og pakkene feiler, er problemet under overlayet. Hvis oppdagelsen er feil, er problemet i kartet eller annonsen, og rettelsen hører der.