Multicast vėliavėlės nustatymas WireGuard įrenginyje padaro sąsają tinkamą atradimo programinei įrangai, ir tuo vėliavėlės veikimas baigiasi. Ji nepasako protokolui, kur turi eiti grupės paketas, o įrenginyje su keliais peer nėra vieno akivaizdaus atsakymo. Tarp veikiančio demono ir atrastos paslaugos stovi trys atskiri vartai.

Tikrinkite juos iš eilės, nes vienų praėjimas nieko nesako apie kitus.

Pirmieji vartai: vėliavėlė ir demono politika

Linux WireGuard įrenginys kuriamas kaip taškas-tašką jungtis be ARP, ir pagal numatytuosius nustatymus neturi multicast vėliavėlės. Vėliavėlės pridėjimas yra vietinis sąsajos pakeitimas, kurį atlieka bet kas, kas valdo įrenginį. Avahi turi savo pasaulio vaizdą virš to, o jo numatytoji politika visiškai praleidžia taškas-tašką sąsajas. Todėl prieš pajudant vienam paketui taikomi du nepriklausomi tinkamumo testai.

Taigi demonui reikia aiškaus sprendimo, o ne vien veikiančio proceso. Jo dokumentuoti valdikliai apima allow-interfaces, deny-interfaces ir allow-point-to-point, o paskutinis yra nustatymas, kurį žmonės praleidžia.

Toliau pateikti patikrinimai praneša apie jungties vėliavėles, multicast maršrutą ir ar demono konfigūracija apskritai analizuojama:

ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check

Sėkmingai paleistas demonas nebūtinai atidarė lizdus sąsajoje, kuri jums rūpi. Skaitykite jo efektyviąją konfigūraciją, o ne manykite, kad paslaugos būsena lygi aprėpčiai.

Antrieji vartai: maršrutas į grupę

Antrieji vartai yra įprastas maršrutizavimas. Paketas, adresuotas 224.0.0.251, seka persiuntimo lentele kaip ir viskas kitas, o jei lentelė siunčia jį per fizinę LAN sąsają, jokia WireGuard konfigūracija to nepakeis. Pirmiausia pataisykite maršrutą ir likusi tyrimo dalis sutrumpės. Pažiūrėkite, ką branduolys praneša apie grupės adresą, prieš liesdami bet kokius peer raktus.

ObservationGate it belongs toWhat it does not prove
Multicast flag present on wg0Interface eligibilityThe daemon will use the interface
Route to the group via wg0ForwardingAny peer will receive it
Destination inside a peer's allowed listPeer selectionThat peer's network will answer

Be konkretaus maršruto branduolys grįžta prie pačios jungties multicast apdorojimo, todėl numatytasis elgesys atrodo teisingai plokščiame LAN ir neteisingai, kai tik tas pats grupės srautas turi išeiti per tunelį. Gedimas yra tylus siuntėjo pusėje: užklausa kažkur nueina, o atsakymas niekada neateina.

Tretieji vartai: WireGuard parenka vieną peer vienam paketui

WireGuard pasirenka išeinantį peer, ieškodamas paskirties vietos leidžiamų adresų rinkiniuose, o Linux perdavimo kelias atlieka šią paiešką kartą kiekvienam paketui. Rezultatas vienas, ir paketas šifruojamas tam peer. Tas pats grupės prefiksas kelių peer leidžiamuose sąrašuose nesukuria narystės ar replikacijos; jis sukuria dviprasmišką paiešką, kuri išsprendžiama vienam iš jų.

Dviejų galų dedikuotoje jungtyje tai yra būtent tai, ko norite, nes yra vienas numatytas gavėjas sąmoningai perduodamam grupės srautui. Sąsajoje su penkiais peer tai yra apribojimas, o ne savybė, ir pataisymas priklauso dizainui, o ne vieno peer konfigūracijai.

Išskleistas dizainas reikalauja aiškaus rele, atskirų jungčių ar visiškai kito atradimo mechanizmo. Dviejų galų recepto skelbimas kaip daugelio klientų sprendimas todėl, kad kiekvienas klientas gali pinginti šliuzą, yra būdas, kuriuo tai diegiama neteisingai.

Įeinanti kryptis tikrinama kitaip: gauto paketo šaltinis turi patekti į autentifikuoto peer leidžiamą sąrašą. Multicast paskirties vietos pridėjimas ten nepakeičia tikrosios siuntėjo šaltinio nuosavybės.

Atspindys yra riba, o ne tiltas

Avahi atšvaitas atkuria mDNS pranešimus tarp pasirinktų sąsajų programų lygmenyje. Tai atradimo riba tarp tinklų, o ne Ethernet tiltas ir ne bendras multicast maršrutizatorius. Du atšvaitai, prijungti prie tų pačių tinklų, mielai sukurs pasikartojančių skelbimų kilpą.

Atspindys taip pat perduoda paslaugų pavadinimus ir jų metaduomenis kitam tinklui, o tai yra privatumo sprendimas ne mažiau nei maršrutizavimo. Apribokite pasirinktas sąsajas ir naudokite paslaugų filtrus ten, kur įdiegta versija juos palaiko, kad ribą peržengtų tik įgaliotam naudotojui reikalingi skelbimai.

Atradimas ir naudojimas lieka atskiri rezultatai. Klientas gali matyti skelbimą apie paslaugą, kurios skelbiamas adresas nepasiekiamas iš ten, kur yra klientas, arba kurios prievadą atmeta jo prieigos politika. Patvirtinkite paslaugos ryšį po to, kai skelbimas pasirodo, ir jei programa palaiko stabilų DNS pavadinimą ar aiškų serverio adresą, teikite tam pirmenybę, o ne plėskite jungties vietinį atradimą. Šifravimo rakto maršrutizavimo aprašymas apima paskirties vietos pagrindu veikiantį peer pasirinkimą, nuo kurio visa tai priklauso.

Susiję straipsniai