Step 7 Komisches Verhalten bei Synchronisation über NTP mit mehreren CPs in einem Netzwerk

Slaine

Level-1
Beiträge
128
Reaktionspunkte
21
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

bei einem Laboraufbau für eine neue Anlage bin ich über folgendes, merkwürdiges Verhalten gestolpert, was ich mir nicht so ganz erklären kann. Der Aufbau sieht so aus, dass es ein übergeordnetes Netzwerk gibt, in dem sich ein NTP-Server befindet. Über einen Router geht es in das Anlagennetzwerk, wo sich eine CPU 314 mit CP 343-1 Lean und eine CPU 315-2 PN/DP mit CP 343-1 befinden. Der Plan war nun eigentlich, dass die CPs sich über NTP synchronisieren und ihre Zeit an die jeweils zugehörige CPU weiterleiten. Dazu habe ich erstmal die CPs so eingestellt, dass sie die Uhrzeit an die Station weiterleiten und die Station jeweils als Slave konfiguriert. Mit dem Ergebnis, dass sich nur einer von beiden CPs die Zeit geholt und an die CPU weitergeleitet hat, bei der anderen Station tat sich gar nix. Nicht mal die falsche Uhrzeit wurde an die CPU weitergeleitet.
Also habe ich die CPU 315-2 PN/DP so eingestellt, dass sie sich die Zeit holt und die Zeit an den CP weiterleitet. Das hat soweit auch funktioniert. Nun habe ich weiter mit den Einstellungen experimentiert und den CP 343-1 und die CPU 315-2 PN/DP so eingestellt, dass sie sich ohne Weiterleitung jeweils einzeln synchronisieren. Das Ergebnis war, dass sich die CPU und einer von den beiden CPs die Zeit holen, während auf dem anderen CP nichts passiert. Die NCM-Diagnose behauptet, dass der NTP-Server nicht erreichbar wäre, was aber nicht der Fall ist.
Dann war Feierabend, ich habe den Aufbau über Nacht stehen lassen und siehe da, am nächsten Morgen holte sich der CP die Zeit, der den Tag zuvor behauptet hat, er könne den NTP-Server nicht erreichen und der andere CP behauptet nun, er könne den NTP-Server nicht erreichen. Also habe ich mich mit Wireshark ins Netzwerk gehängt und die Protokolle aufgezeichnet...mit dem Ergebnis, dass der CP, der behauptet, er könne den NTP-Server nicht erreichen, überhaupt keine Anfragen an den NTP-Server sendet. Nur die CPU und der andere CP unterhalten sich mit dem NTP-Server. Also habe ich noch eine CPU 315-2 DP mit CP 343-1 Lean ins Netzwerk gehängt mit dem Ergebnis, dass nun nur noch einer von den drei CPs Anfragen an den NTP-Server stellt. Die anderen beiden machen gar nichts, während die CPU 315-2 PN/DP ganz normal weiter ihre Anfragen abschickt.
Ich habe dann diverse Kombinationen in den Einstellungen durchgespielt, mit und ohne Weiterleitung, aber es bleibt dabei, dass nur ein CP synchronisiert wird. Sobald ein weiterer CP dazu kommt, funktioniert es bei diesem entweder nicht, oder nach einer unbestimmten Zeit funktioniert der hinzugefügte CP, dafür aber der andere nicht mehr. Was ich noch nicht ausprobiert habe ist, wie es sich mit zwei CPUs im Netzwerk verhält, die über NTP synchronisieren sollen.

Gelöst habe ich das Problem jetzt, indem ich nur die CPU 315-2 PN/DP über NTP synchronisiere und diese dann als Master über das SIMATIC-Verfahren die restlichen CPs im Netz synchronisieren lasse, die dann ihre Zeit wieder an die zugehörige CPU weiterschicken. Das funktioniert auch alles wie gewünscht, aber vielleicht kann da jemand Licht ins Dunkel bringen, warum sich das Ganze so verhält? So wie ich die Beiträge von Siemens verstanden habe, gilt die Einschränkung mit einem Master im Netz nur für das SIMATIC-Verfahren, nicht aber für NTP. Ich habe bei NTP ja auch keine Einstellungsmöglichkeiten, außer das Weiterleiten an die Station, was ich aber so verstehe, dass damit nur die Station gemeint ist, an der der CP direkt hängt. Selbst wenn das mit dem einen Master auch für NTP gilt, warum funktionieren dann CPU und CP gleichzeitig, aber zwei CPs nicht? Ohne aktive Weiterleitung sollte es dem einen CP doch eigentlich egal sein, was der andere CP macht?
 
Also habe ich noch eine CPU 315-2 DP mit CP 343-1 Lean ins Netzwerk gehängt mit dem Ergebnis, dass nun nur noch einer von den drei CPs Anfragen an den NTP-Server stellt. Die anderen beiden machen gar nichts,

Wo genau machst du diese Traces?
Mal davon ausgehend dort ist kein Hub verbaut, sehen die CPs die NTP Anfragen der anderen Teilnehmer überhaupt nicht. (irgendwann senden die anderen ja doch, sonst würde immer nur der gleiche funktionieren)

Macht der Router NAT?
Das könnte ein Problem sein, wenn die CPs mit Source Port 123 (bin ich mir unsicher) senden und der Router den umbiegt.
Die CPU als reiner Client wird einen random Source Port verwenden, da ist das NAT egal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hänge zwischen dem Anlagenswitch und dem Router mit einem selbstgebauten Ethernet Tap. Und ja, der Router macht NAT. Das könnte in der Tat ein Grund sein, warum es nicht funktioniert, da alle über UDP 123 kommunizieren wollen. Werde mich mit den CPs mal direkt auf das übergeordnete Netz hängen und gucken, was dann passiert. Danke für den Tip :D
 
Ein Erklärungsversuch mit dem NAT ist unbefriedigend. Selbst wenn alle CP mit dem gleichen Source-Port anfragen, so unterscheiden sie sich doch in der IP-Adresse und der Router kann das eindeutig auseinanderhalten.

Ich könnte mir vorstellen, daß die CP vielleicht alle den gleichen (Standard-) PN-IO-Gerätename haben und wegen diesem Konflikt die neu hinzukommenden CP im Netzwerk "nicht richtig kommunizieren wollen".

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein Erklärungsversuch mit dem NAT ist unbefriedigend. Selbst wenn alle CP mit dem gleichen Source-Port anfragen, so unterscheiden sie sich doch in der IP-Adresse und der Router kann das eindeutig auseinanderhalten.

Das stimmt zwar, trotzdem sehe ich keine andere Erklärung.
Wenn du den Wireshark schon an hast, schau mal auf der externen Schnittstelle des Routers auf welchen Source Port die erste, bzw. interessanter die zweite NTP Anfrage (eines anderen CPs) genatet wird.
Und ob der Server dann auf die zweite überhaupt antwortet.
 
Ich habe das Problem jetzt mal weiter analysiert und es scheint tatsächlich ein Problem mit dem Router zu sein. CPs werden intern immer auf den gleichen Port umgeleitet (war bei mir 65532). Sind mehrere CPs im Netz aktiv, so kann nur einer kommunizieren, die anderen können keine Verbindung zum NTP-Server aufbauen. Die Anfrage geht auf der externen Schnittstelle gar nicht erst raus, man kann die Versuche nur auf der internen Schnittstelle beobachten. Zur Probe habe ich auch noch mal mehrere CPUs ins Netz gehängt, dort funktioniert aber alles problemlos und jeder CPU wird ein anderer Port zugewiesen (waren bei mir im Test jetzt 49154-49156).
 
Zurück
Oben