IGMP und Wake On Lan

722
strubbly

Ich habe einen Windows 10-Server, der seit einiger Zeit mit Wake On Lan gut funktioniert. Für den Realtek-Adapter ist Wake On Magic Packet aktiviert und Wake On Pattern Match deaktiviert. Ebenso ist Windows auf "Nur bei Magic Packet aufwecken" eingestellt. Dies funktioniert normalerweise gut in meinem Heimnetzwerk: Ich habe ein paar WoL-Clients, die den Server bei Bedarf wecken können, und der Server ist so eingestellt, dass er sofort in den Ruhezustand versetzt wird, wenn er nicht mehr benötigt wird.

Vor kurzem habe ich IGMP Proxy auf dem Heimrouter aktiviert, um eine IPTV-Anwendung zu unterstützen. Sobald der Server im Ruhezustand ist, wird er jedoch innerhalb weniger Sekunden wieder aktiviert, ausgelöst durch ein Wecksignal vom Netzwerkadapter. Schalten Sie den IGMP-Proxy aus und das Aufwachen wird beendet.

Ich bin ziemlich zuversichtlich, dass es eine Art Multicast-Paket ist, das den Wake-Effekt auslöst. Ich habe Wireshark benutzt, um die Pakete zu riechen, die das Aufwecken verursacht haben, aber ich kann den Täter nicht finden: Zum Zeitpunkt des Aufwachens gibt es keine Magic Packets, aber viele Multicast-Pakete.

So was ist los? Warum wacht der Adapter auf Paketen auf, bei denen es sich nicht um Magie handelt? Und wie kann ich das beheben?

Aktualisieren:

Ich habe eine Paketerfassung (nur 28 Pakete) gemacht, die den Zeitraum vom Schlaf bis zum Aufwachen auf dem Server umfasst und daher das störende Paket enthalten sollte. Ich bemerke, dass keiner der Frames die MAC-Adresse des Servers enthält (wie ein magisches Paket), aber die meisten von ihnen sind UDP -> RTTP -> ISO / IEC 13818-1 -> DVB-EIT-Pakete, die viele enthalten. FF "Füllung (wie ein magisches Paket).

Es gibt auch 1 ICMP v6-Paket und 2 STP-Frames. Ich glaube nicht, dass sie das tun, seit ich glaube, ich habe Wake-Captures ohne sie gesehen - aber ich könnte mich irren.

Beachten Sie jedoch, dass die Paketerfassung über einen Switch erfolgte. Es würde also jedes gesendete magische Paket sehen (wie ich es absichtlich sende), aber es würde kein hypothetisches magisches Paket erfassen, das direkt an die MAC des Servers gesendet wird. Wenn ich jedoch auf dem Server ein Capture mache (unter den Bedingungen, unter denen er aufwacht, aber wenn er wach ist - natürlich), sehe ich nichts wie ein magisches Paket, das an seine MAC-Adresse gerichtet ist.

Die NIC ist ein Realtek 8168 PCI-GbE-Adapter, wie er auf meinem Asus P 8Z77-V LX-Motherboard mit den neuesten Treibern von hier geliefert wird .

AKTUALISIERT MIT PRÄZISTEN SYMPTOMEN

Der IGMP war also nicht die direkte Ursache. Ich kann das Problem ohne Verwendung von Multicast ziemlich zuverlässig reproduzieren. Wenn ich einfach ein bestimmtes UDP-Paket (Payload) wiederholt als UDP-Broadcast an den Adapter schicke, kann ich es irgendwann zum Aufwecken bringen. Normalerweise dauert das Senden 300 oder 400. Das Paket wurde aus einer Erfassung des Multicast-Streams kopiert und ist typisch für die Art von Paketen, die darin gesehen werden.

Dies ist der Python 3-Code, den ich zum Senden des Pakets verwendet habe (und die Bytes des Pakets als Hex-Dump).

import time from socket import * cs = socket(AF_INET, SOCK_DGRAM)  hex_dump = ''' 0000 01 00 5e 51 82 fb 78 24 af 98 f3 30 08 00 45 88 0010 05 4c 00 00 00 00 3a 11 a8 31 6d 9f f7 fb ea 51 0020 82 fb 16 aa 16 aa 05 38 00 00 80 21 0c a1 f9 47 0030 9b 2e 00 00 00 2d 47 40 12 13 00 4f f0 37 04 6d 0040 fb 01 01 04 6d ff 00 01 4f d0 35 e4 1c 17 30 00 0050 00 30 00 20 1c 4d 1a 65 6e 67 15 52 75 67 62 79 0060 20 54 6f 6e 69 67 68 74 20 4f 6e 20 54 6f 75 72 0070 00 9b fe ae 4d ff ff ff ff ff ff ff ff ff ff ff 0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00f0 ff ff 47 1f ff 10 ff ff ff ff ff ff ff ff ff ff 0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0120 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0130 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0140 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0150 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0160 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0170 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0180 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0190 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 01a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff 47 40 01b0 12 14 00 4f f0 3b 04 6e fb 00 01 04 6e ff 00 01 01c0 4f e3 83 e4 1c 16 26 00 02 04 00 80 20 4d 1e 65 01d0 6e 67 19 4c 69 76 65 3a 20 44 61 72 6d 73 74 61 01e0 64 74 20 76 20 48 61 6d 62 75 72 67 00 20 6e 4f 01f0 2b ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0200 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0210 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0220 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0230 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0240 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0250 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0260 ff ff ff ff ff ff ff ff ff ff 47 40 12 15 00 4f 0270 f0 41 04 6e fb 01 01 04 6e ff 00 01 4f e3 87 e4 0280 1c 18 30 00 02 00 00 20 26 4d 24 65 6e 67 1f 4c 0290 69 76 65 3a 20 57 65 72 64 65 72 20 42 72 65 6d 02a0 65 6e 20 76 20 57 6f 6c 66 73 62 75 72 67 00 7b 02b0 ba e0 e7 ff ff ff ff ff ff ff ff ff ff ff ff ff 02c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 02d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 02e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 02f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0300 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0310 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0320 ff ff ff ff ff ff 47 1f ff 10 ff ff ff ff ff ff 0330 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0340 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0350 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0360 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0370 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0380 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0390 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 03a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 03b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 03c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 03d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 03e0 ff ff 47 40 12 16 00 4f f0 2f 04 6f dd 00 01 04 03f0 6f ff 00 01 4f ca b7 e4 1c 17 00 00 00 15 00 80 0400 14 4d 12 65 6e 67 0d 4d 6f 74 6f 47 50 3a 20 49 0410 43 59 4d 49 00 81 93 dc 61 ff ff ff ff ff ff ff 0420 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0430 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0440 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0450 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0460 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0470 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0480 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0490 ff ff ff ff ff ff ff ff ff ff ff ff ff ff 47 40 04a0 12 17 00 4f f0 37 04 6f dd 01 01 04 6f ff 00 01 04b0 4f ca 41 e4 1c 17 15 00 00 15 00 20 1c 4d 1a 65 04c0 6e 67 15 42 54 20 53 70 6f 72 74 20 47 6f 61 6c 04d0 73 20 52 65 6c 6f 61 64 00 9a 07 13 89 ff ff ff 04e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 04f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0500 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0510 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0520 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0530 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0540 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0550 ff ff ff ff ff ff ff ff ff ff '''  arr = hex_dump.split('\n')  pkt = bytes() for a in arr: arr1 = a.split() hex_str = "".join(arr1[1:]) pkt += bytes.fromhex(hex_str)  cs.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) cs.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)  for i in range(1000): print(i) cs.sendto(pkt[42:], ('192.168.1.255', 5802)) time.sleep(0.01) 
5
welche NIC und Treiber verwenden Sie? Albin vor 6 Jahren 1
Ich habe der Frage die NIC-Informationen hinzugefügt strubbly vor 6 Jahren 0

1 Antwort auf die Frage

1
harrymc

Möglicherweise enthält der Microsoft Support-Artikel einige Hinweise.
Unerwünschte Aktivierungsereignisse können auftreten, wenn Sie die Wake On LAN-Funktion in Windows 7 oder Windows Vista aktivieren .

Es scheint, als sei das Zauberpaket nicht die einzige Nachricht, die abgehört wird, wenn Wake On Lan aktiviert ist.

Windows 7 und Windows Vista überwachen standardmäßig die folgenden Pakete, wenn Sie WOL aktivieren:

  • Ein gerichtetes Paket an die MAC-Adresse des Netzwerkadapters
  • Eine NetBIOS-Namensauflösung für den lokalen Computernamen
  • Ein ARP-Paket (Address Resolution Protocol) für die IPv4-Adresse des Netzwerkadapters
  • Ein IPv6 Neighbor Discovery-Paket für die Multicast-Adresse des Netzwerkadapters

Es gibt zwei Orte, an denen ich Hinweise zur Begrenzung von Wake On Lan-Ereignissen gefunden habe.

In der Systemsteuerung> Netzwerk und Internet> Netzwerkverbindungen rechten Maustaste auf den Adapter, und wählen Sie Eigenschaften und klicken Sie dann auf Konfigurieren . Auf der Registerkarte " Erweitert" gibt es zwei Eigenschaften, die beide standardmäßig aktiviert sind: " Wake on Magic Packet" und " Wake On Pattern Match" . Das Deaktivieren des zweiten kann hilfreich sein.

enter image description here

Im Power Management - Registerkarte. Stellen Sie sicher, dass Sie die beiden Kontrollkästchen neben " Dieses Gerät den Computer aktivieren" aktivieren und " Nur ein magisches Paket darf den Computer" aktivieren .

image

Das Deaktivieren von IPv6 in Ihrem lokalen Netzwerk kann auch die Anzahl der unbeabsichtigten Aktivierungsereignisse begrenzen.

Ich habe definitiv beide Einstellungsseiten eingestellt, wie Sie vorschlagen. strubbly vor 6 Jahren 0
Sie sind sich nicht sicher, was Sie meinen, indem Sie IPv6 "im lokalen Netzwerk" deaktivieren. Es ist auf dem Router ausgeschaltet, aber einige Geräte verwenden es immer noch. strubbly vor 6 Jahren 0
Wenn der Router ausgeschaltet ist, leitet er keine IPv6-Nachrichten weiter. Das ist in Ordnung. Ich muss zugeben, dass ich erstaunt bin, dass Ihr Computer immer noch von anderen Nachrichten geweckt wird, obwohl Ihre Einstellungen ihn deaktivieren sollen. Was sind die Modelle Ihres Computers, Ihres Motherboards und Ihres Netzwerkadapters? harrymc vor 6 Jahren 0
Ich bin auch überrascht :-) Der PC ist ein Asus P8Z77-V LX, der einen Realtek GbE-Chip besitzt. Letztes Windows 10. strubbly vor 6 Jahren 0
Was sagt "powercfg -wakewake"? Versuchen Sie auch, [powercfg -energy] (https://www.howtogeek.com/howto/7638/use-powercfg-in-windows-7-to-evaluate-power-efficiency/) auszuführen, während der Computer nicht aktiv ist das Ergebnis. harrymc vor 6 Jahren 1
Das Aufwecken ist definitiv vom Netzwerkadapter: Er stoppt, wenn ich das Kontrollkästchen "Dieses Gerät zulassen lassen" deaktivieren strubbly vor 6 Jahren 0
Der Energiebericht kann nützlich sein. Realtek verfügt über einen sehr aktuellen [Netzwerktreiber] (http: //www.pdf.de//1111/1511/de/) / RTL8111CP / RTL8111D% 28L% 29% 3Cbr% 3ERTL8168C / RTL8111DP / RTL8111E% 3Cbr% 3ERTL8168E / RTL8111F / RTL8411% 3Cbr% 3ERTL8111G / RTL8111G / RTL8111G / RTL8111G / RTL8111G / Die [BIOS-Version 2501] (https://www.asus.com/us/Motherboards/P8Z77V_LX/HelpDesk_Download/) ist seit 2015/09/07 ziemlich alt, aber überprüfen Sie es trotzdem. Machen Sie vorher Backups. harrymc vor 6 Jahren 0
Ich habe gerade ein Upgrade auf diese Treiberversion durchgeführt - keine Verbesserung. strubbly vor 6 Jahren 0
Der Energiebericht könnte helfen, Weckprobleme zu lokalisieren. harrymc vor 6 Jahren 0
Sie können auch einen Windows 10-Treiber von Realtek für den [Realtek 8168] (https://realtek-download.com/realtek-pcie-gbe-family-controller/) ausprobieren. harrymc vor 6 Jahren 0