VPN server tí ń dáhùn láti nẹ́tíwọ́kì alágbèéká ṣùgbọ́n tí kò ṣiṣẹ́ láti orí àga kì í sábà jẹ́ ìṣòro ẹ̀rí. Olùbáṣepọ̀ inú LAN ń béèrè lọ́wọ́ router kí ó túmọ̀ packet kan tí ibi tí ó ń lọ jẹ́ àdírẹ́sì gbogbogbòò router fúnra rẹ̀, èyí tí ó túmọ̀ pé packet gbọ́dọ̀ jáde kí ó sì tún wọlé lẹ́sẹ̀kẹsẹ̀. Àwòrán yìí ni a ń pè ní hairpinning, àti pé ọ̀pọ̀ router kò gbé e ṣe rárá tàbí wọ́n ń ṣe é nígbà tí a bá tan ẹ̀rọ ìṣàyẹ̀wò kan. Àṣeyọrí ìdánwò láti ìta ni ó ń da èrò rú, nítorí pé ó fi hàn pé olùgbọ́ àti òfin ìfiránṣẹ́ wà ní títọ́.

Packet jáde, ó sì tún wọlé

Tẹ̀lé packet náà. Olùbáṣepọ̀ yanjú orúkọ gbogbogbòò, ó so mọ́ àdírẹ́sì gbogbogbòò, àti NAT ibi-ìlọ router tún kọ ibi-ìlọ sí server inú. Ìdáhùn server ni a fi sí àdírẹ́sì LAN olùbáṣepọ̀, nítorí náà ó padà gba ojú-ọ̀nà LAN router kọjá láìla ọ̀nà òfin NAT tí ì bá ti tún orísun túmọ̀ padà.

Nísinsìnyí olùbáṣepọ̀ ń gba packet láti àdírẹ́sì tí kò ti fi ohunkóhun ránṣẹ́ sí rí, ó sì sọ ọ́ nù. Àìdọ́gba yẹn ni gbogbo àìtọ́ náà.

RFC 4787 ṣàlàyé ìwà tí a ń retí láti NAT nínú ọ̀ràn yìí, àti ìkókó ni pé ní àṣà ó jẹ́ àṣàyàn pàápàá níbi tí a ti ṣàlàyé rẹ̀ nínú ìmọ̀. Àwọn router kan ń pe ètò yìí ní NAT loopback, àwọn mìíràn ń pè é ní hairpin NAT tàbí NAT reflection, àwọn mìíràn kò sì fi ohunkóhun hàn. Router tí kò ní í kò jẹ́ àṣìlóye; ó ń ṣe ohun tí ó wọ́pọ̀, àti pé àtúnṣe wà ní ibòmíràn. Má ṣe pinnu láti inú ìdánwò inú tí ó kùnà pé òfin ìfiránṣẹ́ gbogbogbòò jẹ́ aṣiṣe.

Àyẹ̀wò 1: dán ọ̀nà méjèèjì wò lọ́tọ̀

Láti ìta LAN, so pọ̀ pẹ̀lú profáìlì kan náà tí olùlò gidi yóò lò kí o sì jẹ́rìí pé ìpàdé dá. Láti inú, so mọ́ àdírẹ́sì gbogbogbòò pẹ̀lú profáìlì kan náà kí o sì kọ àṣìṣe gangan àti àkókò sílẹ̀.

Ìdánwò inú tí ó péye ń pa orúkọ host mọ́, ó sì ń rọ́pò àdírẹ́sì nìkan: curl -v --resolve vpn.example.com:443:203.0.113.10 https://vpn.example.com/ ń fi ìbéèrè ránṣẹ́ sí àdírẹ́sì gbogbogbòò nígbà tí ó ṣì ń fi orúkọ server tòótọ́ hàn. Èyí ya ìṣòro yíyanjú orúkọ kúrò nínú ìṣòro ìtúmọ̀, tí ó máa ń da ara wọn rú nígbà tí orúkọ kan náà bá ń ṣiṣẹ́ láti ilé oúnjẹ kan. Ṣàkíyèsí bóyá olùbáṣepọ̀ kùnà ní ìsopọ̀ TCP tàbí ní TLS lẹ́yìn náà, nítorí èkíní ń tọ́ka sí ìtúmọ̀, èkejì sì tọ́ka sí ìdánimọ̀.

Àyẹ̀wò 2: ka ohun tí server ń rí

Àkíyèsí tí ó wúlò jù ni ojú-ìwòye server. Ṣe gbígba kan lórí host VPN tí a ṣe àyọṣẹ́ sí àdírẹ́sì LAN olùbáṣepọ̀ àti sí àdírẹ́sì LAN router, kí o sì tún ìgbìyànjú inú ṣe. Bí ohunkóhun kò bá dé, packet kò là kọjá ìtúmọ̀.

Bí ìsopọ̀ bá dé láti àdírẹ́sì LAN router dípò ti olùbáṣepọ̀, hairpinning ń ṣẹlẹ̀, a sì ti tún orísun kọ. Èyí jẹ́ ètò tí ń ṣiṣẹ́, kì í ṣe àìtọ́.

Àyẹ̀wò 3: tún un ṣe láìfi ọwọ́ kan ọ̀nà ìta

Àwọn ọ̀nà mẹ́ta tí a ń gbà wà, ní ìtẹ̀lé ìmúdàgba ipa. Èyí tí ó kéré jù ni DNS pípín: ṣe àtẹ̀jáde àkọsílẹ̀ inú kí orúkọ server kan náà lè yanjú sí àdírẹ́sì inú fún àwọn olùbáṣepọ̀ inú LAN, èyí tí ó yẹra fún ọ̀nà gbogbogbòò pátápátá. Èyí tí ó tẹ̀lé ni lílo àṣàyàn loopback tàbí reflection tí a kọ sílẹ̀ ti router, bí ó bá wà, àti lílò ó fún iṣẹ́ yìí nìkan. Èyí tí ó gbòòrò jù ni òfin source-NAT lórí router tí ń tún ìrìnàjò láti LAN sí server kọ kí ìdáhùn lè padà gba router; lórí router Linux ìyẹn ni òfin MASQUERADE nínú POSTROUTING tí ó bá àdírẹ́sì àti ibùdó server mu. Àwọn mẹ́tẹ̀ẹ̀ta ń fi ọ̀nà ìta sílẹ̀ láìfọwọ́ kàn, àti pé ìyẹn ni ẹ̀yà tí ó yẹ kí a pa mọ́.

Má ṣe mú ìfiránṣẹ́ ibùdó tí kò ní í ṣe gbòòrò kí ọ̀nà inú lè dà bí ti ìta, kí o sì má ṣe gbé iṣẹ́ náà lọ sí ibùdó mìíràn láti yẹra fún ìṣòro náà. Àwọn ìyípadà méjèèjì ń yí ohun tí ayé ìta lè dé padà láti tún ohun kan tí ayé inú nìkan ń rí ṣe.

DNS pípín ní ẹ̀kọ́ kan tí ó yẹ kí a dárúkọ. Rọ́pò orúkọ host pẹ̀lú IP àìdábọ̀ ń yí ohun tí olùbáṣepọ̀ ń fọwọ́sí padà, nítorí náà àkọsílẹ̀ inú gbọ́dọ̀ ṣì bá orúkọ inú ẹ̀rí mu.

Àyẹ̀wò 4: jẹ́rìí ọ̀nà méjèèjì lẹ́yìn náà

Tún ìgbìyànjú ìta ṣe láti ìta LAN, tún ìgbìyànjú inú ṣe pẹ̀lú profáìlì kan náà, kí o sì jẹ́rìí pé àkọsílẹ̀ server ń fi ìpàdé àṣeyọrí méjì ọ̀tọ̀ọ̀tọ̀ hàn dípò àṣeyọrí kan àti ìdákẹ́jẹ́ kan. Lẹ́yìn náà ṣàyẹ̀wò pé àwọn olùbáṣepọ̀ mìíràn ṣì ń dé ọ̀dọ̀ olùgbọ́ àti pé àwọn ọ̀nà sí àwọn ohun àmúṣọrọ̀ àdáni kò yí padà.

Jẹ́ kí àkọsílẹ̀ kúrú: àdírẹ́sì wo ni olùbáṣepọ̀ kọ̀ọ̀kan lò, kí ni server rí, àti èwo nínú àtúnṣe mẹ́ta ni a lò. Àwọn àǹfààní hairpinning ti RFC 4787 ni ìtọ́kasí fún ohun tí a ń retí láti NAT níbí, wọ́n sì ṣàlàyé ìdí tí router tí kò ní ẹ̀yà yìí fi ń hùwà déédéé. Àìtọ́ inú tí ayé ìta kò lè tún ṣe jẹ́ ìbéèrè ìtúmọ̀ títí a ó fi fi òdì kejì hàn, nítorí náà dán an wò bẹ́ẹ̀.

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