Nastavenie príznaku multicast na zariadení WireGuard sprístupní rozhranie pre softvér na objavovanie, a tým účinok príznaku končí. Nehovorí protokolu, kam má skupinový paket ísť, a na zariadení s niekoľkými peermi neexistuje jediná zrejmá odpoveď. Medzi bežiacim démonom a objavenou službou stoja tri samostatné brány.

Testujte ich po poradí, pretože prejdenie jednej nič nehovorí o tej ďalšej.

Prvá brána: príznak a politika démona

Zariadenie WireGuard v Linuxe sa vytvára ako spojenie typu point-to-point bez ARP a v predvolenom nastavení nenesie príznak multicast. Pridanie príznaku je lokálna zmena rozhrania, ktorú vykonáva čokoľvek, čo zariadenie spravuje. Avahi má nad tým vlastný pohľad na svet a jeho predvolená politika rozhrania point-to-point úplne preskakuje. Pred pohybom jediného paketu teda platia dva nezávislé testy vhodnosti.

Démon teda potrebuje výslovné rozhodnutie, nielen bežiaci proces. Jeho dokumentované ovládacie prvky zahŕňajú allow-interfaces, deny-interfaces a allow-point-to-point, pričom posledný je nastavenie, ktoré ľudia prehliadajú.

Nižšie uvedené kontroly hlásia príznaky spoja, multicastovú trasu a to, či sa konfigurácia démona vôbec parsuje:

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

Démon, ktorý sa úspešne spustil, nemusí mať otvorené sockety na rozhraní, na ktorom vám záleží. Čítajte jeho efektívnu konfiguráciu, namiesto toho, aby ste predpokladali, že stav služby sa rovná pokrytiu.

Druhá brána: trasa ku skupine

Druhou bránou je bežné smerovanie. Paket adresovaný na 224.0.0.251 sleduje forwardovaciu tabuľku ako všetko ostatné, a ak ho tabuľka odošle cez fyzické rozhranie LAN, žiadna konfigurácia WireGuard to nezmení. Najprv opravte trasu a zvyšok vyšetrovania sa skráti. Pozrite sa, čo jadro hlási pre skupinovú adresu, skôr než sa dotknete akýchkoľvek kľúčov peerov.

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

Bez konkrétnej trasy sa jadro vracia k vlastnému spracovaniu multicastu spoja, a preto sa predvolené správanie javí ako správne na plochej sieti LAN a nesprávne, len čo má ten istý skupinový provoz odísť tunelom. Zlyhanie je z pohľadu odosielateľa tiché: dopyt niekam odíde a odpoveď nikdy nedorazí.

Tretia brána: WireGuard volí jedného peera na paket

WireGuard vyberá odchádzajúceho peera vyhľadaním cieľa v súboroch povolených adries a linuxová cesta odosielania toto hľadanie vykonáva raz na paket. Výsledok je jeden a paket sa šifruje pre tohto peera. Rovnaký skupinový prefix v povolených zoznamoch niekoľkých peerov nevytvára členstvo ani replikáciu; vytvára nejednoznačné hľadanie, ktoré sa rozhodne pre jedného z nich.

Na vyhradenom spoji s dvoma koncami je to presne to, čo chcete, pretože existuje jeden zamýšľaný príjemca pre zámerne prenášanú skupinovú prevádzku. Na rozhraní s piatimi peermi je to obmedzenie, nie funkcia, a oprava patrí do návrhu, nie do konfigurácie ktoréhokoľvek jednotlivého peera.

Návrh s vetvením potrebuje výslovný relay, samostatné spoje alebo úplne iný mechanizmus objavovania. Zverejniť recept pre dva konce ako riešenie pre mnoho klientov preto, že každý klient môže pingnúť bránu, je spôsob, ako to nasadiť nesprávne.

Prichádzajúci smer sa kontroluje inak: zdroj prijatého paketu musí spadať do povoleného zoznamu overeného peera. Pridanie multicast cieľa tam nenahrádza skutočné vlastníctvo zdroja odosielateľa.

Odraz je hranica, nie most

Reflektor Avahi reprodukuje správy mDNS medzi rozhraniami, ktoré vyberie, na aplikačnej vrstve. Je to hranica objavovania medzi sieťami, nie Ethernetový most a nie všeobecný multicastový router. Dva reflektory pripojené k tým istým sieťam radi vytvoria slučku opakovaných oznámení.

Odraz tiež odovzdáva názvy služieb a ich metadáta inej sieti, čo je rozhodnutie o súkromí rovnako ako rozhodnutie o smerovaní. Obmedzte vybrané rozhrania a použite filtre služieb tam, kde ich nainštalovaná verzia podporuje, aby hranicu prekračovali len oznámenia, ktoré oprávnený používateľ potrebuje.

Objavovanie a používanie zostávajú oddelenými výsledkami. Klient môže vidieť oznámenie služby, ktorej inzerovaná adresa je z miesta klienta nedostupná, alebo ktorej port jeho prístupová politika odmieta. Po zobrazení oznámenia potvrďte spojenie so službou, a ak aplikácia podporuje stabilný názov DNS alebo explicitnú adresu servera, dajte im prednosť pred rozširovaním link-local objavovania. Popis smerovania kryptokľúčom pokrýva výber peera podľa cieľa, na ktorom to všetko stojí.

Súvisiace články