mDNS virs WireGuard: trīs vārti, pirms vienaudzis atbild
Avahi nepieciešama piemērota saskarne, maršruts uz grupu un vienaudzis, kuram pieder galamērķis. Trīs vārti, trīs atsevišķas pārbaudes un nekāda izplatīšana.
Multicast karodziņa iestatīšana WireGuard ierīcē padara saskarni piemērotu atklāšanas programmatūrai, un ar to karodziņa darbība beidzas. Tas nepasaka protokolam, kur jāiet grupas paketei, un ierīcē ar vairākiem vienaudžiem nav vienas acīmredzamas atbildes. Starp strādājošu dēmonu un atklātu pakalpojumu stāv trīs atsevišķi vārti.
Pārbaudiet tos secībā, jo vienu iziešana neko nepasaka par nākamajiem.
Pirmie vārti: karodziņš un dēmona politika
Linux WireGuard ierīce tiek izveidota kā punkts-punktam savienojums bez ARP, un pēc noklusējuma tai nav multicast karodziņa. Karodziņa pievienošana ir lokāla saskarnes izmaiņa, ko veic jebkas, kas pārvalda ierīci. Avahi virs tā ir savs pasaules redzējums, un tā noklusējuma politika pilnībā izlaiž punkts-punktam saskarnes. Tāpēc pirms vienas paketes kustības tiek piemēroti divi neatkarīgi piemērotības testi.
Tātad dēmonam vajag skaidru lēmumu, nevis tikai strādājošu procesu. Tā dokumentētās vadības ietver allow-interfaces, deny-interfaces un allow-point-to-point, un pēdējais ir iestatījums, ko cilvēki palaiž garām.
Tālāk minētās pārbaudes ziņo par saites karodziņiem, multicast maršrutu un to, vai dēmona konfigurācija vispār tiek parsēta:
ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check
Veiksmīgi startējis dēmons ne vienmēr ir atvēris ligzdas saskarnē, kas jums svarīga. Lasiet tā efektīvo konfigurāciju, nevis pieņemiet, ka pakalpojuma statuss ir vienāds ar pārklājumu.
Otrie vārti: maršruts uz grupu
Otrie vārti ir parastā maršrutēšana. Pakete, kas adresēta 224.0.0.251, seko pārsūtīšanas tabulai kā viss pārējais, un, ja tabula to sūta ārā pa fizisko LAN saskarni, nekāda WireGuard konfigurācija to nemainīs. Vispirms izlabojiet maršrutu, un pārējā izmeklēšana kļūs īsāka. Paskatieties, ko kodols ziņo par grupas adresi, pirms aiztiekat jebkādas vienaudžu atslēgas.
| 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 |
Bez konkrēta maršruta kodols atgriežas pie pašas saites multicast apstrādes, tāpēc noklusējums izskatās pareizi plakanā LAN un nepareizi, tiklīdz tas pats grupas trafiks ir jāizlaiž pa tuneli. Kļūme ir klusa no sūtītāja puses: vaicājums aiziet kaut kur, un atbilde nekad neieraodas.
Trešie vārti: WireGuard izvēlas vienu vienaudzi uz paketi
WireGuard izvēlas izejošo vienaudzi, meklējot galamērķi atļauto adrešu kopās, un Linux pārraides ceļš šo meklēšanu veic vienu reizi uz katru paketi. Rezultāts ir viens, un pakete tiek šifrēta šim vienaudzim. Viens un tas pats grupas prefikss vairāku vienaudžu atļautajos sarakstos nerada dalību vai replikāciju; tas rada neskaidru meklēšanu, kas atrisinās uz vienu no tiem.
Divu galu īpašā savienojumā tas ir tieši tas, ko vēlaties, jo apzināti pārvadātajam grupas trafikam ir viens paredzēts saņēmējs. Saskarnē ar pieciem vienaudžiem tas ir ierobežojums, nevis funkcija, un labojums pieder dizainam, nevis kāda atsevišķa vienaudža konfigurācijai.
Izplatošam dizainam vajag skaidru releju, atsevišķus savienojumus vai pavisam citu atklāšanas mehānismu. Divu galu receptes publicēšana kā daudzu klientu risinājuma tāpēc, ka katrs klients var pingot vārteju, ir veids, kā tas tiek izvietots nepareizi.
Ienākošais virziens tiek pārbaudīts citādi: saņemtās paketes avotam jāiekrīt autentificētā vienaudža atļautajā sarakstā. Multicast galamērķa pievienošana tur neaizstāj sūtītāja īsto avota piederību.
Atspoguļošana ir robeža, nevis tilts
Avahi atstarotājs atveido mDNS ziņojumus starp tā izvēlētajām saskarnēm lietojumprogrammu līmenī. Tā ir atklāšanas robeža starp tīkliem, nevis Ethernet tilts un nevis vispārējs multicast maršrutētājs. Divi atstarotāji, kas savienoti ar vieniem un tiem pašiem tīkliem, labprāt radīs atkārtotu paziņojumu cilpu.
Atspoguļošana arī nodod pakalpojumu nosaukumus un to metadatus citam tīklam, un tas ir privātuma lēmums tikpat lielā mērā kā maršrutēšanas lēmums. Ierobežojiet izvēlētās saskarnes un izmantojiet pakalpojumu filtrus tur, kur instalētā versija tos atbalsta, lai robežu šķērsotu tikai pilnvarotam lietotājam nepieciešamie paziņojumi.
Atklāšana un lietošana paliek atsevišķi rezultāti. Klients var redzēt paziņojumu par pakalpojumu, kura izziņotā adrese nav sasniedzama no vietas, kur atrodas klients, vai kura portu noraida tā piekļuves politika. Apstipriniet pakalpojuma savienojumu pēc tam, kad paziņojums parādās, un, ja lietojumprogramma atbalsta stabilu DNS nosaukumu vai skaidru servera adresi, dodiet priekšroku tam, nevis saites lokālās atklāšanas paplašināšanai. Šifrēšanas atslēgas maršrutēšanas apraksts aptver uz galamērķi balstītu vienaudža izvēli, uz kuras tas viss balstās.