Nebula advertise_addrs ar static_host_map: rinkitės pagal savininką
Statinį žemėlapį prižiūri kiekvienas peer, kuris jį kviečia; skelbiamą adresą publikuoja hostas. Rinkitės pagal tai, kas žino galinį tašką.
static_host_map ir advertise_addrs nustatymai abu padeda adresą prieš peer, ir jie atsako į skirtingus klausimus. Vienas yra vietinis failas, kuriame išvardytas overlay adresas ir underlay galinis taškas, į kurį skambinti. Kitas yra hostas, kuris savo švyturiams pasako, kurie papildomi galiniai taškai gali jį pasiekti. Tikrasis skirtumas yra nuosavybė: žemėlapį prižiūri visi, kam jo reikia, o skelbimą – pats hostas.
Spręskite pagal tai, kam priklauso informacija
| 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 |
Kiekvienas kintantis peer kiekvieno peer statiniame faile yra priežiūros darbas, augantis laivyno kvadratu. Tai praktinė priežastis griebtis kito nustatymo, kai pats hostas žino atsakymą.
Nuosavybės klausimas taip pat numato, kas nutinka, kai adresas pasikeičia. Su statiniu žemėlapiu kažkas turi atsiminti kiekvieną peer, kuris turi seną įrašą. Su skelbimu hostas publikuoja naują galinį tašką, o jo švyturiai jį perduoda, todėl pokytis lieka vietinis mašinoje, kuri persikėlė.
Bootstrap vis dar reikia statinių įrašų
Klientas turi pasiekti bent vieną švyturį, kol dar gali ko nors paklausti apie kitus peer. Tas pirmas šuolis negali ateiti iš atradimo, todėl jis paremtas statiniu įrašu kliento konfigūracijoje. Padarykite tą vieną įrašą teisingą ir likusio overlay galima išmokti.
Žemėlapio įrašas suporuoja Nebula adresą su vienu ar daugiau pasiekiamų IP ar DNS galinių taškų ir prievadais. Švyturius ten laikyti yra normalu; laikyti ten kiekvieną peer yra modelis, kuris prastai sensta, nes kiekvienas naujas peer reiškia failų redagavimą mašinose, kurių galbūt nekontroliuojate. Laikykite sąrašą pakankamai trumpą, kad žmogus dar galėtų jį patikrinti jį perskaitęs.
Skelbkite, kai hostas žino galinį tašką
Hostas už prievadų peradresavimo yra pasiekiamas viešu adresu, kuris nepriskirtas nė vienam jo pačio sąsajų. Jis negali atrasti šio adreso žiūrėdamas į save. advertise_addrs leidžia jam paskelbti galinį tašką per savo švyturius, kad kiti peer išmoktų kelią, kuris tikrai veikia. Nustatymas egzistuoja būtent todėl, kad hostas yra vienintelė šalis, kuri žino, kad susiejimas buvo atliktas.
Naudokite adresą ir prievadą, kuriuos kiti peer tikrai gali pasiekti. Tas pats samprotavimas galioja hostui su keliais tinklo keliais, kur vienas kelias yra geresnis peer tam tikrame tinkle. Skelbimas yra teiginys apie underlay, o ne prašymas dėl ko nors. Kai susiejimas pasikeičia, atnaujinkite skelbimą hoste ir leiskite atradimui jį pernešti, o ne redaguokite statinius failus visame laivyne.
Skelbimas nėra pasiekiamumas
Galinio taško paskelbimas nesukuria maršrutizatoriaus peradresavimo taisyklės, neatidaro aukštesnio firewall ir nepriverčia DNS vardo išsispręsti. Tai atskiros darbo dalys, o teisingas skelbimas su trūkstamu prievado peradresavimu sukuria būtent tą gedimą, kurį bandėte ištaisyti. Skelbimas yra teiginys apie pasiekiamumą, o ne mechanizmas, kuris jį nustato.
Patikrinkite kelią iš išorės, prieš kaltindami atradimą. Peer, kuris išmoksta galinį tašką, bet negali užbaigti handshake, turi maršrutizavimo ar filtravimo problemą underlay, ir to paties adreso kartojimas abiejuose nustatymuose to nepakeis.
Laikykite overlay adresą atskirai nuo galinio taško
Mazgo sertifikatas identifikuoja jo Nebula adresą. Skelbiami adresai priklauso pagrindiniam tinklui ir gali keistis neliečiant sertifikato. Išduoti naują sertifikatą su kitu overlay IP yra kita operacija, su savo pasekmėmis kiekvienam pasitikėjimo santykiui, kuris prisegė senąjį. Laikykite du pakeitimus atskirai runbook, kitaip galinio taško perkėlimas bus įrašytas kaip pakartotinis išdavimas.
Kai triažas užstringa, aiškiai atskirkite du sluoksnius: ar atradimas grąžina laukiamą galinį tašką, ir ar handshake jį pasiekia? Jei atradimas teisingas ir paketai nepavyksta, problema yra žemiau overlay. Jei atradimas neteisingas, problema yra žemėlapyje arba skelbime, ir pataisymas priklauso ten.