scutil --dns ń tẹ ìtòlẹ́sẹẹsẹ resolver tí macOS ń gbà gan-an jáde, kì í ṣe server DNS kan ṣoṣo tí o tẹ sínú pánẹ́ẹ̀lì ètò. Àbájáde gùn ju bí ọ̀pọ̀ ènìyàn ṣe ń retí, nítorí ẹ̀rọ ń pa àwọn bulọọki resolver ọ̀tọ̀ọ̀tọ̀ mọ́ fún ọ̀nà àkọ́kọ́, fún àwọn interface tí ó ní ààlà àti fún ìfiránṣẹ́ kan pàtó fún ìkànpé. Bulọọki tí ó wà ní orí àbájáde kì í ṣe èyí tí ó ń dáhùn ìbéèrè ní dandan. Tí orúkọ àdáni kan bá yanjú ní ọ́fíìsì tí ó sì kùnà ní àkókò tí VPN gòkè, ìyàtọ̀ wà nínú àwọn òfin ìbámu àti àwọn ọ̀nà, kì í ṣe nínú àdírẹ́sì server. Kọ́kọ́ kà ìtòlẹ́sẹẹsẹ, lẹ́yìn náà fi ìwádí gidi hàn pé ìdáhùn náà tọ́.

Ka ìtòlẹ́sẹẹsẹ bulọọki kí o tó ka àwọn àdírẹ́sì

Gbogbo ẹ̀kọ́ ń bẹ̀rẹ̀ pẹ̀lú resolver #N ó sì ń ṣe àkójọ nameserver[0], nígbà mìíràn if_index, ìlà flags, reach àti, nígbà tí bulọọki kì í ṣe àkọ́kọ́ rírọ̀rùn, domain àti àkójọ search domain. Resolver nọ́mbà 1 tí kò ní ìkànpé ni àkọ́kọ́ tí ń bójú àwọn orúkọ gbogbogbò. Ohunkóhun tí ó bá gbé Scoped nínú àwọn àmì rẹ̀ so mọ́ interface tí if_index dárúkọ, àti ohunkóhun tí a fi Supplemental sàmì sí ń kan àwọn ìkànpé tí a kọ sílẹ̀ nísàlẹ̀ rẹ̀ nìkan.

Yíyàn ni ìbámu àfikún. Fún orúkọ bí intranet.corp.example, macOS yàn fún resolver tí ẹ̀kọ́ domain rẹ̀ jẹ́ àfikún ìbámu tí ó gùn jùlọ, nítorí náà bulọọki tí ó ní domain : corp.example ṣẹ́gun àkọ́kọ́ kódà nígbà tí ó wà nísàlẹ̀ jìnnà nínú àbájáde. order ń yanjú ìdọ́gba láàárín àwọn ìkànpé tí ó dọ́gba gígùn. Ìwò àkọ́kọ́ kì í sábà nílò ju èyí lọ: gbogbo àbájáde nígbà tí o bá fẹ́ ka bulọọki kan láti ìbẹ̀rẹ̀ dé òpin, àwọn ìlà ìbẹ̀rẹ̀ láti kọ́ ìtòlẹ́sẹẹsẹ bulọọki, àti ìyí tí a yọ́ jáde tí ń tẹ àwọn orí bulọọki lẹ́gbẹ̀ẹ́ àwọn ìlà pápá. Àwọn bulọọki tí ó ní ààlà ń farahàn nísàlẹ̀ orí tiwọn, a sì ń kà wọ́n bí ìtẹ̀síwájú àkójọ tí ó wà lókè wọn, nítorí náà pa orí mọ́ ní ojú rẹ nígbàkigbà tí o bá fa àbájáde yọ.

scutil --dns
scutil --dns | sed -n '1,45p'
scutil --dns | grep -nE '^resolver #|^DNS configuration'
scutil --dns | grep -nE 'resolver #[0-9]+|if_index|domain|flags|nameserver'

So if_index pẹ̀lú interface ọ̀nà abẹ́lẹ̀

Àtọ́ka ní láárí nìkan nígbà tí o bá lè dárúkọ interface tí ó wà lẹ́yìn rẹ̀. scutil --nwi ń ṣe àkójọ ìsọfúnni nẹ́tíwọ́kì tí ẹ̀rọ ń pa mọ́, pẹ̀lú interface àkọ́kọ́ àti ìrọ̀rùn àti dé, nígbà tí ifconfig -l ń fún ọ ní àwọn orúkọ, níbi tí utun0 dé utun9 jẹ́ àwọn olùdíje ọ̀nà abẹ́lẹ̀ tí ẹ̀rọ àbáni ṣiṣẹ́ sábà ń dá. Apple ń lò scutil --dns gẹ́gẹ́ bí àpẹẹrẹ àyẹ̀wò tirẹ̀ nínú ìtọ́nisọ́nà ìgbéjáde, ó sì ń kọ sílẹ̀ bí Network Extension ṣe lè darí àwọn ìkànpé tí a yàn sí àwọn resolver tí a yàn, èyí tí í ṣe ọ̀nà tí àwọn bulọọki tí ó ní ààlà yẹn ń fi hàn.

Àyẹ̀wò tí ó pinnu ìbéèrè náà ni bóyá resolver wà lórí ọ̀nà tí ọ̀nà abẹ́lẹ̀ gbé kalẹ̀:

scutil --nwi
ifconfig utun4
route -n get 10.20.0.53
netstat -rn | grep -m5 utun

Tí route -n get bá dá ẹnu-ọ̀nà àti interface padà tí kò bámu pẹ̀lú ẹ̀kọ́ resolver, àdírẹ́sì lè tọ́ pátápátá sibẹ̀ a kò lè dé ibẹ̀. Ọ̀nà abẹ́lẹ̀ tí a pín tí ń gbé àwọn ẹ̀ka-ẹ̀rọ nẹ́tíwọ́kì ilé-iṣẹ́ nìkan ń ju àwọn ìbéèrè tí a darí sí server DNS tí ó wà lẹ́yìn wọn nù, àti ìkùnà ń farahàn bí àkókò tí ó tán, ìdí nìyẹn tí àbájáde ìtòlẹ́sẹẹsẹ fi ń dàbí mímọ́.

Béèrè lọ́wọ́ resolver ẹ̀rọ, lẹ́yìn náà béèrè lọ́wọ́ server

Àwọn irinṣẹ́ mẹ́ta ń dáhùn àwọn ìbéèrè mẹ́ta ọ̀tọ̀ọ̀tọ̀, àti dída wọ́n pọ̀ ń dá ọ̀pọ̀ jùlọ àwọn ìpinnu tí kò tọ́ jáde ní apá yìí. dscacheutil -q host -a name ń gba inú resolver ẹ̀rọ kan náà tí àwọn ohun èlò àṣà ń lò, nítorí náà àwọn bulọọki tí ó ní ààlà àti àfikún ń ṣiṣẹ́. dig tí kò ní àríyànjiyàn server ń ka /etc/resolv.conf, èyí tí kì í ṣe orísun òtítọ́ fún yíyanjú tí ó ní ààlà lórí macOS, ó sì ń forí gbogbo àwọn òfin fún ìkànpé kọ̀ọ̀kan. dig @address ń dé server kan gbáà, kò sì sọ nǹkan kan nípa yíyàn.

dscacheutil -q host -a name intranet.corp.example
dig intranet.corp.example
dig @10.20.0.53 intranet.corp.example
nslookup intranet.corp.example

Nígbà tí àṣẹ àkọ́kọ́ bá dáhùn tí èkejì sì dá NXDOMAIN padà, o ti rí pínpín tí o ń wá, kò sì sí nǹkan tí ó ti bàjẹ́. Nígbà tí èyí àkọ́kọ́ bá ń tán ní àkókò nígbà tí dig @10.20.0.53 ń dáhùn, resolver ń ṣiṣẹ́ ṣùgbọ́n a kò lè dé ibẹ̀ lórí ọ̀nà tí ọ̀nà abẹ́lẹ̀ yàn, nítorí náà ìgbésẹ̀ tí ó tẹ̀le ni route -n get kì í ṣe yíyí ètò DNS padà. Pa àwọn orúkọ àdáni mọ́ kúrò nínú ohunkóhun tí o bá lẹ̀ mọ́ tikẹ́ẹ̀tì tàbí àkọsílẹ̀ tí a pín.

Ohun tí àbájáde kò lè fi hàn ọ́

Ọ̀pọ̀ ìpele ń jókòó lórí tàbí lẹ́gbẹ̀ẹ́ àkójọ resolver, ọ̀kọ̀ọ̀kan sì lè rán ìbéèrè lọ sí ibi tí àbájáde kò tiẹ̀ dárúkọ rí. Aṣàwákiri tí ó ní DNS ààbò tí ó ṣiṣẹ́ lè yanjú nípasẹ̀ ọ̀nà tí a fi àṣírí ṣe tirẹ̀, nítorí náà ojú-ìwé tí ó gbé nígbà tí dscacheutil ń tán ní àkókò kì í ṣe àtakò. Aṣojú DNS tí sọ́fítíwé ààbò gbé kalẹ̀ ń ṣiṣẹ́ gẹ́gẹ́ bí olùpèsè Network Extension, ó sì ń fi àwọn ìbéèrè ránṣẹ́ fúnra rẹ̀, scutil --dns sì ń fi ohun tí a ṣètò hàn, kì í ṣe àdírẹ́sì òkè tí aṣojú náà lò ní ìparí. Àwọn ìkànpé ìwádí ń fi ìdìpọ̀ kẹ́ta kún: orúkọ tí kò tóótọ́ gbà gbogbo àfikún tí a kọ sílẹ̀ ní ìtòlẹ́sẹẹsẹ, nítorí náà bulọọki tí ó dáhùn lè jẹ́ èyí tí o kò tíẹ̀ fura rí.

Àwọn ìdáhùn àtijọ́ ni ohun tí ó rọ̀ jùlọ láti yọ kúrò, a sì ń gbà á kọ̀ jùlọ:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
scutil --dns | head -20

Tí àbájáde bá yípadà lẹ́yìn ìmọ́, ipò náà wà nínú káṣì, àbájáde àtẹ́lẹ̀ sì ń ṣàpèjúwe ọ̀nà abẹ́lẹ̀ tí kò sí mọ́. Tí kò bá yípadà, ìtòlẹ́sẹẹsẹ náà ni ó jẹ́, ìbéèrè náà sì ń lọ sí àwọn ọ̀nà àti sí ìlànà ohun èlò.

Ìwé ìtọ́sọ́nà kúkúrú fún ṣáájú àti lẹ́yìn

Gba ìlà ìpìlẹ̀ níbi tí ìlànà bá gbà láyè nìkan, kí o sì pa àwọn fáìlì mọ́ kúrò nínú fódà tí a mú dọ́gba. Ìtòlẹ́sẹẹsẹ tí ó wà nísàlẹ̀ ni èyí tí mo ń ṣe lórí ẹ̀rọ àbáni: gba ìlà ìpìlẹ̀, so pọ̀, tún gbà, lẹ́yìn náà fi wé kí o sì wádìí.

scutil --dns > ~/dns-before.txt
# connect the VPN, then:
scutil --dns > ~/dns-after.txt
diff -u ~/dns-before.txt ~/dns-after.txt
dscacheutil -q host -a name intranet.corp.example

Ka ìyàtọ̀ nípasẹ̀ bulọọki kì í ṣe nípasẹ̀ ìlà. Resolver tuntun tí ó ní ààlà tí ó gbé àtọ́ka interface ọ̀nà abẹ́lẹ̀ àti ẹ̀kọ́ domain fún àfikún àdáni ni ìrísí tí a retí. Resolver àkọ́kọ́ tuntun tí ó ń tọ́ka sí àdírẹ́sì gbogbogbò jẹ́ àwárí tí ó tọ́ láti gbé kalẹ̀ níwájú ẹni tí ó ní prófáìlì ẹ̀rọ àbáni. Lẹ́yìn náà tún ìwádí ṣe nínú ohun èlò tí ó kùnà gan-an, kì í ṣe nínú shell nìkan, kí o sì kọ interface láti route -n get lẹ́gbẹ̀ẹ́ àbájáde.

Láti fagilé àyípadà kan, já ohun ìsopọ̀, kí o sì tún gbígba ìlà ìpìlẹ̀ ṣe. Tí bulọọki tí ó ní ààlà bá lọ, ẹ̀rọ àbáni ti ṣọ́ra fúnra rẹ̀. Tí bulọọki náà bá ṣì wà nínú àkójọ lòdì sí interface tí kò sí mọ́, ipò náà ti pẹ́, ìmọ́ pẹ̀lú àti ìsopọ̀ padà ni àtúnṣe tí ó rọ̀ jùlọ kí ẹnikẹ́ni tó fi ọwọ́ kàn án.

Àyẹ̀wò mẹ́rin ní ìtòlẹ́sẹẹsẹ yìí: ṣé bulọọki resolver kan bámu pẹ̀lú àfikún tí ó gùn jùlọ ti orúkọ; ṣé bulọọki náà so mọ́ interface tí ọ̀nà abẹ́lẹ̀ gbé kalẹ̀; ṣé ọ̀nà sí server orúkọ rẹ̀ ń lò ọ̀nà abẹ́lẹ̀; àti ṣé resolver ẹ̀rọ, kì í ṣe dig, ni ó dá ìdáhùn padà. Àyẹ̀wò àkọ́kọ́ tí ó kùnà sọ fún ọ bóyá kí o yí ìlànà DNS, àwọn ọ̀nà abẹ́lẹ̀ tàbí ohun èlò padà. Tí gbogbo mẹ́rin bá kọjá tí orúkọ sì ṣì kùnà, ìṣòro náà wà lórí DNS, àti ohun tí ó tẹ̀le láti yẹ̀wò ni ohunkóhun tí ó ń dáhùn sí pọ́ọ̀tì 53 níwájú rẹ̀.

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