Egy kliens csatlakozik több OpenVPN-kiszolgáló egyikéhez, majd szüksége van egy kis szolgáltatásra, amely azon a csomóponton fut: állapotoldalra, metrikavégpontra, biztonsági mentési ügynökre. Ha minden csomópont ugyanazt a privát szolgáltatási címet kapja, a kliens konfigurációja azonos marad, függetlenül attól, melyik kiszolgálóra került. Ez a kényelem valós, és könnyű túlinterpretálni is: a megosztott cím azt mondja meg, melyik csomópontot érte el, nem azt, hogy bármi is redundáns.

Miért működik ugyanaz a cím minden csomóponton

Minden csomópont helyben birtokolja a címet és felel érte, így az a kliens, amely az aktuális alagútján keresztül eléri, a szolgáltatást az alagút túlsó végén kapja meg. A csomópontok között semmi sem hangolódik össze, és semmilyen forgalom nem megy át az egyik csomópontból a másikba.

A cím helyi címke, megismételve, nem replikálva. Minden csomópont csak önmagáért válaszol, és egyik sem továbbít forgalmat a címért egy másik csomópont nevében. Ez tartja érvényben az egyetlen klienskonfigurációt, miközben a kiszolgálók függetlenek maradnak. Ez az oka annak is, hogy a tervnek nincs szüksége semmilyen összehangolásra a csomópontok között.

Ezért működik ugyanaz a konfiguráció minden kiszolgálón útválasztási protokoll nélkül közöttük. Ez az oka annak is, hogy a terv semmit sem mond az állapotról: a cím pontosan úgy létezik egy beteg csomóponton, mint egy egészségesen, mert a hoszthoz kötődik, nem ahhoz, hogy a szolgáltatás hasznos-e.

A loopbackre ossza ki, ne az alagútra

Ha a címet loopback-interfészre tesszük, leválik bármely alagúteszköz élettartamáról, így az újracsatlakozás vagy a konfiguráció újratöltése nem távolítja el. A cím addig létezik, amíg a hoszt létezik.

A lo-n lévő cím nem szűrő. A szolgáltatásnak továbbra is figyelnie kell rajta, és a hoszt tűzfala továbbra is a valódi bejövő útvonalat értékeli, amely az alagút-interfészen érkezik. Aki azt feltételezi, hogy a loopback csak helyit jelent, végül vagy blokkolja a jogszerű klienseket, vagy olyasmit tesz ki, amit nem szándékozott.

Tegye tartóssá a hozzárendelést a hoszt hálózati konfigurációján keresztül, ahelyett hogy hookból újra hozzáadná. Egy telepítőhook nem fut le olyan csomóponton, ahol nem jött fel alagút, és a szolgáltatási címnek nem szabadna az alagút aktivitásától függenie. Tegye a címet a disztribúciója által kezelt interfész-konfigurációba, majd indítsa újra egyszer, és ellenőrizze. Az újraindítás az egyetlen teszt, amely túlél egy későbbi konfigurációváltozást.

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

Toljon egy útvonalat, és egy célra gondoljon

A kliensnek hosztútvonalra van szüksége a címhez, amelyet az a kiszolgáló kínál, amelyhez csatlakozik. Mivel minden kiszolgáló ugyanazt a célt kínálja, a profil nem változik, amikor a kliens mozog.

Ellenőrizze, mit telepített a kliens, mielőtt a szolgáltatást hibáztatja.

ip route get 10.250.0.1

Egy HTTP-szolgáltatáshoz adjon a címnek nevet és ahhoz a névhez tanúsítványt. A megosztott IP nem identitás, nem szünteti meg a TLS-ellenőrzést, és nem is indokolja egyetlen privát kulcs minden csomópontra másolását. A megosztott címre feloldódó név hétköznapivá teszi a tanúsítvány történetét, és lehetővé teszi a csomópontonkénti identitás megtartását, ha szüksége van rá.

Mire nem képes a megosztott cím

Nem biztosít átvételt hiba esetén. Ha a kiválasztott csomópont meghal, a cím vele hal, és a kliensnek máshol kell újracsatlakoznia.

Nem telepít át élő TCP-munkamenetet, mert az új kapcsolat egy másik hoszton végződik, amely semmit sem tud a régiről.

Nem választ egészséges csomópontot, nem egyensúlyozza a terhelést és nem szinkronizál adatot a csomópontok között. Ezek mindegyike külön mechanizmus a maga hibatípusaival, és annak színlelése, hogy a címzési trükk lefedi őket, az az út, ahogy egy egyszerű terv kiérdemtelen hírnevet szerez a rugalmasságban. Ha két alagút egyszerre aktív, a cél jelentése kétértelművé válik, ezért tartsa kifejezetten az egy aktív alagút feltevését.

Tartsa a szolgáltatás identitását a név mellett

Írja le, mit jelent a cím: eléri a szolgáltatást azon a csomóponton, amelyhez a kliens éppen kapcsolódik. Ez az egyetlen mondat megakadályozza a félreértés nagy részét, amelyet ez a minta vonz.

Ezután dokumentálja a darabokat együtt: a címet, az interfészt, amelyen él, az útvonalat, amelyet a kiszolgáló tol, valamint a nevet és a tanúsítványt, amelyet a szolgáltatás bemutat. Négy apró tény, amelyet egy jövőbeli olvasó ellenőrizhet, abban a sorrendben, ahogy ellenőrizni fogja őket.

Ha a követelmény egy stabil cél egy csomóponti helyi szolgáltatáshoz, a minta illik, és szinte semmibe sem kerül.

Ha a követelmény a rendelkezésre állás, lépjen egy szinttel feljebb: terheléselosztó, állapotellenőrzésekkel ellátott szolgáltatásnév vagy olyan vezénylési rendszer, amely már tudja, hogyan kell csomópontot cserélni.

Ha ezt korán eldönti, a megosztott cím az marad, ami, kényelmes címke, nem pedig olyan komponens, amelytől csendben olyan munkát várnak, amelyre soha nem tervezték.

Kapcsolódó cikkek