Pínpín nẹ́tíwọ́kì kọntéínà VPN: kí ni ó ṣẹlẹ̀ sí DNS
Àyè orúkọ tí a pín ń fún app rẹ ní àwọn ìfarahàn tunnel, kì í ṣe resolver tí a dàpọ̀. Dánwò láti inú app kí o sì lo ìṣètò DNS tí runtime ń ṣe àtìlẹ́yìn fún.
Pínpín àyè orúkọ nẹ́tíwọ́kì kọntéínà VPN ń fún app rẹ ní àwọn ìfarahàn àti ọ̀nà tunnel. Kò fún un ní resolver tunnel, bẹ́ẹ̀ ni kò fún un ní ẹ̀dà àdàpọ̀ ti ohunkóhun mìíràn lórí host. Àlàfo yìí ń dá àṣìṣe pàtó kan: àwọn orúkọ gbogbo ènìyàn ń yanjú, àwọn orúkọ inú kì í yanjú, app tí ó kùnà sì dàbí ẹni tí ó ń lo server DNS tí kò tọ́, nítorí bẹ́ẹ̀ ni ó rí. Àtúnṣe sábà kéré ju bí àyẹ̀wò ṣe dábàá.
Ìgbésẹ̀ 1: Dánwò láti inú app, kì í ṣe láti host
Ṣe ìwádìí náà nínú kọntéínà tí ó ní ìṣòro, kì í ṣe lórí host àti kì í ṣe nínú browser. docker exec app-container getent hosts db.internal ń dá ìdáhùn sí ìbéèrè kan ṣoṣo tí ó ṣe pàtàkì: kí ni resolver ti ìlànà yìí ń dá padà.
Bí host bá yanjú orúkọ náà tí kọntéínà kò bá yanjú, o ti rí àṣìṣe náà. Ohun gbogbo lẹ́yìn èyí ni yíyàn ọ̀nà tí a ṣe àtìlẹ́yìn fún láti tún ṣe é.
Ìgbésẹ̀ 2: Ka àwòrán tí runtime ṣe àtìlẹ́yìn fún
Ìwé nẹ́tíwọ́kì Docker ń ṣàkọsílẹ̀ àwọn ìhámọ́ lórí àwọn àmì DNS fún àwọn kọntéínà tí ó pín ipò nẹ́tíwọ́kì kọntéínà mìíràn. Nínú Compose network_mode: service:vpn so app mọ́ àyè orúkọ kọntéínà VPN, àti fún iṣẹ́ kọ̀ọ̀kan dns àwọn ètò kì í hùwà bíi ti iṣẹ́ lasan. Ìyọrisí tí o ń gbà ni èyí tí àyè orúkọ tí a pín ní.
Àwọn nẹ́tíwọ́kì afárá tí olùlò túmọ̀ náà ń lo DNS tí a kó sínú Docker yàtọ̀ sí afárá àkọ́kọ́. Ìdí niyẹn tí dns ìpín tí a dà kọ láti inú àpẹẹrẹ afárá tí ń ṣiṣẹ́ lè má ṣe ohunkóhun rárá nínú àkójọ tí a pín. Ṣàyẹ̀wò ìṣètò náà kí o tó dà á.
Àdírẹ́sì loopback máa ń tọ́ka sí àyíká nẹ́tíwọ́kì tí ó yẹ nígbà gbogbo. Nínú àyè orúkọ tí a pín, 127.0.0.1 kì í ṣe resolver host.
Ìgbésẹ̀ 3: Tẹ̀lé ìbéèrè náà títí dé olùgbà rẹ̀
Ka ìṣètò resolver app, lẹ́yìn náà DNS tí a fi ààbò bo tí ó jẹ́ ti app tí ó ń mú wá, nítorí app tí ó ń ṣiṣẹ́ resolver tirẹ̀ ń gbàgbé fáìlì tí o ṣàtúnṣe. Lẹ́yìn náà ṣàyẹ̀wò bóyá resolver tí o yàn á lè dé lábẹ́ àwọn ọ̀nà àti ìlànà firewall VPN. Àdírẹ́sì resolver ní ẹ̀gbẹ́ kejì tunnel kò ní ìtumọ̀ bí àyè orúkọ kò bá ní ọ̀nà síbẹ̀. Jẹ́rìí olùgbà náà kí o tó ṣàtúnṣe fáìlì kankan.
Ojú-ìwé àyẹ̀wò IP nínú browser kò lè sọ fún ọ ibi tí àwọn ìbéèrè orúkọ lọ. Ó ń sọ ibi tí ìsopọ̀ HTTP kan lọ.
Ìgbésẹ̀ 4: Tún àwọn ẹ̀ka àṣìṣe méjì ṣe lọ́nà yàtọ̀
Bí àwọn orúkọ iṣẹ́ bá kùnà nígbà tí àwọn orúkọ gbogbo ènìyàn ń ṣiṣẹ́, ìṣòro náà wà nínú wíwá iṣẹ́ nínú nẹ́tíwọ́kì kọntéínà, kì í ṣe àkójọ àwọn resolver gbogbo ènìyàn. Yíyí gbogbo àdírẹ́sì DNS gbogbo ènìyàn kò ní dá àwọn àkọsílẹ̀ tí a kò tíì béèrè fún rí láti ọ̀dọ̀ ẹ̀rọ wíwá nẹ́tíwọ́kì.
Bí ẹ̀ka méjèèjì bá kùnà, bẹ̀rẹ̀ pẹ̀lú ìwọlé sí resolver. Bí ọ̀kan ṣoṣo bá kùnà, bẹ̀rẹ̀ pẹ̀lú ẹ̀rọ wíwá. Àwọn méjèèjì ní oníní yàtọ̀, ìdí niyẹn tí àtúnṣe kan kò fi ń bo méjèèjì.
Ìgbésẹ̀ 5: Dánwò lẹ́ẹ̀kan sí i lẹ́yìn àtúndá
Yí ìṣètò náà padà nípasẹ̀ ẹ̀rọ tí runtime ṣe àtìlẹ́yìn, lẹ́yìn náà tún àwọn kọntéínà dá mọ́lẹ̀ dípò ṣíṣàtúnṣe àwọn fáìlì nínú ẹyọ tí ó ń ṣiṣẹ́. Dánwò orúkọ àdáni tuntun, orúkọ gbogbo ènìyàn tuntun àti ìbéèrè app tí ó tẹ̀lé ìwádìí náà. /etc/resolv.conf nínú kọntéínà ń pòórá ní àtúndá yóò sì jẹ́ kí o gbàgbọ́ pé àtúnṣe náà ṣiṣẹ́ nígbà tí kò ṣiṣẹ́.
Ṣàkọsílẹ̀ oníní resolver àti àyè orúkọ tí a retí lẹ́gbẹ̀ẹ́ ìtumọ̀ nẹ́tíwọ́kì tí a pín. Ẹni tí ó tẹ̀lé yóò nílò méjèèjì.