Àwọn àṣìṣe méjì ń hàn bákan náà láti àmì inú páànù ẹ̀rọ: ìrìnàjò tí ó ń wọ inú ọ̀nà àbẹ́ẹ̀ àti ìrìnàjò tí ó ń yẹ̀ é lọ ní ìdákẹ́jẹ́. Ẹ̀rọ náà fi Connected hàn nínú àwọn ipò méjèèjì, nítorí pé Connected wulẹ̀ túmọ̀ sí pé ojú ọ̀nà àbẹ́ẹ̀ wà àti pé ẹ̀rọ náà ti fi àwọn ọ̀nà tí ó fẹ́ sílẹ̀. Bóyá pákẹ́ẹ̀tì kan ti ètò kan lò àwọn ọ̀nà wọ̀nyẹn jẹ́ ìbéèrè ọ̀tọ̀, tí a ń dáhùn ní ibòmíì nínú àkójọpọ̀. Ìwọ̀n mẹ́rin ń yanjú ọ̀pọ̀ jùlọ — wíwá ọ̀nà, ìgàn àkọ́kọ́, gbígbà lórí àdáptà ẹ̀rọ àti ìkíyèsí láti ìta — ìwòye ìpàdé lórí sáfà sì bo ìyókù.

Bẹ̀rẹ̀ pẹ̀lú ọ̀nà tí pákẹ́ẹ̀tì yóò gbà

Tábìlì ọ̀nà ni ìpinnu fúnra rẹ̀, nítorí náà béèrè lọ́wọ́ rẹ̀ nípa ibi kan dípò kí o ka gbogbo rẹ̀ kí o sì ṣe àfojúsùn. Lórí Linux, ip route get dárúkọ ojú ọ̀nà àti àdírẹ́sì orísun tí kọ́npútà yàn:

ip route get 203.0.113.10
ip route get 10.20.5.7

Lórí Windows, Find-NetRoute -RemoteIPAddress 203.0.113.10 wúlò ju route print -4 lọ fún ìdí kan náà: ó ń jábọ̀ ọ̀nà tí ó borí, kì í ṣe gbogbo ọ̀nà tí ó wà. Síbẹ̀ ka tábìlì náà lẹ́ẹ̀kan fún ìlà 0.0.0.0 rẹ̀. Ẹgbẹ́ /1 níbẹ̀ túmọ̀ sí pé ẹ̀rọ ọ̀nà àbẹ́ẹ̀ kíkún ti tún ọ̀nà àkọ́kọ́ kọ: àṣàyàn redirect-gateway def1 ti OpenVPN ń fi 0.0.0.0/1 àti 128.0.0.0/1 sínú ọ̀nà àbẹ́ẹ̀, èyí tí ó borí 0.0.0.0/0 tí ó wà ní ìbámu pípẹ́ jùlọ láì pa ọ̀nà àkọ́kọ́ ẹ̀rọ rẹ́. Ìdí niyẹn tí ọ̀nà àkọ́kọ́ méjì lè wà pọ̀ nígbà tí gbogbo nǹkan ṣì ń wọ inú ọ̀nà àbẹ́ẹ̀.

Àlàyé méjì ń sọ tábìlì náà di irọ́. Ní àkọ́kọ́, wo ìbámu tí ó ṣẹlẹ̀ kì í ṣe iye ọ̀nà àkọ́kọ́, nítorí pé ìwọ̀n ojú ọ̀nà tàbí ẹgbẹ́ /1 ni ó ń pinnu olùborí. Ní èkejì, ìsopọ̀ tí ó ti wà tẹ́lẹ̀ ń pa ọ̀nà tí a fi dá a mọ́; lẹ́yìn tí ọ̀nà àbẹ́ẹ̀ gun, ìpàdé tí ó ṣí lè máa lo ọ̀nà àtijọ́ títí a ó fi tún un ṣe, ìdí niyẹn tí àtúnso pẹ̀lú ń dàbí pé ó tún ìṣòro ọ̀nà ṣe. Ẹ̀rọ tí ń ṣiṣẹ́ — ps ax | grep openvpn — ń jẹ́rìí pé ìlànà ti bẹ̀rẹ̀ nìkan.

Tẹ̀lé orúkọ inú kan àti orúkọ gbogbogbò kan

Wíwá ọ̀nà ń fi èrò hàn; ọ̀nà ń fi ìfiwéra hàn. Nígbà tí o wà lórí ìsopọ̀, tẹ̀lé orúkọ tí ó gbọ́dọ̀ jẹ́ ti inú àti orúkọ tí kò gbọ́dọ̀ jẹ́ bẹ́ẹ̀, kí o sì fi ìgàn àkọ́kọ́ wé:

traceroute intranet.corp.example
traceroute 1.1.1.1

Ìgàn àkọ́kọ́ kan náà fún méjèèjì túmọ̀ sí pé orúkọ inú kò wọ inú ọ̀nà àbẹ́ẹ̀ rí àti pé àṣìṣe wà lókè rẹ̀, ní sábà orúkọ tí ó ń yanjú sí àdírẹ́sì gbogbogbò tàbí ọ̀nà tí a kò fi sílẹ̀ rí. Bí ìrìnàjò inú ń jáde nípasẹ̀ 10.8.0.1 nígbà tí ti gbogbogbò ń jáde nípasẹ̀ 192.168.1.1, ọ̀nà àbẹ́ẹ̀ pínpín ń ṣe gan-an ohun tí a ṣètò rẹ̀ fún. Ìtọ́jú tí ó dé ẹnubodè VPN tí ó sì ń dá àkókò àparí padà nìkan sábà jẹ́ ìṣòro ọ̀nà ìpadà tàbí odi iná sáfà, kì í ṣe ọ̀nà ìtọ́jú tí ó sọnù.

ICMP tí a yọ̀ǹda ń sọ àyẹ̀wò yìí di irọ́: ìràwọ̀ lórí ìtọ́jú méjèèjì dàbí ọ̀nà àbẹ́ẹ̀ tí ó ti kú, ó sì sábà jẹ́ odi iná. Dán kòtò TCP wo níbi tí o bá lè — traceroute -T -p 443 lórí Linux — kí o sì rántí pé ìtọ́jú kò sọ irú ẹ̀rọ ìyánjú tí ó dáhùn: orúkọ lè yanjú ní àdúgbò kí ó sì ṣì wà ní àǹfààní nípasẹ̀ ọ̀nà àbẹ́ẹ̀.

Gbà lórí àdáptà ẹ̀rọ, kì í ṣe lórí ọ̀nà àbẹ́ẹ̀

Ìsopọ̀ ẹ̀rọ ni ibi kan ṣoṣo tí ó ń fi ohun tí nẹ́tíwọ́kì ń rí gan-an hàn. Nígbà tí ọ̀nà àbẹ́ẹ̀ bá wà lókè, ìpàdé sí ọ́fíìsì gbọ́dọ̀ hàn gẹ́gẹ́ bí ẹrù tí a fi àṣírí kó, tí a ń fi ránṣẹ́ sí sáfà VPN, kì í ṣe gẹ́gẹ́ bí ìsopọ̀ sí 10.20.5.7:

sudo tcpdump -ni eth0 udp port 53
sudo tcpdump -ni eth0 host 10.20.0.5

Àlẹ̀mọ́ àkọ́kọ́ ń mú ìyánjú orúkọ tí ó ń jáde ní àdúgbò, èyí ni ìsọ̀nù tí ó wọ́pọ̀ jùlọ tí ó sì dákẹ́ jùlọ — ojú-ìwé ṣì ń gbé wọlé, ẹ̀rọ ìyánjú kàn rí ìbéèrè náà. Èkejì ń mú ìrìnàjò déédéé tí ó ń lọ sí àdírẹ́sì inú tí ó yẹ kí ó wà nínú ọ̀nà àbẹ́ẹ̀ nìkan. Lórí Windows, pktmon ń ṣe iṣẹ́ kan náà láìsí awakọ̀: pktmon filter add -p 53, lẹ́yìn náà pktmon start --capture --pkt-size 128, lẹ́yìn náà pktmon stop àti pktmon format pktmon.etl -o capture.txt. Àwọn àsíá wọ̀nyí yàtọ̀ díẹ̀ láàárín àwọn ẹ̀dà Windows, nítorí náà yẹ̀wò pktmon filter add /? kí o tó gbẹ́kẹ̀ lé ìlànà náà.

Gbà ojú ọ̀nà ẹ̀rọ láti wá ìsọ̀nù; gbígbà lórí ọ̀nà àbẹ́ẹ̀ ní àwọn pákẹ́ẹ̀tì tí o ti gbà pé wọ́n wà níbẹ̀, lórí sáfà ó sì ní àwọn pákẹ́ẹ̀tì ìta tí a kò lè kà tí orísun wọn jẹ́ ẹnubodè. Àwọn olùka báìtì lórí ojú ọ̀nà èyíkéyìí ń ṣàpèjúwe pákẹ́ẹ̀tì, kì í ṣe ètò; láti fi ìrìnàjò sí ìlànà kan ní àìsí olùṣọ́ tí ó so sọ́kẹ́ẹ̀tì mọ́ àwọn ìlànà.

Béèrè lọ́wọ́ iṣẹ́ ìta, lẹ́yìn náà tún béèrè fún ètò kọ̀ọ̀kan

Àyẹ̀wò kan ṣoṣo tí ó ń jẹ́rìí jáde ni ìdáhùn láti ìta: iṣẹ́ kan tí ó ń dá àdírẹ́sì orísun tí ó rí padà. Ṣe é láti inú ṣẹ́ẹ̀lì, níbi tí o ti lè yan ojú ọ̀nà, kí o sì ṣe é lẹ́ẹ̀mejì:

sudo curl --interface tun0 https://example.net/ip
sudo curl --interface eth0 https://example.net/ip

Àwọn ìdáhùn tí ó yàtọ̀ ń fún ọ ní ẹ̀rí fún ọ̀nà méjèèjì àti ọ̀nà láti dán ètò pàtó kan wò: so ó mọ́ ojú ọ̀nà, tàbí ṣe é nínú ààyè orúkọ nẹ́tíwọ́kì tí ó ní ọ̀nà kan, kí o sì wo àdírẹ́sì tí òpin jínjìn ń gbà. Àwọn ìdáhùn tí ó jọra ni àṣìṣe tí ó fani mọ́ra: bóyá ìsopọ̀ náà kò ní ipa, tàbí ohun kan láàárín olùgbàlejò àti òpin jínjìn ń tún àdírẹ́sì orísun kọ kí ó tó dé. Lórí Windows, curl --interface ń béèrè àdírẹ́sì àdáptà kì í ṣe orúkọ rẹ̀.

Aṣàwákiri tí ó ń jábọ̀ àdírẹ́sì VPN ń jẹ́rìí aṣàwákiri náà. Ẹ̀rọ ìmẹ́èlì, olùṣàkóso pákẹ́ẹ̀tì, aṣojú àdáǹdè tàbí profáìlì aṣàwákiri kejì lè gbà ọ̀nà ọ̀tọ̀ọ̀tọ̀ ní ọ̀kọ̀ọ̀kan, pàápàá nígbà tí ètò àṣojú tàbí ọ̀nà àbẹ́ẹ̀ pínpín bò ọ̀kan nínú wọn. Ìyípadà àdírẹ́sì fúnra rẹ̀ kì í ṣe ẹ̀rí ìsọ̀nù: olùdọ́gba ẹrù lè dáhùn yàtọ̀ ní ìbámu pẹ̀lú ibi ìjáde tí ó rí, nítorí náà fi àdírẹ́sì orísun tí a kọ sínú wé, kì í ṣe ojú-ìwé.

Lo ìwòye sáfà láti jẹ́rìí alábàákẹ́gbẹ́

Sáfà ń dáhùn ìbéèrè mìíràn: bóyá alábàákẹ́gbẹ́ wà lórí ìsopọ̀, iye tí ó gbé àti bóyá ìpàdé tún bẹ̀rẹ̀. Alábàákẹ́gbẹ́ tí ó ń ṣiṣẹ́ lórí sáfà nígbà tí àwọn olùka ẹ̀rọ kò fi bẹ́ẹ̀ yipada túmọ̀ sí pé ìrìnàjò ètò kò wọ inú ọ̀nà àbẹ́ẹ̀, ohunkóhun tí tábìlì ẹ̀rọ sọ. Alábàákẹ́gbẹ́ tí ó ń gbé dátà púpọ̀ fún olùmúlò tí ó sọ pé kò sí ohun tí ń ṣiṣẹ́ jẹ́ ìwádìí mìíràn.

Ìdẹ̀kùn méjì wà níbí. Ọ̀nà àbẹ́ẹ̀ tí a fi bò ń jẹ́ kí gbogbo ìṣàn dàbí ẹni pé ó ti ẹnubodè wá, nítorí náà àwọn àkọsílẹ̀ àti ìṣirò fún ẹ̀rọ kọ̀ọ̀kan ń ṣubú sórí àdírẹ́sì kan. A sì ń wo ẹ̀rọ náà gẹ́gẹ́ bí olùgbàlejò àdúgbò, nítorí náà ìbéèrè bóyá ẹnìkan ń ṣe àdàkọ fáìlì nípasẹ̀ VPN ni ìrìnàjò pínpín fáìlì lórí sáfà tàbí àyẹ̀wò olùgbàlejò lórí sáfà ń dáhùn — wíwo ọ̀nà àbẹ́ẹ̀ ń fúnni ní àwọn òpin àti ìwọ̀n, kì í ṣe orúkọ fáìlì.

Ya ìpinnu àpẹẹrẹ kúrò nínú ìsọ̀nù

Kì í ṣe gbogbo ohun tí ó wà ní ìta ọ̀nà àbẹ́ẹ̀ ni ìsọ̀nù. Ìrìnàjò ìsopọ̀ àdúgbò àti ìkéde ń dúró ní àdúgbò ní ìbámu pẹ̀lú àpẹẹrẹ, ẹ̀rọ ìtẹ̀wé tí a rí nípasẹ̀ multicast ń tẹ̀síwájú ìkéde lórí LAN, DHCP sì gbọ́dọ̀ jáde ní àdúgbò. Ètò tí a so mọ́ ojú ọ̀nà pàtó ń yẹ̀ ìtọ́jú ọ̀nà lọ ní àìmọ̀ọ́mọ̀, ìlànà odi iná, ààyè orúkọ tàbí ọ̀nà ìlànà nìkan ló lè yí ìyẹn padà.

IPv6 yẹ kí ó ní ìlà tirẹ̀ nínú àkọsílẹ̀ àyẹ̀wò. Ọ̀nà àbẹ́ẹ̀ tí ó ń gbé IPv4 nìkan ń fi ọ̀nà kejì tí ó lè lò sílẹ̀ fún olùgbàlejò onípele méjì, ibi tí ó ní ìpele méjì yóò sì fẹ́ ẹ ju — pẹ̀lú DNS, bí ẹ̀rọ ìyánjú bá wà ní àǹfààní nípasẹ̀ IPv6. Pa IPv6 lórí àdáptà tàbí jẹ́rìí pé ọ̀nà àbẹ́ẹ̀ ń gbé e kí o tó ka àbájáde IPv4 sí kíkún.

Nígbà tí àwọn àyẹ̀wò kò bá bá ara wọn mu, àìbáramu náà sábà ń dárúkọ àṣìṣe náà:

What you seeWhat it meansNext step
The route picks tun0 but the capture shows cleartext to 10.20.5.7Something bypassed the table: a bound app, a policy route or a session older than the tunnelReset the flow, check the app bind, check the ip rule list
The route picks eth0 for an internal nameThe name resolves to a public address, or the route was never installedCompare the resolved address with the routes the server pushes
The capture shows DNS to the LAN resolverResolver leak: data is tunneled, lookups are notPoint the resolver inside, or push it from the server
All four checks agree and one app still failsPath selection is fine; suspect MTU, a per-app proxy or the far endTest the same destination from a known-good client

Ìtẹ̀lé tí ó ń ṣiṣẹ́: tọ́jú tábìlì ọ̀nà kí o tó sopọ̀ àti lẹ́yìn náà, tẹ̀lé orúkọ inú kan àti ti gbogbogbò kan, gbà DNS lórí àdáptà ẹ̀rọ, dá àdírẹ́sì ìjáde padà láti ṣẹ́ẹ̀lì fún ètò pàtó, lẹ́yìn náà ka sáfà fún ìwọ̀n. Bí mẹ́rin àkọ́kọ́ bá bá ara wọn mu, ọ̀nà àbẹ́ẹ̀ ń gbé ohun tí o rò àti pé ìṣòro tí ó kù wà lókè rẹ̀. Bí méjì nínú wọn kò bá bá ara wọn mu, ẹgbẹ́ tí kò báramu ni àṣìṣe náà, kì í ṣe àmì náà.

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