PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Broadcast-Script auf Router für WOL scripten



FKFK
10.04.10, 20:39
Hallo zusammen,

da mein Router kein Broadcast unterstützt, habe ich mir mal überlegt, ob ich selbst soetwas erstellen kann.
Zugriff per Telnet zum Router besteht. Auf ihm ist BusyBox mit folgenden verfügbaren Befehlen:
"Currently defined functions:
[, basename, busybox, cat, chmod, cp, cut, date, dirname, echo,
egrep, expr, false, fgrep, free, grep, gunzip, gzip, hostname,
ifconfig, init, insmod, kill, killall, ln, logger, ls, lsmod,
mkdir, mknod, modprobe, mount, msh, mv, ping, ps, pwd, rm, rmmod,
route, sed, sh, sleep, tar, test, touch, tr, true, umount, uname,
uptime, wc, yes, zcat
Built-in commands:
-------------------
. : break cd continue eval exec exit export help login newgrp
read readonly set shift times trap umask wait"

Das Broadcast möchte ich eigentlich für WOL (wake on lan) nutzen: An einen Port am Router kommt das WOL-Paket an und dieses wird von dem Script dann als Broadcast weiterverschickt (an die IP-Adresse 255.255.255.255).

Geht so etwas?
Wie man sicherlich merkt, habe ich noch nicht so sehr viel mit Linux gearbeitet:o

Vielen Dank schonmal!

LG FKFK

tomes
10.04.10, 21:53
Hallo,

1. mal ne Frage am Anfang. Kann ja sein, dass ich mal wieder ein wenig zu alt bin und das die Technologie mich wieder hinterrücks überholt hat, aber bedeutet WakeOnLAN nicht, dass die zu weckende NIC schläft/runter gefahren ist, also gar keine Netzwerkadresse besitz. Das wiederum würde bedeuten, dass ein IP Broadcast nie ankommen würde.
WOL Pakete werden doch soweit ich mich erinnere an die/eine MAC Adresse gesendet und bestehen aus einer bestimmte Reihenfolge an bestimmten Paketen.

2. Ich sehe auf den ersten Moment kein Kommando mit dem man UDP Pakete erzeugen kann und/oder versenden.

mfg
Tomes

FKFK
10.04.10, 22:06
Hm, ja und nein.
Bei mir hat Broadcast übers LAN immer funktioniert, aber bei einem externen PC muss das leider über den Router gehen:(
Wenn ich in dem Router eine Möglichkeit finde, in der ARP-Tabelle den Eintrag mit meiner MAC zu erhalten, dann liese sich das ganze auch ohne Probleme machen. Leider müsste man das manuell einprogrammieren über Telnet, da er das ganze nicht von Haus aus unterstützt (falls doch, dann so, dass ein normaler Anwender das nicht aktivieren kann).
Ich habe auf dem Router eine beschreibbare Verzeichnisstruktur gefunden. Vielleicht könnte ich dort noch neue Befehle hinzufügen.
Die Strukutur heißt /var ist dort auch der Kernel und diese ganzen Sachen normalerweise drin?

//edit: Auf jeden Fall erzeugt der Router virtuelle Server. Habe nämlich entsprechende Konfigurations-Dateien gefunden. Mal schauen, vllt kann ich sogar selbst einen machen :)

HBtux
10.04.10, 22:33
Was ist den das für ein Router....
Vielleicht findest Du unter den folgenden Links noch Infos...
http://stephan.mestrona.net/wol/forum/viewforum.php?f=2
http://www.google.de/#hl=de&source=hp&q=wol&meta=&aq=f&aqi=g10&aql=&oq=&gs_rfai=&fp=ee5ee57acdb47974

FKFK
10.04.10, 23:25
:D
Naja, hat mir nicht viel weitergeholfen, aber trotzdem danke für die Mühe:)
Gibt es eigentlich die Möglichkeit, Befehle "hinzuzufügen"? (Müsste ich dann per Hand bzw. Telnet machen)

HBtux
11.04.10, 10:26
Nochmal..... was ist das für ein Router?

Meist findest Du Antworten auf spezielle Fragen rund um diverse Router auch in einem Router-Forum....

Bei Busybox lässt sich sicherlich auch noch was nachinstallieren.

FKFK
11.04.10, 13:45
Ich habe schon in den offiziellen und inoffiziellen Router-Foren zum Router gesucht, aber dort kennt sich niemand so richtig mit dem Thema aus.

Es ist ein DIR-300, der offiziell kein Telnet-Zugriff unerstützt, wobei es genug Möglichkeiten gibt, shells trotzdem auszuführen bzw. ins Telnet zu kommen bzw. das alles entsprechend zurückzusetzen, damit man darin arbeiten kann;)

tomes
12.04.10, 17:16
Hi,

natürlich bin ich mal wieder zu "alt" für diese Sachen. Ne im Ernst, ich hab mich mal kurz belesen.
Also eigendlich macht ein Client nur ein UDP - IP-Broadcast auf Port9 und sendet ein sogenanntes MagicPaket, d.h. in diesem Paket steht 16x mal die MacAddresse der zu weckenden NIC.
Wenn du jetzt einfach von einem anderm System (Linux Rechner in einen andern Netz) eine Art Broadcast (z.B. eine Shellschleife) für das Netz mit dem zuweckenden Rechner machst, sollte dies doch auch fuktionieren. Wenn du die IP des zu weckenden Rechners hast, kannst du ihn ja auch direkt ansprechen (kein Broadcast).
Du kannst dafür zum Beispiel das PerlScript wakeonlan nehmen.
http://gsd.di.uminho.pt/jpo/software/wakeonlan/

mfg
Tomes

marce
12.04.10, 17:44
Wenn du jetzt einfach von einem anderm System (Linux Rechner in einen andern Netz) eine Art Broadcast (z.B. eine Shellschleife) für das Netz mit dem zuweckenden Rechner machst, sollte dies doch auch fuktionieren. Wenn du die IP des zu weckenden Rechners hast, kannst du ihn ja auch direkt ansprechen (kein Broadcast).
Öhm - anderes Netz wird nicht funktionieren - Broadcasts werden nicht geroutet.

Und wenn er die IP des Rechners hat - so kann er an die nur was schicken, wenn der Rechner bereits läuft - da würde ein WOL also wenig Sinn ergeben...

FKFK
12.04.10, 18:28
Ja, wenn ich einen Rechner laufen lassen möchte, damit dieser dann das Magicpaket verschickt, bräuchte ich ja kein WOL^^
Sofern ich keine Möglichkeit finde, auf den Router ein Script zu machen, welches selbst einen Broadcast schickt oder wie ich die APR-Tabelle beeinflussen kann, dann muss ich auf den Router dd-wrt ziehen und das würde ich eigentlich gerne vermeiden.
Ich glaube, ich habe in meinem Router Anzeichen eines virtuellen Servers gefunden. Vielleicht kann das ja weiterhelfen, wobei ich vermute, dass man da keinen hinzufügen kann.
Was genau ist eigentlich HNAP(Home Network Administration Protocol)? Da habe ich bisher noch keine richtige Erklärung auf Deutsch gefunden.

Eine andere Frage: Hat jemand Erfahrung, ob dd-wrt Nachteile hat (z.B. Geschwindigkeitsverlust usw.)?

marce
12.04.10, 18:31
wir reden von einem Homerouter an einem Popel-DSL-Anschluss? Da kannst Du eine Aufzugfeder-betriebene Spieluhr als OS einsetzen, ohne daß Du Geschwindigkeitseinbußen im Netz bemerkst...

Mal doof anders gefragt: was und warum willst Du denn WOL?

tomes
12.04.10, 18:53
Du willst also von aussen (aus dem Internet) über deinen Router zum Rechner.
Sag doch gleich, dass es ein DSL Router ist und du z.B. von Arbeit aus deinen Rechner aufwecken willst ;). Ich bin von normalen Netzen ausgegangen.
Dann würde ich mal folgendes probieren:
leite den UDP Port 9 an den zu weckenen Rechner weiter. Da du von aussen auf diesen Rechner zugreifen möchtest, wird er ja eine feste IP haben. Dann müßte der Router das MagicPaket doch anstandslos abliefern.
Soweit ich das jetzt richtig gelesen habe, behält der Rechner ja wenn er schlafen geht sein IP, die NIC wartet auf diese Paket. Also versuch es doch mal mit einfacher Portweiterleitung. Das sollte dieser D-Link doch können.
Schau dir mal das HowTo unter dem Link zu dem kleine Prog von oben an.
Zu deinen anderen Fragen habe ich leider keine Antwort.

mfg
Tomes

FKFK
12.04.10, 19:02
Hm, es ist zwar ein Router, der hinter einem Kabeldeutschlandmodem sitzt, aber das ist bei so ziemlich allen gleich: Nach kurzer Zeit wird die IP und MAC aus der APR-Tabelle gelöscht und somit kann der Router das nicht mehr eindeutig zuordnen --> Das Paket wird ins Nichts weitergeleitet.
Solange er im Standby ist, geht alles perfekt, aber sobald er ca. 15min. ausgeschaltet ist, lässt er sich von außerhalb nicht mehr reaktiveren. Ein Broadcast innerhalb des Netztes geht zwar, aber da alles von außenerhalb über den Router geht und der Router den PC "vergessen hat" (aus der ARP-Tabelle gelöscht) kann er das halt nicht weiter verschicken.
Aus diesem Grund muss ich entweder einen Weg finden, zu verhindern, dass der Router den Rechner vergisst (bei vielen Routern geht das, aber bei diesem gibts ein Tutorial) oder ein Script programmieren, welches vom Router aus automatisch ein Broadcast verschicken kann.
Da der Router leider nur die oben genannten Befehle beherrscht, wird das mit dem Script nicht so einfach. Da müsste man entweder zu der BusyBox Befehle "hinzufügen" oder ich müsste die Möglichkeit mit der ARP-Tabelle herausfinden:o
Das ist eine nicht so einfache Sachlage:(

Falls das alles nicht klappt, muss ich wohl dd-wrt draufspielen, was ich aber gerne vermeiden würde...
Habe gehört, dass würde die Geschwindigkeit teilweise bis zu einem Drittel senken...

Wozu braucht man WOL? ^^ WOL brauche ich, damit ich auf meinen anderen Rechner zugreifen kann, um Daten zu übertragen usw. wenn ich mal an einem fremden Rechner sitze, wenn ich bei der Arbeit bin oder auch einfach unterwegs etc.

tomes
12.04.10, 21:03
Aus diesem Grund muss ich entweder einen Weg finden, zu verhindern, dass der Router den Rechner vergisst
Du brauchst doch deinem Rechner nur eine feste IP geben.
Da das WOL Paket direkt an die IP gesendet werden kann, sehe ich nicht dein Problem. Portforwarding sollte doch auch der D-Link können.
Hier noch mal ein Link in deutsch
http://de.wikipedia.org/wiki/Wake_On_LAN

Ich werd das mal morgen auf Arbeit mit einer alten FritzBox testen. An die Möglichkeit WOL zu benutzen bin ich noch gar nicht gekommen. Das könnte mir bei ein paar Sachen helfen ;)

Tomes

FKFK
12.04.10, 21:26
Naja, ich habe mich da schon seit ein paar Tagen mit beschäftigt und ich bin zu folgenden 3 Lösgungsmöglichkeiten gekommen:
1. Meinen PC statisch in die ARP-Tabelle einzutragen
2. Ein Script auf den Router zu laden, welches ein Magic-Paket per Broadcast verschickt
3. Sollten einer beiden anderen Möglichkeiten nicht klappen, dann muss ich dd-wrt auf den Router spielen

Andere Möglichkeiten gibt es nicht. Habe das alles schon durchprobiert :)

Wie gesagt: Mein Router unterstützt die Portweiterleitung, aber vergisst nach ca. 15min., nach Ausschalten des Rechners, ihn. Das ist ja der Sinn der ARP-Tabelle: Sie soll nicht jeden Rechner, der sich mit ihr im Laufe von 10 Jahren verbunden hat merken, sondern nur die, die mit dem Router verbunden sind...

Bei mir klappt ja auch alles bei WOL, aber nur solange der PC entweder auf Standby ist oder erst vor kurzem ausgeschaltet wurde. Aber sobald das Ausschalten schon ein bisschen her ist, geht halt nichts mehr. Da gibts kein Rütteln dran, ich muss einen der obrigen 3 Punkte verwirklichen:(:(

marce
12.04.10, 21:28
darf man mal fragen, wie Du das denn "erkannt" bzw. getestet hast? Normale WOL gehen als Broadcast raus - da sollte es dem Router herzlich egal sein, ob er die Mac noch in der ARP-table hat oder nicht... Und damit sollte es auch am Ziel-PC ankommen und damit dort sein unheilvolles, magisches Werk verrichten...

tomes
12.04.10, 22:08
Ausserdem ist es vielleicht auch günstiger sich eine NIC zu besorgen, die Pattern Match versteht. Dann brauchst du "nur zu pingen".

Tomes

FKFK
13.04.10, 06:20
Intern (im Netzwerk) habe ich WOL schon als Broadcast erfolgreich getestet, das geht immer. Aber von extern komme ich nur über die Portweiterleitung rein und die widerum kann nur einen speziellen Port an einem PC ansprechen. Dies klappt auch, sofern der Router den PC noch nicht aus der Tabelle geslöscht hat (nach ca. 15min.): Man benötigt nicht immer Broadcast, man kann den PC auch direkt ansprechen, sofern der Router ihn noch "kennt".
Oder seht ihr noch eine Alternative zu den 3 oben genannten Lösungsmöglichkeiten?:(


Ausserdem ist es vielleicht auch günstiger sich eine NIC zu besorgen, die Pattern Match versteht. Dann brauchst du "nur zu pingen".

Tomes

Was genau meinst du hiermit?

tomes
13.04.10, 22:16
lies dir doch mal das hier zum Beispiel mal durch.
http://support.dell.com/support/edocs/systems/opgx100/ge/ts/index.htm

Achso und kennst du das hier schon:
http://stephan.mestrona.net/wol/#
und hier steht noch einmal das was ich mir auch so ungefähr dachte:
http://stephan.mestrona.net/wol/forum/viewtopic.php?t=1348&sid=44d9b5b90b62d95c52b2e10181afc0b3

mfg
Tomes

FKFK
14.04.10, 01:46
Die Links sind interessant. Das mit diesen praktischen WOL-Techniken kannte ich noch nicht. Aber wenn ich richtig verstanden habe, funktionieren die doch nur übers LAN-Netzwerk?
http://stephan.mestrona.net/ kannte ich bereits, aber ich dachte, ich sollte mich an euch wenden, weil sie sich dort glaube ich nicht so gut mit dem System auf den Routern, was ja Linux ist, auskennen:)
Vielleicht sollte ich dort aber trotzdem mal nachfragen, ob sie da noch weiterhelfen können.

Wie man Zugriff auf die ARP-Tabelle bekommt bzw. auf deren Konfiguration, weiß hier niemand oder? Wo ist diese Tabelle denn eigentlich bei den meisten Linux-Systemen?