Reverse Connect
Der TwinCAT OPC UA Server unterstützt die ReverseConnect-Funktion von OPC UA, um eine rückwärtsgerichtete Kommunikationsverbindung vom Server zum Client aufzubauen. Um diese Funktion zu aktivieren, muss im Server eine Liste mit Client-Adressen hinterlegt werden. Anschliessend baut der Server für jeden Client in der Liste eine OPC-UA-TCP-Verbindung auf. Diese Art des Verbindungsaufbaus wird oftmals eingesetzt, wenn ein OPC UA Client Verbindungen mit Servern aufbauen soll, welche sich hinter einer Firewall oder NAT-Gerät befinden. Das folgende Schaubild verdeutlicht diesen Zusammenhang.
In diesem Beispiel gibt es einen OPC UA Client, welcher eine Verbindung zu zwei Servern aufbauen soll, die sich jeweils hinter einer Firewall befinden. Die Firewall blockiert hierbei sämtlichen eingehenden Kommunikationsverkehr und öffnet keinerlei Ports im internen Netzwerk. Der Client ist nun für ReverseConnect konfiguriert und öffnet einen eigenen Netzwerkport unter der Client Endpoint URL opc.tcp://172.17.1.1:48061. Jeder der unterlagerten Server ist ebenfalls für ReverseConnect eingerichtet worden und hat hierbei als ReverseConnect URL die Client Endpoint URL eingetragen. Der Server öffnet nun unter Verwendung dieser URL eine TCP-Verbindung zum Client und hält diese aufrecht. Durch diese TCP-Verbindung wird die eigentliche OPC-UA-Client-Kommunikation mit dem Server getunnelt. Aus Sicht der Firewall handelt es sich durch die initial aufgebaute TCP-Verbindung um eine „ausgehende“ Kommunikation. Hierbei muss nur der ausgehende Kommunikationsport (in diesem Beispiel 48061) in der Firewall freigegeben werden.
Kompatibilität von Clients Bitte beachten Sie, dass der OPC UA Client ebenfalls diese Funktion unterstützen und über seine Client Endpoint URL erreichbar sein muss. |
Konfiguration im Server
Eine Liste mit OPC UA Clients kann in der TcUaServerConfig.xml innerhalb des <UaEndpoint> konfiguriert werden. Hier wird die Client Endpoint URL eingetragen, unter der die jeweiligen Clients erreichbar sind.
<ReverseConnect>
<Url>opc.tcp://172.17.1.1:48061</Url>
</ReverseConnect>
Konfiguration im OPC UA Client
Der folgende Screenshot zeigt exemplarisch die Konfiguration einer ReverseConnect-Verbindung in der OPC UA Client Software „UA Expert“ von Unified Automation. In den Verbindungseinstellungen wird hierzu der ReverseConnect aktiviert und die Client Endpoint URL eingetragen unter der der Client für den Server erreichbar ist. In dem Feld EndpointURL wird die Server Endpoint URL eingetragen, welche der Client verwenden soll sobald vom Server eine ReverseConnect TCP-Verbindung aufgebaut wurde. Bezugnehmend auf unser obiges Schaubild wird hier zum Beispiel opc.tcp://CX-12345:4840 bzw. opc.tcp://CX-98765:4840 eingetragen. Die Einstellungen zu SecuritySettings, MessageSecurityMode sowie die Authentifizierungsparameter gelten dann ebenfalls für diese Verbindung.
Bitte beachten Sie, dass Sie ggf. noch das Serverzertifikat importieren müssen. Hierbei handelt es sich um den Public-Key des Servers, welcher im entsprechenden Applikationsverzeichnis hinterlegt ist.
Kommunikationsverlauf
Das folgende Wireshark Trace zeigt exemplarisch einen Verbindungsaufbau, basierend auf ReverseConnect. Der einzige Unterschied zu obigem Schaubild ist, dass der in diesem Mitschnitt verwendete Client für die Client Endpoint URL opc.tcp://172.30.3.86:48061 konfiguriert wurde. Der Server sitzt hinter einem NAT-Gerät, welches seinerseits die IP-Adresse 178.200.200.59 besitzt.
Beim Aufbau der TCP-Verbindung vom Server zum Client wird eine sogenannte „Reverse Hello“-Nachricht versendet. In dieser gibt der Server dem Client bekannt, unter welcher Server Endpoint URL er erreichbar ist. Dies ist dieselbe Server Endpoint URL, welche Sie im Client konfiguriert haben (siehe oben). Der Client verwendet diese Server Endpoint URL für den weiteren Verbindungsaufbau zum Server.