Warum muss ich beim Aufwecken eines Computers im Internet eine IP-Adresse verwenden?

7

Ich habe eine neue GNU / Linux Debian 9-Serverinstallation.

Das bekomme ich von ethtool:

root@web-server:~# ethtool enp2s0
Settings for enp2s0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes

Sie sehen also, dass das Magic Packet aktiviert ist ( Wake-on: g).


Ich wecke diesen Computer aus dem Ausschaltzustand wie folgt:

./wolcmd 00********** 192.168.0.104 255.255.255.0 7  # I've hidden the MAC address here

von Cygwin unter Windows 10 mit Depicus Wake On Lan Command Line .


Was ich nicht verstehe ist, warum ich die IP-Adresse und Maske oder Portnummer angeben muss?

Warum reicht die MAC-Adresse nicht aus? Könnte jemand näher darauf eingehen ...

LinuxSecurityFreak
quelle
Beachten Sie, dass diese Frage nur themenübergreifend ist. Wake-On-LAN ist nicht wirklich spezifisch für Unix oder Linux und wird nicht von Betriebssystemsoftware implementiert. Debian 9 ist nicht wirklich relevant, da Debian zur Zeit nicht auf dem Zielcomputer ausgeführt wird und ausgeschaltet ist . Das erwähnte Tool ist ein Win32-Programm, daher sind Aspekte dieses Programms selbst definitiv nicht zum Thema gehörend. Glücklicherweise geht es bei der gestellten Frage nicht um das Werkzeug, obwohl mehrere Leute sich verirrt haben, über das Werkzeug und nicht über den Mechanismus zu sprechen.
JdeBP

Antworten:

11

Ein WoL Magic-Paket kann entweder an den UDP-Port 0, 7 oder 9 (abhängig von der verwendeten Hardware) oder als unformatiertes Ethernet-Paket vom Typ 0x0842 gesendet werden. wolcmdhat sich für die erstere Methode entschieden und standardmäßig Port 7 verwendet.

Beachten Sie, dass wolcmd tut Unterstützung UDP - Broadcast, was bedeutet , dass Sie 255.255.255.255 als Adresse angeben und Maske , wenn Ihre Hardware und Netzwerk - Unterstützung TCP / IP - Broadcasts. Das magische Paket wird nur von dem Computer interpretiert, dessen MAC-Adresse es enthält. Alle anderen werden es ignorieren.

Ignacio Vazquez-Abrams
quelle
Gute Antwort. Ich habe auch die gleiche Frage wie das OP: Was macht die IP-Adresse dort als Layer-2-Paket? Sollte der MAC nicht ausreichen?
Rui F Ribeiro
5
Laut Wikipedia besteht die einzige Voraussetzung für das Magic Packet darin, dass der Ethernet-Frame sechs FFs enthält, gefolgt von 16 Wiederholungen der MAC-Adresse des Zielcomputers. Die IP-Adresse ist wahrscheinlich für Situationen gedacht, in denen das Paket von einem Router weitergeleitet wird, aber ich sehe nicht, wie dies zuverlässig funktionieren kann, da die Adresse (wenn der Zielcomputer ausgeschaltet ist) schnell aus dem ARP-Cache verschwindet. Der Schöpfer von wolcmd scheint nicht sehr kompetent zu sein.
Johan Myréen
1
Es ist sehr einfach. Es gibt keine Möglichkeit, ein UDP / IP-Datagramm ohne IP-Header zu haben, und IP-Header benötigen zwei Adressen.
JdeBP
1
@ JohanMyréen Sie können eine gerichtete Übertragung in ein anderes Netzwerk durchführen, solange der Router dafür konfiguriert wurde.
ErikF
@JdeBP Ja, aber welche Zieladresse? Der Zielcomputer ist im Netzwerk nicht vorhanden, da er deaktiviert ist. Die IP-Adresse, die der Zielcomputer hatte, als er noch eingeschaltet war, ist höchstwahrscheinlich schon lange nicht mehr im ARP-Cache des sendenden Computers enthalten. Und warum gibt es überhaupt eine Option, um die Subnetzmaske anzugeben?
Johan Myréen
1

Die verwendete Syntax lautet: wolcmd [Mac-Adresse] [IP-Adresse] [Subnetzmaske] [Portnummer = 7]

Die [IP-Adresse] und die [Subnetzmaske] werden in Fällen verwendet, in denen Sie einen Computer über das Internet aktivieren müssen. Die [IP-Adresse] muss keine nummerierte IP sein, Sie können eine benannte Adresse oder DDNS-Adresse verwenden und Ihr DNS konvertiert sie in eine IP.

Ich habe dies noch nicht bestätigt, aber ich denke, wenn Sie einen Computer in Ihrem lokalen Netzwerk aktivieren, werden die [IP-Adresse] und die [Subnetzmaske] nicht wirklich benötigt. Sie können beide auf 255.255.255.255 setzen und es würde wahrscheinlich funktionieren.

Die [Portnummer] ist optional und kann standardmäßig auf 7 gesetzt werden.

Eine andere mögliche Anwendung der [IP-Adresse] besteht darin, Ihren Router anzuweisen, diese IP-Adresse dieser Mac-Adresse zuzuweisen, sobald der Computer wach ist und nach einer DHCP-Adresse fragt. Dies hängt von der Intelligenz des Routers ab und davon, ob diese IP-Adresse noch nicht zugewiesen ist. (nicht sicher, ob / wie das über das Internet funktionieren würde).

Joey H.
quelle
0

Vielleicht soll es über das Internet verwendet werden. Wenn Sie eine IP-Adresse angeben, wird diese an den richtigen Router gesendet, wo sie von dort aus sortiert werden kann. Wenn der Computer eine statische IP-Adresse im lokalen Netzwerk hätte, könnte der Router dies sicherlich herausfinden (möglicherweise wäre eine erweiterte Konfiguration erforderlich als bei einem Consumer-Router, aber ich kann die Anwendung sehen.

ritlew
quelle