WireGuard құрылғысында multicast жалаушасын орнату интерфейсті табу бағдарламалары үшін жарамды етеді, жалаушаның жасайтыны осымен бітеді. Ол хаттамаға топтық пакеттің қайда баруы керектігін айтпайды, ал бірнеше теңдесі бар құрылғыда бір айқын жауап жоқ. Жұмыс істеп тұрған демон мен табылған қызметтің арасында үш бөлек қақпа тұр.

Оларды кезекпен тексеріңіз, өйткені біреуінен өту келесісі туралы ештеңе айтпайды.

Бірінші қақпа: жалауша және демон саясаты

Linux WireGuard құрылғысы ARP жоқ нүкте-нүкте байланысы ретінде жасалады және әдепкіде multicast жалаушасын ұстамайды. Жалаушаны қосу — бұл құрылғыны басқаратын кез келген нәрсе орындайтын жергілікті интерфейс өзгерісі. Avahi-дің осының үстінде өзінің әлемдік көзқарасы бар, және оның әдепкі саясаты нүкте-нүкте интерфейстерін толығымен өткізіп жібереді. Сондықтан бір пакет қозғалмай тұрып екі тәуелсіз жарамдылық тесті қолданылады.

Сондықтан демонға айқын шешім қажет, тек жұмыс істеп тұрған процесс емес. Оның құжатталған басқару элементтеріне allow-interfaces, deny-interfaces және allow-point-to-point кіреді, ал соңғысы — адамдар жіберіп алатын параметр.

Төмендегі тексерулер байланыс жалаушаларын, multicast маршрутын және демон конфигурациясының мүлдем талданатынын хабарлайды:

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

Сәтті іске қосылған демон сізге маңызды интерфейсте сокеттерді ашқан болуы міндетті емес. Қызмет мәртебесі қамтуға тең деп болжамдаудың орнына оның тиімді конфигурациясын оқыңыз.

Екінші қақпа: топқа баратын маршрут

Екінші қақпа — қарапайым маршруттау. 224.0.0.251 мекенжайына жіберілген пакет қалған барлық нәрсе сияқты жіберу кестесін ұстанады, ал кесте оны физикалық LAN интерфейсі арқылы шығарса, ешқандай WireGuard конфигурациясы мұны өзгертпейді. Алдымен маршрутты түзетіңіз, сонда тергеудің қалғаны қысқарады. Кез келген теңдес кілтіне тимей тұрып, ядро топ мекенжайы туралы не хабарлайтынын қараңыз.

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

Нақты маршрут болмаса, ядро байланыстың өзінің multicast өңдеуіне қайтады, сондықтан әдепкі жағдай тегіс LAN-да дұрыс көрінеді, ал сол топтық трафик туннельден шығуы керек болған сәтте қате көрінеді. Сәтсіздік жіберуші жағынан үнсіз: сұрау бір жерге кетеді, ал жауап ешқашан келмейді.

Үшінші қақпа: WireGuard әр пакетке бір теңдес таңдайды

WireGuard шығыс теңдесін рұқсат етілген мекенжайлар жиынтықтарынан межені іздеу арқылы таңдайды, ал Linux жіберу жолы бұл іздеуді әр пакетке бір рет орындайды. Нәтиже біреу, және пакет сол теңдес үшін шифрланады. Бірдей топ префиксі бірнеше теңдестің рұқсат етілген тізімінде көрінсе, мүшелік немесе көшірме жасалмайды; ол олардың біріне шешілетін екіұшты іздеу жасайды.

Екі ұшты арнайы байланыста бұл дәл сіз қалаған нәрсе, өйткені әдейі тасымалданатын топтық трафик үшін бір ғана көзделген алушы бар. Бес теңдесі бар интерфейсте бұл шектеу, қасиет емес, және түзету қандай да бір теңдестің конфигурациясында емес, дизайнда болуы керек.

Тармақталған дизайнға айқын реле, бөлек байланыстар немесе мүлдем басқа табу механизмі қажет. Әр клиент шлюзді ping ете алатындықтан екі ұшты рецептіні көпклиенттік шешім ретінде жариялау — бұл дәл осылай қате енгізіледі.

Кіріс бағыты басқаша тексеріледі: алынған пакеттің көзі аутентификацияланған теңдестің рұқсат етілген тізімінің ішінде болуы керек. Онда multicast межесін қосу жіберушінің нақты көз иелігін алмастырмайды.

Шағылысу — шекара, көпір емес

Avahi шағылдырғышы өзі таңдаған интерфейстер арасында mDNS хабарламаларын қолданбалы деңгейде қайта шығарады. Бұл желілер арасындағы табу шекарасы, Ethernet көпірі емес және жалпы multicast маршрутизаторы емес. Бірдей желілерге қосылған екі шағылдырғыш қайталанатын хабарландырулардың циклін оңай жасайды.

Шағылысу қызмет атаулары мен олардың метадеректерін басқа желіге тапсырады, бұл маршруттау шешімі сияқты құпиялылық шешімі де. Таңдалған интерфейстерді шектеңіз және орнатылған нұсқа қолдаса, қызмет сүзгілерін пайдаланыңыз, осылайша шекараны тек уәкілетті пайдаланушыға қажетті хабарландырулар ғана кесіп өтеді.

Табу және пайдалану бөлек нәтижелер болып қалады. Клиент жарнамаланған мекенжайы клиент тұрған жерден қолжетімсіз қызметтің немесе портына оның қатынау саясаты рұқсат бермейтін қызметтің хабарландыруын көре алады. Хабарландыру пайда болғаннан кейін қызмет байланысын растаңыз, ал қолданба тұрақты DNS атауын немесе айқын сервер мекенжайын қолдаса, оны байланыстың жергілікті табуын кеңейтуден артық көріңіз. Криптокілттік маршруттау сипаттамасы осылардың бәрі негізделетін межеге негізделген теңдес таңдауын қамтиды.

Қатысты мақалалар