Një IP shërbimi në çdo nyje OpenVPN: çfarë nuk bën
Rezervo një /32 privat në çdo nyje që klienti të arrijë serverin që zgjodhi. Adresa nuk bën kalim në rast dështimi, nuk lëviz sesione dhe nuk zgjedh një nyje të shëndetshme.
Një klient lidhet me një nga disa servera OpenVPN dhe më pas ka nevojë për një shërbim të vogël që ekzekutohet në atë nyje: një faqe statusi, një pikë fundore metrikash, një agjent rezervë. Dhënia e të njëjtit adresë private shërbimi çdo nyje e bën konfigurimin e klientit identik pavarësisht se në cilin server u vendos. Ajo lehtësi është reale, dhe po aq e lehtë është të lexohet tepër: adresa e përbashkët të tregon se në cilën nyje mbërrite, jo se diçka është e tepërt.
Pse e njëjta adresë në çdo nyje funksionon
Çdo nyje e zotëron adresën lokalisht dhe përgjigjet për të, kështu që një klient që e arrin përmes tunelit të tij aktual e merr shërbimin në skajin tjetër të atij tuneli. Asgjë nuk koordinohet midis nyjeve, dhe asnjë trafik nuk kalon nga një nyje në tjetrën.
Adresa është një etiketë lokale, e përsëritur dhe jo e replikuar. Çdo nyje përgjigjet vetëm për vete, dhe asnjëra prej tyre nuk përcjell trafik për adresën në emër të një nyje tjetër. Kjo mban një konfigurim të vetëm klienti të vlefshëm ndërsa serverat mbeten të pavarur. Është gjithashtu arsyeja pse dizajni nuk ka nevojë për asnjë koordinim midis nyjeve.
Prandaj i njëjti konfigurim funksionon në çdo server pa një protokoll rrugëtimi midis tyre. Është gjithashtu arsyeja pse dizajni nuk thotë asgjë për shëndetin: adresa ekziston në një nyje të sëmurë saktësisht si në një të shëndetshme, sepse është e lidhur me hostin dhe jo me faktin që shërbimi është i dobishëm.
Caktoje në loopback, jo në tunel
Vendosja e adresës në një ndërfaqe loopback e shkëput atë nga jetëgjatësia e çdo pajisjeje tuneli, kështu që një rilidhje ose një ringarkim i konfigurimit nuk e heq atë. Adresa ekziston për sa kohë ekziston hosti.
Një adresë në lo nuk është filtër. Shërbimi duhet ende të dëgjojë mbi të, dhe firewall-i i hostit vazhdon të vlerësojë rrugën reale hyrëse, e cila mbërrin në ndërfaqen e tunelit. Kush mendon se loopback do të thotë vetëm lokal, përfundon ose duke bllokuar klientë legjitimë ose duke ekspozuar diçka që nuk e kishte ndër mend.
Bëje caktimin të përhershëm përmes konfigurimit të rrjetit të hostit në vend që ta shtosh përsëri nga një hook. Një hook instalimi nuk aktivizohet në një nyje ku nuk u ngrit asnjë tunel, dhe adresa e shërbimit nuk duhet të varet nga aktiviteti i tunelit. Vendos adresën në konfigurimin e ndërfaqes që zotëron shpërndarja jote, pastaj rindiz një herë dhe kontrolloje. Rindezja është testi i vetëm që i mbijeton një ndryshimi të mëvonshëm të konfigurimit.
ip address show dev lo | grep 10.250.0.1
ip address add 10.250.0.1/32 dev loShtyj një rrugë dhe syno një destinacion
Klienti ka nevojë për një rrugë hosti për adresën, e ofruar nga serveri me të cilin lidhet. Meqenëse çdo server ofron të njëjtin destinacion, profili nuk ndryshon kur klienti lëviz.
Verifiko çfarë instaloi klienti përpara se të fajësosh shërbimin.
ip route get 10.250.0.1Për një shërbim HTTP, jepi adresës një emër dhe një certifikatë për atë emër. IP-ja e përbashkët nuk është identitet, dhe nuk e heq verifikimin TLS, as nuk justifikon kopjimin e një çelësi privat në çdo nyje. Një emër që zgjidhet në adresën e përbashkët e mban historinë e certifikatës të zakonshme dhe të lejon të mbash një identitet për nyje nëse të duhet.
Çfarë nuk mund të bëjë adresa e përbashkët
Nuk siguron kalim në rast dështimi. Nëse nyja e zgjedhur vdes, adresa vdes me të, dhe klienti duhet të rilidhet diku tjetër.
Nuk migron një sesion TCP të gjallë, sepse një lidhje e re përfundon në një host tjetër që nuk di asgjë për atë të vjetrën.
Nuk zgjedh një nyje të shëndetshme, nuk balancon ngarkesën dhe nuk sinkronizon të dhëna midis nyjeve. Secili prej tyre është një mekanizëm i veçantë me mënyrat e veta të dështimit, dhe të pretendohet se truku i adresimit i mbulon është mënyra se si një dizajn i thjeshtë fiton një reputacion të pamerituar qëndrueshmërie. Nëse dy tunele janë aktivë njëkohësisht, kuptimi i destinacionit bëhet i paqartë, prandaj mbaje supozimin e një tuneli aktiv të shprehur qartë.
Mbaje identitetin e shërbimit bashkë me emrin
Shkruaj çfarë do të thotë adresa: arrin shërbimin në nyjen me të cilën klienti është i lidhur tani. Ajo fjali e vetme parandalon pjesën më të madhe të keqkuptimit që tërheq ky model.
Pastaj dokumento pjesët bashkë: adresën, ndërfaqen ku jeton, rrugën që shtyn serveri, dhe emrin e certifikatën që paraqet shërbimi. Katër fakte të vogla që një lexues i ardhshëm mund t’i verifikojë, në rendin në të cilin do t’i kontrollojë.
Nëse kërkesa është një destinacion i qëndrueshëm për një shërbim lokal në nyje, modeli përshtatet dhe nuk kushton pothuajse asgjë.
Nëse kërkesa është disponueshmëria, ngjitu një shtresë më lart: një balancues ngarkese, një emër shërbimi me kontrolle shëndeti, ose një sistem orkestrimi që tashmë di si të zëvendësojë një nyje.
Vendosja e kësaj herët e mban adresën e përbashkët atë që është, një etiketë e përshtatshme, në vend të një komponenti prej të cilit pritet në heshtje një punë për të cilën nuk u projektua kurrë.