TCP SYN erreicht den TCP-Server nicht


2

Ich habe einen TCP-Server am 10.10.10.101, Port 2000, der auf einem Windows 7-Computer ausgeführt wird. Unten ist die entsprechende Ausgabezeile für den Befehl netstat -aon:

TCP 10.10.10.101:2000 0.0.0.0:0 LISTENING 2340

Ich habe auch ein FPGA, das jede Sekunde ein TCP-SYN-Paket sendet, bis der Server antwortet.

Das FPGA stellt eine physische Verbindung zu einer direkten Netzwerkschnittstelle auf dem Windows 7-Computer her, für die die statische IP-Adresse 10.10.10.101 konfiguriert wurde. Die Quell-IP-Adresse der SYN-Pakete lautet 10.10.10.100.

Ich kann sehen, dass die SYN-Pakete mit WireShark über die Netzwerkschnittstelle empfangen werden, aber der TCP-Server antwortet nicht auf SYN / ACK. Ich gehe davon aus, dass der TCP-Server die SYN-Pakete aufgrund von Routing-Problemen nicht sieht.

Ich habe zwei Routen wie folgt manuell hinzugefügt ( IF 16bezieht sich auf die Schnittstelle mit statischer IP 10.10.10.101):

route add 10.10.10.100 MASK 255.255.255.255 10.10.10.1 METRIC I IF 16

route add 10.10.10.101 MASK 255.255.255.255 10.10.10.1 METRIC I IF 16

Habe ich die Routen korrekt hinzugefügt? Wie kann ich sicherstellen, dass der TCP-Server die IP-Pakete tatsächlich nicht mit dem TCP-SYN weiterleitet? Was kann ich tun, um mehr Einsicht in das zu bekommen, was falsch läuft?


1
Sicher, wenn Wireshark die Pakete sieht, ist es kein Routing-Problem? Sind Sie sicher, dass Ihr TCP-Server korrekt an diesen Port / diese Schnittstelle gebunden ist? Was passiert, wenn Sie versuchen, von einem anderen Computer im Netzwerk aus zu senden?
Jon Cage

@ JonCage: Mein TCP-Server ist korrekt gebunden, wie durch den netstatBefehl bestätigt (siehe aktualisierte Frage). Wenn Sie eine andere Netzwerkschnittstelle (mit einer anderen IP-Adresse) verwenden, funktioniert der TCP-Server auch von einem anderen Computer im Netzwerk aus wie erwartet.
Randomblue

Es scheint seltsam, Syns wiederholt zu senden, und Syn-Flooding ist ein üblicher DOS-Vektor. Halten Sie es für möglich, dass ein Gerät in der Mitte die Pakete ablegt, um einen DOS-Angriff zu verhindern?
Frank Thomas

@FrankThomas: Das FPGA ist direkt mit dem Computer verbunden, auf dem sich der TCP-Server befindet. In der Mitte befindet sich kein Gerät. Außerdem sieht WireShark alle SYNs.
Randomblue

Könnte die Windows-Firewall die Pakete verwerfen, nachdem wireshark sie gesehen hat? Scheint seltsam, dass von einem anderen Computer funktionieren würde, wenn Sie in der Lage sind, die gleichen Informationen von einem anderen Computer (?) Erfolgreich zu senden,
Jon Cage

Antworten:


2

Ich wette, der Server hat keinen ARP- Eintrag für die IP-Adresse, von der die SYN stammt, und kann daher kein Antwortpaket auf die Ethernet-Leitung übertragen, da er nicht weiß, an welche Ethernet-Hardwareadresse die Antwort gesendet werden soll.


Du hast es richtig gemacht, Glückwunsch! Das Hinzufügen eines neuen Eintrags in der ARP-Tabelle hat das Problem behoben! Prost.
Randomblue

1

Mein Geld wäre, basierend auf dem, was Sie in Ihrem Beitrag gesagt haben, dass der Server, den Sie betreiben, an die falsche Schnittstelle gebunden ist.

Wenn Sie die Option haben, deaktivieren Sie die von Ihnen getestete Schnittstelle, die von anderen Computern aus funktioniert, und starten Sie die Serversoftware neu.

Wenn Sie die andere Schnittstelle nicht deaktivieren oder trennen können, weil Sie sie für den Remotedesktop auf dem Servercomputer verwenden, können Sie das FPGA an diese Schnittstelle und Ihre Remotedesktopverbindung an die Schnittstelle anschließen, mit der das FPGA derzeit verbunden ist.

Wenn Sie in der Lage sind, die Serversoftware zu ändern, würde ich vorschlagen, zu überprüfen, an welche Schnittstelle (n) sie gebunden ist. Bei der Verwendung von Windows-Netzwerkbindungen (Senden / Empfangen von UDP-Broadcasts über die falsche Schnittstelle) gab es zuvor Probleme in dieser Richtung. ..

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.