Nebula advertise_addrs или static_host_map: изаберите по власнику
Статичку мапу одржава сваки peer који је позива; оглашену адресу објављује хост. Изаберите по томе ко зна крајњу тачку.
Поставке static_host_map и advertise_addrs обе стављају адресу пред peer и одговарају на различита питања. Једна је локална датотека која наводи overlay адресу и крајњу тачку underlay за позивање. Друга је хост који својим светионицима говори које додатне крајње тачке могу да га достигну. Права разлика је власништво: мапу одржавају сви којима је потребна, а оглас сам хост.
Одлучите по томе ко поседује информацију
| 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 |
Сваки променљиви peer у статичкој датотеци сваког peera је посао одржавања који расте са квадратом флоте. То је практични разлог да посегнете за другом поставком када сам хост зна одговор.
Питање власништва такође предвиђа шта се дешава када се адреса промени. Са статичком мапом, неко мора да памти сваки peer који држи стари унос. Са огласом, хост објављује нову крајњу тачку и његови светионици је прослеђују, па промена остаје локална на машини која се преселила.
Bootstrap и даље захтева статичке уносе
Клијент мора да достигне барем један светионик пре него што може некога да пита о другим peer-овима. Тај први скок не може доћи из откривања, па долази из статички унос у конфигурацији клијента. Учините тај један унос исправним и остатак overlay-а се може научити.
Унос мапе спаја Nebula адресу са једном или више достижних IP или DNS крајњих тачака и портова. Држати светионике тамо је нормално; држати сваки peer тамо је образац који лоше стари, јер сваки нови peer значи уређивање датотека на машинама које можда не контролишете. Држите листу довољно кратком да је човек још може проверити читајући је.
Огласите када хост зна крајњу тачку
Хост иза прослеђивања портова доступан је на јавној адреси која није додељена ниједном од његових сопствених интерфејса. Он не може да открије ту адресу гледајући себе. advertise_addrs му омогућава да објави крајњу тачку кроз своје светионике како би други peer-ови научили пут који заиста функционише. Поставка постоји управо зато што је хост једина страна која зна да је мапирање направљено.
Користите адресу и порт до којих други peer-ови заиста могу да стигну. Исто размишљање важи за хост са неколико мрежних путева, где је један пут бољи за peer-ове на одређеној мрежи. Оглас је тврдња о underlay-у, а не захтев за било шта. Када се мапирање промени, ажурирајте оглас на хосту и пустите откривање да га носи, уместо да уређујете статичке датотеке по целој флоти.
Оглас није достижност
Објављивање крајње тачке не ствара правило прослеђивања рутера, не отвара firewall узводно и не чини да се DNS име разреши. То су одвојени делови посла, а исправан оглас са недостајућим прослеђивањем порта производи тачно онај квар који сте покушавали да поправите. Оглас је тврдња о достижности, а не механизам који је успоставља.
Проверите пут споља пре него што оптужите откривање. Peer који научи крајњу тачку али не може да заврши handshake има проблем рутирања или филтрирања на underlay-у, и понављање исте адресе у обе поставке то неће променити.
Држите overlay адресу одвојено од крајње тачке
Сертификат чвора идентификује његову Nebula адресу. Оглашене адресе припадају доњој мрежи и смеју да се мењају без дирања сертификата. Издавање новог сертификата са другом overlay IP адресом је друга операција, са својим последицама за сваки однос поверења који је закачио стару. Држите две промене одвојено у runbook-у, иначе ће премештање крајње тачке бити забележено као поновно издавање.
Када тријажа застане, одвојте два слоја експлицитно: да ли откривање враћа очекивану крајњу тачку и да ли handshake стиже до ње? Ако је откривање исправно а пакети не пролазе, проблем је испод overlay-а. Ако је откривање погрешно, проблем је у мапи или огласу, и поправка припада тамо.