Pošlite prebúdzací paket hneď po vypnutí a počítač sa vráti; ten istý príkaz na druhý deň ráno nič neurobí. V konfigurácii VPN sa nič nezmenilo a presmerovanie portu stále ukazuje na správnu adresu. Rozdiel je v čase: tabuľka susedov routera zabudla spiacu mašinu, takže nemá MAC adresu, ktorú by vložila do rámca. Práve toto vypršanie, nie tunel, vysvetľuje väčšinu zlyhaní Wake-on-LAN cez VPN.

Prvé prebudenie funguje, druhé nie

Router preposiela rámec na privátnu adresu tak, že cieľ hľadá vo svojej tabuľke susedov. Kým stroj beží, odpovedá na ARP, takže mapovanie zostáva čerstvé. Keď sa vypne, nič neodpovedá, záznam po niekoľkých minútach vyprší a neskoršie rámce na túto adresu sa zahodia, aj keď IP a presmerovanie portu zostávajú platné.

Vzor vám povie, ktorú závadu máte. Prebudenie, ktoré nikdy nefunguje, ukazuje na doručenie: nesprávny port, nesprávny cieľ alebo firewall, ktorý paket zahodí skôr, než sa dostane do LAN. Prebudenie, ktoré raz zaberie a potom hodiny zlyháva, ukazuje na záznam suseda. Prebudenie, ktoré funguje do zmeny lízingu DHCP, ukazuje na adresovanie, ktoré rieši rezervácia.

Než sa dotknete ARP, overte, že adresa je stabilná. Ak spiacu mašinu po vypršaní lízingu získa novú adresu, pripnutý záznam suseda pre starú adresu bude zároveň trvalý aj zbytočný. Najprv nastavte rezerváciu DHCP, aby adresa prežila reštarty.

Čo magický paket od siete potrebuje

Užitočné zaťaženie je jednoduché: 102 bajtov zo šiestich bajtov 0xFF, za ktorými šestnásťkrát nasleduje cieľová MAC adresa, zvyčajne odosielané na port UDP 9. V plochej LAN vychádza ako broadcast, každý port ho prijme a vypnutá sieťová karta rozpozná vlastnú adresu.

Cez VPN dorazí paket do routera ako unicast na privátnu adresu alebo ako broadcast smerovaný do podsiete. V prípade unicast musí router preložiť cieľ na MAC adresu, než môže rámec vložiť do LAN, a práve tento preklad zlyháva, kým hostiteľ spí.

Niektoré nástroje posielajú na port 7 namiesto 9 a niektoré zariadenia štandardne blokujú smerovaný broadcast. To sú chyby doručenia, nie ARP, preto pred zmenou tabuľky susedov skontrolujte cieľ a port.

Tri cesty k spiacemu hostiteľovi

Rámec dostanete do LAN tromi praktickými spôsobmi a správna voľba závisí od toho, čo ovládate.

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

Zvoľte pomocného hostiteľa, keď nejaký je, pretože vysiela na linku a nepotrebuje výnimku v routeri. Zvoľte smerovaný broadcast, keď ho router už povoľuje a prebúdzací nástroj podporuje adresu. Zvoľte statický záznam, keď ani jedno nie je dostupné a môžete v routeri spustiť príkaz.

Tieto možnosti sa nevylučujú. Trvalý záznam tiež umožní, aby unicast cesta prežila spánok, čo je užitočné, keď klient VPN vie posielať len na konkrétnu adresu.

Urobte záznam suseda trvalým

Na routeri s linuxovým shellom pripne mapovanie jediný príkaz. Hodnoty tu patria ukážkovej LAN a musíte ich nahradiť svojimi:

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

Stav nud permanent drží záznam aj cez časové limity ARP a používa ho na preposielanie, kým je stroj vypnutý. Druhý príkaz dokazuje, že záznam existuje, a ukazuje rozhranie, ku ktorému patrí, čo je dôležité na routeroch so samostatným hostovským mostom alebo VLAN.

Urobte ho odolným voči reštartu pomocou akéhokoľvek háku, ktorý firmware ponúka: skript v /jffs/scripts na Asuswrt-Merlin, oneshot jednotka systemd na linuxovom serveri v role brány, Neighbor= stanza v systemd-networkd, alebo záznam v /etc/ethers, ktorý lokálne nástroje čítajú. Príkaz napísaný do shellu zmizne pri ďalšom reštarte, a to je najčastejší dôvod, prečo funkčná oprava vyzerá, že prestala fungovať.

Otestujte to zvonku a vedzte, kedy záznam odstrániť

Uspite stroj a počkajte aspoň desať minút, dosť dlho na to, aby vypršal každý dynamický záznam. Potom pošlite prebúdzaciu požiadavku z klienta VPN a sledujte obe strany routera:

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

Prvé zachytenie dokazuje, že paket prišiel z tunela; druhé, že router vložil rámec do LAN. Platný magický paket vyzerá ako 102 bajtov s opakovanou MAC, preto skontrolujte dĺžku aj cieľ. Ak rámec opustí LAN most a stroj zostane vypnutý, zostávajúci problém je v zariadení: rýchly štart, hlboký spánok alebo nastavenie v BIOS, ktoré odpojí napájanie sieťovej karty.

Záznam odstráňte, keď sa zmení sieťová karta, a aktualizujte ho, keď stroj presuniete na inú adresu. Trvalé mapovanie je vedomá výnimka a výnimka, na ktorú si nikto nespomenie, je spôsob, akým budúci notebook začne dostávať rámce určené vyradenému stolnému počítaču.

Súvisiace články