Wake-on-LAN VPN-i kaudu lakkas töötamast? Paranda ARP-kirje
Maagilised paketid läbivad tunnelit, kuid ruuter viskab need ära, kui selle ARP-kirje aegub. Võrdle kolme kohaletoimetamise teed ja kinnita MAC-aadress jäädavalt.
Saada äratuspakett kohe pärast väljalülitamist ja arvuti tuleb tagasi; sama käsk järgmisel hommikul ei tee midagi. VPN-i seadetes pole midagi muutunud ja pordi edasisaatmine osutab endiselt õigele aadressile. Erinevus on ajas: ruuteri naabritabel on magava masina unustanud, seega pole tal MAC-aadressi, mille kaadrisse panna. Just see aegumine, mitte tunnel, seletab enamikku Wake-on-LAN-i tõrkeid VPN-i kaudu.
Esimene äratamine töötab, järgmine mitte
Ruuter saadab kaadri privaataadressile, otsides sihtkoha oma naabritabelist. Kuni masin töötab, vastab see ARP-ile, nii et vastendus püsib värske. Kui see välja lülitub, ei vasta miski, kirje aegub mõne minuti pärast ja hilisemad kaadrid sellele aadressile visatakse ära, kuigi IP ja pordi edasisaatmine jäävad kehtima.
Muster ütleb, milline tõrge sul on. Äratamine, mis ei tööta kunagi, osutab kohaletoimetamisele: vale port, vale sihtkoht või tulemüür, mis viskab paketi ära enne, kui see LAN-i jõuab. Äratamine, mis töötab korra ja siis tunde ebaõnnestub, osutab naaberkirjele. Äratamine, mis töötab kuni DHCP-rendi muutumiseni, osutab adresseerimisele, mida parandab broneering.
Enne ARP-i puudutamist veendu, et aadress on püsiv. Kui magav masin saab rendi aegumisel uue aadressi, on vana aadressi jaoks kinnitatud naaberkirje korraga püsiv ja kasutu. Sea esmalt DHCP-broneering, et aadress jääks taaskäivitustest alles.
Mida maagiline pakett võrgult vajab
Kasulik koormus on lihtne: 102 baiti kuuest 0xFF-baidist, millele järgneb siht-MAC-aadress kuusteist korda, tavaliselt saadetakse UDP-pordile 9. Lamedas LAN-is läheb see välja levitamisena, iga port võtab selle vastu ja väljalülitatud võrgukaart tunneb ära oma aadressi.
VPN-i kaudu jõuab pakett ruuterini üksiksaatega privaataadressile või alamvõrku suunatud levitamisena. Üksiksaate korral peab ruuter sihtkoha MAC-aadressiks lahendama enne, kui saab kaadri LAN-i panna, ja just see lahendamine ebaõnnestub, kui host magab.
Mõned tööriistad saadavad pordile 7, mitte 9, ja mõned seadmed blokeerivad suunatud levitamise vaikimisi. Need on kohaletoimetamise tõrked, mitte ARP-i tõrked, seega kontrolli sihtkohta ja porti enne naabritabeli muutmist.
Kolm teed magava hostini
Kaadri LAN-i saamiseks on kolm praktilist viisi ja õige valik sõltub sellest, mida sa kontrollid.
| 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 |
Vali abistav host, kui see olemas on, sest see levitab lingil ega vaja ruuteris erandit. Vali suunatud levitamine, kui ruuter juba lubab seda ja äratustööriist toetab aadressi. Vali staatiline kirje, kui kumbki pole saadaval ja sa saad ruuteris käsku käivitada.
Need ei välista üksteist. Püsiv kirje võimaldab ka üksiksaate teel unest üle saada, mis on kasulik, kui VPN-klient saab saata ainult kindlale aadressile.
Tee naaberkirje püsivaks
Linuxi kestaga ruuteris kinnitab vastenduse üks käsk. Siinsed väärtused kuuluvad näidis-LAN-i ja tuleb asendada enda omadega:
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.23Olek nud permanent hoiab kirjet üle ARP-i aegumiste ja kasutab seda edasisaatmiseks, kui masin on väljas. Teine käsk tõestab, et kirje on olemas, ja näitab liidest, mille juurde see kuulub, mis loeb ruuteritel, kus on eraldi külalisild või VLAN.
Tee see taaskäivitusele vastupidavaks ükskõik millise konksu kaudu, mida püsivara pakub: skript asukohas /jffs/scripts Asuswrt-Merlinis, systemd oneshot üksus Linuxi serveris lüüsina, Neighbor= stanza systemd-networkd-is või kirje failis /etc/ethers, mida kohalikud tööriistad loevad. Kesta sisestatud käsk kaob järgmisel taaskäivitusel ja see on kõige tavalisem põhjus, miks töötav parandus näib lakkavat töötamast.
Testi väljastpoolt ja tea, millal see eemaldada
Pane masin magama ja oota vähemalt kümme minutit, kauem kui mis tahes dünaamilise kirje aegumine. Seejärel saada äratustaotlus VPN-kliendist ja jälgi ruuteri mõlemat poolt:
tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9Esimene püüdmine tõestab, et pakett saabus tunnelist; teine tõestab, et ruuter pani kaadri LAN-i. Kehtiv maagiline pakett ilmub 102 baidina, kus MAC kordub, seega kontrolli nii pikkust kui sihtkohta. Kui kaader lahkub LAN-sillalt ja masin jääb välja, on ülejäänud probleem seadmes: kiirkäivitus, sügav uni või BIOS-i säte, mis katkestab võrgukaardi toite.
Eemalda kirje, kui võrgukaart vahetub, ja uuenda seda, kui viid masina teisele aadressile. Püsiv vastendus on teadlik erand ja erand, mida keegi ei mäleta, on viis, kuidas tulevane sülearvuti hakkab saama kaadreid, mis olid mõeldud pensionile jäänud lauaarvutile.