mDNS prek WireGuarda: tri vrata, preden peer odgovori
Avahi potrebuje ustrezen vmesnik, pot do skupine in peera, ki ima v lasti cilj. Tri vrata, tri ločene preverbe in nobene razvejitve.
Nastavitev zastavice multicast na napravi WireGuard naredi vmesnik primeren za programsko opremo za odkrivanje, in to je vse, kar zastavica naredi. Protokolu ne pove, kam naj gre skupinski paket, in na napravi z več peeri ni enega očitnega odgovora. Med delujočim demonom in odkrito storitvijo stojijo tri ločena vrata.
Preizkusite jih po vrsti, ker prehod skozi ena ne pove nič o naslednjih.
Prva vrata: zastavica in politika demona
Naprava WireGuard v Linuxu nastane kot povezava od točke do točke brez ARP in privzeto ne nosi zastavice multicast. Dodajanje zastavice je lokalna sprememba vmesnika, ki jo izvede karkoli upravlja napravo. Avahi ima nad tem svoj pogled na svet, njegova privzeta politika pa vmesnike od točke do točke povsem preskoči. Zato pred premikom enega samega paketa veljata dva neodvisna preizkusa primernosti.
Demon torej potrebuje izrecno odločitev, ne le delujočega procesa. Njegove dokumentirane kontrole vključujejo allow-interfaces, deny-interfaces in allow-point-to-point, zadnja pa je nastavitev, ki jo ljudje spregledajo.
Spodnje preverbe poročajo o zastavicah povezave, poti multicast in o tem, ali se konfiguracija demona sploh razčleni:
ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check
Demon, ki se je uspešno zagnal, ni nujno odprl vtičnic na vmesniku, ki vas zanima. Preberite njegovo dejansko konfiguracijo, namesto da bi domnevali, da je stanje storitve enako pokritosti.
Druga vrata: pot do skupine
Druga vrata so običajno usmerjanje. Paket, naslovljen na 224.0.0.251, sledi tabeli posredovanja kot vse drugo, in če ga tabela pošlje skozi fizični vmesnik LAN, tega ne bo spremenila nobena konfiguracija WireGuard. Najprej popravite pot in preostanek preiskave se skrajša. Poglejte, kaj jedro poroča za skupinski naslov, preden se dotaknete kakršnih koli ključev peera.
| 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 |
Brez določene poti se jedro vrne k lastnemu ravnanju z multicastom povezave, zato je privzeto videti pravilno v ravnem LAN in napačno takoj, ko mora isti skupinski promet oditi skozi tunel. Napaka je s strani pošiljatelja tiha: poizvedba gre nekam, odgovor pa nikoli ne prispe.
Tretja vrata: WireGuard izbere enega peera na paket
WireGuard izbere odhodnega peera tako, da poišče cilj v množicah dovoljenih naslovov, linuxova pot pošiljanja pa to iskanje izvede enkrat na paket. Rezultat je en, paket pa je šifriran za tega peera. Ista skupinska predpona na dovoljenih seznamih več peerov ne ustvari članstva ali replikacije; ustvari dvoumno iskanje, ki se razreši na enega od njih.
Na namenski povezavi z dvema koncema je to natanko tisto, kar želite, ker je za namerno prenašani skupinski promet en sam predvideni prejemnik. Na vmesniku s petimi peeri je to omejitev, ne funkcija, in popravek sodi v zasnovo, ne v konfiguracijo kateregakoli posameznega peera.
Zasnova z razvejanjem potrebuje izrecen posrednik, ločene povezave ali povsem drugačen mehanizem odkrivanja. Objaviti recept za dva konca kot rešitev za mnogo odjemalcev zato, ker lahko vsak odjemalec pinga prehod, je način, kako se to nepravilno uvaja.
Vhodna smer se preverja drugače: vir prejetega paketa mora pasti v dovoljeni seznam overjenega peera. Dodajanje cilja multicast tam ne nadomesti resničnega lastništva vira pošiljatelja.
Odsev je meja, ne most
Odsevnik Avahi obnavlja sporočila mDNS med vmesniki, ki jih izbere, na aplikacijski ravni. To je meja odkrivanja med omrežji, ne Ethernetov most in ne splošen usmerjevalnik multicast. Dva odsevnika, priključena na ista omrežja, z veseljem ustvarita zanko ponovljenih objav.
Odsev tudi preda imena storitev in njihove metapodatke drugemu omrežju, kar je odločitev o zasebnosti prav toliko kot odločitev o usmerjanju. Omejite izbrane vmesnike in uporabite filtre storitev tam, kjer jih nameščena različica podpira, da mejo prečkajo le objave, ki jih pooblaščeni uporabnik potrebuje.
Odkrivanje in uporaba ostaneta ločeni rezultati. Odjemalec lahko vidi objavo storitve, katere oglaševani naslov je iz kraja odjemalca nedosegljiv, ali katere vrata njegova politika dostopa zavrača. Potrdite povezavo s storitvijo, ko se objava pojavi, in če aplikacija podpira stabilno ime DNS ali izrecen naslov strežnika, dajte temu prednost pred širitvijo krajevnega odkrivanja povezave. Opis usmerjanja s kriptografskim ključem pokriva izbiro peera na podlagi cilja, na kateri vse to temelji.