Ọ̀nà ẹ̀rọ ti ṣí, handshake ń ṣẹlẹ̀ ní gbogbo ìṣẹ́jú méjì, àdírẹ́sì kan péré lẹ́gbẹ́ kejì ń dáhùn. Píngì sí àdírẹ́sì ọ̀nà ẹ̀rọ peer ń ṣiṣẹ́; kò sí ohun tó wà lẹ́yìn rẹ̀ tó ń ṣiṣẹ́. Ẹnìkan ka ìtòlẹ́sẹẹsẹ interface, ó rí àpèjá host, ó sì parí pé maski náà kò tọ́. Ṣíṣe é gbòòrò sí /24 ń tún píngì ṣe fún ìgbà díẹ̀, lẹ́yìn náà ó ń ba nnkan mìíràn jẹ́. Àpèjá náà kì í ṣe ìdí rárá, àti ọ̀nà tó ṣẹ́ kù kì í ṣe èyí tí maski ń darí.

Ohun tí àpèjá interface ń dá ní tòótọ́

Ní Linux, fífún interface ní àdírẹ́sì ń dá ọ̀nà tó so pọ̀ fún àpèjá yẹn. Bí o bá fún un ní àpèjá host, ọ̀nà tó so pọ̀ náà ń bo àdírẹ́sì kan. Bí o bá fún un ní /24, ó ń bo 256, àti pé ọ̀kọ̀ọ̀kan wọn ni a ti ń kà sí èyí tí a lè dé ọ̀dọ̀ rẹ̀ nípasẹ̀ ìsopọ̀ yẹn.

ip -4 addr show dev wg0
ip -4 route show dev wg0
ip route get 10.80.7.1

Àpèjá host jẹ́ àṣàyàn tó wọ́pọ̀ pátápátá fún ọ̀nà ẹ̀rọ ojú-ìpín sí ojú-ìpín, nítorí pé peer kan ṣoṣo péré ló wà ní ìpẹ̀kun kejì. Ọ̀rọ̀ ìkẹta ni èyí tí ń dáhùn ìbéèrè olùṣàmúlò: ó sọ irú interface tí kernel yóò lò fún ibi àfojúsùn yẹn, kò sì ní fi nnkan tó wúlò hàn bí kò bá sí ọ̀nà tó báramu.

Ìyẹn ni gbogbo àlàyé fún àmì àìsàn náà. Àdírẹ́sì kan ń dáhùn nítorí pé ọ̀nà tó so pọ̀ wà fún un, tàbí nítorí pé àkójọ èyí tí a gbà láyè ti peer tiẹ̀ ń kó o mọ́ láìròtẹ́lẹ̀. Ohun gbogbo tó kù kò ní ọ̀nà, a sì ń sọ ọ́ nù kí WireGuard tó kópa rárá. Ọ̀nà ẹ̀rọ náà wà ní ìlera ní gbogbo àkókò, ìdí nìyẹn tí káńtà handshake fi ń máa dàbí ẹni tó ń fún ni ní ìfọkànbalẹ̀.

AllowedIPs jẹ́ ìlànà méjì lábẹ́ orúkọ kan

Àkójọ èyí tí a gbà láyè fún peer kọ̀ọ̀kan nínú WireGuard ń ṣe iṣẹ́ méjì lẹ́ẹ̀kan náà, sintaksi ìtòlẹ́sẹẹsẹ sì ń jẹ́ kí wọ́n dàbí ọ̀kan. Nígbà tí ó ń wọlé, ó ń gba àwọn àdírẹ́sì orísun tí peer lè fi hàn láyè. Nígbà tí ó ń jáde, ó ń yan peer tí a ó fi pákẹ́tì ránṣẹ́ sí, nípa wíwá ìbáramu tó ṣe pàtó jùlọ.

Kò sí ọ̀kan nínú iṣẹ́ méjì yẹn tó jẹ́ dídarí ọ̀nà. Kernel ṣì ní láti pinnu pé pákẹ́tì jẹ́ ti interface ọ̀nà ẹ̀rọ kí WireGuard tó wò ó, ìpinnu yẹn sì ń wá láti inú tábìlì ọ̀nà. Ìkọsílẹ̀ peer tó ní àkójọ gbòòrò tí a gbà láyè kì í fi ọ̀nà sórí ẹ̀rọ fúnra rẹ̀.

Ìdí nìyẹn tí ìtòlẹ́sẹẹsẹ kan fi lè dàbí ẹni tó péye tí yóò sì hùwà lọ́nà tí kò dọ́gba. Kìlíèntì ń ránṣẹ́ sí ẹ̀gbẹ́ kejì nítorí pé ọ̀nà wà, àwọn ìdáhùn kì í sì dé rárá nítorí pé àkójọ tí a gbà láyè ti ẹ̀gbẹ́ kejì kò gba orísun kìlíèntì láyè, tàbí nítorí pé ẹ̀gbẹ́ kejì kò ní ọ̀nà ìpadà. Ẹ̀gbẹ́ méjèèjì jẹ́ ìpinnu ọ̀tọ̀ọ̀tọ̀ pẹ̀lú ọ̀nà ìkùnà ọ̀tọ̀ọ̀tọ̀. Kíkọ sílẹ̀ èyí tí o ń dán wò ni ìlàjì ìwádìí àìsàn náà.

Ibi tí ọ̀nà ti ń wá

Bí o bá ń lo wg-quick, a ń dá àwọn ọ̀nà fún ọ láti inú àkójọ tí a gbà láyè ti peer kọ̀ọ̀kan, àyàfi bí o bá ti ṣètò Table = off tí o sì ti gba ìṣàkóso fúnra rẹ. Ìyẹn ni ìhùwàsí tí irinṣẹ́ náà kọ sílẹ̀, ìdí nìyẹn tí ìtòlẹ́sẹẹsẹ tí kò ní àwọn ìtọ́sọ́nà ọ̀nà tó ṣe kedere fi ń ṣiṣẹ́ síbẹ̀.

sudo wg show wg0 allowed-ips
ip route show | grep wg0
sudo wg-quick strip wg0

Fi àkójọ tí a gbà láyè wé àwọn ọ̀nà tó wà ní tòótọ́. Peer tó gba gbogbo subnet láyè ṣùgbọ́n tó dá ọ̀nà host nìkan túmọ̀ sí pé olùrànlọ́wọ́ kò gbà rárá, tàbí pé ìwọ fúnra rẹ ń darí interface ní tààràtà pẹ̀lú wg àti ip, ní irú àyíká yẹn kò sí ohun tó ń dá ọ̀nà fún ọ.

Nígbà tí o bá ń darí rẹ̀ pẹ̀lú ọwọ́, ọ̀nà náà jẹ́ ìlà kan, ìrísí rẹ̀ sì ṣe kedere: ibi àfojúsùn nípasẹ̀ interface, láìsí ẹnubodè nítorí pé ìsopọ̀ náà jẹ́ ojú-ìpín sí ojú-ìpín. Fífi kún un kì í ṣe ọ̀nà àbáyọ fún àpèjá burúkú; ó jẹ́ ìlàjì tó ṣẹ́ kù nínú àpẹẹrẹ tó pinnu láti gba dídarí ọ̀nà fúnra rẹ̀.

Àpèjá gbòòrò kò fi ìkọsílẹ̀ peer kún un

Àtúnṣe tó ń fà mọ́ra ni láti yí àdírẹ́sì padà sí /24 kí ọ̀nà tó so pọ̀ lè bo LAN sáfà náà. Ó dàbí ẹni pé ó ń ṣiṣẹ́, ìdí tí ó fi dàbí ẹni pé ó ń ṣiṣẹ́ ni pé ọ̀nà tó so pọ̀ ti báramu báyìí, kì í ṣe pé WireGuard ti kọ́ nnkan tuntun.

Ohun tí o tún ṣe ni pé o gba gbogbo ibi-ìdí náà bí èyí tí a lè dé tààràtà nípasẹ̀ ìsopọ̀ yẹn, pẹ̀lú àwọn àdírẹ́sì tó jẹ́ ti àwọn peer mìíràn tàbí ti LAN tó wà lẹ́yìn sáfà ní tòótọ́. Ọ̀nà ìrìnàjò sí àwọn àdírẹ́sì yẹn ti ń wọ inú ọ̀nà ẹ̀rọ báyìí, bóyá yóò jáde ní ẹ̀gbẹ́ kejì dá lórí dídarí ọ̀nà àti àwọn àkójọ tí a gbà láyè ti sáfà fúnra rẹ̀.

Ẹ̀gbẹ́ crypto kò ní ìfarapa ní irú àyíká kankan. WireGuard ṣì nílò ìkọsílẹ̀ nínú àkójọ tí a gbà láyè tó bo ibi àfojúsùn láti yan peer, ẹ̀gbẹ́ kejì sì ṣì nílò ìkọsílẹ̀ tó bo orísun rẹ láti gbà á. Àpèjá interface gbòòrò kò lè pèsè ọ̀kan nínú méjèèjì.

Jẹ́rìí ẹ̀gbẹ́ méjèèjì kí o tó yí nnkan kankan padà

Ṣiṣẹ́ lórí ìpẹ̀kun méjèèjì lọ́tọ̀ọ̀tọ̀, kí o sì kọ ohun tí ọ̀kọ̀ọ̀kan sọ. Ní kìlíèntì ọ̀nà àti ìkọsílẹ̀ peer; ní sáfà àwòrán dígí pẹ̀lú ọ̀nà ìpadà rẹ̀ fúnra rẹ̀:

ip route get 192.168.70.20
sudo wg show wg0 allowed-ips
sudo wg show wg0 latest-handshakes
sudo tcpdump -ni wg0 -c 10

Ìgbéléwọ̀n ni ohun tó ń yanjú àríyànjiyàn nípa ẹ̀gbẹ́. Bí àwọn pákẹ́tì tó ń jáde bá farahàn lórí interface ọ̀nà ẹ̀rọ tí sáfà kò sì ṣàkọsílẹ̀ nnkan kan, ìpẹ̀kun jíjìnnà ń kọ̀ wọ́n, ní ọ̀pọ̀ ìgbà nítorí pé orísun rẹ wà ní òde àkójọ tí a gbà láyè rẹ̀. Bí kò bá sí nnkan kan tó farahàn rárá, ọ̀nà náà ṣẹ́ kù tàbí ó ń tọ́ka sí ibòmííràn.

Lẹ́yìn náà tún ìpẹ̀kun tó há jùlọ ṣe. Ìkọsílẹ̀ nínú àkójọ tí a gbà láyè ní ẹ̀gbẹ́ sáfà fún àdírẹ́sì kìlíèntì rẹ àti ìkọsílẹ̀ ní ẹ̀gbẹ́ kìlíèntì fún subnet àfojúsùn ni ìrísí tó wọ́pọ̀, ó sì ń fi àpèjá interface sílẹ̀ láìfọwọ́ kàn. Gbòòrò àpèjá nìkan bí ètò àdírẹ́sì bá fẹ́ subnet tí a pín ní tòótọ́ lórí ìsopọ̀ yẹn, kí o sì ṣe é bí ìyípadà ètò dípò ìgbésẹ̀ àtúnṣe àṣìṣe.

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