Küldjön ébresztőcsomagot közvetlenül a leállítás után, és a gép visszatér; ugyanaz a parancs másnap reggel semmit sem tesz. A VPN beállításaiban semmi sem változott, és a porttovábbítás továbbra is a helyes címre mutat. A különbség az idő: az útválasztó szomszédtáblája elfelejtette az alvó gépet, így nincs MAC-címe, amit a keretbe tenne. Ez a lejárat, nem az alagút magyarázza a VPN-en át történő Wake-on-LAN hibák többségét.

Az első ébresztés működik, a következő nem

Az útválasztó a szomszédtáblájában keresi meg a célt, és így továbbítja a keretet egy privát címre. Amíg a gép fut, válaszol az ARP-re, így a hozzárendelés friss marad. Amikor kikapcsol, semmi sem válaszol, a bejegyzés néhány perc múlva lejár, és az arra a címre küldött későbbi kereteket eldobja, pedig az IP és a porttovábbítás továbbra is érvényes.

A minta megmondja, melyik hibája van. Az ébresztés, amely soha nem működik, a kézbesítésre utal: rossz port, rossz cél vagy tűzfal, amely még a LAN elérése előtt eldobja a csomagot. Az ébresztés, amely egyszer működik, majd órákig meghiúsul, a szomszédbejegyzésre utal. Az ébresztés, amely a DHCP-bérlet változásáig működik, a címzésre utal, amit egy foglalás javít.

Az ARP-hez nyúlás előtt ellenőrizze, hogy a cím stabil. Ha az alvó gép a bérlet lejárta után új címet kap, a régi címhez rögzített szomszédbejegyzés egyszerre lesz végleges és hasznavehetetlen. Először állítson be DHCP-foglalást, hogy a cím túlélje az újraindításokat.

Mire van szüksége a mágikus csomagnak a hálózattól

A hasznos teher egyszerű: 102 bájt, hat 0xFF bájtból, amelyet tizenhatszor követ a cél MAC-cím, általában az UDP 9-es portra küldve. Sík LAN-on sugárzásként megy ki, minden port megkapja, és a kikapcsolt hálózati kártya felismeri a saját címét.

VPN-en át a csomag unicastként érkezik az útválasztóhoz egy privát címre, vagy alhálózat felé irányított sugárzásként. Unicast esetben az útválasztónak a keret LAN-ra helyezése előtt MAC-címmé kell feloldania a célt, és pontosan ez a feloldás hiúsul meg, amíg a gazdagép alszik.

Egyes eszközök a 9-es helyett a 7-es portra küldenek, és egyes berendezések alapértelmezés szerint blokkolják az irányított sugárzást. Ezek kézbesítési hibák, nem ARP-hibák, ezért a szomszédtábla módosítása előtt ellenőrizze a célt és a portot.

Három útvonal egy alvó gazdagéphez

Három gyakorlati módja van a keret LAN-ra juttatásának, és a helyes választás attól függ, mit irányít.

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

Válassza a segédgazdagépet, ha van, mert az a kapcsolaton sugároz, és nem igényel kivételt az útválasztón. Válassza az irányított sugárzást, ha az útválasztó már engedi, és az ébresztőeszköz támogat címet. Válassza a statikus bejegyzést, ha egyik sem elérhető, és tud parancsot futtatni az útválasztón.

Ezek nem zárják ki egymást. A végleges bejegyzés azt is lehetővé teszi, hogy az unicast útvonal túlélje az alvást, ami akkor hasznos, ha a VPN-kliens csak egy adott címre tud küldeni.

Tegye véglegessé a szomszédbejegyzést

Linux-shellt futtató útválasztón egyetlen parancs rögzíti a hozzárendelést. Az itteni értékek egy példa-LAN-hoz tartoznak, és a sajátjaira kell cserélni őket:

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

Az állapot nud permanent túléli az ARP-időtúllépéseket, és a gép kikapcsolt állapotában is továbbításra használja. A második parancs bizonyítja, hogy a bejegyzés létezik, és megmutatja a hozzá tartozó interfészt, ami számít a külön vendéghíddal vagy VLAN-nal rendelkező útválasztókon.

Tegye újraindítás-állóvá a firmware bármely horogján keresztül: egy szkript a /jffs/scripts alatt Asuswrt-Merlinen, egy systemd oneshot egység Linux-kiszolgálón gatewayként, egy Neighbor= stanza a systemd-networkd-ben, vagy egy bejegyzés a /etc/ethers fájlban, ahol a helyi eszközök olvassák. A shellbe beírt parancs a következő újraindításkor eltűnik, és ez a leggyakoribb oka annak, hogy egy működő javítás látszólag abbahagyja a működést.

Tesztelje kívülről, és tudja, mikor kell eltávolítani

Altassa el a gépet, és várjon legalább tíz percet, ami elég ahhoz, hogy bármely dinamikus bejegyzés lejárjon. Ezután küldje el az ébresztési kérést a VPN-kliensből, és figyelje az útválasztó mindkét oldalát:

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

Az első rögzítés bizonyítja, hogy a csomag az alagútból érkezett; a második, hogy az útválasztó keretet tett a LAN-ra. Az érvényes mágikus csomag 102 bájtként jelenik meg, ismételt MAC-címmel, ezért a hosszt és a célt is ellenőrizze. Ha a keret elhagyja a LAN-hidat, és a gép kikapcsolva marad, a fennmaradó probléma az eszközön van: gyorsindítás, mély alvás vagy BIOS-beállítás, amely megszakítja a hálózati kártya áramellátását.

Távolítsa el a bejegyzést, ha a hálózati kártya változik, és frissítse, ha a gépet másik címre helyezi. A végleges hozzárendelés szándékos kivétel, és a kivétel, amelyre senki sem emlékszik, az az út, ahogy egy jövőbeli laptop olyan kereteket kezd fogadni, amelyeket egy kivont asztali gépnek szántak.

Kapcsolódó cikkek