Brevet FR2896364A1 — publié le 20070720

La présente invention concerne un procédé de déploiement d'applications par interception sur un réseau existant. Elle a plus particulièrement pour objet le déploiement d'applications dans un réseau existant par interception des communications entre une application 15 cliente et une application serveur. On sait que les réseaux actuels utilisent très généralement un modèle de fonctionnement des applications basées sur les étapes suivantes : 20 1. L'établissement, par l'application cliente de l'adresse réseau de l'application serveur. Très généralement, et par la suite, cette adresse réseau d'application sera exprimée en fonction du protocole utilisé, (Adresse IP de la (ou des) ordinateurs supportant l'application + Numéro de port pour IP, par exemple, IP étant le Protocole Internet). 25 2. L'ouverture d'une communication caractérisée par l'adresse réseau de l'application cliente (pour IP, l'adresse IP de l'ordinateur client et un numéro de port local) et de l'adresse réseau de l'application serveur établie à l'étape 1. 1 30 -2- 3. Un échange de données entre les applications à l'intérieur de la communication, cet échange pouvant comporter des procédures d'identifications plus ou moins strictes et potentiellement basées sur les adresses réseaux. 4. La fermeture de la communication entre les deux applications serveur et cliente, celle-ci intervenant à l'initiative de l'une ou de l'autre et pouvant être conjointes ou non. 10 Lors du déploiement d'une nouvelle application dans un réseau existant, il convient de mettre en oeuvre une nouvelle application, soit en la substituant à l'ancienne, en lui attribuant la même adresse réseau, soit en l'installant à une autre adresse sur le(s) même(s) ordinateur(s) ou sur un (ou des) ordinateur(s) différent(s). 15 Après installation, il convient d'intervenir à l'étape 1 décrite ci-dessus, pour modifier l'établissement de l'adresse réseau afin que l'application cliente se connecte à la nouvelle application. 20 La mise en oeuvre d'une nouvelle application selon le mode précédemment décrit présente notamment les inconvénients suivants : la nécessité de modifier l'établissement (Etape 1, ci-dessus) de l'adresse réseau de la nouvelle application (par modification d'un Serveur de Nom de 25 Domaine DNS, par exemple) ou sur chaque ordinateur supportant l'application cliente. la nécessité, pour la nouvelle application, d'accéder à l'ancienne en mode serveur de proximité dit "proxy", donc en perdant l'identité réseau réelle de 30 l'application cliente.5 l'impossibilité d'utiliser l'ancienne application en cas de défaillance de la nouvelle sans devoir faire les changements inverses d'adressage pour revenir à l'ancien établissement (Etape 1) de l'adresse. Dans tous les cas, le déploiement d'une nouvelle application nécessite des modifications d'architectures et l'intervention de personnels spécialisés dans plusieurs domaines disjoints. En effet, outre les aspects purement réseau de mise en oeuvre de la nouvelle application, il conviendra éventuellement de modifier l'ancienne application pour lui indiquer la présence d'un mode serveur proxy (Si elle doit être utilisée par la nouvelle application) et mettre à jour les authentifications basées sur les adresses réseau. Par ailleurs, ce personnel doit rester disponible pendant toute la validation afin de pouvoir intervenir rapidement pour restaurer l'ancienne configuration des 15 services en cas de défaillance de la nouvelle application. Un autre problème à traiter est que la mise en mode serveur proxy de la nouvelle application par modification de l'adresse réseau de l'ancienne application (via un serveur de noms de domaine DNS, classiquement), 20 entraîne l'obligation de recréer la liaison avec toutes les autres applications serveurs qui utilisaient la même adresse réseau. Ainsi, l'on se trouve fréquemment confronté à devoir traiter en mode serveur proxy plusieurs applications et non une seule, car celle-ci partage une 25 partie d'adressage réseau (la même adresse IP, par exemple). L'invention a donc plus particulièrement pour but de supprimer ces inconvénients en insérant la nouvelle application dans le réseau sans modifier l'étape d'établissement, par l'application cliente de l'adresse réseau de 30 l'application serveur, et donc sans modifier l'adresse réseau de l'ancienne application. -4 Elle propose, à cet effet, un procédé de déploiement dans un réseau existant d'applications du type susdit, par interception des communications entre une application cliente et une application serveur en un point d'interception de la ligne dont on sait qu'elle supporte tous les échanges de paquets entre les deux applications, avec création d'un point de terminaison de connexion sur l'application nouvelle par un équipement, apposé en coupure physique de la ligne et imitant l'identité réseau de l'application originellement demandée. La nouvelle application peut s'appuyer sur l'ancienne application serveur pour rendre le service voulu, éventuellement en imitant l'identité réseau de l'application cliente. Vis-à-vis des solutions antérieures, le procédé selon l'invention permet donc d'obtenir les avantages suivants : - Aucune modification générale (du serveur de noms de domaine DNS, par exemple) ou particulière (poste par poste) n'est nécessaire pour changer l'établissement de l'adresse de l'application serveur. La nouvelle application peut accéder à l'ancienne application serveur en imitant l'identité réseau de l'application cliente. L'ancienne application serveur continuera à recevoir les communications comme si elles émanaient de l'application cliente. En cas de défaillance de la nouvelle application, l'ancienne application recevra automatiquement les communications sans qu'il y ait besoin d'intervenir ou de modifier la configuration. 30 - Une sélection fine est possible pour ne prendre en charge que les communications de l'application serveur voulue et aucune autre. 25 Le procédé permet un contrôle très fin des identités des applications cliente, ayant accès ou non aux applications serveur, et peut donc servir à autoriser ou non l'accès, ainsi qu'à tester la nouvelle application sur un petit nombre d'applications cliente avant un déploiement général. Le procédé permet de déployer une application nouvelle en frontale d'une application préexistante localisée à une autre adresse. Le procédé permet de déployer plusieurs nouvelles applications, en lieu et place de l'ancienne et d'aiguiller les applications cliente vers les nouvelles applications serveur. Le procédé peut être employé pour intervenir sur un flux de communication de manière plus ou moins visible, pour toute opération consistant à supprimer, ajouter, modifier ou tracer des données dans un flux de communication entre deux applications. Un mode de mise en oeuvre du procédé selon l'invention sera décrit ci-après, à 20 titre d'exemple non limitatif, avec référence aux dessins annexés dans lesquels : La figure 1 est une représentation schématique montrant un équipement E apposé au niveau d'une coupure physique d'une ligne supportant les 25 échanges de paquets entre une application cliente et une application serveur ; La figure 2 est une représentation schématique d'un organigramme des opérations exécutées par l'équipement E. 30 Dans l'exemple illustré sur la figure 1, le procédé fait intervenir un équipement E apposé en coupure I sur une ligne de communication L par laquelle passe physiquement tous les paquets entre une application cliente C et une application serveur S. L'équipement E comporte au moins deux ports de communications réseau compatibles avec les équipements raccordés aux deux bouts de la ligne L, au niveau de la coupure, sur laquelle on vient le placer (par exemple, deux ports réseau Ethernet si l'équipement est destiné à être placé dans un réseau Ethernet ou deux ports BRI si l'équipement est destiné à une ligne spécialisée). Les deux ports réseau peuvent être équipés d'un dispositif de relayage adéquat pour assurer la reconnexion physique de chaque fil de la ligne de communication en cas de coupure d'alimentation de l'équipement E ou sur commande (volontaire ou par dispositif de chien de garde). L'équipement E reçoit tous les paquets échangés sur la ligne de communication et identifie le paquet de début de communication entre l'application cliente C et l'application serveur S. En fonction de règles pré-établies, il laisse passer la communication vers l'application serveur S ou il crée un point de terminaison protocolaire dont la destination est l'application nouvelle N. Celle-ci apparaîtra donc à l'application cliente C comme étant l'application serveur S puisqu'elle semble utiliser la même adresse réseau. Tous les paquets non concernés par une interception à réaliser ou déjà en place entre l'équipement E et les applications clientes C ou serveurs S sont passés sans modification entre les interfaces, étant entendu que cette fonction s'apparente à celle d'un pont (bridge, commutateur ou "crossbar") et que des optimisations (telles que le "learning-tree" = arborescence sélective) peuvent être alors mises en oeuvre. Avant la décision d'interception, l'équipement E s'assure du fonctionnement de l'application nouvelle N et en cas de défaillance ou d'indisponibilité de celle-ci peut laisser passer la communication sans intervenir, permettant ainsi à l'application cliente C de se connecter à l'application serveur S sans délai ni retard, comme si l'équipement E n'existait pas. L'application N peut être embarquée sur l'équipement E ou être accessible sur un (ou plusieurs) autre(s) ordinateur(s) connecté(s) à l'équipement E par un protocole, ou un tunnel, quelconque de communication. De même, l'équipement E peut supporter plusieurs applications nouvelles fonctionnant de manière concurrente et travaillant à l'interception de communications destinées à d'autres applications serveur. Sur demande de l'application nouvelle N, l'équipement E peut ouvrir une communication avec l'ancienne application serveur S en prenant l'identité de l'application cliente C, c'est à dire en utilisant l'adresse réseau source de l'application cliente C. Ainsi, cette communication apparaît, pour l'application serveur S comme émanant de l'application cliente C et non de la nouvelle application N. Symétriquement, l'application cliente C apparaît et se voit comme connectée à l'application serveur S et non à l'application nouvelle N. Cette particularité préserve les authentifications basées sur les adresses réseau des applications cliente et serveur et minimise la visibilité et la détectabilité de l'application nouvelle N. Ceci force l'interopérabilité du procédé. Bien évidemment, cette ouverture de communication peut être effectuée en nom propre par l'application nouvelle N en utilisant une adresse réseau 30 attachée à l'équipement E. -8- Sur demande de la nouvelle application N, et si celle-ci possède deux communications ouvertes, l'une avec l'application cliente C et l'autre avec l'application serveur S, elle peut abandonner les deux communications à l'équipement E afin que celui-ci assure le pontage des extrémités. Ainsi l'application N peut surveiller le début d'une communication puis laisser celle-ci continuer sans intervenir et sans introduire de délais de traitement. D'autres équipements du même type que E peuvent être placés en série et en 10 aval de celui-ci afin d'intercepter les communications non prise en charge par l'équipement E. Cette disposition permet de créer une duplication de l'équipement E en cas de défaillance, ou de répartir la charge de travail entre plusieurs équipements placés en série grâce à des lois statistiques portant sur la décision, au niveau d'un des équipements, d'intercepter ou non une 15 communication. L'équipement E peut être réalisé spécifiquement ou à partir d'un ordinateur existant équipé d'au moins deux ports réseau compatibles avec la ligne physique L coupée pour y insérer l'équipement. Celui-ci peut aussi être constitué d'une carte électronique de communication insérée dans un ordinateur ou équipement réseau existant. Par la suite, après installation des applications nouvelles sur l'équipement ou 25 établissement des connexions nécessaires entre l'équipement et le(s) ordinateur(s) supportant la (ou les) nouvelle(s) application(s), l'équipement est mis en fonction et exécute génériquement les opérations décrites dans la figure 2. 20 30 Les étapes sont alors les suivantes : -9- - Etape El : l'équipement E attend l'arrivée d'un paquet sur l'une des interfaces. - Etape E2 : l'équipement E compare les éléments d'adresse réseau (source, 5 destination et numéros de ports IP, par exemple) afin de rechercher une communication déjà établie entre lui et une application cliente C ou serveur S. - Si il en trouve une, il passe le paquet à l'application N (Etape E21). - Sinon, le processus passe à l'étape E3. 10 Etape E3 : l'équipement E vérifie si le paquet constitue un début de connexion entre une application cliente C et une application serveur S. - Si non, il passe le paquet à son destinataire par l'une des interfaces (Etape E31) 15 - Si oui, le processus passe à l'étape E4. - Etape E4: l'équipement E recherche dans sa configuration une règle l'autorisant à effectuer une interception et la présence d'une application nouvelle N prête à accueillir la communication. 20 - Si il n'en trouve pas, il passe le paquet à son destinataire (Etape E31). - Si il en trouve une, le processus passe à l'étape E5. Etape E5 : l'équipement E crée un point de terminaison protocolaire (TCP, par exemple) sur l'application N. Ceci crée le contexte nécessaire pour que 25 le prochain paquet concernant cette interception et passant par l'étape E2 trouve son chemin vers l'application N via l'étape E2/E21. Avantageusement, le procédé précédemment décrit pourra être employé facilement dans les cas suivants : - Déploiement de réseaux actifs au-dessus d'un réseau passif existant 30 - 10 - Augmentation ou diminution des capacités d'une application Filtrage de contenus, contrôle parental, anti-virus - Monitoring, écoute ou traçage d'activité réseau -Enregistrement chronologique ( Logging ) et contrôle d'accès à une application - Equilibrage des charges ( Load-balacing ) ou mise en redondance d'applications Prioritisation de services, qualité de services QoS Compression et/ou cryptage d'une application - Mise en place de tunnels d'accès Conversion ou adaptation de formats. D'une manière générale, ce procédé de déploiement pourra être employé dans tous les cas où l'on pourrait installer une application en mode serveur proxy et où l'on souhaite procéder plus sélectivement, à moindre coût, risque ou discrétion. Revendications 1. Procédé de déploiement d'applications dans un réseau existant par interception des communications entre une application cliente (C) et une 5 application serveur (S), caractérisé en ce qu'il comprend l'apposition d'un équipement (E) en un point d'interception (I) d'une ligne (L) de communication, dont on sait qu'elle supporte tous les échanges de paquets entre les applications cliente (C) et serveur (S) et permettant la création d'un point de terminaison de connexion 10 sur l'application nouvelle (N) imitant l'identité réseau de l'application originellement demandée par l'application cliente (C). 2. Procédé selon la revendication 1, caractérisé en ce qu'il est appliqué aux réseaux dans lesquels une application 15 possède une adresse unique, et notamment aux réseaux IP où l'adresse d'une application se caractérise par une adresse IP et un numéro de port. 3. Procédé selon la revendication 1, caractérisé en ce que l'équipement (E) comprend des moyens pour imiter 20 l'identité réseau de l'application cliente (C) afin d'ouvrir une communication entre l'application nouvelle (N) et l'application serveur (S). 4. Procédé selon la revendication 3, caractérisé en ce que l'imitation de l'identité réseau d'une application cliente 25 (C) ou serveur (S) est partielle et suffisante pour satisfaire aux besoins d'identification. 5. Procédé selon la revendication 1, caractérisé en ce que l'équipement (E) comprend des moyens de relayage 30 permettant de rétablir la liaison fil à fil de la ligne (L) en cas de coupure d'alimentation ou sur commande (volontaire ou par protection de type chien de- 12 - garde) afin de ne pas perturber la ligne (L) en cas de dysfonctionnement logiciel ou matériel. 6. Procédé selon la revendication 1, caractérisé en ce que l'équipement est multiplié pour être disposé en série sur la même ligne de communication (L) afin de produire des effets de redondance ou de partage de charge dans le but d'améliorer la fiabilité ou l'efficacité du traitement. 7. Procédé selon la revendication 1, caractérisé en ce que la décision d'interception d'une communication est basée sur un système de règles configurées dans l'équipement (E), que l'interception n'est pas forcément automatique, ni obligatoire et qu'en l'absence de règle d'interception ou sur décision de l'équipement (E), la communication s'établit normalement comme en l'absence de l'équipement (E). 8. Procédé selon l'une des revendications 1 et 3, caractérisé en ce qu'il réalise le déploiement d'une application en frontale d'une ou plusieurs autres applications. 9. Procédé selon la revendication 8, caractérisé en ce qu'il comprend une étape consistant à balancer la charge entre applications cliente et applications serveur. 25 10. Procédé selon la revendication 1, caractérisé en ce que l'équipement est conçu pour accueillir plusieurs applications ou, au contraire, pour déléguer le traitement vers d'autres équipements présents sur le réseau.20- 13 - 11. Procédé selon la revendication 1, caractérisé en ce que l'équipement(E) peut être spécifiquement créé, n'être qu'un logiciel fonctionnant sur un ordinateur existant présentant les caractéristiques d'interfaces requises en nombre et qualité, ou une simple carte électronique ajoutée à un ordinateur ou équipement existant. 12. Procédé selon la revendication 1, caractérisé en ce que pour le traitement de chaque paquet entrant dans l'équipement, comprend les étapes suivantes : la transmission du paquet à une application nouvelle (N) si les éléments d'adresses réseaux indiquées dans le paquet, correspondent au contexte d'une communication déjà interceptée par (E), sinon : si le paquet indique un début de connexion et qu'il existe une règle interne à l'équipement permettant l'interception et qu'une application nouvelle (N) est prête à recevoir la communication, alors il y a création d'un contexte de communication interne à l'équipement imitant l'identité réseau du service demandé à l'origine, sinon, le paquet est transmis à l'interface correspondant à son destinataire d'origine. 13. Procédé selon la revendication 1, caractérisé en ce que l'équipement (E) compte plusieurs ports réseau et la 25 capacité à se comporter comme un commutateur et à en utiliser toutes les optimisations. 14. Procédé selon l'une des revendications 1 et 3, caractérisé en ce que le procédé est employé pour modifier le comportement 30 d'une application serveur existante et pas seulement pour la remplacer par une application nouvelle.- 14 - 15. Procédé selon l'une des revendications 1 et 3, caractérisé en ce que l'équipement possède la capacité à ponter de manière autonome les deux extrémités de deux connexions abandonnées par une 5 application nouvelle (N) à ses soins sans fermeture.