mDNS WireGuard үстүндө: шериги жооп берээрден мурун үч дарбаза
Avahi үчүн ылайыктуу интерфейс, топко багыт жана багыттоону ээлеген шерик керек. Үч дарбаза, үч өзүнчө текшерүү жана эч кандай бөлүштүрүү жок.
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 конфигурациясы муну өзгөртпөйт. Адегенде багытты оңдоп алыңыз, анда тергөөнүн калганы кыскарат. Кайсы бир шериктин ачкычына тийүүдөн мурун ядро топ дареги жөнүндө эмне билдирерин караңыз.
| 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 |
Так багыт болбосо, ядро байланыштын өзүнүн multicast иштетүүсүнө кайтат, ошондуктан демейки абал тегиз LANда туура көрүнөт, ал эми ошол эле топтук трафик туннелден чыгышы керек болгон учурда туура эмес көрүнөт. Ийгиликсиздик жиберүүчү тараптан унчукпайт: суроо бир жерге кетет, ал эми жооп эч качан келбейт.
Үчүнчү дарбаза: WireGuard ар бир пакетке бир шерик тандайт
WireGuard чыгуучу шерикти уруксат берилген даректердин топтомдорунан багыттоону издетүү аркылуу тандайт, ал эми Linux жиберүү жолу бул издөөнү ар бир пакетке бир жолу аткарат. Натыйжа бирөө, жана пакет ошол шерик үчүн шифрленет. Бирдей топ префикси бир нече шериктин уруксат берилген тизмесинде көрүнсө, мүчөлүк же көчүрмө жаралбайт; ал алардын бирине чечилүүчү эки анжы издөөнү жаратат.
Эки учу бар атайын байланышта бул дал сиз каалаган нерсе, анткени атайын ташылып жаткан топтук трафик үчүн бир гана белгиленген алуучу бар. Беш шериги бар интерфейсте бул чектөө, касиет эмес, жана оңдоо кайсы бир шериктин конфигурациясында эмес, долбоордо болушу керек.
Тармакталган долбоорго ачык реле, өзүнчө байланыштар же такыр башка табуу механизми керек. Ар бир клиент шлюзга ping жасай алгандыктан эки учу бар рецептти көп кардарлуу чечим катары жарыялоо — бул дал ушундай туура эмес киргизилет.
Кирүү багыты башкача текшерилет: кабыл алынган пакеттин булагы аутентификацияланган шериктин уруксат берилген тизмесинин ичинде болушу керек. Ал жерге multicast багыттоосун кошуу жиберүүчүнүн чыныгы булак ээлигин алмаштырбайт.
Чагылуу — бул чек, көпүрө эмес
Avahi чагылдыргычы өзү тандаган интерфейстердин ортосунда mDNS билдирүүлөрүн колдонмо деңгээлинде кайра чыгарат. Бул тармактардын ортосундагы табуу чеги, Ethernet көпүрөсү эмес жана жалпы multicast маршрутизатору эмес. Бирдей тармактарга туташкан эки чагылдыргыч кайталанган жарыялоолордун циклини оңой эле түзөт.
Чагылуу ошондой эле кызмат аттарын жана алардын метаберилиштерин башка тармакка өткөрүп берет, бул багыттоо чечими сыяктуу эле купуялык чечими. Тандалган интерфейстерди чектеңиз жана орнотулган версия колдосо, кызмат чыпкаларын колдонуңуз, ошентип чекти укуктуу колдонуучуга керектүү жарыялоолор гана кесип өтөт.
Табуу жана пайдалануу өзүнчө натыйжалар бойдон калат. Клиент жарнамаланган дареги клиент турган жерден жеткиликсиз кызматтын же портуна анын кирүү саясаты уруксат бербеген кызматтын жарыясын көрө алат. Жарыя пайда болгондон кийин кызмат байланышын ырастаңыз, ал эми колдонмо туруктуу DNS атын же ачык сервер дарегин колдосо, байланыштын жергиликтүү табуусун кеңейтүүнүн ордуна ошону артык көрүңүз. Криптоачкыч багыттоосунун сүрөттөмөсү ушулардын баары негизделген багыттоого негизделген шерик тандоону камтыйт.