Në një laptop të vetëm, me një klient VPN të lidhur, kontejnerët Linux vazhdojnë të bisedojnë me njëri-tjetrin dhe kontejnerët Windows ndalen. Variabli nuk është imazhi, por rruga që marrin paketat drejt hostit. Kontejnerët Windows në rrjetin e parazgjedhur huazojnë tabelën e rrugëzimit dhe përkthimin e hostit, prandaj një politikë që ndryshon rrugëzimin e hostit ndryshon edhe ata. Konfirmojeni këtë me një kërkim rrugë përpara se të riinstaloni çdo gjë.

Ku hyjnë paketat e një kontejneri Windows në host

Një kontejner në rrjetin e parazgjedhur nat merr një adresë nga një prefiks i shërbimit Host Networking Service, zakonisht diku brenda 172.16.0.0/12, dhe arrin hostin përmes një përshtatësi virtual. Hostit i përket rruga për atë prefiks dhe përkthen trafikun drejt përshtatësit që është aktiv. Nuk ka asnjë makinë virtuale të veçantë në mes të asaj rruge.

Ky dizajn është ai që e bën dështimin mekanik. Kur kontejneri dërgon një paketë, hosti kryen një kërkim rrugë për prefiksin e kontejnerit. Rruga që fiton është ajo ku shkon paketa, dhe kontejneri nuk ka mendim për këtë.

Çfarë ndryshon klienti VPN në atë rrugë

Një klient korporativ shpesh instalon një grup të gjerë rrugësh dhe një filtër që refuzon aksesin në nënrrjetin lokal sa kohë tuneli është aktiv. Qëllimi është mbrojtës: një rrjet lokal i komprometuar nuk duhet të arrijë një makinë të mbrojtur. Efekti dytësor është që rruga e hostit drejt prefiksit të kontejnerit nuk është më rrjeti NAT lokal.

Në vend të kësaj, kërkimi përputhet me tunelin dhe paketa i dorëzohet portës, e cila nuk ka dëgjuar kurrë për atë adresë kontejneri. Ping dështon, aplikacioni shkon në skadim kohe dhe kontejneri duket i prishur ndërsa ikona e VPN shkëlqen. Shikoni tabelën e hostit kur jeni i lidhur dhe rruga konkurruese është e dukshme.

Container modeOutbound pathTypical result behind the VPN
Windows, default natHost routes and translates container trafficContainer prefix follows the tunnel and fails
Windows, transparentContainer sits on the physical linkDepends on the local subnet being allowed
Linux engine on Docker DesktopVM egress proxied by a host processOften keeps working

Përse kontejnerët Linux sillen ndryshe

Motori Linux i ekzekuton kontejnerët brenda një makine virtuale të lehtë, dhe lidhjet dalëse nga ajo makinë hapen nga një proxy në anën e hostit në emër të kontejnerit. Hosti e nis socketin, prandaj rregulli i VPN për prefiksin e kontejnerit nuk zbatohet në të njëjtën mënyrë, dhe ngarkesa vazhdon të arrijë rrjetin.

Ky ndryshim shpjegon gjithashtu përse recetat Linux nuk transferohen. Një kontejner Linux që ka nevojë për tunelin e vet merr një pajisje TUN plus aftësinë NET_ADMIN. Kontejnerët Windows nuk ekspozojnë asnjë ndërfaqe si pajisje, prandaj ai model nuk ka ekuivalent në atë anë.

Provoni rrugën, pastaj zgjidhni një dizajn

Mblidhni prova nga hosti, jo nga kontejneri, sepse hosti e kryen kërkimin:

docker network inspect nat --format "{{range .IPAM.Config}}{{.Subnet}}{{end}}"
route print -4
Get-NetRoute -AddressFamily IPv4 | Where-Object DestinationPrefix -like "172.16.*"

Ekzekutoni daljen e rrugëve një herë përpara se VPN të lidhet dhe një herë pas. Nëse në daljen e dytë prefiksi i kontejnerit tregon përshtatësin e tunelit, diagnoza është e plotë dhe rinisja e kontejnerëve nuk do të ndihmojë.

Opsioni i parë është një vendim politike: pyesni pronarin e rrjetit nëse aksesi në LAN-in lokal mund të lejohet për këtë pajisje. Disa klientë korporativë e ofrojnë atë si cilësim, por dobëson një kufi të qëllimshëm. Kërkoni atë si një përjashtim të dokumentuar me pronar dhe datë rishikimi. Një çelës për çdo pajisje ku askush nuk kthehet është mënyra se si një politikë mbrojtëse zhduket në heshtje.

Aty ku politika duhet të qëndrojë, zhvendosni ngarkesën në vend që të luftoni me rrugën. Një rrjet transparent me nënrrjet dhe portë të qartë i vendos kontejnerët në lidhjen lokale, një ngarkesë Linux ekzekutohet pas proxy-t të makinës virtuale, dhe një makinë virtuale e veçantë me klientin e vet ruan politikën e vet. Zgjidhni një me qëllim dhe provojeni nga brenda kontejnerit, sepse aty lind kërkesa e përdoruesit.

Artikuj të ngjashëm