Ojú-ọ̀nà máa ń ṣí nígbà tí o bá béèrè orúkọ inú kan, ó sì máa ń wà ní títì nígbà tí ohun èlò tó tẹ̀le bá nílò rẹ̀ gẹ́gẹ́. Ìyẹn kì í ṣe àṣìṣe nínú ohun èlò; ó jẹ́ ìrísí òfin ẹ̀ka. Ìṣètò on-demand ti Apple ṣàpèjúwe àwọn ipò láti dá ìsopọ̀ sílẹ̀, ìrísí ẹ̀ka àwọn ipò yẹn sì béèrè ìbéèrè lọ́wọ́ olùyọjáde ẹ̀rọ náà kí ọ̀pọ̀ kan tó ṣí. Àwọn ìbéèrè méjì máa ń dàpọ̀ nígbà gbogbo: ìgbà tí ojú-ọ̀nà yẹ kí ó gòkè, àti ohun tí ojú-ọ̀nà ń gbé nígbà tí ó bá wà. Èkíni jẹ́ olùṣokúnsílẹ̀, èkejì jẹ́ ìlànà ọ̀nà àti olùyọjáde, àti pé ètò kan sábà máa ń ṣètò méjèèjì nínú payload kan náà, ìdí nìyẹn tí òfin ẹ̀ka tó tọ́ ṣì lè fi ọ́ sílẹ̀ ní nẹ́tíwọ́kì tó lòdì.

Olùṣokúnsílẹ̀ àti yíyàn ìrìnàjò wà ní ìpele ọ̀tọ̀ọ̀tọ̀

Òfin on-demand ń gbé nínú ìwé-ìmọ̀ on-demand ti payload VPN: àkójọ àwọn òfin tí ó wà lẹ́sẹẹsẹ, ọ̀kọ̀ọ̀kan ní ìgbésẹ̀ kan àti àpapọ̀ àwọn ipò ìbámu. Ẹ̀rọ náà máa ń dì wọ́n nígbà tí ìsopọ̀ bá yí padà tàbí nígbà tí nnkan kan bá gbìyànjú láti dé nẹ́tíwọ́kì, ìgbésẹ̀ sì máa ń pinnu bóyá ojú-ọ̀nà gòkè, di àgbéyẹ̀wò, já, tàbí kí ó ṣe àìkàsí. Gbogbo èyí ń ṣẹlẹ̀ nínú ìpele nẹ́tíwọ́kì ti pẹpẹ náà, kí ohun èlò rẹ tó ní socket.

Ohun tó tẹ̀le ni àkójọ kọ́kọ́rọ́ ọ̀tọ̀: àwọn ìṣètò IPv4 àti IPv6 ti ojú-ọ̀nà, àwọn ọ̀nà tí ó wà nínú àti tí a yọkúrò, àwọn àdírẹ́sì olùpèsè DNS, àti lórí iOS àti iPadOS ìdàpọ̀ fún ohun èlò kọ̀ọ̀kan tí ó pinnu irú ohun èlò tí ó lè lo ojú-ọ̀nà. Ètò kan lè so olùṣokúnsílẹ̀ gbòòrò pọ̀ mọ́ ọ̀nà tóóró, tàbí olùṣokúnsílẹ̀ tóóró pọ̀ mọ́ ọ̀nà àkọ́kọ́. Ka ìlàjì kan ṣoṣo, ìlàjì kejì yóò dàbí àìtọ́.

Mo ní ètò yàrá-ìdánwò kan tí ó máa ń sopọ̀ nígbàkigbà tí a bá béèrè nnkan kan lábẹ́ ẹ̀ka inú, ṣùgbọ́n ó ń darí /16 kan ṣoṣo sínú ojú-ọ̀nà. Ó ń ṣe gẹ́gẹ́ bí payload rẹ̀ ṣe sọ, ó sì tún jẹ́ irú ètò tí ń dá tikẹ́ẹ̀tì: àwọn ènìyàn máa ń rò pé ojú-ọ̀nà tí ó sopọ̀ túmọ̀ sí pé ìrìnàjò wọn wà nínú rẹ̀.

Ohun tí òfin ẹ̀ka ń béèrè lọ́wọ́ olùyọjáde

Ìrísí ẹ̀ka ti òfin náà, tí a sábà máa ń pè ní connect-if-needed, kì í ṣàyẹ̀wò payload ọ̀pọ̀ kì í sì wo URL. Nígbà tí a bá yọjáde orúkọ kan, ẹ̀rọ náà fi wé àwọn ẹ̀ka tó wà nínú òfin, tí ó bá bámu ó béèrè bóyá orúkọ yẹn lè yọjáde nípasẹ̀ àwọn olùpèsè DNS tí ojú-ọ̀nà ń pèsè. Tí olùyọjáde ojú-ọ̀nà bá dáhùn, a kà orúkọ náà sí ti inú, ìsopọ̀ sì bẹ̀rẹ̀. Tí olùyọjáde ìbílẹ̀ bá dáhùn lọ́nà mìíràn, a kà orúkọ náà sí ti òde, kò sì sí ojú-ọ̀nà tó yóò farahàn. Àkópọ̀ ìṣàfilọ́lẹ̀ Apple ṣàpèjúwe èyí gẹ́gẹ́ bí wíwá nẹ́tíwọ́kì tí ó tẹ̀le ìgbéléwọ̀n ìsopọ̀.

Àbájáde méjì ń tẹ̀le. Ètò náà gbọ́dọ̀ dárúkọ àwọn olùpèsè DNS nínú ojú-ọ̀nà; òfin ẹ̀ka tí kò ní olùyọjáde ojú-ọ̀nà kò ní nnkan láti fi wé, nítorí náà ìgbéléwọ̀n kò lè mú ìbámu tí o retí jáde. Àti pé ìwádìí gbọ́dọ̀ dé ọ̀dọ̀ olùyọjáde ẹ̀rọ náà. Ohun èlò tàbí aṣàwákiri tí ń ṣiṣẹ́ DNS tí ó ti di àkọ́kọ́ tirẹ̀, àfikún tí ń dáhùn ní ìbílẹ̀, tàbí ìsopọ̀ mọ́ àdírẹ́sì gbọ̀rọ̀ kì í mú yíyọjáde orúkọ tí òfin ń retí jáde rárá. Ọ̀kan nínú àwọn ọ̀sán tó gùn jùlọ tí mo ti lo parí nígbà tí mo ṣàwárí pé aláìsàn níwájú ojú-ọ̀nà ń lo DNS over HTTPS.

Pípamọ́ sì tún yọ olùṣokúnsílẹ̀ kúrò. Orúkọ tí ó ti wà nínú pípamọ́ ni a lè dáhùn fún láìsí àyẹ̀wò tí ìbá ti bẹ̀rẹ̀ ojú-ọ̀nà, nítorí náà òfin tí ó ṣiṣẹ́ àná yóò kùnà lẹ́yìn àtúnbẹ̀rẹ̀, tàbí lẹ́yìn tí ojú-ọ̀nà ti wà lókè fún ìgbà díẹ̀. Lórí macOS sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder ń tún ipò ṣe; lórí iOS yíyí ipò ọkọ̀ òfuurufú ṣíṣe àti pípa tàbí àtúnbẹ̀rẹ̀ ẹ̀rọ fún ọ ní ìbẹ̀rẹ̀ mímọ́ tó ṣeé fi wé.

Ìwọ̀n ìbámu: orúkọ, ohun èlò àti nẹ́tíwọ́kì

Ìbámu ẹ̀ka jẹ́ irú kan lára ọ̀pọ̀. Òfin tún lè bámu mọ́ irú ìsopọ̀ (Wi-Fi, alágbèéká, Ethernet) àti SSID pàtó kan, àwọn àkọsílẹ̀ fún ohun èlò tàbí ẹ̀ka Safari sì so ojú-ọ̀nà mọ́ ìṣàn iṣẹ́ kan. Ìsopọ̀ yẹn ṣàlàyé ìrírí àjèjì náà níbi tí ohun èlò kan ṣoṣo ń hùwà yàtọ̀ sí gbogbo nnkan mìíràn: àwọn ohun èlò yòókù wà ní òde ìwọ̀n ojú-ọ̀nà, nítorí náà wọ́n ń tẹ̀síwájú lílo ọ̀nà ìbílẹ̀ pàápàá nígbà tí àmì ojú-ọ̀nà sọ pé ó sopọ̀.

Ìtòlẹ́sẹẹsẹ ṣe pàtàkì ju bí àwọn ènìyàn ṣe retí. A ń dì àwọn òfin lẹ́sẹẹsẹ, ẹni àkọ́kọ́ tí ó bámu sì ń fún ìgbésẹ̀, nítorí náà òfin gbòòrò kan tí ó so mọ́ gbogbo Wi-Fi tí a gbé lókè òfin ẹ̀ka tóóró yóò ṣẹ́gun ní ìdákẹ́jẹ́, yóò sì mú kí òfin ẹ̀ka náà di aláìṣeé dánwò. Kí o tó tún àkójọ ẹ̀ka kọ, jẹ́rìí pé kò sí òfin ìṣáájú tí ó ti bámu.

Ìdí nìyẹn tí always-on kì í ṣe òfin on-demand tí ó le jù lásán. Fífi always-on ṣiṣẹ́ jẹ́ ipò ìṣàfilọ́lẹ̀ ọ̀tọ̀ pẹ̀lú àwọn ohun tí ó nílò fún àbójútó àti ìṣàkóso tirẹ̀; ó ń pa ojú-ọ̀nà mọ́ ṣíṣí dípò kí ó dáhùn sí orúkọ. Tí ohun tí o nílò bá jẹ́ ojú-ọ̀nà tí kì í ṣubú rárá, òfin ẹ̀ka ni irinṣẹ́ tí kò tọ́.

Àwọn ipò ìkùnà tí ń fara wé òfin tí ó ti bàjẹ́

Ọ̀pọ̀ àwọn ìròyìn pé òfin ẹ̀ka kò ṣiṣẹ́ ń bọ́ sí ọ̀kan nínú ibi márààrún, àti pé ti ìkẹyìn nínú wọn nìkan ni ọ̀rọ̀ òfin náà.

What you seeLayerFirst check
Tunnel comes up, internal site still failsroute or resolver after connectnetstat -rn, scutil --dns
Tunnel never comes up for that nametrigger pathfresh lookup, cache flush, private DNS
Tunnel comes up for every appscope, or an earlier rulerule order, per-app mapping
Tunnel drops and will not return on the same Wi-Fiinterface or SSID match, admissioncaptive portal, SSID string, auth prompt
Tunnel returns after you disconnect itprofile ownershipprofiles show

Àwọn ẹnubodè captive yẹ fún ìlà tiwọn, nítorí Wi-Fi ilé-ìtura àti pápá ọkọ̀ òfuurufú ń dí ìwádìí náà gan-an tí òfin gbára lé. Títí ẹnubodè yóò fi gba ẹ̀rọ náà láàyè, olùpèsè DNS ojú-ọ̀nà kò lè dé, àyẹ̀wò náà yóò kùnà, ìkùnà sì máa ń dàbí ẹ̀ka tí a kọ lọ́nà tí kò tọ́. Ìjẹ́rìí jẹ́ ipò ìdákẹ́jẹ́ mìíràn: òfin lè ṣiṣẹ́, ojú-ọ̀nà lè bẹ̀rẹ̀ sí sopọ̀, ìsopọ̀ sì lè kú lórí ìwé-ẹ̀rí tí ó ti pẹ́ tàbí lórí ìbéèrè tí ó farahàn lórí àwòrán mìíràn.

IPv6 ń dá irú kan tí ó rọrùn láti ṣe àyẹ̀wò tí kò tọ́. Orúkọ tí ó ní àwọn ìdílé àdírẹ́sì méjèèjì ni a lè kọ́kọ́ dáhùn fún láti àkọsílẹ̀ AAAA, nígbà tí àkójọ ọ̀nà ojú-ọ̀nà kò gbé IPv4 nìkan. Aṣàwákiri kan yóò ṣàṣeyọrí, òmíràn yóò kùnà, àkójọ ẹ̀ka sì jẹ́ aláìlẹ́bi pátápátá.

Dánwò pẹ̀lú ìbéèrè gidi, ní ìtòlẹ́sẹẹsẹ yìí

Ka ìlànà náà kí o tó ṣe àròsọ. Lórí macOS sudo profiles show -type configuration ń tẹ̀ àwọn ètò tí a ti fi sínú pẹ̀lú payload VPN, scutil --nc list ń fi ipò iṣẹ́ hàn, scutil --nc show <service> sì ń tẹ̀ ìwé-ìmọ̀ on-demand tí ẹ̀rọ ń lò. Lórí iPhone tàbí iPad tí a ń ṣàkóso, payload kan náà wá láti kọ́nsólì ìṣàkóso tàbí ìròyìn MDM. Àwọn àkọsílẹ̀ nẹ́tíwọ́kì wà pẹ̀lú log stream --predicate 'subsystem == "com.apple.networkextension"' lórí macOS, àti nípasẹ̀ kọ́nsólì ẹ̀rọ nígbà tí tẹlifóònù bá so pọ̀.

Lẹ́yìn náà dánwò pẹ̀lú orúkọ olùgbàlejò tí a kò béèrè tẹ́lẹ̀ nínú ìpàdé yìí. Yan orúkọ kan nínú agbègbè DNS ojú-ọ̀nà tí o mọ̀ pé a ń yọjáde ní inú, béèrè fún un lẹ́ẹ̀kan, kí o sì wo bóyá ojú-ọ̀nà yóò farahàn. Ṣe ìwádìí kan náà lẹ́ẹ̀mejì: ìgbìyànjú kejì ń dán ọ̀nà pípamọ́ wò, ìyàtọ̀ láàrin méjèèjì sì sọ fún ọ bóyá olùṣokúnsílẹ̀ ni yíyọjáde tàbí dídarí.

Lẹ́yìn tí ojú-ọ̀nà bá gòkè, ṣàyẹ̀wò àwọn ìpele méjì lọ́tọ̀ọ̀tọ̀. netstat -rn -f inet àti netstat -rn -f inet6 ń fi ibi tí ọ̀kọ̀ọ̀kan àkọ́kọ́ ń tọ́ka sí hàn, scutil --dns ń fi ìtòlẹ́sẹẹsẹ olùyọjáde àti irú ìsopọ̀ tí ó ní ọ̀kọ̀ọ̀kan olùyọjáde hàn, nettop -m route sì ń fi irú ìsopọ̀ tí ó gbé àwọn byte hàn. Tí ojú-ọ̀nà bá wà lókè tí olùyọjáde sì tọ́ ṣùgbọ́n ohun àmúṣe náà ṣì ń kùnà, dá ṣíṣe àtúnṣe òfin dúró; ṣàyẹ̀wò àṣẹ ní ẹ̀gbẹ́ olùpèsè àti ọ̀nà ìpadà.

Nígbà tí òfin jẹ́ ti ẹlòmíràn

Tí ojú-ọ̀nà bá tún farahàn lẹ́yìn tí o já a, òfin náà sábà máa ń jẹ́ ti ètò kì í ṣe ti ohun èlò: ìṣètò tí a ti fi MDM rán, ètò àdáni tí ó kù, tàbí ètò tí aláìsàn mìíràn fi sínú. sudo profiles show -type configuration àti wíwá àwọn kọ́kọ́rọ́ on-demand yóò dín a kù, ọ̀nà yíyọ kúrò ni ètò náà, kì í ṣe yíyí lórí ọ̀pá àkójọ. Pípa àkọsílẹ̀ iṣẹ́ tàbí ohun èlò máa ń fi òfin sílẹ̀, ìgbékalẹ̀ tó tẹ̀le yóò sì tún jogún rẹ̀.

Ìdánwò kan ń pinnu nínú-ẹni: já a, dúró, tún béèrè orúkọ inú náà. Tí ojú-ọ̀nà bá padà, olùṣokúnsílẹ̀ ń ṣiṣẹ́ gẹ́gẹ́ bí a ṣe ṣètò rẹ̀, ìbéèrè tí ó ṣí sílẹ̀ sì ni ẹni tí ó ń ṣàkóso rẹ̀ àti bóyá ìwọ̀n yẹn ni ohun tí o fẹ́.

Kí o tó jábọ̀ èyí gẹ́gẹ́ bí àṣìṣe, lọ gba àwọn àyẹ̀wò márààrún kan náà: àwọn àdírẹ́sì olùyọjáde ojú-ọ̀nà wà nínú payload, orúkọ tí a kò pàmọ́, kò sí òfin ìṣáájú tí ó ti bámu, ọ̀nà AAAA tí àkójọ ọ̀nà bo, àti ohun èlò nínú ìwọ̀n ojú-ọ̀nà. Nígbà tí márààrún bá dúró, òfin ń ṣe iṣẹ́ rẹ̀, àbùkù sì wà níwájú síi lórí ọ̀nà.

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