ich habe hier ein Netzwerkproblem. Grundsätzlich ist das, was zur Fehlersuche notwendig ist, viel mehr, als was in einem Forum möglich ist. Insofern geht es mir darum, hier idealerweise an paar gute Ideen für Richtungen zu bekommen, wo die Wahrscheinlichkeit hoch ist etwas zu finden.
Zu den Tatsachen:
- Es geht um ca. 10 Systeme, die mit dem Modbus-Protokoll zusammen kommunizieren - genauer gesagt: Modbus/TCP (Port 502)
- Es gibt in unregelmässigen Abständen Aussetzer von immer ziehmlich genau 9 Sekunden. Das ca. 10-30 Mal am Tag. Aussetzer heisst: Ein Gerät meldet, dass es die Verbindung zu einem anderen verloren hat.
- Alles befindet sich im gleichen logischen IP-Segment (192.168.12.0/24).
- Mit Wireshark sehe ich da im Netzwerk zu den Zeiten 3 x TCP-Retransmit und dann einen TCP-Reset (Siehe: gallery/image/5034/source)
- Aktuell habe ich auf alle Statitionen mal einen sekündlichen nmap auf Port 502 aller Stationen am Laufen. Erfolgsrate: 100% seit 24 Stunden. (Script: 42224)
- Die Switchportauslastung habe ich noch nicht geprüft, da ich noch nicht die genauen Switche und Ports der Stationen habe.
- defekte Netzwerkhardware (Kabel, Switch, Netzwerkkarten)
- temporäre Beeinträchtigung oder Überlastung des Netzwerkes (z. B. durch Fehlkonfiguration im Netzwerk oder Prozesse, die hohen Traffic verursachen)
- Software, die das Modbus-Protokoll auf den einzelnen Systemen spricht reagiert ab und an nicht, bzw. mit genannten 9 Sekunden Verzögerung.
Die Gründe für TCP-Retransmissions sind ja fehlerhafte Checksummen (=Datenfehler) oder nicht rechtzeitige TCP-Acks von der Gegenstelle. Also Ursachen wären hier für mich wieder die Anwendung, die nicht auf Anfragen schnell genug antwortet, oder eben wieder Das Netzwerk, das aus irgendeinem Grund die Daten nicht, nicht korrekt oder nicht schnell genug überträgt.
Um fehlerhafte Checksumen zu identifizieren überlege ich mir nochmal einen ping mit Datengröße 1500 Bytes im Sekundentakt an alle Stationen zu übertragen. Bewerte ich das richtig, dass ping (icmp) prüft, ob die Daten die er schickt und wieder bekommt auch auf Integrität prüft? Sprich sind genau die Daten angekommen, die auch geschickt wurden? Falls ja: Falls es einen Fehler im Netzwerk gäbe, dann müssten ja irgendwann mal bei mehreren 100.000 Paketen pro Tag mal Fehler auftreten.
Weitere Überlegung wäre für mich auch sekündliche checks mit dem Modbus-Protokoll zu fahren. Auf die Art und Weise müsste ich ja sehen, dass die Anwendung irgendwann mal nicht mehr reagiert, wenn ich in einen Timeout bekomme.
Habe ich irgendwelche groben Denkfehler? Was denkt Ihr dazu?
Nachtrag: Zwei Protokolle für Nichterreichbarkeiten
Die beiden relevanten Hosts sind 192.168.12.200 und 192.168.12.211. Die Tests wurde von einem anderen lokalen Netz aus durchgeführt.
a) sekündliche Ping checks mit 1400 Bytes
Code: Alles auswählen
192.168.12.211
Thu Sep 26 18:57:26 CEST 2024 : new state for host 192.168.12.211: UP
Thu Sep 26 22:39:29 CEST 2024 : new state for host 192.168.12.211: DOWN
Thu Sep 26 22:41:46 CEST 2024 : new state for host 192.168.12.211: UP
192.168.12.200
Thu Sep 26 18:57:26 CEST 2024 : new state for host 192.168.12.200: UP
Thu Sep 26 22:39:29 CEST 2024 : new state for host 192.168.12.200: DOWN
Thu Sep 26 22:41:46 CEST 2024 : new state for host 192.168.12.200: UP
Fri Sep 27 01:43:30 CEST 2024 : new state for host 192.168.12.200: DOWN
Fri Sep 27 01:43:31 CEST 2024 : new state for host 192.168.12.200: UP
Fri Sep 27 11:33:30 CEST 2024 : new state for host 192.168.12.200: DOWN
Fri Sep 27 11:33:31 CEST 2024 : new state for host 192.168.12.200: UP
Fri Sep 27 11:48:03 CEST 2024 : new state for host 192.168.12.200: DOWN
Fri Sep 27 11:48:04 CEST 2024 : new state for host 192.168.12.200: UP
a) sekündliche Nmap - checks auf Port 502/tcp
Code: Alles auswählen
192.168.12.211
Fri Sep 27 02:01:10 CEST 2024 : new state for host 192.168.12.211: UP
Fri Sep 27 10:17:16 CEST 2024 : new state for host 192.168.12.211: DOWN
Fri Sep 27 10:17:37 CEST 2024 : new state for host 192.168.12.211: UP
Fri Sep 27 10:26:37 CEST 2024 : new state for host 192.168.12.211: DOWN
Fri Sep 27 10:26:57 CEST 2024 : new state for host 192.168.12.211: UP
Fri Sep 27 12:18:17 CEST 2024 : new state for host 192.168.12.211: DOWN
Fri Sep 27 12:18:37 CEST 2024 : new state for host 192.168.12.211: UP
192.168.12.200: Immer erreichbar