mDNS WireGuard üzərində: həmyaşıd cavab verməzdən əvvəl üç qapı
Avahi uyğun interfeysə, qrupa marşruta və təyinatın sahibi olan bir həmyaşıda ehtiyac duyur. Üç qapı, üç ayrı yoxlama və heç bir şaxələnmə yoxdur.
WireGuard cihazında multicast bayrağını qurmaq interfeysi kəşf proqramları üçün uyğun edir və bayrağın etdiyi iş bununla bitir. O, protokola qrup paketinin hara getməli olduğunu demir və bir neçə həmyaşıd olan cihazda tək aydın cavab yoxdur. İşləyən daemon ilə kəşf edilmiş xidmət arasında üç ayrı qapı dayanır.
Onları sıra ilə sınaqdan keçirin, çünki birini keçmək növbəti barədə sizə heç nə demir.
Birinci qapı: bayraq və daemonun siyasəti
Linux WireGuard cihazı ARP-siz nöqtədən nöqtəyə əlaqə kimi yaradılır və standart olaraq multicast bayrağını daşımır. Bayrağın əlavə edilməsi cihazı idarə edən hər hansı şey tərəfindən yerinə yetirilən yerli interfeys dəyişikliyidir. Avahinin bunun üstündə öz dünya görüşü var və onun standart siyasəti nöqtədən nöqtəyə interfeysləri tamamilə atlayır. Buna görə bir paket belə hərəkət etməzdən əvvəl iki müstəqil uyğunluq testi tətbiq olunur.
Yəni daemon açıq bir qərara ehtiyac duyur, sadəcə işləyən prosesə deyil. Onun sənədləşdirilmiş nəzarətlərinə allow-interfaces, deny-interfaces və allow-point-to-point daxildir və sonuncu insanların qaçırdığı ayardır.
Aşağıdakı yoxlamalar əlaqə bayraqlarını, multicast marşrutunu və daemonun konfiqurasiyasının ümumiyyətlə təhlil olunub-olunmadığını bildirir:
ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check
Uğurla başlamış daemon sizin üçün vacib olan interfeysdə mütləq soketlər açmayıb. Xidmət statusunun əhatəyə bərabər olduğunu fərz etmək əvəzinə onun effektiv konfiqurasiyasını oxuyun.
İkinci qapı: qrupa marşrut
İkinci qapı adi marşrutlaşdırmadır. 224.0.0.251 ünvanına göndərilən paket hər şey kimi yönləndirmə cədvəlinə uyğun gedir və cədvəl onu fiziki LAN interfeysindən çıxarırsa, heç bir WireGuard konfiqurasiyası bunu dəyişməyəcək. Əvvəlcə marşrutu düzəldin, sonra araşdırmanın qalanı qısalacaq. Hər hansı həmyaşıd açarına toxunmazdan əvvəl kernelin qrup ünvanı üçün nə bildirdiyinə baxın.
| 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 |
Konkret marşrut olmadıqda kernel əlaqənin öz multicast emalına keçir, buna görə standart düz LAN-da doğru, eyni qrup trafikinin tuneldən çıxması gözlənilən kimi isə səhv görünür. Uğursuzluq göndərən tərəfdən səssizdir: sorğu bir yerə gedir və cavab heç vaxt gəlmir.
Üçüncü qapı: WireGuard hər paket üçün bir həmyaşıd seçir
WireGuard görən həmyaşıdı təyinatı icazəli ünvan dəstlərində axtararaq seçir və Linux ötürmə yolu bu axtarışı hər paket üçün bir dəfə yerinə yetirir. Nəticə birdir və paket həmin həmyaşıd üçün şifrələnir. Eyni qrup prefiksinin bir neçə həmyaşıdın icazəli siyahısında görünməsi üzvlük və ya replikasiya yaratmır; o, onlardan birinə çözülən qeyri-müəyyən axtarış yaradır.
İki son nöqtəli xüsusi əlaqədə bu tam istədiyiniz şeydir, çünki qəsdən daşınan qrup trafiki üçün bir nəzərdə tutulan alıcı var. Beş həmyaşıd olan interfeysdə isə bu məhdudiyyətdir, xüsusiyyət deyil və düzəliş hər hansı bir həmyaşıdın konfiqurasiyasında deyil, dizaynda olmalıdır.
Şaxələnən dizayn açıq relay, ayrı əlaqələr və ya tamamilə fərqli kəşf mexanizmi tələb edir. Hər müştəri şlüzü yoxlaya bildiyi üçün iki son nöqtəli resepti çoxmüştəri həlli kimi yayımlamaq bu işin səhv yerləşdirilməsi üsuludur.
Gələn istiqamət fərqli yoxlanılır: alınan paketin mənbəyi autentifikasiya olunmuş həmyaşıdın icazəli siyahısına düşməlidir. Ora multicast təyinatı əlavə etmək göndərənin real mənbə sahibliyini əvəz etmir.
Yansıtma körpü deyil, sərhəddir
Avahinin əks etdiricisi seçdiyi interfeyslər arasında mDNS mesajlarını tətbiq qatında təkrar istehsal edir. Bu, şəbəkələr arasında kəşf sərhədidir, Ethernet körpüsü deyil və ümumi multicast marşrutlaşdırıcısı deyil. Eyni şəbəkələrə qoşulmuş iki əks etdirici asanlıqla təkrar elanlar dövrəsi yaradacaq.
Yansıtma həmçinin xidmət adlarını və onların metadatasını başqa şəbəkəyə ötürür, bu da marşrutlaşdırma qərarı qədər məxfilik qərarıdır. Seçilmiş interfeysləri məhdudlaşdırın və quraşdırılmış versiya dəstəkləyirsə xidmət filtrlərindən istifadə edin ki, sərhədi yalnız səlahiyyətli istifadəçinin ehtiyac duyduğu elanlar keçsin.
Kəşf və istifadə ayrı nəticələr olaraq qalır. Müştəri, elan edilmiş ünvanı müştərinin olduğu yerdən əlçatmaz olan və ya giriş siyasətinin portunu rədd etdiyi xidmətin elanını görə bilər. Elan göründükdən sonra xidmət bağlantısını təsdiqləyin və tətbiq sabit DNS adını və ya açıq server ünvanını dəstəkləyirsə, link-local kəşfi genişləndirməkdənsə onu üstün tutun. Kriptoaçar marşrutlaşdırmasının təsviri bütün bunların dayandığı təyinat əsaslı həmyaşıd seçimini əhatə edir.