DNS ń padà sí ipò àtijọ́ nígbà gbogbo, àtúnso pọ̀ VPN ń pa àtúnṣe rẹ rẹ́, nígbẹ̀yìnkẹ́yìn ẹnìkan nínú ẹgbẹ́ dábàá pé kí a dì fáìlì náà. Ọ̀nà yẹn jẹ́ àmì, kì í ṣe ojútùú: ẹ̀ka méjì ló gbà pé àwọn ni ó ni /etc/resolv.conf, ẹni tí ó kọ nígbẹ̀yìn ni ó ń ṣẹ́gun. Dídì fáìlì kò yanjú ìforígbárí nípa ẹni tí ó ni, ó kàn ń fi í pamọ́ nígbà tí ó ń ba ẹ̀ka tí o fẹ́ gan-an jẹ́. Ṣe àwọn àyẹ̀wò mẹ́rin tí ó wà nísàlẹ̀ lẹ́sẹẹsẹ, kí o sì tún ètò náà ṣe ní ìpele tí ó ni í, kì í ṣe ní fáìlì náà.

Àyẹ̀wò 1: ṣé ìsopọ̀ àmì ni, àti sí ibo

Bẹ̀rẹ̀ pẹ̀lú fáìlì náà fúnra rẹ̀, nítorí ipa tí o ń ṣàtúnṣe lè máà jẹ́ fáìlì rárá. Ìsopọ̀ àmì tí ó lọ sí àkójọ àkókò ìṣiṣẹ́ olùyànjú ń hùwà yàtọ̀ pátápátá sí fáìlì lasan tí àkọsílẹ̀ oníbàárà ń kọ lẹ́ẹ̀kan sí i:

ls -l /etc/resolv.conf
readlink -f /etc/resolv.conf
cat /etc/resolv.conf

Ìsopọ̀ sí ipa stub ti systemd-resolved túmọ̀ sí pé wọ́n ń dá àkóónú fáìlì náà, àti pé àtúnṣe ọwọ́ yóò di àtẹ̀wẹ́ ní ìṣẹ̀lẹ̀ tí ó tẹ̀lé. Fáìlì lasan tí ó ní àwọn ìlà nameserver ni olùbàárà tàbí ìkọ̀kọ̀ DHCP tí ó ń ṣiṣẹ́ nígbà ìsopọ̀ ń kọ. Àwọn méjèèjì tọ́; ohun tí ó ṣe pàtàkì ni láti mọ èyí tí o ní kí o tó yí ohunkóhun padà.

Àyẹ̀wò 2: èwo daemon tí ń ṣiṣẹ́

Wà kí o mọ ohun tí ó ń ṣiṣẹ́ gan-an, kì í ṣe ohun tí wọ́n fi sórí ẹ̀rọ. Nínú pínpín òde òní, olùyànjú lè pọ̀ sí i, ẹni tí ó di ebute 53 mú lórí ìsopọ̀ loopback ni ó ń dáhùn:

systemctl status systemd-resolved --no-pager
resolvectl status
ss -lunp | grep ':53'

Ìjáde ipò ń dárúkọ àwọn olùpèsè DNS fún ìsopọ̀ kọ̀ọ̀kan àti àwọn agbègbè ìtọ́sọ́nà, ìyẹn ni àwòrán tí o nílò fún split DNS. Bí àwọn orúkọ inú bá gbọdọ̀ lọ sí olùpèsè inú, gbogbo ohun mìíràn sì lọ sí ti gbogbo ènìyàn, ìlànà yẹn wà nínú àwọn agbègbè ìsopọ̀ kọ̀ọ̀kan, àti pípa á dẹ́gbẹ̀rẹ́ sí àkọ́jọ nameserver tí ó dúró ṣinṣin nínú fáìlì ń pàdánù ìyàtọ̀ yẹn ní ìdákẹ́jẹ́.

Ìtò NetworkManager fúnra rẹ̀ ni ó ń pinnu èwo backend nínú àwọn wọ̀nyí tí yóò lò. Ètò dns= rẹ̀ nínú fáìlì ìtò pàtàkì ń yan láàárín olùyànjú inú rẹ̀, dnsmasq, systemd-resolved àti none, pínpín sì lè ti yan fún ọ. Ka ètò yẹn kí o tó pinnu ohun tí “àtúnṣe DNS” túmọ̀ sí lórí ẹrọ yìí.

Àyẹ̀wò 3: ohun tí a gbà láàyè fún olùbàárà VPN láti kọ

Níbí ni ìforígbárí sábà ń gbé. Olùbàárà VPN tí ó ń kọ fáìlì olùyànjú lẹ́ẹ̀kan sí i tààrà yóò bá gbogbo iṣẹ́ tí ó tún ń tọ́jú rẹ̀ jà, ẹni tí ó ń jáwọ́ ni ẹni tí ó kọ́kọ́ ṣiṣẹ́. Àwọn ìtújáde OpenVPN tuntun lè fi àwọn ètò DNS fún systemd-resolved dípò kíkọ fáìlì náà lẹ́ẹ̀kan sí i, ìyẹn ni ìhùwà ìfọwọ́sowọ́pọ̀ tí o fẹ́; àwọn àkọsílẹ̀ àtijọ́ àti àwọn ìkọ̀kọ̀ tí a fi ọwọ́ kọ sábà ń pe irinṣẹ́ olùrànlọ́wọ́ tí ó ti di àtijọ́ tàbí kàn ń kọ sórí fáìlì náà.

Ipò WireGuard jọra ní ìrísí: ìtò ìsopọ̀ fúnra rẹ̀ kò ń ṣàkóso DNS, àwọn irinṣẹ́ tí ó yí i ká ni ó ń ṣe é, nípasẹ̀ olùrànlọ́wọ́ olùyànjú tàbí ìsopọ̀ resolved. Bí a bá fi méjì irú àwọn olùrànlọ́wọ́ bẹ́ẹ̀ sórí ẹ̀rọ, àwọn méjèèjì yóò gbìyànjú láti fi ojú tí wọ́n fi ń wo ayé ṣe é nígbà ìsopọ̀.

Ka àwọn ìkọ̀kọ̀ up àti down ti olùbàárà dípò kíkọ́kọ́ rò. Àwọn ìlà shell díẹ̀ nínú /etc/openvpn/up.sh tàbí àkójọ tí ó dọ́gba ń ṣàlàyé ìhùwà tí bí bẹ́ẹ̀ kọ́ yóò dà bí àìdájú, ibẹ̀ sì ni ibi tí o ti lè mú olùbàárà ṣiṣẹ́ pọ̀ dípò lílù ú.

Àyẹ̀wò 4: tún un ṣe ní ọ̀dọ̀ ẹni tí ó ni í, kì í ṣe nínú fáìlì

Nígbà tí o bá mọ ẹni tí ó ni í, ṣètò DNS nípasẹ̀ ìsopọ̀ tí ẹni yẹn ń ṣàtìlẹ́yìn. Fún systemd-resolved, ìyẹn túmọ̀ sí ètò ìsopọ̀ kọ̀ọ̀kan àti àwọn agbègbè ìtọ́sọ́nà dípò fáìlì dúró ṣinṣin; fún NetworkManager, àwọn ètò DNS ti profáìlì ìsopọ̀ àti backend tí a yàn; fún pínpín tí ó ń lo ìsopọ̀ resolvconf, kíkọ nípasẹ̀ olùrànlọ́wọ́ yẹn.

Má ṣe jẹ́ kí fáìlì náà di aláìlèyípadà. Àmì àìlèyípadà ń dá àwọn àtúnṣe DHCP tí ó tọ́ àti àwọn ìmúdójúìwọ̀n VPN dúró pẹ̀lú àwọn tí o ń bára wọn jà, ó sì fi ẹ̀rọ náà sílẹ̀ ní ipò tí ìgbésókè àpù tàbí àtúnso pọ̀ tí ó tẹ̀lé yóò dá àṣìṣe tí ẹnikẹ́ni kò lè ṣàlàyé láti inú ìtò náà. Ó ń fi ìforígbárí ẹni tí ó ni í pamọ́, ìyẹn gan-an ni ohun tí o ń gbìyànjú láti yanjú.

Níbi tí ẹ̀ka méjì gbọdọ̀ wà pọ̀ gan-an, fún wọn ní iṣẹ́ ọ̀tọ̀ọ̀tọ̀. Jẹ́ kí olùṣàkóso nẹ́tíwọ́kì ni ìtò ní ìpele ìsopọ̀, jẹ́ kí olùbàárà VPN ṣe àfikún DNS àti àwọn agbègbè ìsopọ̀ kọ̀ọ̀kan nípasẹ̀ ìsopọ̀ kan náà, kí o sì yọ àkọsílẹ̀ kẹta tí ó ń kọ fáìlì náà tààrà kúrò. Àwọn àkọsílẹ̀ systemd-resolved ṣàlàyé àwọn ọ̀nà tí ó ń ṣàtìlẹ́yìn àti ohun tí ọ̀kọ̀ọ̀kan wọn ń fi hàn nínú /etc/resolv.conf. Yan ọ̀nà tí ó bá ìwọ̀n ìlànà tí o nílò láti pa mọ́ mu. Bí split DNS bá ṣe pàtàkì, ètò stub pẹ̀lú àwọn agbègbè ìsopọ̀ kọ̀ọ̀kan ń pa á mọ́, nígbà tí ọ̀nà tí ó ń ṣe àdàkọ àwọn olùpèsè orísun sínú fáìlì ń dẹ́gbẹ̀rẹ́ rẹ̀ ní ìdákẹ́jẹ́.

Ṣèdánwò lẹ́yìn àtúnso pọ̀, kì í ṣe lẹ́yìn àtúnṣe

Fáìlì tí ó dàbí ẹni pé ó tọ́ lẹ́sẹ̀kẹsẹ̀ lẹ́yìn ìyípadà rẹ kò fi ohunkóhun hàn, nítorí ìṣẹ̀lẹ̀ tí ó tẹ̀lé kò tíì ṣẹlẹ̀. Dá ọ̀nà tí ó máa ń ba a jẹ́ ṣẹ̀: sọ ọ̀nà abẹ́lẹ̀ kalẹ̀ kí o sì gbé e sókè, tún ìgbàdúró DHCP ṣe tàbí yí ìsopọ̀ padà, kí o sì tún àwọn iye kan náà kà.

resolvectl query build.corp.example
resolvectl query example.com
resolvectl status | head -40

Lẹ́yìn náà ṣèdánwò ìyàtọ̀ tí ó ṣe pàtàkì: wọ́n ń yanjú orúkọ inú nípasẹ̀ olùpèsè inú nígbà tí orúkọ gbogbo ènìyàn ṣì ń ṣiṣẹ́. Ìtò tí ó ń fi gbogbo nǹkan ránṣẹ́ sí olùpèsè inú dàbí ẹni pé ó dára títí ẹnìkan yóò fi gbìyànjú láti dé íńtánẹ́ẹ̀tì nípasẹ̀ ọ̀nà abẹ́lẹ̀, ìtò tí ó ń fi gbogbo nǹkan ránṣẹ́ sí ti gbogbo ènìyàn sì ń jẹ́ kí àwọn orúkọ inú tú jáde.

Kọ ẹni tí ó ni í, backend àti ipò ìsopọ̀ àmì sínú àwọn àkọsílẹ̀ ìgbékalẹ̀. Ìpínrọ̀ kan yẹn yóò yí ìgbésókè àpù ọjọ́ iwájú padà láti ìṣẹ̀lẹ̀ sí ohun àgbéyẹ̀wò, yóò sì dá ẹni tí ó tẹ̀lé dúró láti tún ṣàwárí ìforígbárí kan náà pẹ̀lú àṣẹ chattr.

Àwọn àpilẹ̀kọ tó jọra