mDNS lórí WireGuard: ẹnubodè mẹ́ta kí peer tó dáhùn
Avahi nílò interface tó yẹ, ọ̀nà sí ẹgbẹ́ àti peer tó ni ibi-àfojúsùn. Ẹnubodè mẹ́ta, àyẹ̀wò mẹ́ta ọ̀tọ̀ọ̀tọ̀ àti kò sí ìtànkálẹ̀.
Fífi àmì multicast sórí ẹ̀rọ WireGuard máa ń jẹ́ kí interface yẹ fún ètò ìwárí, ìyẹn ni gbogbo ohun tí àmì náà ń ṣe. Kò sọ fún protocol ibi tí pákẹ́tì ẹgbẹ́ yẹ kí ó lọ, àti lórí ẹ̀rọ tó ní ọ̀pọ̀ peer kò sí ìdáhùn kan tó ṣe kedere. Ẹnubodè mẹ́ta ọ̀tọ̀ọ̀tọ̀ wà láàrín daemon tó ń ṣiṣẹ́ àti iṣẹ́ tí a ṣàwárí.
Dán wọn wò ní tẹ̀léntẹ̀lẹ̀, nítorí pé kí ọ̀kan kọjá kò sọ ohunkóhun nípa èyí tó kàn.
Ẹnubodè kìíní: àmì náà àti ìlànà daemon
A máa ń dá ẹ̀rọ WireGuard Linux gẹ́gẹ́ bí ìsopọ̀ ojú-ọ̀nà-sí-ojú-ọ̀nà láìsí ARP, kò sì gbé àmì multicast ní àìdábọ̀. Fífi àmì kún un jẹ́ ìyípadà interface àdúgbò, tí ohunkóhun tó ń ṣàkóso ẹ̀rọ náà ń ṣe. Avahi ní ojú-ìwòye ayé tirẹ̀ lórí èyí, ìlànà àìdábọ̀ rẹ̀ sì ń fojú fo àwọn interface ojú-ọ̀nà-sí-ojú-ọ̀nà pátápátá. Nítorí náà àyẹ̀wò yíyẹ méjì tó dáǹkan wà lórí ipò kí pákẹ́tì kan pàápàá tó lè rìn.
Nítorí náà daemon nílò ìpinnu tó ṣe kedere, kì í ṣe ìlana tó ń ṣiṣẹ́ nìkan. Àwọn ìṣàkóso tí a kọ sílẹ̀ rẹ̀ ní allow-interfaces, deny-interfaces àti allow-point-to-point, èyí tó gbẹ̀yìn sì ni ètò tí àwọn ènìyàn ń pàdánù.
Àwọn àyẹ̀wò tó wà nísàlẹ̀ ń ròyìn àwọn àmì ìsopọ̀, ọ̀nà multicast àti bóyá a ń ṣàyẹ̀wò ìṣètò daemon rárá:
ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check
Daemon tó bẹ̀rẹ̀ ní àṣeyọrí kò fi dandan ṣí sockets lórí interface tó ṣe pàtàkì fún ọ. Ka ìṣètò rẹ̀ tó ń ṣiṣẹ́ dípò kí o rò pé ipò iṣẹ́ dọ́gba pẹ̀lú àgbègbè.
Ẹnubodè kejì: ọ̀nà sí ẹgbẹ́
Ẹnubodè kejì ni ìtọ́ni ọ̀nà lasan. Pákẹ́tì tí a fi ránsẹ́ sí 224.0.0.251 ń tẹ̀lé tábìlì gbígbé lọ bí gbogbo nǹkan mìíràn, bí tábìlì náà bá sì rán an jáde nípasẹ̀ interface LAN ti ara, kò sí ìṣètò WireGuard tó máa yí ìyẹn padà. Tún ọ̀nà ṣe kí ó tó, kí ìwádìí tó kù lè kúrù. Wo ohun tí kernel ń ròyìn fún àdírẹ́sì ẹgbẹ́ kí o tó fi ọwọ́ kàn àwọn kọ́kọ́rọ́ peer kan.
| Observation | Gate it belongs to | What it does not prove |
|---|---|---|
Multicast flag present on wg0 | Interface eligibility | The daemon will use the interface |
Route to the group via wg0 | Forwarding | Any peer will receive it |
| Destination inside a peer's allowed list | Peer selection | That peer's network will answer |
Láìsí ọ̀nà pàtó kan, kernel máa ń padà sí ìtọ́jú multicast ti ìsopọ̀ fúnra rẹ̀, ìyẹn sì ni ìdí tí àìdábọ̀ fi dàbí ẹni tó tọ́ lórí LAN pẹlẹbẹ, tí ó sì di aṣiṣe ní kété tí ọkọ̀-ìsọfẹ̀ kan náà tó yẹ kí ó jáde nípasẹ̀ ojú-ọ̀nà abẹ́lẹ̀. Ìkùnà náà dákẹ́ láti ẹ̀gbẹ́ olùránṣẹ́: ìbéèrè ń lọ síbì kan, ìdáhùn kò sì dé rárá.
Ẹnubodè kẹta: WireGuard yan peer kan fún pákẹ́tì kọ̀ọ̀kan
WireGuard máa ń yan peer tó ń jáde nípasẹ̀ wíwo ibi-àfojúsùn nínú àwọn àkójọ àdírẹ́sì tí a gbà láàyè, ọ̀nà ìránṣẹ́ Linux sì ń ṣe ìwá náà lẹ́ẹ̀kan fún pákẹ́tì kọ̀ọ̀kan. Èsì kan ṣoṣo ló wà, a sì ń fi ààbò bo pákẹ́tì náà fún peer yẹn. Àkọ́kọ́ ẹgbẹ́ kan náà tí ó farahàn nínú àwọn àkójọ tí a gbà láàyè ti ọ̀pọ̀ peer kò dá ìjẹ́ẹ́ni ẹgbẹ́ tàbí àdàkọ; ó ń dá ìwá tí kò ṣe kedere tí ó ń parí lórí ọ̀kan nínú wọn.
Lórí ìsopọ̀ àkànṣe pẹ̀lú ìparí méjì èyí ni pàtó ohun tí o fẹ́, nítorí pé olùgbà kan ṣoṣo ló wà fún ọkọ̀-ìsọfẹ̀ ẹgbẹ́ tí a gbé lọ pẹ̀lú ìmọ̀. Lórí interface pẹ̀lú peer márùn-ún èyí jẹ́ àkópọ̀, kì í ṣe ẹ̀yà, àti àtúnṣe wà nínú àpẹẹrẹ dípò ìṣètò peer kankan.
Àpẹẹrẹ ìtànkálẹ̀ nílò relay tó ṣe kedere, àwọn ìsopọ̀ ọ̀tọ̀ọ̀tọ̀ tàbí ọ̀nà ìwárí tó yàtọ̀ pátápátá. Fífi ìlànà ìparí méjì jáde gẹ́gẹ́ bí ojútùú kíkún fún ọ̀pọ̀ oníbàárà nítorí pé oníbàárà kọ̀ọ̀kan lè ping ẹnubodè ni bí a ṣe ń gbé èyí kalẹ̀ ní àṣiṣe.
A ń ṣàyẹ̀wò ìtọ́sọ́nà tó ń wọlé lọ́nà mìíràn: orísun pákẹ́tì tí a gbà gbọ́dọ̀ wà nínú àkójọ tí a gbà láàyè ti peer tí a ti jẹ́rìí. Fífi ibi-àfojúsùn multicast kún un níbẹ̀ kò rọ́pò ìní orísun gidi olùránṣẹ́.
Ìfọ̀wọ́jáde jẹ́ ààlà, kì í ṣe afárá
Olùfọ̀wọ́jáde Avahi ń tún àwọn ìfiránṣẹ́ mDNS ṣe láàrín àwọn interface tí ó yàn, ní ìpele ohun-èlò. Ó jẹ́ ààlà ìwárí láàrín àwọn nẹ́tíwọ́ọ̀kì, kì í ṣe afárá Ethernet àti kì í ṣe olùtọ́nà multicast gbogboogbò. Olùfọ̀wọ́jáde méjì tí a so mọ́ àwọn nẹ́tíwọ́ọ̀kì kan náà máa ń fi inú dídùn dá ìku-ẹ̀sẹ̀ ìkéde àtúnyẹ̀wò.
Ìfọ̀wọ́jáde tún ń fi àwọn orúkọ iṣẹ́ àti metadata wọn lé nẹ́tíwọ́ọ̀kì mìíràn lọ́wọ́, ìyẹn jẹ́ ìpinnu àṣírí bí ó ti jẹ́ ìpinnu ìtọ́nà pẹ̀lú. Dín àwọn interface tí a yàn kù, kí o sì lo àwọn àlẹ̀mọ́ iṣẹ́ níbikíbi tí ẹ̀dà tí a fi sórí ẹ̀rọ ti ṣe àtìlẹ́yìn fún wọn, kí àwọn ìkéde tí olùmúlò tí a fún ní àṣẹ nílò nìkan lè kọjá ààlà.
Ìwárí àti ìlò wà ní èsì ọ̀tọ̀ọ̀tọ̀. Oníbàárà lè rí ìkéde fún iṣẹ́ tí àdírẹ́sì ìkéde rẹ̀ kò dé ọ̀dọ̀ rẹ̀ láti ibi tí oníbàárà wà, tàbí tí ìlànà ààbò rẹ̀ kọ̀ ìbùdó rẹ̀. Jẹ́rìí ìsopọ̀ iṣẹ́ lẹ́yìn tí ìkéde náà fara hàn, bí ohun-èlò náà bá sì ṣe àtìlẹ́yìn fún orúkọ DNS tó dúró ṣinṣin tàbí àdírẹ́sì olùpín tó ṣe kedere, yàn án ju kí o gbòòrò ìwárí àdúgbò ìsopọ̀ lọ. Àpèjúwe ìtọ́nà kọ́kọ́rọ́ ààbò bo yíyan peer tó dá lórí ibi-àfojúsùn tí gbogbo èyí gbarale.