It-traffiku tal-kontenituri Docker jaqbeż il-VPN tal-host: kif tivverifika
VPN tal-host tkopri biss l-ispazju tal-ismijiet tan-netwerk tal-host. Uża dawn il-verifiki biex tiskopri jekk it-traffiku tal-kontenituri fuq pont jidħolx fil-mina jew joħroġ direttament.
Il-browser tiegħek fuq il-host juri l-indirizz tal-ħruġ tal-VPN, il-kontenitur jirrapporta l-konnessjoni tad-dar tiegħek, u xi ħadd isejħilha tnixxija. Xejn ma nixxa. Il-mina tal-host hija sensiela ta' interfaces, rotot u regoli li jappartjenu lill-ispazju tal-ismijiet tan-netwerk tal-host, u kontenitur fuq pont huwa spazju tal-ismijiet ieħor bir-rotta default tiegħu stess. Qgħadt fuq stack Compose fejn il-klijent tal-VPN kien ilu konness għal ġimgħat u lanqas pakkett wieħed tal-kontenitur ma kien daħal fih.
Ivverifika l-ispazju tal-ismijiet qabel l-ikona tat-tray
L-ispazji tal-ismijiet huma l-argument kollu. Meta Docker jibda kontenitur fuq netwerk pont, joħloq spazju tal-ismijiet tan-netwerk, iqabbad tarf wieħed ta' par veth ġo fih, u jagħti lil dak l-ispazju indirizz u rotta default. L-interface tal-mina, kif inhi msejħa, tgħix fl-ispazju tal-ismijiet tal-host. It-traffiku ġewwa l-kontenitur ma jistax jaraha, u l-ebda setting tal-klijent ma jbiddel dan minn barra.
Żewġ passi appoġġjati joħorġuk mill-iżolament. --network host iqiegħed il-kontenitur fl-ispazju tal-ismijiet tal-host, għalhekk jiret ir-rotot tal-host u għaldaqstant il-mina. --network container:vpn jaqsam l-ispazju tal-ismijiet ta' kontenitur ieħor, u hekk il-biċċa l-kbira tad-disinji sidecar jibagħtu xogħol minn kontenitur VPN. It-tnejn huma għażliet espliċiti; normalment waħda biss minnhom hija dak li kien ifisser min qed juża s-sistema.
Il-modalità host mhix aġġornament b'xejn. Il-kontenitur jieqaf ikollu l-indirizz tiegħu stess, il-pubblikazzjoni tal-ports tieqaf tapplika, u proċess li jżomm NET_ADMIN hemmhekk jista' jerġa' jikteb ir-routing tal-host. Li taċċetta dan jista' jkun id-deċiżjoni t-tajba. Li tassumi li diġà mixgħul huwa kif in-nies iqattgħu filgħaxija jiddeboggjaw mina li qatt ma kienet fil-passaġġ.
Segwi l-pakkett barra mill-pont
Kontenitur fuq pont jibgħat il-pakkett tiegħu lill-gateway default tiegħu, li huwa l-interface tal-pont fuq il-host. Il-host imbagħad jgħaddi l-pakkett u, fil-konfigurazzjoni default, jittraduċi l-indirizz tas-sors għal tiegħu qabel ma l-pakkett joħroġ. Dak il-pass tat-traduzzjoni huwa dak li jħassar il-politika bil-kwiet.
Meta l-pakkett jasal fl-endpoint tal-mina, ikun qed iġorr l-indirizz tal-host. Kwalunkwe regola, rotta tal-politika jew deċiżjoni ta' mina maqsuma li tiddependi fuq l-indirizz oriġinali tal-kontenitur tieqaf taqbel, u żewġ kontenituri maħsuba biex joħorġu minn ħruġ differenti ma jistgħux jiġu distinti mis-sors biss. Jekk għandek bżonn routing għal kull kontenitur, id-deċiżjoni trid issir qabel it-traduzzjoni jew ġewwa spazju tal-ismijiet li tikkontrolla.
Docker iżomm dawn ir-regoli hu stess, permezz ta' liema backend tal-firewall ġie konfigurat id-daemon. Regoli miktuba bl-idejn barra mill-hook appoġġjat għat-traffiku mgħoddi, DOCKER-USER, jistgħu jiġu riordinati jew jitwarrbu meta d-daemon jerġa' jibda jew il-host jiġi aġġornat. Id-dokumentazzjoni ta' Docker dwar il-filtrazzjoni tal-pakketti turi l-ordni tal-ktajjen; il-punt prattiku huwa li kull regola teħtieġ sid u passaġġ ta' riload li tkun fil-fatt ittestjajt.
Ittestja ż-żewġ sistemi separatament
Evidenza minn spazju tal-ismijiet wieħed ma tgħid xejn dwar l-ieħor. Talba mwettqa ġewwa l-kontenitur VPN turi li l-mina taħdem għal dak il-kontenitur. Mhix evidenza dwar il-host, u l-istess kmand imwettaq minn kontenitur --network host mhuwiex evidenza dwar il-pont.
# host namespace
ip route get 1.1.1.1
ip -brief addr show
# a fresh container on the same bridge network
docker run --rm --network appnet alpine sh -c 'ip route; cat /etc/resolv.conf; ip -6 route'
Imbagħad irrepeti t-test ġewwa l-kontenitur reali tal-applikazzjoni u mhux f'image simili. L-app tista' ġġorr rotta żejda, varjabbli tal-ambjent tal-proxy jew resolver differenti, u kull waħda minn dawn tbiddel it-tweġiba. Ivverifika r-riżoluzzjoni tal-ismijiet u t-tieni familja tal-indirizzi kull darba: il-kontenituri fuq pontijiet definiti mill-utent jiġu riżolti permezz tar-resolver inkorporat ta' Docker f'127.0.0.11, u rotta default IPv6 fuq il-pont tista' ġġorr traffiku barra waqt li tkun okkupat tittestja mina IPv4 biss.
Aqra l-mudell qabel ma tmiss il-kredenzjali
Meta l-host jaħdem u l-kontenitur le, il-kawża kważi dejjem strutturali, u li ddawwar iċ-ċwievet jew terġa' tinstalla l-klijent taħli nofs ta' nhar. Ikkategorizza s-sintomu l-ewwel u t-tiswija normalment issemmi lilha nfisha.
| What you see | Usual cause | First check |
|---|---|---|
| Host exits through the VPN, container shows the ISP address | The container never entered the tunnel | Default route inside the container |
| Container works until the daemon restarts, then stops | Rules outside the supported hook, or a changed backend | Daemon's reported firewall backend and DOCKER-USER |
| Container loses internal hosts after the tunnel comes up | VPN prefix overlaps the Docker bridge subnet | ip route on the host, then docker network inspect |
| Small replies arrive, large ones hang | Tunnel MTU or missing MSS clamping | Link MTU on both ends of the tunnel |
| Container falls back to the ISP address when the tunnel drops | Nothing enforces the kill switch for forwarded traffic | Stop the tunnel with a request in flight |
Il-linja tal-overlap jixirqilha sentenza tagħha. Profil VPN li jimbotta rotta għal 172.17.0.0/16, jew għal 10.0.0.0/8 li jkun fih il-prefiss tal-pont tiegħek, iġiegħel il-mina tallega s-subnet tal-kontenituri, u t-tweġibiet lejn indirizzi tradotti sejrin fid-direzzjoni ħażina jew jisparixxu. Li terġa' tinnumera n-netwerk ta' Docker normalment hija aktar nadifa milli takkumula eċċezzjonijiet.
Agħmel il-kopertura espliċita, imbagħad kiserha apposta
Żewġ disinji jifilħu reviżjoni. Aqsam l-ispazju tal-ismijiet tal-kontenitur VPN u kull xogħol kopert juża mina waħda b'limitu wieħed ta' restart, li huwa sempliċi sakemm servizz wieħed ikun jeħtieġ ħruġ differenti jew passaġġ DNS tiegħu. Jew irrotta n-netwerk tal-kontenituri lejn gateway VPN fuq il-host: il-forwarding mixgħul, il-prefiss tal-pont indirett lejn il-mina, it-traffiku tar-ritorn immaniġġjat b'mod espliċitu. Dan jixtri kontroll għal kull netwerk u jiswiek sett ta' regoli x'żżomm matul l-aġġornamenti tad-daemon u tal-klijent.
Kif inhu, it-test li jgħodd huwa l-każ tal-falliment. Waqqaf il-mina b'talba tal-kontenitur għaddejja u ara fejn tmur il-pakkett. Jekk taqa' lura għall-passaġġ dirett, il-kopertura qatt ma ġiet infurzata, għax kill switch tal-klijent jirregola t-traffiku tal-klijent stess u mhux pakketti mgħoddija minn pont. Imbagħad erġa' ibda d-daemon u l-host u kkonferma r-riżultat it-tieni darba; dak huwa l-mument meta regoli miktuba bl-idejn jisparixxu.
Qabel ma ssejjaħha lest, ikkonferma erba' affarijiet: l-interface tal-mina tinsab fl-istess spazju tal-ismijiet tat-traffiku, it-test tal-kontenitur sar ġewwa l-kontenitur reali, ir-riżoluzzjoni tal-ismijiet u ż-żewġ familji tal-indirizzi ġew ivverifikati, u t-test tal-falliment tal-mina għadu jonqos magħluq. Imbagħad ikteb il-backend tal-firewall, il-verżjoni tal-klijent u s-sid ta' kull regola. Dak ir-rekord huwa dak li jżomm l-aġġornament li jmiss milli jħalli taħlita mhux dokumentata ta' assunzjonijiet qodma.