Ìlà kan ṣoṣo lórí interface PPP yanjú ọ̀pọ̀ jùlọ àríyànjiyàn ìpèsè ọ̀nà lórí àpótí VPN: àdírẹ́sì inú àti peer tí a tẹ̀ sẹ́gbẹ̀ẹ́ rẹ̀. Ka pèé àwọn méjèèjì náà gẹ́gẹ́ bí subnet kékeré kí o sì wá ẹnubodè tí kò sí. Ka á gẹ́gẹ́ bí ìparí méjì ọ̀nà ìsopọ̀ kan kí ìgbésẹ̀ tó kàn sì hàn gbangba. Ìfiwéra níbí wà láàárín àwọn ìkàwé méjì yẹn, nítorí gbogbo tábìlì tí a bá kọ́ lẹ́yìn náà yóò jogún èyí tí o yàn. Kò sí ohun kan nípa ibi-ìparí VPN òde tí ọ̀kankan nínú wọn ń pinnu.

Ìkàwé méjì ti ìlà interface kan

Gba ìpàdé kan tí interface ń ròyìn inet 10.64.3.9 peer 10.64.3.1/32. Ìkàwé subnet ń gba 10.64.3.9 gẹ́gẹ́ bí olùgbàlejò kan ṣoṣo lórí erékùṣù /32 kí ó sì wá olùdarí ọ̀nà láti dé ohunkóhun tó kọjá rẹ̀. Nítorí pé àdírẹ́sì mìíràn kan ṣoṣo lórí ọ̀nà ìsopọ̀ ni peer, ìkàwé yẹn ń parí pẹ̀lú dídábàá 10.64.3.9 fúnra rẹ̀ gẹ́gẹ́ bí ẹnubodè, èyí tí ó jẹ́ ìyípo.

Ìkàwé ìparí ni èyí tí a kọ sílẹ̀. Lórí interface ojú-ọ̀nà-ojú-ọ̀nà, peer ń dárúkọ ìparí ọ̀nà ìsopọ̀ kan náà, nítorí náà 10.64.3.1 ni ìgbésẹ̀ tó kàn tí ó ṣeé lò àti 10.64.3.9 ni àdírẹ́sì orísun nígbà gbogbo.

Ìyàtọ̀ yẹn ń ṣàkóso ohun tí ó lè farahàn nínú via. Kíkọ àdírẹ́sì àdúgbò níbẹ̀ ń mú ọ̀nà jáde tí kernel kò lè yanjú sí aládùúgbò, nítorí náà àkọsílẹ̀ náà yóò kùnà ìjẹ́rìí tàbí yóò gbé ìrìnnà mì, nígbà tí ó ń wò ó dára pátápátá nínú àkọsílẹ̀. Peer ń ṣiṣẹ́ nítorí pé ó jẹ́ ibi-ìlọ sí gidi lórí ọ̀nà ìsopọ̀. Àwọn ìkàwé méjèèjì fohùn ṣọ̀kan nípa ibi-ìparí VPN òde, èyí tí ó jẹ́ ìdánimọ̀ tó yàtọ̀ pátápátá: a ń dé ibẹ̀ nípasẹ̀ underlay, kì í ṣe nípasẹ̀ ọ̀nà ìsọ̀ tí ó ń parí.

Ohun tí ìpàdé ti fi sórí ẹ̀rọ tẹ́lẹ̀

Kí o tó kọ tábìlì tirẹ̀, tẹ̀ jáde ohun tí ó wá pẹ̀lú ọ̀nà ìsopọ̀. Ìsopọ̀ PPP tí a ṣe àtìlẹ́yìn fún sábà máa ń fi ọ̀nà ẹ̀rọ àti ọ̀nà peer sórí ẹ̀rọ nígbà tí a ń ṣètò ìpàdé, àwọn àkọsílẹ̀ méjèèjì yẹn ti ń ṣàpẹẹrẹ ìkàwé tó tọ̀nà.

ip -4 addr show dev ppp0
ip route show dev ppp0
ip route show table main | head -n 5

Ọ̀nà ẹ̀rọ bí 10.64.3.1 dev ppp0 proto kernel scope link src 10.64.3.9 kò gbé ẹnubodè nítorí interface fúnra rẹ̀ ni ọ̀nà. Ọ̀nà tí ó dárúkọ peer pẹ̀lú via jẹ́ ohun mìíràn pẹ̀lú ìgbèé-ayé mìíràn, ó sì ń pòórá nígbà tí ìpàdé bá ṣubú. Dàákọ ọ̀kan nínú àwọn ọ̀nà méjèèjì sínú tábìlì tó dúró pẹ́ láì yẹ̀wò bí a ṣe ń fi í sórí ẹ̀rọ lẹ́ẹ̀kan sí i ni ìdí tó wọ́pọ̀ tí ọ̀nà ìsọ̀ tó ń ṣiṣẹ́ fi ń pàdánù ọ̀nà rẹ̀ lẹ́yìn ìsopọ̀ mìíràn.

Fi àwọn àkọsílẹ̀ méjèèjì wérawọn dípò kí o gbẹ́kẹ̀lé ìrántí. Tí ọ̀nà peer bá wà nínú main ṣùgbọ́n tábìlì àfikún rẹ kò ní nǹkan, o ti kọ́ ohun tí ìlà àdírẹ́sì kò sọ fún ọ rí.

Ìlànà àti tábìlì jẹ́ ìpinnu ọ̀tọ̀

Yíyan tábìlì àti kíkún rẹ̀ jẹ́ ìgbésẹ̀ àdádúró, ìfiwéra sì ṣe pàtàkì níbí nítorí pé a sábà máa ń dà á wọnú ara wọn nígbà àwárí àṣìṣe. Ìlànà tí ń fi ìrìnnà tí a sàmì sí lọ sínú tábìlì 100 kò ṣe nǹkan kan tí tábìlì 100 kò bá ní ọ̀nà tó bá a mu, tábìlì tí a kún dáadáa sì kò lè dé tí kò bá sí ìlànà tó ń tọ́ka sí i.

Ìdajì ọ̀nà àkọ́kọ́ kì í ṣe ọ̀nà àkọ́kọ́. 0.0.0.0/1 kan ń bo ìdajì ìsàlẹ̀ àyè IPv4, nítorí náà ìlànà tí ó pinnu láti mú gbogbo rẹ̀ ní yóò tún nílò 128.0.0.0/1 tó bá a mu, tàbí default gidi. Kíkà ìṣètò tó ń ṣiṣẹ́ àti dàákọ ọ̀kan nínú ìdajì méjèèjì ni bí àwọn ènìyàn ṣe ń parí pẹ̀lú ìyípo ìpèsè ọ̀nà tí ó ń já lórí àwọn ibi-ìlọ kan pàtó.

Fi àwọn ìyàtọ̀ tí a mọ̀ọ́mọ̀ ṣe sílẹ̀ fún àwọn àdírẹ́sì tí ó gbọdọ̀ dúró lórí LAN, kí o sì pinnu ohun tí ó máa ṣẹlẹ̀ nígbà tí ìwárí kò bá rí nǹkan kan nínú tábìlì tí a yàn. Ọ̀nà àbáyò tó ṣe kedere rọrùn láti ronú nípa rẹ̀ ju tábìlì òfìfo, èyí tí ó ń dá èsì tí kò ṣeé dé padà tí ó sì ń jẹ́ kí ohun èlò náà dàbí ẹni tó ti bàjẹ́ dípò kí a tọ́ ọ lọ́nà tí kò tọ́.

Be ìwárí ní ìbéèrè tí ohun èlò rẹ ń béèrè

ip route get ń yanjú ọ̀nà; ip route show ń ṣàkọsílẹ̀ àwọn àkọsílẹ̀ tí a fi pamọ́, àwọn méjèèjì sì lè yàtọ̀ láì sí ẹni tí ó ṣe àṣìṣe. Fi àyíká orísun kún un, nítorí àwọn ìlànà tó dá lórí orísun ń bá a mu nígbà tí ìwárí bá gbé orísun.

ip route get 198.51.100.23 from 10.64.3.9
ip route get 198.51.100.23 from 10.64.3.9 iif ppp0
ip -4 rule show

Àṣẹ àkọ́kọ́ ń béèrè ìbéèrè náà láti ọ̀dọ̀ olùgbàlejò. Èkejì ń fi interface ìwọlé kún un, èyí tí ó sún mọ́ ohun tí ìrìnnà tí a gbé jáde ń ní ìrírí rẹ̀, ìdáhùn sì sábà máa ń tọ́ka sí tábìlì mìíràn. Kò sí ibi-ìlọ kankan tí ó jẹ́ iṣẹ́ ìdánwò alààyè; 198.51.100.23 jẹ́ àdírẹ́sì ìwé ìtọ́kasí, nítorí náà fi olùgbàlejò tí a gbà ọ́ láàyè láti yẹ̀wò rẹ̀ rọ́pò rẹ̀.

Pàápàá ìwárí tó tọ́ ń fi ẹ̀rí hàn pé a yan ọ̀nà kan ṣoṣo. Kò sọ nǹkan kan nípa bóyá ẹ̀gbẹ́ kejì gba ìrìnnà náà tàbí bóyá ìdáhùn náà lè padà nípasẹ̀ ìrònú kan náà.

Ibi tí ìfiwéra ń yí

Ìrìnnà olùgbàlejò àti ìrìnnà tí a gbé jáde kì í ṣe kíkàn gba ìwárí ọ̀tọ̀; wọ́n ń pàdé àwọn àlẹ̀mọ́ ọ̀tọ̀ lójú ọ̀nà ìpadà. Linux ń lo ìjẹ́rìí ọ̀nà ìpadà pẹ̀lú èyí tó le jù nínú àwọn ètò gbogbo interface àti interface tí ń gbà, nítorí náà yíyí iye interface kan lè máà ní ipa tí a lè rí. Ìpèsè ọ̀nà tó dá lórí àmì ń fi ìbáṣepọ̀ src_valid_mark kún un, níbẹ̀ tí àmì náà gbọdọ̀ bá a mu kí a lè kà orísun sí èyí tó wúlò.

Tí àwọn ìdáhùn bá pòórá nígbà tí ìpèsè ọ̀nà ìjáde dàbí ẹni tó tọ́, ka àwọn iye tó ń ṣiṣẹ́ kí o tó fọwọ́ kàn wọ́n, kí o sì yí wọ́n padà pẹ̀lú ìdí ìlànà tí a sọ nìkan.

sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.ppp0.rp_filter
sysctl net.ipv4.conf.all.src_valid_mark

Yan láàárín àwọn àpẹẹrẹ méjèèjì lórí ẹ̀rí: tí ohun èlò bá so mọ́ àdírẹ́sì PPP, ìlànà orísun àti tábìlì tó di ọ̀nà peer mú ti tó. Tí àpótí bá ń gbé fún LAN tó wà lẹ́yìn rẹ̀, o tún nílò kí àyíká ìwọlé àti ọ̀nà ìpadà fohùn ṣọ̀kan. Nígbà tí wọn kò bá fohùn ṣọ̀kan, tún ìní ọ̀nà náà ṣe dípò kí o tú ìjẹ́rìí sílẹ̀ fún gbogbo ẹ̀rọ.

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