Klientas prisijungia prie vieno iš kelių OpenVPN serverių ir tada jam reikia mažos paslaugos, kuri veikia tame mazge: būsenos puslapio, metrikos galinio taško, atsarginių kopijų agento. Davus kiekvienam mazgui tą patį privatų paslaugos adresą, kliento konfigūracija tampa vienoda nepriklausomai nuo to, kuriame serveryje jis atsidūrė. Tas patogumas yra tikras, ir jį taip pat lengva perinterpretuoti: bendras adresas pasako, kurį mazgą pasiekėte, o ne kad kažkas yra perteklinis.

Kodėl tas pats adresas kiekviename mazge veikia

Kiekvienas mazgas valdo adresą lokaliai ir už jį atsako, todėl klientas, kuris jį pasiekia per savo dabartinį tunelį, gauna paslaugą kitame to tunelio gale. Tarp mazgų niekas nekoordinuojama, ir joks srautas nepereina iš vieno mazgo į kitą.

Adresas yra lokalus žymeklis, kartojamas, o ne dubliuojamas. Kiekvienas mazgas atsako tik už save, ir nė vienas jų nepersiunčia srauto adresui kito mazgo vardu. Tai išlaiko vieną kliento konfigūraciją galiojančią, kol serveriai lieka nepriklausomi. Tai ir priežastis, kodėl dizainui nereikia jokio koordinavimo tarp mazgų.

Štai kodėl ta pati konfigūracija veikia kiekviename serveryje be maršrutizavimo protokolo tarp jų. Tai ir priežastis, kodėl dizainas nieko nesako apie sveikatą: adresas egzistuoja nepakankamai veikiančiame mazge lygiai taip pat, kaip ir sveikame, nes jis susietas su prieglobos kompiuteriu, o ne su tuo, kad paslauga naudinga.

Priskirkite jį loopback sąsajai, o ne tuneliui

Adreso įdėjimas į loopback sąsają atskiria jį nuo bet kurio tunelio įrenginio gyvavimo trukmės, todėl pakartotinis prisijungimas ar konfigūracijos įkėlimas jo nepašalina. Adresas egzistuoja tol, kol egzistuoja prieglobos kompiuteris.

Adresas lo sąsajoje nėra filtras. Paslauga vis tiek turi juo klausytis, o prieglobos kompiuterio ugniasienė vis tiek vertina tikrąjį įeinantį kelią, kuris atvyksta tunelio sąsaja. Kas mano, kad loopback reiškia tik lokalų, galiausiai arba blokuoja teisėtus klientus, arba atskleidžia tai, ko neketino.

Padarykite priskyrimą ilgaamžį per prieglobos kompiuterio tinklo konfigūraciją, o ne pridėkite jį iš naujo iš kabliuko. Sąrankos kabliukas neįsijungs mazge, kuriame nepakilo joks tunelis, o paslaugos adresas neturėtų priklausyti nuo tunelio veiklos. Įdėkite adresą į sąsajos konfigūraciją, kurią valdo jūsų distribucija, tada kartą paleiskite iš naujo ir patikrinkite. Pakartotinis paleidimas yra vienintelis testas, kuris atlaiko vėlesnį konfigūracijos pakeitimą.

ip address show dev lo | grep 10.250.0.1
ip address add 10.250.0.1/32 dev lo

Stumkite vieną maršrutą ir turėkite omenyje vieną paskirties vietą

Klientui reikia prieglobos kompiuterio maršruto tam adresui, kurį siūlo serveris, prie kurio jis jungiasi. Kadangi kiekvienas serveris siūlo tą pačią paskirties vietą, profilis nesikeičia, kai klientas juda.

Patikrinkite, ką klientas įdiegė, prieš kaltindami paslaugą.

ip route get 10.250.0.1

HTTP paslaugai suteikite adresui vardą ir to vardo sertifikatą. Bendras IP nėra tapatybė, jis nepanaikina TLS patikros ir nepateisina vieno privataus rakto kopijavimo į kiekvieną mazgą. Vardas, kuris išsprendžiamas į bendrą adresą, palieka sertifikato istoriją įprastą ir leidžia išlaikyti kiekvieno mazgo tapatybę, jei jos reikia.

Ko bendras adresas negali

Jis neužtikrina perėjimo gedimo metu. Jei pasirinktas mazgas miršta, adresas miršta kartu su juo, ir klientas turi jungtis iš naujo kitur.

Jis nemigruoja gyvos TCP sesijos, nes naujas ryšys baigiasi kitame prieglobos kompiuteryje, kuris nieko nežino apie senąjį.

Jis neparenka sveiko mazgo, nesubalansuoja apkrovos ir nesinchronizuoja duomenų tarp mazgų. Kiekvienas iš jų yra atskiras mechanizmas su savo gedimo būdais, o apsimetimas, kad adresavimo triukas juos apima, yra kelias, kuriuo paprastas dizainas įgyja nepelnytą atsparumo reputaciją. Jei du tuneliai aktyvūs vienu metu, paskirties vietos prasmė tampa dviprasmiška, todėl laikykite prielaidą apie vieną aktyvų tunelį aiškiai išreikštą.

Išlaikykite paslaugos tapatybę kartu su vardu

Užrašykite, ką adresas reiškia: jis pasiekia paslaugą tame mazge, prie kurio klientas šiuo metu prijungtas. Tas vienas sakinys užkerta kelią didžiajai daliai nesusipratimo, kurį pritraukia šis šablonas.

Tada dokumentuokite dalis kartu: adresą, sąsają, kurioje jis gyvena, maršrutą, kurį stumia serveris, ir vardą bei sertifikatą, kurį pateikia paslauga. Keturi maži faktai, kuriuos būsimas skaitytojas gali patikrinti, ta tvarka, kuria jis juos tikrins.

Jei reikalavimas yra stabili paskirties vieta mazge veikiančiai paslaugai, šablonas tinka ir beveik nieko nekainuoja.

Jei reikalavimas yra prieinamumas, kilkite vienu sluoksniu aukščiau: apkrovos balansuotojas, paslaugos vardas su sveikatos patikromis arba orkestravimo sistema, kuri jau žino, kaip pakeisti mazgą.

Nusprendus tai anksti, bendras adresas išlieka tuo, kuo yra, patogiu žymekliu, o ne komponentu, iš kurio tyliai tikimasi darbo, kuriam jis niekada nebuvo suprojektuotas.

Susiję straipsniai