Kò sí ohun kan nínú sokẹ́ẹ̀tì tí ó rántí èyí tí ó gbé ìbéèrè náà, nítorí náà ọ̀nà àìdá VPN ẹ̀rọ ìkùn-ẹ̀kún lè mú ìdáhùn tí ó jẹ́ ti WAN. Iṣẹ́ náà kò ṣàìkàsí ojú-ọ̀nà tí ó wọlé; Linux ń darí ìdáhùn tí a ṣẹ̀dá níbílẹ̀ gẹ́gẹ́ bí ibi-àfojúsùn àti ìlànà orísun. Ìlànà tí ó dá lórí orísun lè rán àwọn ìdáhùn iṣẹ́ náà nìkan nípasẹ̀ tábìlì WAN kíkún, kí ó sì fi ìjáde àìdá sílẹ̀ lórí ẹ̀rọ ìkùn náà. Ẹnubodè náà ṣì ṣí sílẹ̀ nígbà tí ìdáhùn náà ń jáde ní ọ̀nà tí kò tọ́, ìdí niyẹn tí àmì náà fi dàbí ẹ̀gbẹ́ kan.

Àṣìlóye: àwọn ìdáhùn ń tẹ̀lé ojú-ọ̀nà tí wọ́n ti wọlé

Ó dàbí ẹni pé ó bọ́gbọ́n mu pé pákẹ́tì tí ó wọ eth0 gbọdọ̀ jáde ní eth0. Àwọn àlẹ̀mọ́ pákẹ́tì tí kò ní ipò lè kọ bẹ́ẹ̀, tcpdump ní ẹ̀gbẹ́ ìwọlé sì ń fi ìbéèrè náà hàn ní ibi tí a retí i. Pípọ̀nà kò ṣiṣẹ́ bẹ́ẹ̀ fún ìrìn-àjò tí olùgbàlejò fúnra rẹ̀ ń dá.

Ní kété tí iṣẹ́ náà bá gba ìsopọ̀ náà, ìdáhùn rẹ̀ jẹ́ pákẹ́tì tuntun tí a ṣẹ̀dá níbílẹ̀. Kọ̀mpútà ààrò ń wo àwọn ìlànà pípọ̀nà fún ibi-àfojúsùn àti orísun ìdáhùn náà, ọ̀nà àìdá VPN sì jẹ́ ìdáhùn tí ó wúlò pátápátá. Kò sí ohun kan nínú sokẹ́ẹ̀tì tí ó rántí èyí tí ó gbé ìbéèrè náà.

Ìdí niyẹn tí àmì náà fi dàbí ẹ̀gbẹ́ kan: àwọn ìbéèrè ń wọlé, àwọn ìdáhùn ń pòórá. Ìdí niyẹn pẹ̀lú tí fífi ìlànà odi-iná kún fún ẹnubodè ìwọlé kò fi yí ohunkóhun padà. A kò dènà pákẹ́tì náà ní ọ̀nà ìwọlé; a ń pọ̀nà rẹ̀ sí ibòmíì ní ọ̀nà ìjáde. Tẹ̀lé ìdáhùn náà pẹ̀lú ìwádìí tí a fi orísun mọ̀, yóò sì hàn kedere.

Ohun tí kọ̀mpútà ààrò ń pọ̀nà gan-an: àdírẹ́sì orísun

Ìmùkẹ̀ tí o nílò ni àdírẹ́sì àdúgbò tí iṣẹ́ náà ń lò fún àwọn ìdáhùn. Lórí olùgbàlejò tí ó ní àdírẹ́sì eth0 àpẹẹrẹ 192.0.2.10/24 àti ẹnubodè 192.0.2.1, àdírẹ́sì yẹn wà lórí ojú-ọ̀nà náà. Lórí VM ojú-ọ̀rún, a lè túmọ̀ àdírẹ́sì gbogbogbò ní òkè, kí ó sì ṣàìsí nínú àlejò, nítorí náà lo àdírẹ́sì tí olùgbàlejò ní gan-an.

Yẹ ààyè ìpò náà wò kí o tó pa nọ́mbà tábìlì mọ́ tàbí ipò àkọ́kọ́ ìlànà. Àwọn ìlànà ìlélẹ̀ tí ó wà lè ṣààbò bo tuntun, tábìlì àtijọ́ pẹ̀lú nọ́mbà kan náà sì lè ti gbé àwọn ọ̀nà tí kò ní í ṣe pẹ̀lú:

ip -4 addr show dev eth0
ip -4 rule show
ip -4 route show table all

Lẹ́yìn náà yan tábìlì nípasẹ̀ orísun. Ìlànà náà bá àwọn ìdáhùn tí ó ti ń gbé 192.0.2.10 mu, ìyẹn ni ìrìn-àjò tí ó parí níbílẹ̀ tí o fẹ́ yọ kúrò. Ìrìn-àjò tí a dárí àti àwọn pákẹ́tì láti àwọn àdírẹ́sì àdúgbò mìíràn kò bá a mu.

Kọ́ tábìlì ìpadàbọ̀ kíkún, kì í ṣe ìdajì àìdá

Tábìlì tí ó ní ọ̀nà àìdá nìkan kò tó. Kọ̀mpútà ààrò ṣì gbọdọ̀ yanjú ẹnubodè náà, ìyànjú yẹn sì nílò àkọ́sí tí a so pọ̀ nínú tábìlì kan náà. Tábìlì tí ó ṣàìní àkọ́sí yẹn yóò kùnà ní yíyanjú ẹnubodè kódà tí ọ̀nà àìdá rẹ̀ bá dàbí ẹni tí ó tọ́. Fi méjèèjì kún, lẹ́yìn náà darí ìlànà orísun sí tábìlì náà:

ip -4 route add table 100 192.0.2.0/24 dev eth0 src 192.0.2.10
ip -4 route add table 100 default via 192.0.2.1 dev eth0
ip -4 rule add priority 1000 from 192.0.2.10/32 lookup 100

Lo àkọ́sí àti ẹnubodè gidi dípò kíkọ́ àpẹẹrẹ náà. Ojú-ọ̀nà ojú-ọ̀rún tí a ṣètò gẹ́gẹ́ bí /32 pẹ̀lú ẹnubodè on-link nílò ọ̀nà mìíràn tí a so pọ̀, tábìlì tí a kọ́ láti àkọ́sí tí kò tọ́ yóò sì kùnà ní ìgbésẹ̀ àkọ́kọ́. Àmì-ìdánimọ̀ src sọ orísun ààyò fún ọ̀nà yẹn; kò rọ́pò ìlànà orísun.

Ìtò pẹ̀lú ṣe pàtàkì. Ìlànà gbòòrò tí ó ní nọ́mbà ipò àkọ́kọ́ tí ó kéré ni a ń ṣàyẹ̀wò kọ́kọ́, nítorí náà a gbọdọ̀ dé ìlànà orísun kí ó tó dé ìlànà kankan tí yóò dá ìrìn-àjò yìí padà sí tábìlì àkọ́kọ́. Yẹ àwọn ipò àkọ́kọ́ wò pẹ̀lú ip rule show lẹ́yìn kíkún, kì í ṣe ní ìgbà ìbẹ̀rẹ̀ nìkan.

Ṣèrí pẹ̀lú ìwádìí tí a fi orísun mọ̀

Be kọ̀mpútà ààrò pé kí ó pọ̀nà ibi-àfojúsùn ìdánwò láti àdírẹ́sì iṣẹ́ náà. Ìdáhùn gbọdọ̀ dárúkọ eth0 àti ẹnubodè WAN, kì í ṣe ẹ̀rọ ìkùn náà:

ip -4 route get 198.51.100.25 from 192.0.2.10

Lẹ́yìn náà dá ìsopọ̀ tuntun tí a fọwọ́ sí, kí o sì wo ẹ̀gbẹ́ méjèèjì. Ìwádìí tí ó yan tábìlì tí ó tọ́ nígbà tí ìsopọ̀ gidi ṣì ń kùnà ń tọ́ka sí àlẹ̀mọ́ ọ̀nà yíyí padà tàbí ìlànà odi-iná, kì í ṣe tábìlì náà. Yẹ àwọn ìṣàkóso yẹn wò kí o tó dá ohunkóhun dúró ní àgbáyé.

Fi àwọn ọ̀nà ìparí àti ìlànà náà sábẹ́ olùṣàkóso nẹ́tíwọ́kì tí ó ní ojú-ọ̀nà náà. Àwọn ìyípadà àdírẹ́sì, ìmúdọ̀tun DHCP àti àwọn ìsopọ̀ VPN tuntun ń tún ipò kọ̀mpútà ààrò kọ, ìlànà tí a fi ọwọ́ kún yóò sì pòórá tàbí yóò tọ́ka sí ẹnubodè àtijọ́ lẹ́yìn ìṣẹ̀lẹ̀ tó ń bọ̀.

Ibẹ̀ ni ìyàsọ́tọ̀ yìí ti dáwọ́ dúró

Ìlànà náà yọ ìrìn-àjò tí ó parí níbílẹ̀ kúrò láti àdírẹ́sì orísun kan. Kò bo àwọn ẹnubodè tí Docker tẹ̀ jáde, DNAT tàbí àwọn iṣẹ́ tí a dárí nípasẹ̀ olùgbàlejò, nítorí a ń pọ̀nà àwọn pákẹ́tì yẹn gẹ́gẹ́ bí ìrìn-àjò tí a dárí, wọn kì í sì gbé orísun àdúgbò olùgbàlejò ní ọ̀nà kan náà. Irú àwọn àpẹẹrẹ bẹ́ẹ̀ sábà nílò àmì tí a fi sí ẹnu-ọ̀nà àti ìlànà tí ó bá àmì náà mu.

Kò tún mú kí àdírẹ́sì gbogbogbò olùgbàlejò farahàn lórí ojú-ọ̀nà. Nígbà tí NAT kan ní òkè bá ni àdírẹ́sì yẹn, ìdáhùn ṣì gbọdọ̀ jáde ní ọ̀nà tí NAT yẹn retí, ìdí niyẹn tí tábìlì WAN fi gbọdọ̀ fi ẹnubodè àti àkọ́sí àkọ́kọ́ hàn dípò ìwọ̀n gbogbogbò tí a fojú wò.

Pa ìyàsọ́tọ̀ náà mọ́ ní àkọsílẹ̀ pẹ̀lú nọ́mbà tábìlì, ipò àkọ́kọ́ ìlànà àti àdírẹ́sì orísun pàtó. Ìyípadà tó ń bọ̀ nínú VPN tàbí ojú-ọ̀nà lè fọ́ ọ ní ìdákẹ́jẹ́, àkọsílẹ̀ tí ó dárúkọ àwọn iye mẹ́ta sì ń yára ṣàyẹ̀wò ju kíkún ìwádìí àmì náà padà láti ìròyìn oníbàárà.

Tí iṣẹ́ náà bá ṣì ń dáhùn ní ọ̀nà tí kò tọ́ lẹ́yìn tí ìwádìí tí a fi orísun mọ̀ bá ṣẹ́gun, fi àdírẹ́sì orísun sokẹ́ẹ̀tì aláàyè wé èyí tí ó wà nínú ìlànà. Iṣẹ́ tí a so mọ́ àdírẹ́sì wildcard lè yan orísun mìíràn ju àdírẹ́sì tí o dán wò lọ, àìbámu yẹn sì ni àlàfo tí ó kù.

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