Wake-on-LAN (WOL) netzwerkübergreifend

Begonnen von Wuck, 18 Februar 2018, 03:47:29

Vorheriges Thema - Nächstes Thema

Wuck

Hallo Community,

ich habe mein Netzwerk umstrukturiert und nun den Pi mit FHEM im VLAN4 (Gateway/Subnetz: 10.0.4.1/24) und meinen PC im VLAN3 (Gateway/Subnetz: 10.0.3.1/24). Der Router ist ein Security Gateway der Unifi Serie von Ubiquiti. Vorher hatte ich eine Fritzbox und alles in einem Netzwerk, wo ich auch den PC per WOL Modul wecken konnte. Seit dem Umbau funktioniert das nicht mehr. Also habe ich mir die App "Ping Tools" auf dem Handy installiert und das Handy mit dem VLAN4 verbunden, um gleiche Ausgangsbedingen zu schaffen. Wenn ich via App den Wake-Befehl sende, startet der PC. Per WOL Modul startet er nicht. Auch dann nicht, wenn ich den PC in das VLAN4 packe.

Ein Screenshot von meinem Modul (FHEM_PC.PNG), sowie dem, was Wireshark beim Wake-Befehl vom Handy (Wireshark_Handy.PNG) bzw. FHEM misst ist angehängt. Komischerweise wird manchmal nur sehr wenig (Wireshark_FHEM.PNG) und manchmal recht viel von FHEM (Wireshark_FHEM_lang.PNG) registriert. Ich sehe auch das Magic Packet in beiden Fällen von FHEM, aber irgendwas scheint da nicht zu stimmen. Vllt. erkennt ja jemand hier den Fehler. Der PC ist ja anscheinend richtig konfiguriert, sonst könnte das Handy den ja nicht wecken.

Auf den Screenshots sind die IP-Adressen wie folgt:
10.0.3.21 = PC
10.0.4.21 = Pi (FHEM)
10.0.4.110 = Handy


Ich habe auch bereits das Attribut "useUdpBroadcast" auf 10.0.3.255 und 10.0.4.255 gestellt, welche jeweils die Broadcastadressen der beiden Netzwerke sind. Das hat nicht geholfen.


Herunterfahren funktioniert übrigens prima (nachdem ich per Wireshark die Ports ausgelesen und in der Norton-Firewall passend konfiguriert habe ^^).




Kann mir jemand eine Lösung für das Wake-Problem nennen oder kennt so eine Situation? Vielleicht muss ich im Security Gateway ja noch irgendwas einstellen?




Gruß aus Köln
Dominik

Otto123

Hi,

na ohne useUdpBroadcast wird es nicht gehen. Dort mal 10.255.255.255 probiert?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuck

Hi Otto!

Dich habe ich doch schon oft hier im Forum gesehen. Ich werde es heute Abend zu Hause direkt Mal probieren. Gebe dann Rückmeldung!

Wuck

Also das Atrribut useUdpBroadcast auf 10.255.255.255 zu setzen, hat auch nicht geholfen.

Otto123

Und hast Du irgendwas in der Firewall konfiguriert? Du sagst ja, dass es mit dem Handy geht   ???

Ich habe so eine Konstellation mit WOL von FHEM in gerouteter Umgebung auch noch nicht probiert. Kann ich aber vielleicht mal die nächsten Tage machen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kroman

Hi,

du kannst auch mal mode EW statt UDP versuchen.


mode [EW|UDP]
EW: wakeup by usr/bin/ether-wake
UDP: wakeup by an implementation like Net::Wake(CPAN)


Gruß,
kroman

Wuck

EW habe ich auch schon probiert. Allerdings ohne useUdpBroadcast. Brauche ich das dafür auch?

Wuck

@Otto:

Ich habe noch keine Firewall-Regeln erstellt. Standardmäßig routet das Unifi Security Gateway von VLAN zu VLAN (ausgenommen das Gästenetz). Ich glaube, dass irgendwie der Broadcast nicht richtig ankommt. Es gibt Beschreibungen, dass ich im Gateway die Arp-Tabelle manuell anpassen muss. Aber dann würde es vom Handy ja auch nicht gehen. Irgendwie steige ich da gerade nicht durch  :o

kaputt

Broadcast wird grundsätzlich nicht geroutet.
Es sei den du kannst deinem Router beibringen dies zu tun.
Gruß aus L.E.
Uwe

Bei U/Linux hilfreich aber nicht nötig, bei Windows nötig aber nicht hilfreich!
Rechtschreibfehler sind beabsichtigt und Ausdruck meiner Persönlichkeit

Wuck

Vllt kann ich eine Statische Route einrichten, an eine fiktive Adresse broadcasten und das dann an die Broadcastadresse des richtigen Netzwerks schicken?  :-\ ;)
Werde ich heute Abend oder morgen mal testen.

Otto123

#10
Moin,

ich habe das jetzt mal mit meinem WRT1900 mit aktuellem LEDE Image ausprobiert. Bei mir verhält sich das eigentlich erwartungsgemäß. Die Broadcast werden nicht zwischen VLANs geroutet.
Bei mir klappt WOL nur innerhalb eines VLANs aber dies neben FHEM WOL und Windows Powershell Script auch mit den Tools vom Handy (Ping Tools und Fing ausprobiert)

Ich denke es ist wirklich so zu erwarten, die broadcasts werden per default nicht geroutet.

Mich hatte Deine Aussage im ersten Post stutzig gemacht, dass Du sagst es geht mit dem Handy. Aber jetzt habe ich nochmal genau gelesen: Du sagst auch es geht nicht wenn alle im gleichen VLAN sind?
ZitatPi mit FHEM im VLAN4 (Gateway/Subnetz: 10.0.4.1/24) und meinen PC im VLAN3 (Gateway/Subnetz: 10.0.3.1/24). Der Router ist ein Security Gateway der Unifi Serie von Ubiquiti. Vorher hatte ich eine Fritzbox und alles in einem Netzwerk, wo ich auch den PC per WOL Modul wecken konnte. Seit dem Umbau funktioniert das nicht mehr. Also habe ich mir die App "Ping Tools" auf dem Handy installiert und das Handy mit dem VLAN4 verbunden, um gleiche Ausgangsbedingen zu schaffen. Wenn ich via App den Wake-Befehl sende, startet der PC. Per WOL Modul startet er nicht. Auch dann nicht, wenn ich den PC in das VLAN4 packe.
Es kann sein, das man IP Forwarding für UDP Port 9 einrichten kann/muss.

Ich hatte bisher geglaubt, wenn man eine "gezielte" Broadcast Subnetz Adresse (z.B. 192.168.178.255 statt 255.255.255.255) angibt funktioniert es. Das ist aber offenbar nicht so.

Gruß Otto

P.S. ich habe noch etwas rumgesucht und gelesen (Stichworte relay, bridge, static arp, directed broadcast in Verbindung mit WOL oder magic packet) klingt alles abenteuerlich und für mich nach einer undurchsichtigen frickel Lösung.
Am Besten fand ich da noch die Ideen es den Router über ssh und eingebauten WOL Client machen zu lassen. Static ARP ist vielleicht auch noch beherrschbar.

Offenbar scheint aber so etwas wie directed broadcast in manchen Routern implementiert und einfach aktivierbar zu sein.

War alles interessant, aber ich  leg das Thema für mich beiseite  ;) Vielleicht hat ja ein Netzwerk Profi eine Lösung, aber der hätte sich bestimmt schon gemeldet.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuck

Ich habe jetzt nochmal ein bisschen rumprobiert.

Wake-on-LAN funktioniert in folgenden Fällen:

  • Der PC (VLAN3) wurde gerade heruntergefahren
  • Das Unifi Gateway listet den PC noch als Client
  • Wecken des PCs aus FHEM funktioniert (VLAN4)
  • Wecken per App auf dem Smartphone geht (VLAN3 oder VLAN4)

Ist der PC schon vor längerer Zeit herunter gefahren worden, listet das Unifi Gateway diesen nicht mehr als Client und das Wecken funktioniert nur aus dem VLAN3, wo sich auch der PC befindet. Dann aber immer, egal wie lange der PC vorher ausgeschaltet war.

Ich vermute nun, dass das Wake-on-LAN sogar Inter-VLAN so lange funktioniert, wie das Gateway den PC inkl. IP- und MAC-Adresse listet und somit das Magic-Paket richtig zuweisen kann. Deshalb zeigt Wireshark das auch jedes mal an, wenn ich am PC nachmesse. Schmeißt das Gateway den PC von der Liste, weiß es nicht, wo das Magic-Paket hin soll und da ja Broadcasts nicht Inter-VLAN geroutet werden (Danke an Otto für den Test!!!), kann das Magic-Paket auch nicht "zugestellt werden".

Ich habe jetzt zwei Ideen und vllt. kann mir ja direkt einer was dazu sagen oder schlägt die Hände über dem Kopf zusammen ^^:

  • Ich versuche herauszufinden, wie ein Broadcast zwischen den beiden VLANs weitergeleitet werden kann. Da die Frage: Ist das überhaupt irgendwie möglich und nur meine Hardware kann das im Moment nicht? Das Eisntellen vom Attribut UseUdpBroadcast auf die Broadcas-Adresse vom VLAN3 hat leider nicht funktioniert. Ich denke, weil FHEM keine lokale Schnittstelle im apssenden IP-Bereich hat. Richtig?
  • Ich reaktiviere meinen alten Pi2 im gleichen VLAN wie der PC, sende von FHEM einen Befehl per SSH er solle doch bitte mal den Computer wecken. SSH-Verbindungen zwischen den VLANs funktionieren ja und selbst wenn ich demnächst das Inter-VLAN-Routing einschränken werde, kann ich gezielt das freigeben.

Lieber ist mir eine Variante ohne ein weiteres Gerät. Sonst noch jemand eine Idee?

Otto123

Hi,

das deutet darauf hin, das so etwas ähnliches wie "Static ARP", also ein spezieller Eintrag in der ARP Tabelle, in deinem Gateway dafür sorgt, dass der Broadcast weitergeleitet wird.

Meine Idee 3. wäre per ssh den WOL (Client) Befehl auf dem Unifi Gateway starten. Vielleicht findest Du da was. Das würde den Pi sparen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuck

Das ist ne gute Idee mit den Gateway SHH. Werde ich im laufe der Woche mal probieren. Oder ich schaffe es diesen ARP-Eintrag irgendwie da rein zu hacken, wie es in anderen FOren beschrieben wird. Ich checke das nur noch nicht ganz.

Wuck

Soo... hier ist lange nichts passiert, aber ich hatte auch keine Zeit und Ruhe, mich weiter mit dem Problem zu beschäftigen. Im ubiquiti Forum bin ich fündig geworden: https://community.ubnt.com/t5/UniFi-Routing-Switching/Solved-WOL-between-different-subnets/td-p/2143947

Im Prinzip muss man dem Security Gateway einen Netzwerk-Übersetzer ARP-Eintrag hinzufügen. Eine IP-Adresse aus dem Netzwerk des FHEM-Servers (10.0.4.x), und der andere damit verknüpfte Eintrag im Netzwerk des zu weckenden Gerätes (10.0.3.x). Beide bekommen die Broadcast-Mac-Adresse "ff:ff:ff:ff:ff:ff". Die IP-Adressen dürfen in beiden Netzwerken aber nicht real existieren!

Wenn ich nun per Kommandozeile auf dem Raspberry einen wakeonlan Befehl an die Fake-IP im 3er Netzwerk und die Mac-Adresse des PCs sende, startet der PC. So einfach war es  ;). Allerdings klappt das irgendwie mit dem dem WOL Modul in FHEM nicht. Das habe ich einfach umgangen, indem ich FHEM den Kommandozeilenbefehl senden lasse. So bin ich für mich erstmal zufrieden.

Nochmal danke für eure Hilfe!