Trimite un pachet de trezire imediat după oprire și calculatorul revine; aceeași comandă a doua zi dimineață nu face nimic. Nimic din configurația VPN nu s-a schimbat, iar redirecționarea portului indică în continuare adresa corectă. Diferența este timpul: tabela de vecini a routerului a uitat mașina adormită, așa că nu are adresă MAC pe care să o pună în cadru. Această expirare, nu tunelul, explică majoritatea eșecurilor Wake-on-LAN printr-un VPN.

Prima trezire funcționează, următoarea nu

Un router trimite un cadru către o adresă privată căutând destinația în tabela sa de vecini. Cât timp mașina rulează, răspunde la ARP, așa că maparea rămâne proaspătă. Când se oprește, nimic nu răspunde, intrarea expiră după câteva minute, iar cadrele ulterioare către acea adresă sunt aruncate, deși IP-ul și redirecționarea portului rămân valide.

Modelul îți spune ce eșec ai. O trezire care nu funcționează niciodată indică livrarea: port greșit, destinație greșită sau un firewall care aruncă pachetul înainte să ajungă în LAN. O trezire care funcționează o dată și apoi eșuează ore întregi indică intrarea de vecin. O trezire care funcționează până când se schimbă lease-ul DHCP indică adresarea, pe care o rezervare o repară.

Confirmă că adresa este stabilă înainte de a atinge ARP. Dacă mașina adormită primește o adresă nouă la expirarea lease-ului, o intrare de vecin fixată pentru adresa veche va fi simultan permanentă și inutilă. Setează mai întâi o rezervare DHCP pentru ca adresa să supraviețuiască repornirilor.

De ce are nevoie pachetul magic de la rețea

Sarcina utilă este simplă: 102 octeți din șase octeți 0xFF urmați de adresa MAC țintă de șaisprezece ori, de obicei trimiși către portul UDP 9. Într-un LAN plat iese ca difuzare, fiecare port îl primește, iar placa de rețea oprită își recunoaște propria adresă.

Printr-un VPN pachetul ajunge la router ca unicast către o adresă privată sau ca difuzare direcționată către subrețea. În cazul unicast routerul trebuie să rezolve destinația într-o adresă MAC înainte de a pune cadrul în LAN, iar exact acea rezolvare eșuează cât timp gazda doarme.

Unele instrumente trimit către portul 7 în loc de 9, iar unele echipamente blochează difuzarea direcționată implicit. Sunt eșecuri de livrare, nu de ARP, așa că verifică destinația și portul înainte de a modifica tabela de vecini.

Trei căi către o gazdă adormită

Ai trei moduri practice de a aduce cadrul în LAN, iar alegerea corectă depinde de ce controlezi.

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

Alege gazda ajutătoare când există, pentru că difuzează pe legătură și nu are nevoie de nicio excepție în router. Alege difuzarea direcționată când routerul o permite deja și instrumentul de trezire acceptă o adresă. Alege intrarea statică atunci când niciuna nu e disponibilă și poți rula o comandă pe router.

Acestea nu se exclud. O intrare permanentă face ca și calea unicast să supraviețuiască somnului, ceea ce e util când clientul VPN poate trimite doar către o adresă anume.

Fă intrarea de vecin permanentă

Pe un router cu shell Linux, o singură comandă fixează maparea. Valorile de aici aparțin unui LAN exemplu și trebuie înlocuite cu ale tale:

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

Starea nud permanent menține intrarea peste expirările ARP și o folosește pentru forwardare cât timp mașina este oprită. A doua comandă dovedește că intrarea există și arată interfața căreia îi aparține, ceea ce contează pe routerele cu un bridge de oaspeți sau un VLAN separat.

Fă-o rezistentă la repornire prin orice cârlig oferă firmware-ul: un script în /jffs/scripts pe Asuswrt-Merlin, o unitate oneshot systemd pe un server Linux ca gateway, o Neighbor= stanza în systemd-networkd, sau o intrare în /etc/ethers pe care instrumentele locale o citesc. O comandă tastată într-un shell dispare la următoarea repornire, și acesta este cel mai frecvent motiv pentru care o remediere funcțională pare să se oprească.

Testează din exterior și știi când să o elimini

Adoarme mașina și așteaptă cel puțin zece minute, suficient pentru ca orice intrare dinamică să expire. Apoi trimite cererea de trezire din clientul VPN și urmărește ambele părți ale routerului:

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

Prima captură dovedește că pachetul a venit din tunel; a doua dovedește că routerul a pus un cadru în LAN. Un pachet magic valid apare ca 102 octeți cu MAC-ul repetat, așa că verifică lungimea și destinația. Dacă cadrul părăsește bridge-ul LAN și mașina rămâne oprită, problema rămasă este la dispozitiv: pornire rapidă, somn profund sau o setare BIOS care întrerupe alimentarea plăcii de rețea.

Elimină intrarea când se schimbă placa de rețea și actualizeaz-o când muți mașina pe altă adresă. O mapare permanentă este o excepție deliberată, iar o excepție de care nu își amintește nimeni este felul în care un viitor laptop ajunge să primească cadre destinate unui desktop retras.

Articole similare