Një kontejner aplikacioni që ndan hapësirën e emrave të rrjetit të një kontejneri VPN nuk ka ndërfaqe të vetën, prandaj është e lehtë të supozohet se nuk mund të dërgojë asgjë kur tuneli dështon. Ky supozim është i gabuar në modalitetin e dështimit që ka rëndësi. Nëse procesi VPN vdes ndërsa hapësira e emrave mbijeton, aplikacioni mban soketat e tij dhe hapësira e emrave mban rrugët e saj, dhe trafiku vazhdon në shtegun që është ende i instaluar. Një kill switch i vërtetë është një politikë eksplicite filtrimi plus testime të ciklit të jetës së runtime-it, jo një varësi në nisje.

Pse ndarja e hapësirës së emrave nuk është kill switch

Ndarja e një hapësire emrash do të thotë që aplikacioni përdor ndërfaqet, adresat dhe tabelën e rrugëve të kontejnerit VPN. Ajo heq shtegun e pavarur të aplikacionit drejt rrjetit për sa kohë hapësira e ndarë e emrave është e paprekur, dhe nuk thotë asgjë për atë që do të bëjë kjo hapësirë emrash kur tuneli zhduket.

Kushtet e varësisë në Compose mund të vonojnë nisjen e një aplikacioni derisa një varësi të jetë e shëndoshë. Kjo mbulon vetëm një çast në kohë dhe asnjë dështim të mëvonshëm, prandaj është një mjet për renditjen e nisjes dhe jo një firewall dalës i vazhdueshëm.

Çfarë ndodh në të vërtetë kur kontejneri del

Bëj dallimin midis tre ngjarjeve. Procesi VPN brenda kontejnerit mund të vdesë ndërsa kontejneri vazhdon të funksionojë. Kontejneri mund të ndalet ose të hiqet, gjë që shkatërron hapësirën e emrave. Kontejneri mund të rikrijohet, gjë që ndërton një hapësirë të re emrash dhe rregulla të reja.

Në rastin e parë hapësira e emrave vazhdon, rruga e parazgjedhur mund të vazhdojë të tregojë ndërfaqen fizike, dhe aplikacioni vazhdon të dërgojë drejtpërdrejt. Në rastin e dytë aplikacioni i varur zakonisht humbet plotësisht lidhshmërinë, sepse hapësira e tij e emrave u zhduk. Në rastin e tretë aplikacioni mund të rilidhet me një hapësirë të re emrash përpara se tuneli të jetë gati. Çdo rast kërkon një test tjetër, dhe një dizajn që mbulon vetëm shkëputjen e rregullt mbulon rastin më pak interesant.

Ndërto një politikë eksplicite dalëse

Shkruaj politikën brenda hapësirës së ndarë të emrave në mënyrë që të zbatohet për paketat e aplikacionit. Forma është një hedhje e parazgjedhur me përjashtime të ngushta: loopback, ndërfaqja e tunelit, dhe adresa e porta konkrete e pikës fundore që kërkon transporti i tunelit.

Përjashtimi i pikës fundore duhet të jetë në vend përpara se tuneli të ngrihet, përndryshe klienti VPN nuk mund të arrijë serverin e tij. Kjo është arsyeja pse grupi i rregullave lejon në mënyrë eksplicite transportin e jashtëm në vend që të lejojë ndërfaqen fizike në përgjithësi. Shto edhe rregulla IPv6 nëse hapësira e emrave ka lidhshmëri IPv6, sepse një politikë vetëm IPv4 e lë familjen tjetër të hapur.

DNS-i gjithashtu bën pjesë në politikë. Nëse aplikacioni zgjidh emrat përmes një zgjidhësi të arritshëm vetëm brenda tunelit, rregulli i hedhjes do të thyejë zgjidhjen kur tuneli është poshtë, gjë që është sjellja e saktë për një kill switch. Vendos me vetëdije nëse kjo është ajo që do.

Testo ciklin e jetës, jo vetëm shkëputjen

Dërgo një kërkesë të re të padëmshme ndërsa tuneli është i shëndoshë, pastaj vrit procesin VPN dhe dërgo një tjetër. Përsërite pas një ndalimi të kontejnerit, pas një ristartimi dhe pas rikrijimit. Një kërkesë e re ka rëndësi sepse një lidhje ekzistuese mund t'i mbijetojë një ndryshimi rregullash që bllokon të rejat.

Mos u mbështet në një kontroll shëndetësor ose në një kërkim të IP-së dalëse si mekanizëm bllokimi. Një kontroll vëzhgon gjendjen dhe e raporton; një politikë kontrollon trafikun. Të dyja i përkasin të njëjtit implementim, dhe nuk janë zëvendësues.

Regjistro rregullat që testi t'i mbijetojë një përditësimi

Shkruaj rezultatin e pritur për çdo rast dështimi në dokumentacionin e implementimit, së bashku me rregullat që e zbatojnë atë. Ai regjistrim lejon që i njëjti test të ekzekutohet pas një përditësimi të imazhit ose të runtime-it, kur sjellja e hapësirës së emrave ose rrugët e parazgjedhura mund të ndryshojnë pa redaktuar askush skedarin compose.

Mbaj shtegun e jashtëm të nevojshëm të pikës fundore VPN të ndarë nga dalja e pakufizuar e aplikacionit, dhe mbaj DNS-in dhe IPv6 brenda mbulimit të synuar. Nëse politika lejon të gjithë ndërfaqen fizike për lehtësi, kill switch-i ka ikur. Dokumentacioni i rrjeteve të Docker përshkruan rregullimin e hapësirës së ndarë të emrave mbi të cilin ndërtohet politika, dhe ai është referenca që duhet kontrolluar kur sjellja e runtime-it vihet në dyshim.

Artikuj të ngjashëm