Els paràmetres static_host_map i advertise_addrs tots dos posen una adreça davant d’un peer, i responen preguntes diferents. Un és un fitxer local que llista una adreça overlay i el punt final d’underlay on connectar-se. L’altre és un amfitrió que diu als seus fars quins punts finals addicionals el poden assolir. La propietat és la diferència real: el mapa el manté tothom qui el necessita, i l’anunci el mateix amfitrió.

Decidiu segons qui posseeix la informació

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

Cada peer canviant al fitxer estàtic de cada peer és una feina de manteniment que creix amb el quadrat de la flota. Aquesta és la raó pràctica per recórrer a l’altre paràmetre sempre que el mateix amfitrió conegui la resposta.

La pregunta de la propietat també prediu què passa quan canvia una adreça. Amb un mapa estàtic, algú ha de recordar cada peer que té l’entrada antiga. Amb un anunci, l’amfitrió publica el punt final nou i els seus fars el fan córrer, així que el canvi es queda local a la màquina que s’ha mogut.

Bootstrap encara necessita entrades estàtiques

Un client ha d’assolir almenys un far abans de poder preguntar a ningú sobre altres peers. Aquest primer salt no pot venir del descobriment, així que es basa en una entrada estàtica a la configuració del client. Feu bé aquesta única entrada i la resta de l’overlay es pot aprendre.

Una entrada del mapa aparella una adreça Nebula amb un o més punts finals IP o DNS accessibles i ports. Mantenir-hi els fars és normal; mantenir-hi cada peer és el patró que envelleix malament, perquè cada peer nou vol dir editar fitxers en màquines que potser no controleu. Manteniu la llista prou curta perquè una persona encara la pugui verificar llegint-la.

Anuncieu quan l’amfitrió coneix el punt final

Un amfitrió darrere de reenviament de ports és accessible en una adreça pública que no està assignada a cap de les seves interfícies. No pot descobrir aquesta adreça mirant-se a si mateix. advertise_addrs li permet publicar el punt final a través dels seus fars perquè altres peers aprenguin un camí que realment funciona. El paràmetre existeix precisament perquè l’amfitrió és l’única part que sap que el mapatge s’ha fet.

Useu l’adreça i el port que altres peers poden assolir de debò. El mateix raonament s’aplica a un amfitrió amb diversos camins de xarxa, on un camí és preferible per als peers d’una xarxa concreta. L’anunci és una afirmació sobre l’underlay, no una petició de res. Quan el mapatge canvia, actualitzeu l’anunci a l’amfitrió i deixeu que el descobriment el porti, en lloc d’editar fitxers estàtics per tota la flota.

Anunciar no és ser accessible

Publicar un punt final no crea la regla de reenviament del router, no obre un tallafoc aigües amunt ni fa que un nom DNS es resolgui. Són peces de feina separades, i un anunci correcte amb un reenviament de port absent produeix exactament la fallada que intentàveu arreglar. Anunciar és una afirmació sobre l’accessibilitat, no un mecanisme que la estableixi.

Comproveu el camí des de fora abans de culpar el descobriment. Un peer que aprèn el punt final però no pot completar un handshake té un problema d’encaminament o de filtratge a l’underlay, i repetir la mateixa adreça en tots dos paràmetres no ho canviarà.

Manteniu l’adreça overlay separada del punt final

El certificat del node identifica la seva adreça Nebula. Les adreces anunciades pertanyen a la xarxa subjacent, i es poden canviar sense tocar el certificat. Emetre un certificat nou amb una IP overlay diferent és una operació diferent, amb les seves pròpies conseqüències per a cada relació de confiança que va fixar l’antiga. Manteniu els dos canvis separats al runbook, o un trasllat de punt final es registrarà com una reemissió.

Quan el triatge s’encalla, separeu les dues capes explícitament: el descobriment retorna el punt final esperat, i un handshake hi arriba? Si el descobriment és correcte i els paquets fallen, el problema és sota l’overlay. Si el descobriment és incorrecte, el problema és al mapa o a l’anunci, i la correcció hi pertany.

Articles relacionats