Naqsmu n-netwerk ta' kontenitur VPN: x'jiġri mid-DNS
Spazju tal-ismijiet maqsum jagħti lill-app tiegħek l-interfaċċi tal-mina, mhux resolver magħqud. Ipprova minn ġewwa l-app u uża arranġament tad-DNS li jappoġġja r-runtime.
In-naqsam tal-ispazju tal-ismijiet tan-netwerk ta’ kontenitur VPN jagħti lill-applikazzjoni tiegħek l-interfaċċi u r-rotot tal-mina. Ma jagħtihiex ir-resolver tal-mina, u lanqas kopja magħquda ta’ xi ħaġa oħra fuq il-host. Dan id-distakk jipproduċi ħsara speċifika ħafna: l-ismijiet pubbliċi jiġu riżolti, dawk interni le, u l-app li tfalli tidher qisha qed tuża s-server DNS żbaljat, għax tassew qed tagħmel hekk. It-tiswija ġeneralment tkun iżgħar milli jissuġġerixxi d-dijanjosi.
Pass 1: Ipprova mill-app, mhux mill-host
Mexxi t-tiftix ġewwa l-kontenitur li għandu l-problema, mhux fuq il-host u mhux fil-browser. docker exec app-container getent hosts db.internal iwieġeb l-unika domanda li timporta: x'jirritorna r-resolver ta' dan il-proċess.
Jekk il-host jiżżolvi l-isem u l-kontenitur le, sibt il-ħsara. Kull ħaġa wara dan hija għażla ta' mod appoġġjat biex issewwiha.
Pass 2: Aqra l-mudell appoġġjat mir-runtime
Id-dokumentazzjoni tan-netwerk ta' Docker tirreġistra restrizzjonijiet fuq il-bnadar DNS għall-kontenituri li jaqsmu l-mod tan-netwerk ta' kontenitur ieħor. F'Compose network_mode: service:vpn torbot l-app mal-ispazju tal-ismijiet tal-kontenitur VPN, u għal kull servizz dns is-settings ma jġibux ruħhom bħal ma jagħmlu għal servizz ordinarju. Ir-riżoluzzjoni li tikseb hija dik li għandu l-ispazju tal-ismijiet maqsum.
In-netwerks tal-pont definiti mill-utent jużaw ukoll id-DNS inkorporat ta' Docker b'mod differenti mill-pont default. Huwa għalhekk li dns klawsola kopjata minn eżempju tal-pont li jaħdem tista' ma tagħmel xejn affattu fi stack maqsum. Iċċekkja l-arranġament qabel ma tikkopja l-klawsola.
Indirizz loopback dejjem jirreferi għall-kuntest tan-netwerk rilevanti. Ġewwa spazju tal-ismijiet maqsum, 127.0.0.1 mhuwiex ir-resolver tal-host.
Pass 3: Segwi d-domanda sa min jirċeviha
Aqra l-konfigurazzjoni tar-resolver tal-app, imbagħad kull DNS ikkriptat speċifiku għall-app li ġġib magħha, għax app li tmexxi r-resolver tagħha stess tinjora l-fajl li editjajt. Imbagħad iċċekkja jekk ir-resolver magħżul huwiex aċċessibbli taħt ir-rotot u l-politika tal-firewall tal-VPN. Indirizz tar-resolver fuq in-naħa l-oħra tal-mina huwa inutli jekk l-ispazju tal-ismijiet m'għandux rotta lejh. Ikkonferma min jirċeviha qabel ma editja kwalunkwe fajl.
Paġna tal-verifika tal-IP fil-browser ma tistax tgħidlek fejn marru d-domandi tal-ismijiet. Tgħidlek fejn marret konnessjoni HTTP waħda.
Pass 4: Sejwi ż-żewġ klassijiet ta' falliment b'mod differenti
Jekk l-ismijiet tas-servizzi jfallu waqt li l-ismijiet pubbliċi jaħdmu, il-problema hija l-iskoperta tas-servizzi ġewwa n-netwerk tal-kontenituri, mhux il-lista tar-resolvers pubbliċi. It-tibdil ta' kull indirizz DNS pubbliku mhux se joħloq rekords li l-mekkaniżmu tal-iskoperta tan-netwerk qatt ma ntalab joħloq.
Jekk iż-żewġ klassijiet jfallu, ibda bil-kapaċità li tintlaħaq ir-resolver. Jekk tonqos waħda biss, ibda bil-mekkaniżmu tal-iskoperta. Iż-żewġ għandhom sidien differenti, għalhekk tiswija waħda qatt ma tkopri t-tnejn.
Pass 5: Erġa' pprova wara l-ħolqien mill-ġdid
Ibdel il-konfigurazzjoni permezz tal-mekkaniżmu appoġġjat tar-runtime, imbagħad erġa' oħloq il-kontenituri minflok ma tedita fajls ġewwa wieħed li qed jaħdem. Ipprova isem privat ġdid, isem pubbliku ġdid u t-talba tal-app li tiġi wara t-tiftix. Modifika fi /etc/resolv.conf ġewwa kontenitur tispiċċa mal-ħolqien mill-ġdid u tikkonvinċik li t-tiswija ħadmet meta ma ħadmitx.
Innota s-sid tar-resolver u l-ispazju tal-ismijiet mistenni ħdejn id-definizzjoni tan-netwerk maqsum. Il-persuna li jmiss se jkollha bżonn it-tnejn.