Innstillingane static_host_map og advertise_addrs set båe ei adresse framfor ein peer, og dei svarar på ulike spørsmål. Den eine er ei lokal fil som listar ei overlay-adresse og underlay-endepunktet som skal ringjast. Den andre er ein vert som fortel fyrtårna sine kva ekstra endepunkt som kan nå han. Eigarskapet er den eigentlege skilnaden: kartet vert vedlikehalde av alle som treng det, og annonsa av verten sjølv.

Avgjer etter kven som eig informasjonen

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

Kvar skiftande peer i den statiske fila til kvar peer er eit vedlikeholdsarbeid som veks med kvadratet av flåten. Det er den praktiske grunnen til å gripe etter den andre innstillinga når verten sjølv kjenner svaret.

Eigarskapsspørsmålet føresegner òg kva som skjer når ei adresse vert endra. Med eit statisk kart må nokon hugse kvar peer som har den gamle oppføringa. Med ei annonse publiserer verten det nye endepunktet, og fyrtårna sender det vidare, så endringa blir verande lokal på maskina som flytta.

Bootstrap treng framleis statiske oppføringar

Ein klient må nå minst eitt fyrtårn før han kan spørje nokon om andre peers. Det første hoppet kan ikkje kome frå oppdaging, så det kjem frå ei statisk oppføring i konfigurasjonen til klienten. Gjer den eine oppføringa rett, og resten av overlayet kan lærast.

Ei kartoppføring parar ei Nebula-adresse med eitt eller fleire nåbare IP- eller DNS-endepunkt og portar. Å halde fyrtårna der er normalt; å halde kvar peer der er mønsteret som aldrast dårleg, fordi kvar ny peer tyder å redigere filer på maskiner du kanskje ikkje kontrollerer. Hald lista kort nok til at ein person framleis kan stadfeste henne ved å lese henne.

Annonser når verten kjenner endepunktet

Ein vert bak portvideresending er nåbar på ei offentleg adresse som ikkje er tildelt noko av hans eigne grensesnitt. Han kan ikkje oppdage den adressa ved å sjå på seg sjølv. advertise_addrs lèt han publisere endepunktet gjennom fyrtårna sine, slik at andre peers lærer ein veg som faktisk fungerer. Innstillinga finst nettopp fordi verten er den einaste parten som veit at mappinga vart laga.

Bruk adressa og porten som andre peers verkeleg kan nå. Same resonnementet gjeld for ein vert med fleire nettverksvegar, der éin veg er å føretrekke for peers på eit bestemt nettverk. Annonsering er ei utsegn om underlayet, ikkje ei førespurnad om noko. Når mappinga vert endra, oppdater annonsa på verten og lat oppdaginga bere henne, i staden for å redigere statiske filer i heile flåten.

Annonsering er ikkje nåbarheit

Å publisere eit endepunkt skaper ikkje vidaresendingsregelen til rutaren, opnar ikkje ein brannmur oppstraums og får ikkje eit DNS-namn til å løysast opp. Det er separate arbeidsstykke, og ei korrekt annonse med manglande portvideresending gjev nøyaktig den feilen du prøvde å rette. Annonsering er ein påstand om nåbarheit, ikkje ein mekanisme som etablerer henne.

Kontroller vegen utanfrå før du klandrar oppdaginga. Ein peer som lærer endepunktet, men ikkje kan fullføre ein handshake, har eit ruting- eller filtreringsproblem på underlayet, og å gjenta same adresse i båe innstillingane endrar ikkje det.

Hald overlay-adressa skild frå endepunktet

Sertifikatet til noden identifiserer Nebula-adressa hans. Dei annonserte adressene høyrer til det underliggjande nettverket, og dei kan endrast utan å røre sertifikatet. Gje ut eit nytt sertifikat med ei anna overlay-IP er ein annan operasjon, med sine eigne konsekvensar for kvar tillitsrelasjon som festa den gamle. Hald dei to endringane skilde i runbooken, elles vert ei endepunktflytting registrert som ei gjenutgjeving.

Når triagen stoggar, skil dei to laga eksplisitt: returnerer oppdaginga det forventa endepunktet, og når ein handshake det? Viss oppdaginga er rett og pakkane feilar, er problemet under overlayet. Viss oppdaginga er feil, er problemet i kartet eller annonsa, og rettinga høyrer der.

Relaterte artiklar