Àwọn ìgbésẹ̀ WireGuard mẹ́ta dé ọ̀nà àjọ̀ kan tí kò ní àdírẹ́sì gbangba, lẹ́yìn náà ẹ̀rọ ààrín yóò dáwọ́ ìdáhùn dúró ní ibùdó tí ó yẹ kí ó máa gbọ́. Ọ̀nà náà ṣì ń ṣiṣẹ́, ẹ̀rọ tí ó jìnnà ṣì ń dáhùn, àti pé ẹ̀rọ ààrín fúnra rẹ̀ nìkan ló ti dákẹ́ ní ìta. Àpapọ̀ yẹn ń da ènìyàn rú, nítorí pé òun fúnra rẹ̀ ló ṣe é: ìgbésẹ̀ ààrín ń tẹ̀lé tábìlì ọ̀nà tirẹ̀, tábìlì náà sì ń fi àwọn ìdáhùn rẹ̀ ránṣẹ́ sí ọ̀nà tí kò tọ́.

Ẹ̀wọ̀n tí ń ṣiṣẹ́ títí tí ìwọ yóò fi bá àpótí ààrín sọ̀rọ̀

Muu ẹ̀wọ̀n àpẹẹrẹ kan: alábàáṣepọ̀ A dé ibùdó B lórí UDP 500, B sì ń tẹ̀síwájú sí ibùdó C lórí UDP 500. C ń gba ìrìnàjò láti àdírẹ́sì alábàákẹ́gbẹ́ rẹ̀ kan ṣoṣo, èyí tí ó sọ ọ́ di ewé tí ó sì ń pa ìwà rẹ̀ mọ́ ní rírọrùn. B kì í ṣe ewé, gbogbo ohun tí ó fani mọ́ra nípa àìṣedéédé yìí ń ṣẹlẹ̀ níbẹ̀.

Ìyàtọ̀ yìí ṣe pàtàkì nítorí pé ipa ewé àti ipa ààrín ń fa sí ọ̀nà òdì kejì. Ewé lè fi gbogbo nǹkan ránṣẹ́ sínú ọ̀nà kan láìsí àbájáde, nítorí pé kò sí ohun mìíràn tí ó gbára lé e. Ìgbésẹ̀ ààrín jẹ́ ìparí fún àwọn alábàáṣepọ̀ àti alábàáṣepọ̀ sí ẹ̀gbẹ́ tí ó jìnnà ní àkókò kan náà, iṣẹ́ méjì yẹn sì fẹ́ ọ̀nà ọ̀tọ̀ọ̀tọ̀.

Kí ni ìdáhùn fi ń jáde gba ọ̀nà náà

Lórí B, ibàjẹ́kù tí ó kọjú sí C gbé AllowedIPs = 0.0.0.0/0 pẹ̀lú ọ̀nà àkọ́kọ́ tí ó bá a mu. Nítorí náà gbogbo pákéètì tí B ṣẹ̀dá ń wọ inú ọ̀nà yẹn, àyàfi tí ohun kan tí ó ṣe pàtó bá gba ipò àkọ́kọ́.

Pákéètì láti A tí a fi sí B dé, a sì gbà á, nítorí pé B ni ibi tí a ń lọ àti pé ìfijíṣẹ́ àdúgbò ń ṣẹlẹ̀ kọ́kọ́. Ìdáhùn jẹ́ pákéètì tuntun pátápátá tí a ṣẹ̀dá ní àdúgbò tí a sì dojú kọ àdírẹ́sì gbangba A, ibi tí a ń lọ yẹn sì bá ọ̀nà àkọ́kọ́ nínú ọ̀nà mu. C gbà á, kò ni àdírẹ́sì yẹn, ó sì sọ ọ́ nù.

Àmì náà ń kà bí ìṣòro odi iná tàbí àìbámu kọ́kọ́rọ́, kò sì sí ọ̀kan nínú wọn tí ó jẹ́ òtítọ́ níbí. Gbígbé lórí ọ̀nà sí C fi hàn pé àwọn ìdáhùn ń lọ sí ọ̀nà tí kò tọ́. Ìwòye kan ṣoṣo yẹn ń fi àkókò pamọ́ ju bí a ti ń ka ìṣètò lọ, nítorí náà kọ ọ́ sílẹ̀ kí o tó bẹ̀rẹ̀ sí yí kọ́kọ́rọ́ padà. Ẹnikẹ́ni tí kò tíì rí gbígbé náà yóò rò pé ọ̀nà náà fúnra rẹ̀ ti bàjẹ́.

Àtúnṣe tóóró: àwọn ìlànà ètò tí ó bá ibùdó orísun mu

Àwọn ìdáhùn láti ṣókẹ́ẹ̀tì gbígbọ́ B ń jáde pẹ̀lú ibùdó orísun 500. Ìlànà ètò kan lè bá a mu kí ó sì fi àwọn pákéètì yẹn padà sínú tábìlì déédéé:

ip rule add sport 500 table main priority 100
ip rule add sport 8080 table main priority 101

A ń wo àwọn ìlànà ètò ní ìtẹ̀lé ipò àkọ́kọ́, tábìlì pàtàkì sì wà ní 32766, nítorí náà a ń béèrè ìlànà ní 100 kí ọ̀nà àkọ́kọ́ ọ̀nà náà tó sọ̀rọ̀. Fi àfikún kan kún fún gbogbo ibùdó tí ó gbọdọ̀ wà ní àrúgbọ́n láti ìta àti kò sí ohun mìíràn, kí ìrìnàjò tí a ń gbé lọ lè máa lo ọ̀nà tí a kọ́ fún un.

Mọ ààlà ọgbọ́n yìí. Yíyàn sport bá àwọn pákéètì tí a ṣẹ̀dá ní àdúgbò mu, èyí tí ó bo ìṣẹ̀lẹ̀ ìdáhùn gan-an, kò sì mọ̀ọ́mọ̀ bo ìrìnàjò tí B kàn ń gbé lọ fún ẹlòmíràn. Iṣẹ́ tí a gbà sínú ilé lẹ́yìn B ṣì nílò ìdáhùn tirẹ̀, dídi ẹni tí ó sọ òdì kejì ń mú àtúnṣe tí ó ń ṣiṣẹ́ fún iṣẹ́ àkọ́kọ́ tí ó sì kùnà fún èkejì.

Fún ìlànà ní ẹni

Ìlànà tí a tẹ̀ sínú ìtọ́ni yóò pàdánù nígbà tí a bá tún ibàjẹ́kù kọ́ ní ìgbà tí ó ń bọ̀. Nínú ìṣètò WireGuard, fi í sí ibi tí a ti ń dá ibàjẹ́kù àti ibi tí a ti ń yọ ọ́ kúrò:

PostUp = ip rule add sport 500 table main priority 100
PostDown = ip rule del sport 500 table main priority 100

Bí NetworkManager, ìkọ̀kọ̀ pínpín tàbí ibi ìwọlé pátákó bá ni ibàjẹ́kù náà, àwọn méjì náà jẹ́ ti ẹni yẹn kì í ṣe fáìlì tí a fi ọwọ́ ṣàtúnṣe. Ṣàyẹ̀wò àwọn ìlànà tí ó ń ṣiṣẹ́ lẹ́yìn àtúnso pọ̀, kì í ṣe lẹ́yìn ìbẹ̀rẹ̀ àkọ́kọ́ nìkan, nítorí pé ìbẹ̀rẹ̀ àkọ́kọ́ ni ìṣẹ̀lẹ̀ tí ó ń ṣiṣẹ́ nígbà gbogbo.

Fi àwọn àṣàyàn wé pẹ̀lú òtítọ́

Ìlànà ibùdó orísun jẹ́ ọ̀kan nínú àwọn ọ̀nà mẹ́rin jáde, ó sì tóóró jù nínú wọn. Ó ní àǹfààní pé kò fi ọwọ́ kan ètò ọ̀nà rárá, ìdí nìyẹn tí ó fi ń ye àwọn ìyípadà tí ó ń bọ̀ já. Àwọn àtúnṣe tóóró pẹ̀lú ń kùnà ní àríwo nígbà tí wọ́n bá jáwọ́ lílò, nígbà tí ìyọkùrò gbòòrò ń máa ń ṣiṣẹ́ ní ìdákẹ́jẹ́ẹ́ pẹ́ lẹ́yìn tí ìdí rẹ̀ ti parẹ́. Ìyàtọ̀ yẹn ṣe pàtàkì ju ẹ̀wà lọ nígbà tí ẹlòmíràn bá ni àpótí náà ní ọdún méjì sí i.

ApproachWhat it costsWhere it breaks
Source-port policy ruleOne rule per exposed portAnything B forwards rather than originates
Destination exception routeA route pinned to specific client addressesClients whose address changes
Stop full-tunnelling on BLoses the catch-all path toward CDesigns that depend on it
Split into two tunnelsMore interfaces and more policyNothing, at the cost of complexity

Ṣàyẹ̀wò láti ẹ̀gbẹ́ méjèèjì lẹ́yìn tí o bá yàn. Láti A, bẹ̀rẹ̀ ìsopọ̀ sí ibùdó B kí o sì jẹ́ kí ó máa ṣiṣẹ́ fún ìgbà díẹ̀. Lórí B, jẹ́ kí kérúnà ṣe ìdáláre ọ̀nà ìdáhùn pẹ̀lú ohun kan bí ip route get <address-of-A> sport 500, kí o sì jẹ́rìí pé ó dárúkọ ibàjẹ́kù WAN kì í ṣe ọ̀nà náà. Lẹ́yìn náà, ṣàyẹ̀wò pé ohun kan lẹ́yìn C ṣì ń dáhùn gba ẹ̀wọ̀n náà, èyí tí ó fi hàn pé ìyọkùrò náà wà ní tóóró dípò kí ó di ọ̀nà àyọkùrò. Níkẹyìn, kọ àwọn ibùdó sínú àwọn àkọsílẹ̀ àpẹẹrẹ, bí bẹ́ẹ̀ kọ́ olùṣiṣẹ́ tí ó ń bọ̀ yóò tún ṣàwárí èyí lórí iṣẹ́ mìíràn.

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