Brevet FR2930394A1 — publié le 20091023

Passerelle de communication entre deux réseaux IP La présente invention se rapporte à une passerelle de communicaticn capable de router des messages conformes au protocole de communicaticn Modbus/TCP provenant d'un premier réseau de communication IP vers un second réseau de communication IP. L'invention se rapporte également à une méthode de communication mise en oeuvre par une telle passerelle. Sous le terme réseau IP (Internet Protocol), on désignera ci-après un réseau de communication de type Internet, Intranet ou Extranet conforme à la norme TCP/IP (Transport Communication Protocol / Internet Protocol) ou à la norme UDP/IP. Un tel réseau IP peut véhiculer des messages conformes au protocole de communication Modbus/TCP. Modbus/TCP est un protocole de communication qui permet d'échanger des trames conformes au protocole Modbus pour la couche application (couche 7) du modèle ISO (International Standards Organization), et de véhiculer ces trames Modbus sur un réseau Ethernet en utilisant les couches ISO du standard TCP/IP de l'Internet. Par souci de simplification, un message conforme au protocole de communication Modbus/TCP sera appelé par la suite message Modbus/TCP. Le terme "liaison série Modbus" définit un protocole de communication qui permet d'échanger des trames conformes au protocole Modbus pour la couche application du modèle ISO, et de véhiculer ces trames Modbus sur une liaison série multipoints fonctionnant en Maître/Esclave. Les adresses Modbus sur une telle liaison série sont codées sur un octet (0 à 255). Par souci de simplification, un message circulant sur une liaison série Modbus sera appelé par la suite message Modbus série. Modbus� (http://www.modbus.orq/) est un protocole de messagerie qui est fréquemment utilisé dans des architectures d'équipements d'automatisme. II fonctionne sur le mode client/serveur : un équipement client envoie une requête à u l équipement serveur lequel renvoie une réponse à l'équipement client. Toute trame Modbus comporte un en-tête (appelé MBAP Header - Modbus Application Protocol Header) contenant notamment une information d'identification (appelée Unit ID) de l'équipement destinataire codée sur un octet, un code requête à réaliser (fonction écriture, lecture,...), des données à échanger et un code de vérification d'erreur. Sous le terme équipement d'automatisme, on désignera ci-après un automate programmable, une commande numérique, une station de contrôle/commande, mais aussi tout équipement ou module d'automatisme possédant au moins une unité de traitement, capable de se connecter sur un réseau IP, et capable d'exécuter un programme pour piloter, commander et/ou surveiller ure application ou process d'automatisme. On inclura ainsi dans cette définition un module métier ou un module d'entrées/sorties d'un automate programmable, L n variateur de vitesse, etc.... Un tel équipement d'automatisme peut s'utiliser dans toue application d'automatisme appartenant notamment au domaine des automatismes industriels, des automatismes du bâtiment et des infrastructures, c u contrôle/commande des réseaux électriques de distribution. L'utilisation du protocole de communication Modbus/TCP dans des architectures intégrant des équipements d'automatisme permet de combiner les avantages de la simplicité apportée par le protocole Modbus avec ceux de l'ouvertu -e apportée par le protocole TCP/IP grâce à un accès direct via une adresse IP. Cependant, l'ouverture apportée par le protocole TCP/IP peut parfois créer des problèmes de sécurité et de contrôle d'accès à certains équipements d'automatisme, en charge par exemple de piloter un process d'automatisme sensible. Par ailleurs, l'attribution à tous les participants d'un réseau de communication basé sur Modbus d'une adresse IP routable sur Internet par un fournisseur d'accès internet s'avère pénalisante en termes de coûts d'abonnement et de connexion. Le principe connu du NAT (Network Address Translation û Traduction d'Adresse Réseau IP) consiste à utiliser une passerelle de communication connectée par exemple entre un réseau IP global (tel que le réseau Internet) et un réseau P local, et possédant une adresse IP routable. La passerelle est capable d'associer une adresse IP locale (appelée aussi adresse IP privée) avec une adresse IP globale (appelée aussi adresse IP publique) routable sur Internet. Ainsi, chaque équipement connecté au réseau IP local nécessitant d'accéder au réseau IP global est configuré pour utiliser la easserelle NAT (en précisant l'adresse IP de la passerelle dans le champ �Gateway� de ses paramètres TCP/IP). Lorsqu'un tel équipement veut émettre un message vers le réseau global, la passerelle envoie à sa place e message sur le réseau IP global, reçoit la réponse, puis la transmet à l'équipement expéditeur sur le réseau IP local. Cependant, ce principe n'utilise pas les informations contenues dans les trames du niveau couche application (couche 7 du modèle ISO) d'un message pour pouvoir déterminer notamment l'adresse du destinataire de ce message. L'invention se propose donc: d'utiliser directement le contenu des trames Modbus existantes pour effectuer aui.omatiquement et de façon transparente un routage des messages Modbus/TCP entre deux réseaux IP, sans que l'équipement client émetteur d'une requête Modbus sur un réseau IP ne connaisse l'adresse IP de l'équipement serveur destinataire de la requête sur l'autre réseau IP, notamment pour des raisons (le sécurité et/ou de confidentialité. C'est pourquoi l'invention décrit une passerelle de communication comprenant une première interface pour recevoir, sur un port de communication TCP dédié, un message Modbus/TCP émis par un équipement expéditeur connecté à un premier réseau IP et une seconde interface pour envoyer un message Modbus/TCP vers un équipement destinataire connecté à un second réseau IP. La passerelle comporte une table de correspondance entre des informations d'identification et des adresses IP correspondantes, est capable d'extraire une information d'identification d'un équipement destinataire contenue dans une trame Modbus d'un message Modbus/TCP reçu par la première interface, et est capable de transformer ledit message Modbus/TCP reçu en un message Modbus/TCP à envoyer par la seconde interface à l'adresse IP correspondante dudit équipement destinataire, en utilisant la table de correspondance. Selon une caractéristique, la passerelle de communication comporte une troisième interface de connexion à une liaison série Modbus, et est capable de transformer le message Modbus/TCP reçu par la première interface en un message Modbus série à envoyer par la troisième interface, lorsque l'information d'identification contenue dais la trame Modbus du message Modbus/TCP reçu n'est pas présente dans la table de correspondance. Selon une autre caractéristique, la table de correspondance comporte également une information d'identification secondaire correspondant à chaque information d'identification. La passerelle de communication remplace alors l'information d'identification contenue dans la trame Modbus du message Modbus/TCP reçu par la première interface, par l'information d'identification secondaire correspondante dans le message Modbus/TCP à envoyer par la seconde interface. L'invention décrit également une méthode de communication dans laquelle les moyens de traitement de la passerelle de communication détectent un message Modbus/TCP reçu par la première interface sur un port de communication TCP dédie, extraient une information d'identification d'un équipement destinataire contenue dans une trame Moclbus dudit message Modbus/TCP reçu, lisent une adresse P correspondant à l'information d'identification extraite, en utilisant la table de correspondance, et transforment ledit message Modbus/TCP reçu en un message Modbus/TCP à envoyer par la seconde interface à l'adresse IP dudit équipement destinataire. Grâce à l'invention, un équipement informatique distant connecté à un réseau IP global peut, de façon transparente, envoyer à un équipement d'automatisme connecté à un réseau IP local des trames Modbus encapsulées dans des messages Modbus/TCP, sans connaître l'adresse IP locale de cet équipement d'automatisme cestinataire. II lui suffit de connaître l'adresse IP globale de la passerelle ainsi que l'information d'identification Unit ID codée dans toute trame Modbus de l'équipement d'automatisme destinataire. L'équipement informatique utilise le port de communication TCP réservé aux échanges conformes au protocole Modbus (port 502 attribué par l'IANA ù Internet Assigned Numbers Authority), de façon à ce que la passerelle sache que le message reçu est un message Modbus/TCP. La passerelle peut alors extraire de la trame Modbus, encapsulée dans le message Modbus/TCP, l'information d'identification (tel que numéro d'esclave Modbus) permettant d'identifier l'équipement d'automatisme destinataire du message D'autres caractéristiques et avantages vont apparaître dans la description détaillée qui suit en se référant à un mode de réalisation donné à titre d'exemple et représenté par les dessins annexés sur lesquels : - la figure 1 représente un exemple d'architecture de communication simplifiée conforme à l'invention, la figure 2 détaille la table de correspondance de la passerelle de communication, la figure 3 montre une variante de la figure 1. L'architecture de communication présentée dans la figure 1 montre Ln premier réseau IP 20, un second réseau IP 30 et une passerelle de communication 10 entre les deux réseaux 20,30. La passerelle 10 comporte une première interface 12 de connexion au premier réseau IP 20 et une deuxième interface 13 de connexion au second réseau IP 30. Plusieurs équipements 25, tels que des équipements informatiques, sont connectés au premier réseau IP 20 et plusieurs équipements d'automatisme 35 sont connectés au second réseau IP 30. Le premier réseau IP 20 est par exemple un réseau global tel que Internet et le second réseau IP 30 est par exemple un réseau local tel qu'un réseau Intranet au sein d'une entité. Dives équipements d'automatisme 35 sont capables de s'échanger des informations sur le réseau local IP 30 grâce à des communications conformes au protocole Modbus/TCP. Pour cela, chaque équipement d'automatisme 35 possède une adresse IP locale (adresse IP privée), laquelle n'est pas communiquée sur le réseau global IP 20. Donc, lorsqu'un équipement informatique 25 veut également communiquer directement via Modbus/TCP avec un équipement d'automatisme 35, il ne connaît pas l'adresse IP locale de cet équipement 35, car cette adresse IP locale n'est pas une adresse IP publique routable sur Internet (par exemple adresse IP locale du type 192.168.x.x). La passerelle de communication 10 a notamment pour but d'effectuer yin routage des messages Modbus/TCP, c'est-à-dire qu'elle est capable de transformer un message Modbus/TCP provenant d'un équipement client 25 connecté au réseau IP 20 global en un autre message Modbus/TCP à destination d'un équipeme-d serveur 35 connecté au réseau IP 30 local. Grâce à la passerelle 10, l'équipeme Tt client 25 n'a pas besoin de connaître l'adresse IP de l'équipement serveur destinataire du message Modbus/TCP. Pour cela, la passerelle 10 comporte des moyens de mémorisation et des moyens de traitement (non représentés sur les figures par simplification). Les moyens de mémorisation, par exemple une mémoire sauvegardée ce type mémoire Flash ou autres, contiennent une table de correspondance 15 qJi permet d'associer des informations d'identification 17 avec des adresses IP locales 18 correspondantes (voir figure 2). L'information d'identification 17 coïncide avec l'information Un t-Identifier (Unit ID - R) qui est contenue dans l'en-tête (MBAP Header) de toute trame Modbus, et représente l'adresse Modbus de l'équipement destinataire 35 d'un message Modbus. L'adresse IP locale 18 représente l'adresse l' de cet équipement destinataire 35 sur le réseau IP 30 local. L'information d'Identification 17 étant codée sur un octet, la table de correspondance 15 peut donc comporter jusqu'à 256 informations d'identification 17 différentes associées à 256 adresses IP locales 18 correspondantes. Par ailleurs, selon une variante présentée en figure 3, la passerelle de communication 10 peut également comporter une troisième interface de connexion 14 à une liaison série Modbus 40. La passerelle 10 joue alors le rôle de maître Modbus susceptible de communiquer avec un ou plusieurs esclaves Modbus 45 via la liaison série 40. Quand un équipement client 25, connecté au réseau IP 20 global, veut envoyer un message Modbus/TCP à un équipement serveur 35, connecté au réseau IP 30 local, il émet alors son message Modbus/TCP à l'adresse IP globale de la passerelle 10 en utilisant le port de communication TCP dédié au protocole Modbus. II ne connaît que l'adresse IP globale de la passerelle 10 et l'identification Unit ID de l'équipement destinataire 35. Pour pouvoir router un message Modbus/TCP, la passerelle 10 doit donc analyser le contenu de la trame Modbus encapsulée dans le message Modbus/TCP, c'est-à-dire analyser des informations appartenant à la couche Application (Couche 7 du modèle ISO) du message Modbus/TCP. Les rnoyens de traitement de la passerelle 10 détectent qu'un message reçu par la première interface 12 est un message Modbus/TCP, car ce message a été reçu sur le port TCP dédié (port 502 pour Modbus). Ils analysent alors le contenu du message Modbus/TCP reçu et en extraient l'information d'identification 17 de la trama Modbus. Les moyens de traitement testent ensuite si l'information d'identification 17 extraite est présente dans la table de correspondance 15 mémorisée dans la passerelle 10. a) Si c'est le cas, les moyens de traitement lisent dans la table de correspondance 15 l'adresse IP locale 18 correspondant à l'informatioi d'identification 17 extraite. Puis, ils transforment le message Modbus/TCP reçu en un message Modbus/TCP à envoyer par la deuxième interface 13, et utilisant l'adresse IP locale 18 lue comme adresse IP destinataire du message Modbus/TCP à envoyer. Cette adresse IP locale 18 représente en effet l'adresse IP de l'équipement serveur 35. b) Si ce n'est pas le cas et si la passerelle 10 comporte une troisième interface de communication 14, les moyens de traitement transforment alors le message Modbus/TCP reçu en un message Modbus série à envoyer par cette troisième interface 14, en conservant l'information d'identification 17 extraite dans la trame Modbus. L'information d'identification 17 représente alors directement l'adresse Modbus (codée sur un octet) de l'équipement esclave 45 connecté à la liaison série 40. c) Si ce n'est pas le cas et si la passerelle 10 ne comporte pas de troisième interface 14, la passerelle 10 ne route pas le message Modbus/TCP reçu et un signal d'erreur peut par exemple être renvoyé à l'équipement client 25. Dans un mode de réalisation préféré, la table de correspondance 15 comporte également une information d'identification secondaire 19 (Unit ID - E) correspondante à chaque information d'identification 17 (voir figure 2). Dans ce cas, lors de l'étape de transformation du message Modbus/TCP reçu en un message Modbus/TCP à envoyer (voir cas a) ci-dessus), les moyens de traitement de la passerelle 10 lisent l'information d'identification secondaire 19 correspondante à l'information d'identification 17 extraite. Puis ils remplacent l'information d'identification 17 présente dans la trame Modbus du message Modbus/TCP reçu par cette information d'identification secondaire 19 dans la trame Modbus du message Modbus/TCP à envoyer par la deuxième interface 13. Cette fonctionnalité présente notamment l'avantage de pouvoir envoyer un message Modbus/TCP sur le réseau IP 30 local à un équipement destinataire 35 qui comporte lui-même une interface de communication vers une liaison série Modbus 50. L'équipement destinataire 35 sert alors de passerelle capable de router un message reçu via le réseau IP 30 vers un équipement esclave 55 connecté à la liaison série 50. L'équipement destinataire 35 joue alors le rôle de maître Modbus sur la liaison série 50. L'information d'identification secondaire 19 contenue dans le message Modbus/TCP reçu par le maître Modbus 35 correspond alors avec l'adresse Modbus (codée sur un octet) de l'équipement esclave 55. L'équipement esclave 55 est donc le destinataire final du message émis sur le réseau IP 20 global par l'équipement client 25. L'invention permet donc d'envoyer très facilement et de façon transparente pour l'utilisateur d'un poste client 20 connecté à un premier réseau IP 20, des requêtes Modbus à destination de différents équipements serveurs 35, 45, 55, qui sont reliés à un autre réseau IP 30 soit directement, soit au travers d'une liaison série Modbus 40, 50. L'invention permet aussi de pouvoir traverser de la même façon plusieurs passerelles de communication 10 en cascade et donc traverser plusieurs réseaux IP avec des messages Modbus/TCP. La passerelle 10 agit en tant que routeur entre les réseaux IP 20 et 30 mais aussi en tant que proxy, car elle reconstruit la connexion TCP/IP en aval. Elle est le "mandataire" de l'équipement client 25. Par ailleurs, des équipements serveurs 35 déjà existants et raccordés via Modbus/TCP à un réseau local IP 30 local pourront ainsi, de façon transparente et sans aucune modification de ces équipements serveurs 35, communiquer avec des équipements clients 25 distants connectés à un réseau IP 20 global, grâce à la passerelle 10. La table de correspondance 15 peut être facilement élaborée et modifiée à partir d'un outil de configuration, par exemple de type PC, connecté directement à la passerelle 10 ou connecté sur un des réseaux IP 20 ou 30. On peut aussi envisager de télécharger à distance dans la passerelle 10 via un des réseaux IP 20 ou 30, une table de correspondance 15 préalablement élaborée. De façon équivalente, l'invention permet aussi de concevoir une telle passerelle de communication entre réseaux IP pour d'autres protocoles de communication d'automatismes fonctionnant sur un réseau IP, autre que le protocole Modbus. La passerelle de communication pourrait en effet mettre en oeuvre une méthode de communication similaire, en utilisant différents ports de communication TCP dédiés, au lieu du port TCP Modbus, et plusieurs tables de correspondance 15 correspondants à ces différents protocoles. Il est bien entendu que l'on peut, sans sortir du cadre de l'invention, imaginer d'autres variantes et perfectionnements de détail et de même envisager l'emploi de moyens équivalents. REVENDICATIONS1. Passerelle de communication (10) entre un premier réseau IP (20) et un second réseau IP (30), comprenant une première interface (12) permettant de recevoir, sur un port de communication TCP dédié, un message conforme au protocole de communication Modbus/TCP émis par un équipement expéditeur (25) connecté au premier réseau IP (20) et comprenant une seconde interface (13) permettant d'envoyer un message conforme au protocole de communication Modbus/TCP vers un équipement destinataire (35) connecté au second réseau IP (30), caractérisée en ce que la passerelle de communication (10) comporte : - des moyens de mémorisation d'une table de correspondance (15) entre des informations d'identification (17) et des adresses IP (18) correspondantes, - des moyens de traitement capables d'extraire une information d'identification (17) d'un équipement destinataire (35) contenue dans une trame Modbus d'un message Modbus/TCP reçu par la première interface (12), et capables de transformer ledit message Modbus/TCP reçu en un message Modbus/TCP à envoyer par la seconde interface (13) à l'adresse IP (18) correspondante dudit équipement destinataire (35), en utilisant la table de correspondance (15). 2. Passerelle de communication selon la revendication 1, caractérisée en ce 20 que l'information d'identification (17) est codée sur un octet. 3. Passerelle de communication selon la revendication 1, caractérisée en ce qu'elle comporte une troisième interface de connexion (14) à une liaison série Modbus (40), et en ce que des moyens de traitement sont capables de transformer le message Modbus/TCP reçu par la première interface (12) en un message Modbus série à 25 envoyer par la troisième interface (14), lorsque l'information d'identification (17) contenue dans la trame Modbus du message Modbus/TCP reçu n'est pas présente dans la table de correspondance (15). 4. Passerelle de communication selon la revendication 1, caractérisée en ce que la table de correspondance (15) comporte également une information 30 d'identification secondaire (19) correspondant à chaque information d'identification (17), et en ce que les moyens de traitement remplacent l'information d'identification (17) contenue dans la trame Modbus du message Modbus/TCP reçu par la première interface (12), par l'information d'identification secondaire (19) correspondante dans le message Modbus/TCP à envoyer par la seconde interface (13). 5. Passerelle de communication selon la revendication 1, caractérisée en ce que le premier réseau IP (20) est le réseau Internet. 6. Procédé de communication mise en oeuvre dans une passerelle de communication (10) selon l'une des revendications 1 à 5, caractérisée en ce que les moyens de traitement de la passerelle (10) exécutent les étapes suivantes : - détection d'un message Modbus/TCP reçu par la première interface (12) sur un port de communication TCP dédié, - extraction d'une information d'identification (17) d'un équipement destinataire (35) contenue dans une trame Modbus dudit message Modbus/TCP reçu, - lecture d'une adresse IP (18) correspondant à l'information d'identification (17) extraite, en utilisant la table de correspondance (15), - transformation dudit message Modbus/TCP reçu en un message Modbus/TCP à envoyer par la seconde interface (13) à l'adresse IP (18) dudit équipement destinataire (35). 7. Procédé de communication selon la revendication 6, caractérisée en ce que les moyens de traitement lisent une information d'identification secondaire (19) correspondant à l'information d'identification (17) extraite en utilisant la table de correspondance (15), et remplacent l'information d'identification (17) dudit message Modbus/TCP reçu par l'information d'identification secondaire (19) correspondante, dans le message Modbus/TCP à envoyer par la seconde interface (13). 8. Procédé de communication mise en oeuvre dans une passerelle de communication (10) selon la revendication 3, caractérisée en ce que les moyens de traitement de la passerelle (10) exécutent les étapes suivantes : - détection d'un message Modbus/TCP reçu par la première interface (12) sur un port de communication TCP dédié, extraction d'une information d'identification (17) d'un équipement destinataire (35) contenue dans une trame Modbus dudit message Modbus/TCP reçu, - détection que l'information d'identification (17) extraite n'est pas contenue dans la table de correspondance (15), transformation dudit message Modbus/TCP reçu en un message Modbus série à envoyer par la troisième interface (14) à un équipement destinataire (45) connecté à la liaison série (40), en utilisant l'information d'identification (17) extraite comme adresse Modbus de l'équipement destinataire (45).5