mDNS dros WireGuard: tair porth cyn i gydymaith ateb
Mae Avahi angen rhyngwyneb cymwys, llwybr i'r grŵp a chydymaith sy'n berchen ar y gyrchfan. Tair porth, tair archwiliad ar wahân, a dim lledaeniad.
Mae gosod y fflag multicast ar ddyfais WireGuard yn gwneud y rhyngwyneb yn gymwys ar gyfer meddalwedd darganfod, a dyna ddiwedd yr hyn y mae'r fflag yn ei wneud. Nid yw'n dweud wrth y protocol i ble y dylai pecyn grŵp fynd, ac ar ddyfais â sawl cydymaith nid oes un ateb amlwg. Mae tair porth ar wahân rhwng daemon sy'n rhedeg a gwasanaeth a ddarganfuwyd.
Profwch nhw yn eu trefn, oherwydd nid yw pasio un yn dweud dim wrthych am y nesaf.
Porth un: y fflag a pholisi'r daemon
Mae dyfais WireGuard Linux yn cael ei chreu fel cyswllt pwynt-i-bwynt heb ARP, ac nid yw'n cario'r fflag multicast yn ôl y rhagosodiad. Mae ychwanegu'r fflag yn newid rhyngwyneb lleol, a wneir gan beth bynnag sy'n rheoli'r ddyfais. Mae gan Avahi ei olwg ei hun ar y byd uwchben hynny, ac mae ei bolisi rhagosodedig yn hepgor rhyngwynebau pwynt-i-bwynt yn gyfan gwbl. Felly mae dau brawf cymhwyster annibynnol yn berthnasol cyn i un pecyn symud.
Felly mae ar y daemon angen penderfyniad penodol, nid proses sy'n rhedeg yn unig. Mae ei reolaethau dogfennol yn cynnwys allow-interfaces, deny-interfaces ac allow-point-to-point, a'r olaf yw'r gosodiad y mae pobl yn ei fethu.
Mae'r archwiliadau isod yn adrodd fflagiau'r cyswllt, y llwybr multicast ac a yw ffurfwedd y daemon yn cael ei dosrannu o gwbl:
ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check
Nid yw daemon a gychwynnodd yn llwyddiannus o reidrwydd wedi agor socedi ar y rhyngwyneb sy'n bwysig i chi. Darllenwch ei ffurfwedd effeithiol yn lle tybio bod statws y gwasanaeth yn hafal i gwmpas.
Porth dau: y llwybr i'r grŵp
Yr ail borth yw llwybrau cyffredin. Mae pecyn a gyfeiriwyd at 224.0.0.251 yn dilyn y tabl anfon fel popeth arall, ac os yw'r tabl yn ei anfon allan drwy ryngwyneb LAN ffisegol, ni fydd unrhyw ffurfwedd WireGuard yn newid hynny. Trwsiwch y llwybr yn gyntaf ac mae gweddill yr ymchwiliad yn byrhau. Edrychwch beth mae'r cnewyllyn yn ei adrodd ar gyfer cyfeiriad y grŵp cyn cyffwrdd ag unrhyw allweddi cydymaith.
| 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 |
Heb lwybr penodol, mae'r cnewyllyn yn disgyn yn ôl i driniaeth multicast y cyswllt ei hun, a dyna pam mae'r rhagosodiad yn edrych yn iawn ar LAN gwastad ac yn anghywir cyn gynted ag y dylai'r un traffig grŵp adael drwy dwnnel. Mae'r methiant yn ddistaw o ochr yr anfonwr: mae'r ymholiad yn mynd i rywle, ac ni ddaw'r ateb byth.
Porth tri: WireGuard yn dewis un cydymaith y pecyn
Mae WireGuard yn dewis cydymaith allan drwy chwilio'r gyrchfan yn y setiau cyfeiriadau a ganiateir, ac mae llwybr trosglwyddo Linux yn gwneud y chwiliad hwnnw unwaith y pecyn. Un canlyniad sydd, ac mae'r pecyn yn cael ei amgryptio ar gyfer y cydymaith hwnnw. Nid yw'r un rhagddodiad grŵp yn ymddangos yn rhestrau a ganiateir sawl cydymaith yn creu aelodaeth na dyblygu; mae'n creu chwiliad amwys sy'n datrys i un ohonynt.
Ar gyswllt dau-ben pwrpasol dyma'n union yr hyn yr ydych ei eisiau, oherwydd mae un derbynnydd bwriadedig ar gyfer y traffig grŵp a gludir yn fwriadol. Ar ryngwyneb â phump cydymaith mae'n gyfyngiad, nid yn nodwedd, ac mae'r atgyweiriad yn perthyn i'r dyluniad yn hytrach nag i ffurfwedd unrhyw un cydymaith.
Mae angen relay penodol, cysylltiadau ar wahân neu fecanwaith darganfod hollol wahanol ar ddyluniad lledaenu. Cyhoeddi rysáit dau-ben fel ateb ar gyfer llawer o gleientiaid oherwydd y gall pob cleient bingo'r porth cyrchfan yw sut mae hyn yn cael ei osod yn anghywir.
Mae'r cyfeiriad i mewn yn cael ei archwilio'n wahanol: rhaid i ffynhonnell pecyn a dderbyniwyd ddisgyn o fewn rhestr a ganiateir y cydymaith dilys. Nid yw ychwanegu cyrchfan multicast yno yn disodli perchnogaeth ffynhonnell wirioneddol yr anfonwr.
Mae adlewyrchiad yn ffin, nid yn bont
Mae adlewyrchydd Avahi yn atgynhyrchu negeseuon mDNS rhwng y rhyngwynebau y mae'n eu dewis, ar haen y cymhwysiad. Mae'n ffin ddarganfod rhwng rhwydweithiau, nid yn bont Ethernet ac nid yn llwybrydd multicast cyffredinol. Bydd dau adlewyrchydd wedi'u cysylltu â'r un rhwydweithiau yn creu dolen o gyhoeddiadau ailadroddus yn hawdd.
Mae adlewyrchiad hefyd yn trosglwyddo enwau gwasanaeth a'u metaddata i rwydwaith arall, sy'n benderfyniad preifatrwydd cymaint ag y mae'n benderfyniad llwybro. Cyfyngwch y rhyngwynebau a ddewiswyd, a defnyddiwch hidlwyr gwasanaeth lle mae'r fersiwn sydd wedi'i osod yn eu cefnogi, fel mai dim ond y cyhoeddiadau y mae defnyddiwr awdurdodedig eu hangen sy'n croesi'r ffin.
Mae darganfod a defnyddio yn parhau'n ganlyniadau ar wahân. Gall cleient weld cyhoeddiad ar gyfer gwasanaeth y mae ei gyfeiriad hysbysebu yn anhygyrch o le mae'r cleient, neu y mae ei bolisi mynediad yn gwrthod ei borth. Cadarnhewch y cysylltiad â'r gwasanaeth ar ôl i'r cyhoeddiad ymddangos, ac os yw'r cymhwysiad yn cefnogi enw DNS sefydlog neu gyfeiriad gweinydd penodol, mae'n well gennych hynny na ymestyn darganfod lleol y cyswllt. Mae disgrifiad llwybro drwy allwedd grifft yn cwmpasu'r dewis cydymaith yn seiliedig ar gyrchfan y mae hyn i gyd yn dibynnu arno.