Wake-on-LAN über VPN funktioniert nicht mehr? So reparieren Sie den ARP-Eintrag
Magic Packets durchqueren den Tunnel, doch der Router verwirft sie, sobald sein ARP-Eintrag abläuft. Vergleichen Sie drei Zustellwege und binden Sie die MAC-Adresse dauerhaft.
Senden Sie ein Wake-Paket direkt nach dem Herunterfahren, kommt der PC zurück; derselbe Befehl am nächsten Morgen bewirkt nichts. An der VPN-Konfiguration hat sich nichts geändert, und die Portweiterleitung zeigt weiterhin auf die richtige Adresse. Der Unterschied ist die Zeit: Die Nachbartabelle des Routers hat die schlafende Maschine vergessen und hat damit keine MAC-Adresse, die sie in den Frame eintragen könnte. Dieser Ablauf, nicht der Tunnel, erklärt die meisten Wake-on-LAN-Fehler über ein VPN.
Der erste Weckruf klappt, der nächste nicht
Ein Router leitet einen Frame an eine private Adresse weiter, indem er das Ziel in seiner Nachbartabelle nachschlägt. Solange die Maschine läuft, antwortet sie auf ARP, und die Zuordnung bleibt frisch. Sobald sie ausgeschaltet ist, antwortet niemand mehr, der Eintrag verfällt nach einigen Minuten, und spätere Frames an diese Adresse werden verworfen, obwohl IP und Portweiterleitung weiterhin gültig sind.
Das Muster zeigt Ihnen, welchen Fehler Sie haben. Ein Weckruf, der nie funktioniert, deutet auf die Zustellung hin: falscher Port, falsches Ziel oder eine Firewall, die das Paket verwirft, bevor es das LAN erreicht. Ein Weckruf, der einmal klappt und dann stundenlang scheitert, deutet auf den Nachbareintrag hin. Ein Weckruf, der bis zum Wechsel der DHCP-Lease wirkt, deutet auf die Adressierung hin, die eine Reservierung behebt.
Prüfen Sie, ob die Adresse stabil ist, bevor Sie ARP anfassen. Nimmt die schlafende Maschine nach Ablauf einer Lease eine neue Adresse an, ist ein fest eingetragener Nachbareintrag für die alte Adresse dauerhaft und nutzlos zugleich. Richten Sie zuerst eine DHCP-Reservierung ein, damit die Adresse Neustarts übersteht.
Was das Magic Packet vom Netzwerk braucht
Die Nutzlast ist einfach: 102 Bytes aus sechs 0xFF-Bytes, gefolgt von der Ziel-MAC-Adresse sechzehn Mal, üblicherweise an UDP-Port 9 gesendet. In einem flachen LAN geht sie als Broadcast hinaus, jeder Port empfängt sie, und die ausgeschaltete Netzwerkkarte erkennt ihre eigene Adresse.
Über ein VPN erreicht das Paket den Router als Unicast an eine private Adresse oder als gerichteten Subnetz-Broadcast. Im Unicast-Fall muss der Router das Ziel in eine MAC-Adresse auflösen, bevor er den Frame ins LAN legen kann, und genau diese Auflösung scheitert, solange der Host schläft.
Manche Tools senden an Port 7 statt an 9, und manche Appliances blockieren gerichteten Broadcast standardmäßig. Das sind Zustellfehler, keine ARP-Fehler, prüfen Sie also Ziel und Port, bevor Sie die Nachbartabelle ändern.
Drei Wege zu einem schlafenden Host
Es gibt drei praktikable Wege, den Frame ins LAN zu bringen, und die richtige Wahl hängt davon ab, was Sie kontrollieren.
| 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 |
Wählen Sie den Helfer-Host, wenn es einen gibt, denn er sendet on-link als Broadcast und braucht keine Router-Ausnahme. Wählen Sie gerichteten Broadcast, wenn der Router ihn bereits erlaubt und das Wake-Tool eine Adresse unterstützt. Wählen Sie den statischen Eintrag, wenn beides fehlt und Sie einen Befehl auf dem Router ausführen können.
Diese Wege schließen sich nicht gegenseitig aus. Ein permanenter Eintrag lässt auch den Unicast-Pfad den Schlaf überstehen, was nützlich ist, wenn der VPN-Client nur an eine bestimmte Adresse senden kann.
Den Nachbareintrag dauerhaft machen
Auf einem Router mit Linux-Shell legt ein Befehl die Zuordnung fest. Die Werte hier gehören zu einem Beispiel-LAN und müssen durch Ihre eigenen ersetzt werden:
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.23Der nud permanent Zustand hält den Eintrag über ARP-Timeouts hinweg und nutzt ihn zum Weiterleiten, während die Maschine aus ist. Der zweite Befehl beweist, dass der Eintrag existiert, und zeigt die Schnittstelle, zu der er gehört, was auf Routern mit separater Gäste-Bridge oder VLAN zählt.
Machen Sie ihn über den Hook neustartfest, den die Firmware bietet: ein Skript in /jffs/scripts unter Asuswrt-Merlin, eine systemd-oneshot-Unit auf einem Linux-Server als Gateway, ein Neighbor= stanza in systemd-networkd, oder ein Eintrag aus /etc/ethers, den das lokale Tooling liest. Ein in eine Shell getippter Befehl verschwindet beim nächsten Neustart, und das ist der häufigste Grund, warum ein funktionierender Fix plötzlich nicht mehr wirkt.
Von außen testen und wissen, wann der Eintrag weg muss
Versetzten Sie die Maschine in den Schlaf und warten Sie mindestens zehn Minuten, lange genug, damit jeder dynamische Eintrag verfällt. Senden Sie dann die Wake-Anfrage vom VPN-Client und beobachten Sie beide Seiten des Routers:
tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9Der erste Mitschnitt beweist, dass das Paket aus dem Tunnel angekommen ist; der zweite beweist, dass der Router einen Frame ins LAN gelegt hat. Ein gültiges Magic Packet erscheint als 102 Bytes mit wiederholter MAC, prüfen Sie also die Länge ebenso wie das Ziel. Verlässt der Frame die LAN-Bridge und bleibt die Maschine aus, liegt das verbleibende Problem am Gerät: Schnellstart, Tiefschlaf oder eine BIOS-Einstellung, die die Stromversorgung der Netzwerkkarte kappt.
Entfernen Sie den Eintrag, wenn die Netzwerkkarte wechselt, und aktualisieren Sie ihn, wenn Sie die Maschine auf eine andere Adresse verschieben. Eine permanente Zuordnung ist eine bewusste Ausnahme, und eine Ausnahme, an die sich niemand erinnert, führt dazu, dass ein künftiges Laptop Frames empfängt, die für einen ausgemusterten Desktop gedacht sind.