Wake-on-LAN sa VPN tumigil sa paggana? Ayusin ang ARP entry
Ang mga magic packet ay tumatawid sa tunnel, ngunit itinatapon ng router ang mga ito kapag nag-expire ang ARP entry nito. Ikumpara ang tatlong daan ng paghahatid, pagkatapos ikabit nang permanente ang MAC address.
Magpadala ng wake packet kaagad pagkatapos ng shutdown at bumabalik ang PC; ang parehong utos sa susunod na umaga ay walang ginagawa. Walang nagbago sa VPN configuration, at ang port forward ay tumuturo pa rin sa tamang address. Ang pagkakaiba ay oras: nakalimutan na ng neighbor table ng router ang natutulog na machine, kaya wala itong MAC address na ilalagay sa frame. Ang pag-expire na iyon, hindi ang tunnel, ang nagpapaliwanag sa karamihan ng Wake-on-LAN na pagkabigo sa VPN.
Gumagana ang unang wake at hindi ang susunod
Ang router ay nagpapasa ng frame sa isang pribadong address sa pamamagitan ng paghahanap ng destinasyon sa neighbor table nito. Habang tumatakbo ang machine ay tumutugon ito sa ARP, kaya nananatiling sariwa ang mapping. Kapag na-off ito, walang tumutugon, nag-expire ang entry pagkalipas ng ilang minuto, at ang mga sumunod na frame sa address na iyon ay itinatapon kahit may bisa pa ang IP at port forward.
Sinasabi ng pattern kung aling pagkabigo ang mayroon ka. Ang wake na hindi kailanman gumagana ay tumuturo sa paghahatid: maling port, maling destinasyon, o firewall na nagtatapon ng packet bago pa ito umabot sa LAN. Ang wake na gumana nang isang beses at pagkatapos ay nabigo nang maraming oras ay tumuturo sa neighbor entry. Ang wake na gumagana hanggang magbago ang DHCP lease ay tumuturo sa addressing, na inaayos ng reservation.
Tiyakin na stable ang address bago hawakan ang ARP. Kung ang natutulog na machine ay kukuha ng bagong address pagkatapos mag-expire ang lease, ang naka-pin na neighbor entry para sa lumang address ay permanente at walang silbi nang sabay. Mag-set muna ng DHCP reservation upang mabuhay ang address pagkatapos ng reboot.
Ano ang kailangan ng magic packet mula sa network
Simple ang payload: 102 bytes na binubuo ng anim na 0xFF byte na sinusundan ng target MAC address nang labing-anim na beses, karaniwang ipinapadala sa UDP port 9. Sa flat LAN lumalabas ito bilang broadcast, tinatanggap ito ng bawat port, at kinikilala ng patay na network card ang sariling address.
Sa VPN dumarating ang packet sa router bilang unicast sa isang pribadong address o bilang broadcast na naka-target sa subnet. Sa unicast kailangang i-resolve ng router ang destinasyon sa MAC address bago mailagay ang frame sa LAN, at iyon mismo ang nabibigo habang natutulog ang host.
Ang ilang tool ay nagpapadala sa port 7 sa halip na 9, at ang ilang appliance ay nagba-block ng directed broadcast bilang default. Mga pagkabigo iyon sa paghahatid, hindi sa ARP, kaya suriin ang destinasyon at port bago baguhin ang neighbor table.
Tatlong daan patungo sa natutulog na host
Mayroon kang tatlong praktikal na paraan upang dalhin ang frame sa LAN, at ang tamang pagpili ay depende sa kinokontrol mo.
| Method | What it needs | Where it breaks |
|---|---|---|
| Subnet-directed broadcast | A wake tool that accepts a broadcast address and a router that forwards it | Broadcast filtering, or a tool that only takes a MAC |
| Helper on the LAN | An always-on host such as the VPN server | No suitable host, or the host cannot reach the target VLAN |
| Permanent neighbour entry | Router shell access and the target MAC | NIC replacement or address change |
Piliin ang helper host kapag mayroon, dahil nagbo-broadcast ito sa link at hindi kailangan ng exception sa router. Piliin ang directed broadcast kapag pinapayagan na ito ng router at tinatanggap ng wake tool ang isang address. Piliin ang static entry kapag wala ang dalawa at makakapagpatakbo ka ng command sa router.
Hindi ito nagbubukod sa isa't isa. Ang permanenteng entry ay nagpapahintulot din sa unicast path na makalampas sa sleep, na kapaki-pakinabang kapag ang VPN client ay makapagpadala lamang sa isang partikular na address.
Gawing permanente ang neighbor entry
Sa router na may Linux shell, isang command ang nagpi-pin sa mapping. Ang mga halaga dito ay pag-aari ng isang halimbawang LAN at dapat palitan ng sarili mo:
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.23Ang estado nud permanent ay nagpapanatili ng entry sa mga ARP timeout at ginagamit ito sa forwarding habang patay ang machine. Ang ikalawang command ay nagpapatunay na may entry at ipinapakita ang interface na kinabibilangan nito, na mahalaga sa mga router na may hiwalay na guest bridge o VLAN.
Gawin itong matibay sa reboot sa pamamagitan ng anumang hook na iniaalok ng firmware: isang script sa /jffs/scripts sa Asuswrt-Merlin, isang systemd oneshot unit sa Linux server bilang gateway, isang Neighbor= stanza sa systemd-networkd, o isang entry sa /etc/ethers na binabasa ng lokal na tooling. Ang command na tinipa sa shell ay nawawala sa susunod na restart, at iyon ang pinakakaraniwang dahilan kung bakit ang gumaganang ayos ay tila tumitigil.
Subukan mula sa labas at alamin kung kailan ito aalisin
Ipatulog ang machine at maghintay ng hindi bababa sa sampung minuto, sapat para mag-expire ang anumang dynamic na entry. Pagkatapos ay ipadala ang wake request mula sa VPN client at panoorin ang magkabilang panig ng router:
tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9Ang unang capture ay nagpapatunay na dumating ang packet mula sa tunnel; ang pangalawa na naglagay ang router ng frame sa LAN. Ang valid na magic packet ay lumalabas bilang 102 bytes na may paulit-ulit na MAC, kaya suriin ang haba at ang destinasyon. Kung aalis ang frame sa LAN bridge at mananatiling patay ang machine, ang natitirang problema ay sa device: fast startup, deep sleep, o setting sa BIOS na pumuputol ng kuryente sa network card.
Alisin ang entry kapag nagbago ang network card, at i-update ito kapag inilipat mo ang machine sa ibang address. Ang permanenteng mapping ay sinadyang exception, at ang exception na walang nakakaalala ay ang paraan kung paano ang isang laptop sa hinaharap ay makakatanggap ng mga frame na para sa retiradong desktop.