Sendu vekpako tuj post malŝalto kaj la komputilo revenas; la sama komando la sekvan matenon faras nenion. Nenio en la VPN-agordo ŝanĝiĝis, kaj la porda plusendado ankoraŭ celas la ĝustan adreson. La diferenco estas la tempo: la najbara tabelo de la enkursigilo forgesis la dormantan maŝinon, do ĝi ne havas MAC-adreson por meti en la kadron. Ĝuste tiu eksvalidiĝo, ne la tunelo, klarigas plej multajn malsukcesojn de Wake-on-LAN tra VPN.

La unua veko funkcias kaj la sekva ne

Enkursigilo plusendas kadron al privata adreso per serĉo de la celo en sia najbara tabelo. Dum la maŝino funkcias ĝi respondas al ARP, do la mapado restas freŝa. Post kiam ĝi malŝaltiĝas, nenio respondas, la rikordo eksvalidiĝas post kelkaj minutoj, kaj postaj kadroj al tiu adreso estas forĵetataj eĉ se la IP kaj la porda plusendado restas validaj.

La ŝablono diras al vi kiun fiaskon vi havas. Veko kiu neniam funkcias montras al la liverado: malĝusta pordo, malĝusta celo aŭ fajroŝirmilo kiu forĵetas la pakon antaŭ ol ĝi atingas la LAN. Veko kiu funkcias unufoje kaj poste malsukcesas dum horoj montras al la najbara rikordo. Veko kiu funkcias ĝis la luo de DHCP ŝanĝiĝas montras al la adresado, kiun reparas rezervo.

Konfirmu ke la adreso estas stabila antaŭ ol tuŝi ARP. Se la dormanta maŝino prenas novan adreson post eksvalidiĝo de luo, fiksita najbara rikordo por la malnova adreso estos samtempe konstanta kaj senutila. Unue agordu DHCP-rezervon por ke la adreso postvivu restartojn.

Kion la magia pako bezonas de la reto

La utilŝarĝo estas simpla: 102 bajtoj el ses bajtoj 0xFF sekvataj de la cela MAC-adreso dek ses fojojn, kutime sendataj al UDP-pordo 9. En plata LAN ĝi eliras kiel dissendo, ĉiu pordo ricevas ĝin, kaj la malŝaltita retkarto rekonas sian propran adreson.

Tra VPN la pako alvenas al la enkursigilo kiel unuopa sendo al privata adreso aŭ kiel subrete direktita dissendo. En la unuopa kazo la enkursigilo devas solvi la celon al MAC-adreso antaŭ ol meti la kadron sur la LAN, kaj ĝuste tiu solvo malsukcesas dum la gastiganto dormas.

Kelkaj iloj sendas al pordo 7 anstataŭ 9, kaj kelkaj aparatoj blokas direktitan dissendon defaŭlte. Tiuj estas liveraj fiaskoj, ne ARP-fiaskoj, do kontrolu la celon kaj la pordon antaŭ ol ŝanĝi la najbaran tabelon.

Tri vojoj al dormanta gastiganto

Vi havas tri praktikajn manierojn meti la kadron sur la LAN, kaj la ĝusta elekto dependas de tio, kion vi regas.

MethodWhat it needsWhere it breaks
Subnet-directed broadcastA wake tool that accepts a broadcast address and a router that forwards itBroadcast filtering, or a tool that only takes a MAC
Helper on the LANAn always-on host such as the VPN serverNo suitable host, or the host cannot reach the target VLAN
Permanent neighbour entryRouter shell access and the target MACNIC replacement or address change

Elektu la helpan gastiganton kiam ĝi ekzistas, ĉar ĝi dissendas surloke kaj bezonas neniun escepton en la enkursigilo. Elektu direktitan dissendon kiam la enkursigilo jam permesas ĝin kaj la vekilo subtenas adreson. Elektu la senmovan rikordon kiam neniu el ambaŭ haveblas kaj vi povas ruli komandon sur la enkursigilo.

Tiuj ne reciproke ekskluzivas. Konstanta rikordo ankaŭ ebligas al la unuopa vojo postvivi dormon, kio utilas kiam la VPN-kliento povas sendi nur al specifa adreso.

Faru la najbaran rikordon konstanta

Sur enkursigilo kun Linux-ŝelo, unu komando fiksas la mapadon. La valoroj ĉi tie apartenas al ekzempla LAN kaj devas esti anstataŭigitaj per la viaj:

ip neigh replace 192.168.50.23 lladdr 3c:7c:3f:12:9a:4e dev br0 nud permanent
ip neigh show dev br0 | grep 192.168.50.23

La stato nud permanent tenas la rikordon tra ARP-tempolimoj kaj uzas ĝin por plusendado dum la maŝino estas malŝaltita. La dua komando pruvas ke la rikordo ekzistas kaj montras la interfacon al kiu ĝi apartenas, kio gravas sur enkursigiloj kun aparta gastobruo aŭ VLAN.

Faru ĝin restartoimuna per kiu ajn hoko la firmaro proponas: skripto en /jffs/scripts sur Asuswrt-Merlin, systemd oneshot-unuo sur Linux-servilo kiel kluzo, Neighbor= stanza en systemd-networkd, aŭ rikordo en /etc/ethers, kiun legas la lokaj iloj. Komando tajpita en ŝelon malaperas ĉe la sekva restarto, kaj tio estas la plej ofta kaŭzo kial funkcianta riparo ŝajne ĉesas funkcii.

Testu de ekstere kaj sciu kiam forigi ĝin

Metu la maŝinon en dormon kaj atendu almenaŭ dek minutojn, sufiĉe longe por ke iu ajn dinamika rikordo eksvalidiĝu. Poste sendu la vekpeton de la VPN-kliento kaj observu ambaŭ flankojn de la enkursigilo:

tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9

La unua kapto pruvas ke la pako alvenis el la tunelo; la dua pruvas ke la enkursigilo metis kadron sur la LAN. Valida magia pako aperas kiel 102 bajtoj kun ripetita MAC, do kontrolu la longon same kiel la celon. Se la kadro forlasas la LAN-ponton kaj la maŝino restas malŝaltita, la restanta problemo estas sur la aparato: rapida starto, profunda dormo aŭ BIOS-agordo kiu fortranĉas la potencon al la retkarto.

Forigu la rikordon kiam la retkarto ŝanĝiĝas, kaj ĝisdatigu ĝin kiam vi movas la maŝinon al alia adreso. Konstanta mapado estas intenca escepto, kaj escepto kiun neniu memoras estas kiel estonta tekkomputilo finas ricevante kadrojn destinitajn por emerita surtabla komputilo.

Rilataj artikoloj