Wake on LAN über Firewall und VLANs

Raptor
Beiträge: 1
Registriert: 24 Nov 2009, 15:46

Wake on LAN über Firewall und VLANs

Beitrag von Raptor »

Hallo,

wir testen gerade die aktuelle Version vom OPSI-Depotserver. Wake on LAN funktioniert im selben VLAN ohne Probleme, in andere VLANs kann ich allerdings keine magic packets senden, bzw. diese kommen jedenfalls nicht an. Auf welchem UDP-Port versendet OPSI die magic packets und kann man diese an bestimmte Subnets (broadcast oder multicast) senden? Irgendwie habe ich hierzu bisher noch keine Infos gefunden.
Das ist wohl zwingend nötig, da wir Clients in zwei verschiedenen Subnetzen haben, die wir nicht zusammen legen können. Alternativ könnte ich den Depotserver noch jeweils in jedes der beiden VLANs hinzufügen, da weiß ich aber nicht, wie OPSI damit zurechtkommt, wenn er 3 IP Adressen hat.

Grüße,
Raptor
teller512
Beiträge: 7
Registriert: 01 Feb 2011, 09:56
Kontaktdaten:

Re: Wake on LAN über Firewall und VLANs

Beitrag von teller512 »

w.streule
Beiträge: 5
Registriert: 26 Okt 2010, 21:26

Re: Wake on LAN über Firewall und VLANs

Beitrag von w.streule »

Hallo,

ich hatte hier das gleiche Problem, jeder Opsi-Server musste mehere Subnetze bedienen und ich wollte die Kisten Samstags zur Installation wecken. Ich hab mir dafür einen "dirty-hack" gebaut (dirty, weil er durch ein Update des Opsi-Systems (opsiconfd) wieder komplett entfernt werden kann).
Du editierst auf dem Opsi-Server die Datei "/usr/share/python-support/python-opsi/OPSI/Backend/HostControl.py" und suchst in ihr nach "sock.sendto(send_data, ('<broadcast>', 12287))" (sollte Zeile 223 sein). Das ist der eigentliche Befehl, der das Magic Packet sendet. Danach fügst du folgendes ein:

Code: Alles auswählen

                                WAKEONLAN_BROADCAST_NETWORKS = ["10.122.1.255", "10.122.59.255", "10.122.97.255"]
                                for wolbcaddress in WAKEONLAN_BROADCAST_NETWORKS:
                                        sock.sendto(send_data, (wolbcaddress , 12287))
                                        logger.debug(u"Sending data to network [%s] broadcast" % wolbcaddress)
Die Einrückungen sind dabei wichtig, sonst erkennt python die Schleife nicht korrekt. Nach den vier Zeilen gehts dann im File mit "sock.close()" weiter. In die Liste WAKEONLAN_BROADCAST_NETWORKS musst du die Broadcast-Adressen deiner Netze eintragen (ist im Normalfall die höchste Netzadresse, eine Linux-Kiste im jeweiligen Netz liefert die auch (unter Bcast:), wenn du in einer shell "ifconfig" eingibst. Ich hab' hier mal drei Netze als Beispiel eingefügt.
Die ganzen Pakete kommen aber nur an den Clients an, wenn eure Router/routenden Swichtes/Firewalls auch directed Broadcasts erlauben. Bei Alcatel-Switches geht das via "ip directed-broadcast on" (am routenden Switch einzugeben), bei Cisco ASA Firewalls muss in den betroffenen Vlans "ip directed-broadcast" aktiviert sein. Bei anderen Herstellern sollte das auch einfach in der Doku zu finden sein.

Ich bastel' derzeit noch an einer Erweiterung des ganzen, die dann im Handling einfacher werden sollte (und dann auch villeicht ihren Weg in den offiziellen Code findet, ich weiss nur nicht, wie ich Patches an uib melde, in der Doku hab ich dazu noch nichts gefunden): Die Idee dabei ist, dass die Broadcast-Adressen als Property in der Server-Konfiguration abgelegt werden, dann kann das auch ohne shell-Spielereien eingelesen werden (und man administriert das ganze über den configuration editor). Und das richtig nette dabei ist, dass ja bei den einzelnen Computer-Objekten die Properties "überschrieben" werden können. D.h. wenn man 100 PCs im lokalen LAN hat und nur 3 in der Filiale, dann trägt man nur bei den drei externen Kisten auch die externe Broadcast-Adresse ein und spart sich so den Traffic (ok, die WOL-Pakete sind nicht groß, aber wenn zur Filiale dann 100 Pakete verschickt werden müssen und jeweils die Reply abgewartet werden muss, dann dauert das aufgrund der deutlich höheren Latenzen auch etwas). Vielleicht bekomm' ich das am Wochenende mal fertig.

Gruß,

Wolfgang
thomas.besser
Beiträge: 455
Registriert: 09 Sep 2009, 09:40

Re: Wake on LAN über Firewall und VLANs

Beitrag von thomas.besser »

Hallo,
w.streule hat geschrieben: Ich bastel' derzeit noch an einer Erweiterung des ganzen, die dann im Handling einfacher werden sollte (und dann auch villeicht ihren Weg in den offiziellen Code findet, ich weiss nur nicht, wie ich Patches an uib melde, in der Doku hab ich dazu noch nichts gefunden): Die Idee dabei ist, dass die Broadcast-Adressen als Property in der Server-Konfiguration abgelegt werden, dann kann das auch ohne shell-Spielereien eingelesen werden (und man administriert das ganze über den configuration editor). Und das richtig nette dabei ist, dass ja bei den einzelnen Computer-Objekten die Properties "überschrieben" werden können. D.h. wenn man 100 PCs im lokalen LAN hat und nur 3 in der Filiale, dann trägt man nur bei den drei externen Kisten auch die externe Broadcast-Adresse ein und spart sich so den Traffic (ok, die WOL-Pakete sind nicht groß, aber wenn zur Filiale dann 100 Pakete verschickt werden müssen und jeweils die Reply abgewartet werden muss, dann dauert das aufgrund der deutlich höheren Latenzen auch etwas). Vielleicht bekomm' ich das am Wochenende mal fertig.
Bist du damit weitergekommen und hast den dirty in einen eleganteren Hack überführen können?

Ich stehe vor dem gleichen Problem und suche eine Lösung, wie ich Rechner über Subnetzgrenzen hinaus in OPSI aufwecken kann.

Danke und Gruß
Thomas
Benutzeravatar
c.kampka
Ex-uib-Team
Beiträge: 87
Registriert: 09 Aug 2010, 16:27
Kontaktdaten:

Re: Wake on LAN über Firewall und VLANs

Beitrag von c.kampka »

Hallo,

opsi unterstützt mittlerweile auch Directed Broadcasts. Dazu muss man lediglich die entsprechenden Broadcast Adressen in in die Konfigurationsdatei "/etc/opsi/backends/hostcontrol.conf" eintragen.
Beispiel:

Code: Alles auswählen

module = 'HostControl'
config = {
    "opsiclientdPort":    4441,
    "hostRpcTimeout":     15,
    "resolveHostAddress": False,
    "maxConnections":     50,
    "broadcastAddresses": ["192.168.0.255", "172.31.255.255"]
}
Unter Umständen kann vorher ein Update des opsi Servers notwendig sein.

Viele Grüße,
Christian Kampka
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.
http://uib.de
http://opsi.org
thomas.besser
Beiträge: 455
Registriert: 09 Sep 2009, 09:40

Re: Wake on LAN über Firewall und VLANs

Beitrag von thomas.besser »

c.kampka hat geschrieben: opsi unterstützt mittlerweile auch Directed Broadcasts. Dazu muss man lediglich die entsprechenden Broadcast Adressen in in die Konfigurationsdatei "/etc/opsi/backends/hostcontrol.conf" eintragen.
Ok, wunderbar.

Ich hab OPSI vor ein paar Wochen von 3.4 auf 4.0 aktualisiert.

Wenn "/etc/opsi/backends/hostcontrol.conf" trotzdem nicht existiert, kann ich die Datei einfach mit besagtem Inhalt anlegen oder muß sonst noch etwas konfiguriert werden?

Danke und Gruß
Thomas Besser
Benutzeravatar
c.kampka
Ex-uib-Team
Beiträge: 87
Registriert: 09 Aug 2010, 16:27
Kontaktdaten:

Re: Wake on LAN über Firewall und VLANs

Beitrag von c.kampka »

Hallo Herr Besser,

nein, die Datei einfach anzulegen bringt Sie in diesem Fall nicht zum Ziel. Sie müssen wie schon angedeutet die opsi Pakete erneut aktualisieren. Die entsprechenden Datei wird dann automatisch angelegt.

Viele Grüße,
Christian Kampka
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.
http://uib.de
http://opsi.org
thomas.besser
Beiträge: 455
Registriert: 09 Sep 2009, 09:40

Re: Wake on LAN über Firewall und VLANs

Beitrag von thomas.besser »

Update gemacht, die Datei danach entsprechend angepasst.

Funktioniert leider immer noch nicht, aber ich vermute, dass es jetzt an den aktiven Netzwerkkomponenten liegt. Denn ein 'wakeonlan -i <host-ip> <mac>' funktioniert, ein 'wakeonlan -i <broadcast-ip> <mac>' nicht.

Danke und Gruß
Thomas Besser
thomas.besser
Beiträge: 455
Registriert: 09 Sep 2009, 09:40

Re: Wake on LAN über Firewall und VLANs

Beitrag von thomas.besser »

Habe in unserer Netzwerkabteilung des Rechenzentrums bzgl. "directed broadcasts" nachgefragt. Antwort:

""Directed broadcasts" sind aus gutem Grund per Default bei den Routern
disabled. "Directed broadcasts" sind ein sehr leichtes Mittel, komplette
Netze zu fluten, und eignet sich somit als Denial of Service Attacke."

Gibt es eine weitere Möglichkeit in OPSI, Rechner über Subnetzgrenzen hinaus aufzuwecken?

Mit dem Linux-Tool "wakeonlan" kann ich - wie oben schon geschrieben - auf Kommandozeile den Rechner wunderbar aufwecken, in dem ich seine Host-IP anstatt der Broadcast-IP benutze.

Gruß
Thomas Besser
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3319
Registriert: 04 Jun 2008, 14:27

Re: Wake on LAN über Firewall und VLANs

Beitrag von d.oertel »

Hi,

wir werden drüber nachdenken - das ganze setzt voraus, das der opsi-server die IP-Nummer kennt.
Frage: kennt tatsächlich der schlafende Rechner seine IP-Nummer oder muss es nur eine IP-Nummer sein
welche der Switch auch an der Netzwerkkarte vorbeischickt ....

gruss
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
Antworten