Wake-on-LAN VPN-en át nem működik? Javítsa az ARP-bejegyzést
A mágikus csomagok átjutnak az alagúton, de az útválasztó eldobja őket, amikor ARP-bejegyzése lejár. Hasonlítson össze három kézbesítési útvonalat, majd rögzítse véglegesen a MAC-címet.
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.
| 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 |
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.23Az á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 9Az 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.