static_host_map және advertise_addrs параметрлері екеуі де peer алдына мекенжай қояды және әртүрлі сұрақтарға жауап береді. Біреуі overlay мекенжайы мен қосылатын underlay соңғы нүктесін тізімдейтін жергілікті файл. Екіншісі — хостың өз шамшырақтарына оған қандай қосымша соңғы нүктелер жете алатынын айтуы. Нағыз айырмашылық — иелік: картаны оған мұқтаж барлығы ұстайды, ал хабарландыруды хосттың өзі.

Ақпарат кімге тиесілі екеніне қарай шешіңіз

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

Әр peer-дің статикалық файлындағы әр өзгеретін peer — флот квадратымен өсетін қызмет көрсету жұмысы. Хосттың өзі жауапты білгенде басқа параметрге жүгінудің практикалық себебі осы.

Иелік мәселесі мекенжай өзгергенде не болатынын да болжайды. Статикалық картамен ескі жазбаны ұстайтын әр peer-ді біреу есте сақтауы керек. Хабарландырумен хост жаңа соңғы нүктені жариялайды және оның шамшырақтары оны әрі қарай жеткізеді, сондықтан өзгеріс көшкен машинада жергілікті болып қалады.

Bootstrap әлі де статикалық жазбаларды қажет етеді

Клиент басқа peer-лер туралы біреуден сұрамас бұрын кемінде бір шамшыраққа жетуі керек. Бұл бірінші секіріс табудың арқасында келе алмайды, сондықтан клиент конфигурациясындағы статикалық жазба қажет. Осы бір жазбаны дұрыс жасаңыз, ал overlay-дің қалғанын үйренуге болады.

Карта жазбасы Nebula мекенжайын бір немесе бірнеше қолжетімді IP немесе DNS соңғы нүктесімен және порттармен жұптайды. Шамшырақтарды сонда ұстау қалыпты; әр peer-ді сонда ұстау — нашар қартаятын үлгі, өйткені әр жаңа peer сіз бақыламайтын машиналардағы файлдарды өңдеуді білдіреді. Тізімді адам оқып тексере алатындай қысқа ұстаңыз.

Хост соңғы нүктені білгенде жариялаңыз

Порттарды бағыттау артындағы хост өзінің ешбір интерфейсіне берілмеген ашық мекенжай арқылы қолжетімді. Ол бұл мекенжайды өзіне қарап таба алмайды. advertise_addrs оған соңғы нүктені шамшырақтары арқылы жариялауға мүмкіндік береді, сонда басқа peer-лер шынымен жұмыс істейтін жолды үйренеді. Параметр дәл сол себепті бар: хост — картаның жасалғанын білетін жалғыз тарап.

Басқа peer-лер шынымен жете алатын мекенжай мен портты пайдаланыңыз. Сол логика бірнеше желілік жолы бар хостқа да қатысты, онда белгілі бір желідегі peer-лер үшін бір жол қолайлырақ. Жариялау — underlay туралы мәлімдеме, бірдеңеге өтініш емес. Карта өзгергенде, хабарландыруды хостта жаңартып, табудың оны алып жүруіне жол беріңіз, бүкіл флоттағы статикалық файлдарды өңдеудің орнына.

Жариялау — қолжетімділік емес

Соңғы нүктені жариялау маршрутизатордың бағыттау ережесін жасамайды, жоғарғы firewall-ды ашпайды және DNS атауының шешілуіне әкелмейді. Бұлар — жұмыстың жеке бөліктері, ал портты бағыттау жоқ дұрыс хабарландыру дәл сіз түзетпек болған ақауды тудырады. Жариялау — қолжетімділік туралы мәлімдеме, оны орнықтыратын механизм емес.

Табуды кінәламас бұрын жолды сырттан тексеріңіз. Соңғы нүктені үйренген, бірақ handshake-ты аяқтай алмайтын peer-дің underlay-де маршруттау немесе сүзу мәселесі бар, және екі параметрде де бірдей мекенжайды қайталау оны өзгертпейді.

Overlay мекенжайын соңғы нүктеден бөлек ұстаңыз

Түйіннің сертификаты оның Nebula мекенжайын анықтайды. Жарияланған мекенжайлар астыңғы желіге тиесілі және сертификатқа тимей-ақ өзгеруі мүмкін. Басқа overlay IP-мен жаңа сертификат шығару — басқа операция, ескіні бекіткен әр сенім қатынасы үшін өз салдарларымен. Екі өзгерісті runbook-те бөлек ұстаңыз, әйтпесе соңғы нүктенің көшуі қайта шығару ретінде жазылады.

Триаж тұрып қалғанда, екі қабатты анық бөліңіз: табу күтілетін соңғы нүктені қайтара ма және handshake оған жете ме? Егер табу дұрыс болса және пакеттер сәтсіз болса, мәселе overlay-дің астында. Егер табу қате болса, мәселе картада немесе хабарландыруда, және түзету сонда тиесілі.

Қатысты мақалалар