Una IP de servei a cada node OpenVPN: què no fa
Reserveu una /32 privada a cada node perquè un client arribi al servidor que triï. L’adreça no fa commutació per error, no mou sessions ni tria un node sa.
Un client es connecta a un de diversos OpenVPN servidors i després necessita un petit servei que s’executa en aquell node: una pàgina d’estat, un punt final de mètriques, un agent de còpia de seguretat. Donar a cada node la mateixa adreça privada de servei fa que la configuració del client sigui idèntica independentment del servidor on hagi anat a parar. Aquesta comoditat és real i també és fàcil de sobreinterpretar: l’adreça compartida us diu a quin node heu arribat, no que res sigui redundant.
Per què la mateixa adreça a cada node funciona
Cada node posseeix l’adreça localment i respon per ella, de manera que un client que hi arriba a través del seu túnel actual obté el servei a l’altre extrem d’aquest túnel. No es coordina res entre nodes i cap trànsit creua d’un node a un altre.
L’adreça és una etiqueta local, repetida en lloc de replicada. Cada node respon només per si mateix i cap d’ells reenvia trànsit en nom de l’adreça d’un altre node. Això és el que manté vàlida una configuració de client mentre els servidors es mantenen independents. També és per això que el disseny no necessita cap coordinació entre els nodes.
És per això que la mateixa configuració funciona a cada servidor sense cap protocol d’encaminament entre ells. També és per això que el disseny no diu res sobre la salut: l’adreça existeix en un node no sa exactament igual que en un de sa, perquè està lligada a l’amfitrió i no al fet que el servei sigui útil.
Assigneu-la a loopback, no al túnel
Posar l’adreça en una interfície de loopback la desacobla de la vida de qualsevol dispositiu de túnel, de manera que una reconnexió o una recàrrega de configuració no l’elimina. L’adreça existeix mentre existeixi l’amfitrió.
Una adreça a lo no és un filtre. El servei encara ha d’escoltar-hi, i el tallafoc de l’amfitrió encara avalua el camí d’entrada real, que arriba per la interfície del túnel. Qui assumeix que loopback vol dir només local acaba o bé bloquejant clients legítims o bé exposant alguna cosa que no pretenia.
Feu persistent l’assignació a través de la configuració de xarxa de l’amfitrió en lloc de tornar-la a afegir des d’un hook. Un hook de configuració no s’executarà en un node on no s’hagi aixecat cap túnel, i l’adreça del servei no hauria de dependre de l’activitat del túnel. Posa l’adreça a la configuració d’interfície que posseeix la vostra distribució, després reinicieu un cop i comproveu-la. Un reinici és l’única prova que sobreviu a un canvi de configuració posterior.
ip address show dev lo | grep 10.250.0.1
ip address add 10.250.0.1/32 dev loEnvieu una ruta i volgueu dir una destinació
El client necessita una ruta d’amfitrió per a l’adreça, oferta pel servidor al qual es connecta. Com que cada servidor ofereix la mateixa destinació, el perfil no canvia quan el client es mou.
Verifiqueu què ha instal·lat el client abans de culpar el servei.
ip route get 10.250.0.1Per a un servei HTTP, doneu a l’adreça un nom i un certificat per a aquest nom. La IP compartida no és una identitat i no elimina la verificació TLS, ni justifica copiar una clau privada a cada node. Un nom que resol a l’adreça compartida manté la història del certificat ordinària i us permet conservar una identitat per node si la necessiteu.
Què no pot fer l’adreça compartida
No proporciona commutació per error. Si el node seleccionat mor, l’adreça mor amb ell i el client ha de reconnectar-se en un altre lloc.
No migra una sessió TCP activa, perquè una connexió nova acaba en un amfitrió diferent sense cap coneixement de l’antiga.
No tria un node sa, no equilibra la càrrega ni sincronitza dades entre nodes. Cadascuna d’aquestes és un mecanisme separat amb els seus propis modes de fallada, i fingir que el truc d’adreçament les cobreix és com un disseny senzill adquireix una reputació immerescuda de resiliència. Si dos túnels són actius alhora, el significat de la destinació es torna ambigu, així que manteniu explícita la suposició d’un sol túnel actiu.
Manteniu la identitat del servei amb el nom
Escriviu què significa l’adreça: arriba al servei del node al qual el client està connectat ara mateix. Aquesta única frase evita la major part del malentès que atrau aquest patró.
Després documenteu les peces juntes: l’adreça, la interfície on viu, la ruta que el servidor envia i el nom i certificat que presenta el servei. Quatre petits fets que un lector futur podrà verificar, en l’ordre en què els comprovarà.
Si el requisit és una destinació estable per a un servei local al node, el patró encaixa i no costa gairebé res.
Si el requisit és la disponibilitat, pugeu una capa: un balancejador de càrrega, un nom de servei amb comprovacions de salut o un sistema d’orquestració que ja sàpiga com substituir un node.
Decidir-ho aviat manté l’adreça compartida com el que és, una etiqueta convenient, en lloc d’un component que s’espera en silenci que faci una feina per a la qual mai no va ser dissenyat.