Wieħed host, żewġ tagħbijiet tax-xogħol u rekwiżit li jifridhom: klijent tat-tniżżil li jrid joħroġ minn VPN kummerċjali, u interface tal-amministrazzjoni li jrid ikompli juża l-konnessjoni tal-host. L-installazzjoni tal-klijent VPN fuq il-host tonqos mill-ewwel għar-rekwiżit, għax imbagħad iż-żewġ tagħbijiet jaqsmu ħruġ wieħed. Il-mudell li tassew jaħdem huwa li t-tunnel jitmexxa fil-kontenitur tiegħu stess u jitħalla biss dawk it-tagħbijiet li jeħtiġuh jingħaqdu mal-ispazju tal-ismijiet tan-netwerk ta' dak il-kontenitur. Kull ħaġa oħra żżomm it-triq ordinarja ta' Docker, u d-dettalji li jsegwu huma konsegwenzi ta' min għandu l-ispazju tal-ismijiet.

Għaliex spazju tal-ismijiet maqsum ibiddel ir-regoli

Kontenitur li jingħaqad mal-ispazju tal-ismijiet ta' ieħor ma jiksibx il-munzell tan-netwerk tiegħu stess. Jara l-istess interfaces, l-istess tabella tal-instradar u l-istess loopback bħall-kontenitur li miegħu ngħaqad, u għalhekk il-mudell huwa utli: it-tagħbija issolvi u tikkonnettja b'mod normali, u t-tunnel taħt jarresta t-traffiku mingħajr ma l-applikazzjoni tkun taf. L-ispiża hija li kull setting tan-netwerk issa għandu sid wieħed, u l-kontenitur li jingħaqad mhuwiex dak is-sid.

Din ir-regola tas-sjieda twieġeb il-biċċa l-kbira tal-mistoqsijiet tal-konfigurazzjoni qabel ma jiġu mistoqsija. Jekk setting tgħix fil-munzell tan-netwerk, hija tal-kontenitur tal-ġenb. Jekk tiddeskrivi l-proċess, tibqa' mat-tagħbija.

Il-loopback huwa l-parti li tissorprendi n-nies. Ġewwa l-kontenitur li jingħaqad, localhost jiġi solvut għal-loopback tal-kontenitur tal-ġenb, mhux għal wieħed privat tiegħu stess, għalhekk servizz li jintrabat ma' 127.0.0.1 u jistenna iżolament issa jaqsam dak l-indirizz mal-kontenitur tat-tunnel.

Ippubblika l-portijiet fuq il-kontenitur li għandu l-ispazju tal-ismijiet

Il-mapping tal-portijiet hija tas-sid tal-ispazju tal-ismijiet anki meta l-proċess li jisma' jaħdem fil-kontenitur l-ieħor. Iddikjara l-mapping fuq il-kontenitur tal-ġenb, u ħalli t-tagħbija żżomm il-konfigurazzjoni tal-proċess tagħha stess bla mittiefsa. Mapping fuq is-servizz li jingħaqad ma jistax jidħol fis-seħħ, kemm jekk il-magna tirrifjutah u kemm jekk tinjorah bil-kwiet skont kif jinbeda l-kontenitur, u għalhekk interface li kienet aċċessibbli mument ilu tisparixxi hekk kif jiġi applikat il-mudell.

services:
  gluetun:
    image: qmcgaw/gluetun
    cap_add: [NET_ADMIN]
    ports: ["8080:8080"]
  client-vpn:
    image: example/client
    network_mode: "service:gluetun"
  client-direct:
    image: example/client
    ports: ["8081:8080"]

Aqra dan il-blokk bħala tliet deċiżjonijiet mhux tliet servizzi. Il-kontenitur tal-ġenb għandu t-tunnel u l-port ippubblikat; il-klijent li jingħaqad ma jiddikjarax netwerk xejn; il-klijent dirett iżomm mapping tiegħu stess fuq in-netwerk default. Il-kapaċità NET_ADMIN hija dik li tħalli lill-kontenitur tal-ġenb joħloq interfaces u jbiddel rotot, u huwa għalhekk li dan il-kontenitur jeħtieġ aktar privileġġi mit-tagħbijiet li jaqdi.

Is-servizz li jibqa' dirett iżomm in-netwerk tiegħu stess

It-tagħbija li ma tridx tgħaddi mit-tunnel iżżomm il-pont default jew netwerk definit mill-utent tagħha stess, bil-port ippubblikat u l-ħruġ tagħha stess. Huwa tentattiv li tqabbadha man-netwerk tal-kontenitur tal-ġenb sabiex iż-żewġ kontenituri jkunu jistgħu jitkellmu bl-isem, iżda dak il-pass wieħed iċaqlaq it-traffiku tagħha bil-kwiet fit-tunnel. Jekk jeħtiġilhom jilħqu lil xulxin, ibni netwerk separat definit mill-utent, qabbad it-tnejn miegħu, u ħalli l-kontenitur tal-ġenb bħala l-unika triq 'il barra.

Żomm iż-żewġ mistoqsijiet separati: liema kontenituri jistgħu jilħqu lil xulxin, u liema joħroġ minn fejn. Li tgħaqqadhom hija l-aktar mod komuni kif dan id-disinn jerġa' jsir VPN għall-host kollu.

Matriċi tal-fallimenti għall-ewwel siegħa

Il-biċċa l-kbira tal-ewwel tentattivi jfallu b'waħda minn erba' modi, u kull waħda għandha kawża differenti. Iċċekkjahom f'dan l-ordni, għax l-ewwel tnejn jispjegaw kważi kull rapport.

SymptomLikely cause
Web UI unreachable after the changePort mapping declared on the joining container instead of the sidecar
Both containers show the provider's exit addressThe direct service was attached to the sidecar network
Internal names stop resolvingResolver settings live on the host, not in the shared namespace
Health check fails but the app worksThe check probes localhost, which now means the sidecar

Ir-raba' ringiela hija dik li n-nies jiġġudikaw b'mod żbaljat bħala bug tal-applikazzjoni. Prova miktuba kontra l-loopback tat-tagħbija stess issa qed tittestja l-kontenitur tat-tunnel, għalhekk jew tfalli jew tirrapporta servizz kompletament żbaljat.

Meta isem wieħed tal-host jeħtieġ it-tunnel

Xi drabi tunnel sħiħ huwa wisq: isem intern wieħed irid jgħaddi minn VPN korporattiv waqt li socket lokali jew konnessjoni tal-wiri tibqa' taħdem. Tunnel sħiħ fil-kontenitur ikisser dik it-triq u kull ma hu indirizzat lill-host, għalhekk instrada biss il-prefiss li jeħtiġha. Wrapper tal-instradar maqsum madwar il-klijent jagħmel dan, jibgħat il-host imsemmi mit-tunnel u jħalli r-rotta preċedenti bla mittiefsa għal kull ħaġa oħra.

Agħżel dan meta jeħtieġlek tilħaq servizz wieħed biss u m'intix qed tipprova ċċaqlaq it-traffiku kollu tal-kontenitur. Għodda differenti mill-kontenitur tal-ġenb u twieġeb mistoqsija differenti.

Ivverifika, imbagħad agħmel biex jiflaħ restart

Staqsi lil kull kontenitur minn liema indirizz jidher li ġej. Dak fit-tunnel għandu jipprintja l-indirizz tal-fornitur u dak dirett il-ħruġ tal-host. Tweġibiet identiċi jfissru li s-servizz dirett wiret l-ispazju tal-ismijiet żbaljat jew li VPN fil-livell tal-host għadu jaqbad kollox, u dawk iż-żewġ tiswijiet huma differenti. Erġa' ġġenera l-verifika wara kull modifika fil-compose, għax blokk tas-servizz ikkupjat wieħed huwa biżżejjed biex jerġa' jdaħħal il-problema.

Tliet affarijiet għandhom tendenza jinkisru aktar tard. DNS isegwi lis-sid tal-ispazju tal-ismijiet, għalhekk is-settings tas-solvatur u d-dominju tat-tiftix huma tal-kontenitur tal-ġenb mhux tal-host. VPN b'port forwarding ibiddel il-port tas-smigħ tiegħu meta jerġa' jikkonnettja, għalhekk il-port mibgħut mill-fornitur u l-port tas-smigħ fuq in-naħa tal-kontenitur iridu jinkitbu lura fil-konfigurazzjoni tal-klijent jew fil-mapping tal-portijiet, normalment minn aġġornatur żgħir li jaqra l-API tal-fornitur. U kull prova miktuba kontra localhost issa tistaqsi lill-kontenitur tat-tunnel mhux lit-tagħbija.

Ikteb il-mudell, inkluż liema kontenitur għandu l-ispazju tal-ismijiet u liema portijiet huma tiegħu. Il-persuna li jmiss se żżid servizz, tikkupja l-blokk żbaljat u tirriproduċi l-ewwel falliment f'dan l-artiklu.

Artikli relatati