FR 2843264 A1 20040206 FR 0209960 A 20020801 - 1 La présente invention concerne un procédé de traduction d'adresse permettant de faciliter l'utilisation d'un adressage de type IP " anycast " ou analogue. D'une manière générale, on sait qu'une machine ou un poste informatique appartenant à un réseau IP qui utilise un protocole de type Internet ou analogue, est identifié par une adresse dite " adresse IP ". L'adresse " anycast " est un type d'adressage particulier défini pour les réseaux IP. Elle consiste à affecter une adresse IP non plus à une machine unique, mais à un groupe pouvant représenter un service qui est dénommé " groupe anycast ". Dans ce cas, plusieurs machines peuvent partager la même adresse IP. On dit alors que la machine est abonnée au " groupe anycast " identifié par son adresse IP. Les adresses anycast sont prises dans un espace d'adressage " unicast " conventionnel, et rien ne permet de reconnaître a priori une adresse " anycast " d'une adresse " unicast " normale. Le routage des paquets " anycast " au sein du réseau s'effectue donc comme routage " unicast " classique. Une adresse " anycast " n'identifiant pas une machine de manière unique, il est donc interdit d'émettre des paquets de données IP avec une adresse source anycast. -2 Dans la suite du document, on nommera "paquet anycast" tout paquet de données IP dont l'adresse de destination est une adresse " anycast ". De même, on désignera par " Bordure de réseau " ou " frontière " un endroit o deux réseaux sont interconnectés. Par ailleurs, on sait que dans une architecture classique de type client/serveur, les terminaux accèdent à travers le réseau à un service hébergé par un serveur. Pour des raisons de charge ou de qualité de service, ce service peut être hébergé par plusieurs serveurs qui se partagent la charge et qui sont placés à des endroits assurant la meilleure qualité aux clients. La sélection des serveurs à utiliser' est en général le fruit d'un processus plus ou moins complexe mettant en oeuvre un serveur de noms (DNS), des portails et des équilibreurs de charge. L'utilisation de l'adressage " anycast " permet de simplifier la mise en place du service. Son principe consiste à faire utiliser la même adresse anycast à tous les clients voulant accéder au service. Par contre, l'utilisation de l'adressage anycast présente quelques difficultés, car il impose l'utilisation de fonctions logicielles, au niveau des clients et les serveurs, qui ne sont pas disponibles aujourd'hui dans toutes les machines. L'invention a donc tout d'abord pour but de supprimer cet inconvénient en fournissant un procédé permettant l'utilisation de l'adressage anycast de façon transparente pour les clients et les serveurs. En fait, le principal problème de la communication " anycast " consiste en ce que les paquets successifs vers une adresse anycast n'arrivent pas forcément au même destinataire. Par conséquent, une adresse anycast ne peut être utilisée dans les champs adresse source des paquets, car elle ne permet pas d'identifier une source de manière unique. Cela pose une série de problèmes de fonctionnement pour les - 3 communications imposant de conserver des états chez les participants à la communication. Les connexions selon le protocole TCP (Transmission Control Protocol) en sont un exemple de poids. Des applications en mode non connecté peuvent aussi poser problème quand elles imposent de vérifier la cohérence entre adresse source de la réponse et adresse destination de la question. Le service d'échange de clés dynamiques IKE et le serveur de noms DNS en sont des exemples. Cette incomptabilité avec les protocoles à état fait que l'adressage anycast est aujourd'hui inutilisable pour la plupart des applications. Par ailleurs, il existe un autre problème qui freine le déplacement de l'adressage " anycast ": les membres d'une communication utilisant l'adressage anycast doivent s'assurer qu'ils n'utilisent pas les adresses " anycast " comme adresses sources. Ceci impose un traitement logiciel qui, aujourd'hui, n'est pas disponible dans la plupart des systèmes d'exploitation utilisés sur les clients et les serveurs. L'invention a également pour but de résoudre ces problèmes. A cet effet, elle propose un procédé permettant d'utiliser l'adressage anycast pour des communications de type client/serveur sans avoir à implanter des fonctions logicielles spécifiques ni dans les serveurs, ni dans les clients. Selon l'invention, ce procédé met en oeuvre un mécanisme qui est implanté dans des noeuds de réseau intermédiaires tels que, par exemple, des routeurs, situés sur le chemin entre les clients et les serveurs, comprend des moyens permettant d'effectuer une traduction d'adresse IP (" Address translation ") au niveau des couches réseau (par opposition au niveau applicatif), cette traduction d'adresse étant effectuée à une bordure de réseau telle que par exemple une frontière administrative. -4 Grâce à cette disposition, aucun traitement réseau particulier n'est requis au niveau des clients ou au niveau des serveurs. En fait, pour ces derniers, il s'agit d'adresses conventionnelles (dites " unicast "). Ainsi, ce procédé n'impose pas de modifications aux clients et aux serveurs. Ce procédé peut être utilisé afin de déployer plus aisément un service qui implique la connexion de clients à un ensemble de serveurs. Si ce serveur met en oeuvre des fonctions avancées du réseau, alors les serveurs doivent être situés non loin des clients. Cette contrainte impose de répartir les serveurs un peu partout dans le réseau. L'établissement de visioconférence à la demande est un exemple de ce type de service. Ce procédé permet alors aux clients d'accéder au service par la même adresse de destination, quelle que soit leur localisation sur le réseau. Ce procédé peut être utilisé dans le cadre de services de type serveur Web, caches http, CDN,..., vidéoconférences ou visioconférences, VPN... distribués. Il s'avère particulièrement adapté à des réseaux IPV6 dans la mesure o la réservation d'adresses anycast n'y pose pas de problème (vaste espace d'adressage). Ce procédé n'élimine pas les problèmes induits par l'utilisation d'une traduction d'adresse IP de niveau réseau (IPSEC, SSH...). Toutefois, on constate que ces problèmes ne réduisent que fort peu le champ d'application du procédé, car les applications précédemment mentionnées y sont peu vulnérables. En outre, dans le cas o elles le sont, le positionnement du mécanisme se fait aussi à l'endroit o est implanté le service, ce qui permet de résoudre le problème. -5 En fait, ce procédé est particulièrement bien adapté aux services des fournisseurs d'accès Internet (ISP) dans lesquels les serveurs sont tous gérés par une même entité administrative. Un mode d'exécution de l'invention sera décrit ci-après, à titre d'exemple non limitatif, avec référence aux dessins annexés dans lesquels: La figure 1 est une représentation schématique permettant d'illustrer le principe du procédé selon l'invention; La figure 2 est un diagramme illustrant l'enchaînement temporel des opérations exécutées par le procédé selon l'invention. Dans l'exemple illustré sur la figure 1, on a représenté un réseau d'interconnexion qui assure les liaisons avec: - au moins un poste client H qui est connecté à un premier réseau Nl (ou un site S 1), lui-même connecté au réseau d'interconnexion NI par l'intermédiaire d'un routeur anycast pour les clients ARh, - au moins un premier serveur AS2 connecté à un deuxième réseau N2, luimême connecté au réseau d'interconnexion NI par l'intermédiaire d'un routeur anycast pour serveur ARs2, - au moins un troisième serveur AS3 connecté à un troisième réseau N3, luimême connecté au réseau d'interconnexion NI par l'intermédiaire d'un routeur anycast pour serveur ARs3. Dans cet exemple, on considérera le cas o le poste H cherche à accéder à un service qui est hébergé par les serveurs AS2 ou AS3 et dont l'adresse anycast est -6 nommée ANY. Au sens du routage réseau, le serveur AS2 est le serveur le plus proche. Le serveur AS3 est le serveur qui est sélectionné pour répondre au poste client H. Les serveurs AS2 et AS3 prennent respectivement les adresses AS2g et AS3g. Les routeurs ARhl, ARs2 et ARs3 sont des machines constituant des noeuds intermédiaires du réseau dans lequel le mécanisme selon l'invention est implanté. Le poste client HI prend une adresse H1. Il dispose d'une route par défaut vers le service dont l'adresse est ANY/n (n étant la longueur du préfixe réseau) dont la passerelle est constituée par le routeur ARhl. Les adresses anycast pour l'ensemble des services autorisés sont prises dans des préfixes connus. Il peut en exister plusieurs, par exemple: ANY/m (m étant la longueur du préfixe), ANYI/p, ANY2/x... Les adresses anycast utilisées pour le service voulu sont prises dans le préfixe ANY/n (o n est la longueur du préfixe et n > m) Comme précédemment mentionné, le procédé selon l'invention consiste à effectuer une traduction d'adresse IP ici dans les noeuds réseau intermédiaires, ici dans les routeurs ARhl de manière à éviter l'implantation de fonctions logicielles spécifiques dans les serveurs et dans les clients. Ainsi, lorsqu'un client émet sur son poste H une requête pour utiliser un service associé à un groupe anycast, les initialisations suivantes doivent être effectuées au préalable: - l'inscription d'un serveur AS3 en configurant le noeud de bordure ARs3 du serveur AS3 délivrant le service (en utilisant une adresse qui ne fait -7 pas partie du sous réseau du client lorsque le serveur est situé à l'intérieur du site client), - des configurations préalables associant l'adresse ANY au service anycast dans le routeur ARhl, la configuration des routeurs ARs2 et ARs3 pour que l'adresse ANY corresponde à l'adresse AS2g et AS3g des serveurs AS2 et AS3. Ensuite, le comportement du système utilise le mécanisme suivant dont l'enchaînement temporel est illustré figure 2: 1. Le client utilise sur son poste H une adresse anycast (ANY) (bloc BI) comme adresse de destination pour envoyer sa requête. Grâce au procédé selon l'invention, lorsque la requête passe dans le routeur AR-hl, celui-ci crée un état (par exemple un état stocké dans une table d'état) et alloue une adresse (PRhl: X notée PRIX) (bloc B2) disponible dans le préfixe réseau PRhl pour la connexion associée à cette requête. Le routeur ARhl traduit l'adresse IP source de la requête en la nouvelle adresse PRIX (bloc B2). Le réseau (en particulier les routeurs ARhl, ARs2 et ARs3) route la requête vers le serveur le plus proche, ici le serveur (AS2). Le routeur ARs2 traduit l'adresse IP destination en une nouvelle adresse AS2g (bloc B3) par un mécanisme classique. Le choix du serveur (sélection de l'AS) (bloc B4) est lui aussi réalisé par un mécanisme classique. 2. Le serveur choisi (pas forcément celui qui a reçu la requête, e.g. AS3 (figure 2) répond à la requête (bloc B5). Grâce au procédé selon l'invention, la table d'état du routeur ARhl est mise à jour de manière à mémoriser l'association (H,ANY) avec (PRIX, AS3g) (blocs B5, B6). 3. Le réseau assure la conservation de la connexion (le même serveur AS3 sera utilisé pendant toute la durée d'une même connexion). La figure 2 illustre les connexions successives - par le mécanisme du routeur ARhl adresse source H - adresse destination ANY (bloc B7)/adresse source PRIX - adresse destination AS3g (bloc B8), - par le mécanisme du routeur AS3 adresse source PRIX - adresse destination AS3g (bloc B8) /adresse source AS3g - adresse destination PRIX (bloc Bq), - par le mécanisme du routeur ARhl adresse source AS3g - adresse destination PRIX (bloc Bq)/adresse source ANY - adresse destination H (bloc Blo). On constate que dans ce processus, aucun traitement réseau particulier n'est requis dans le poste client ou au niveau des serveurs, lesquels utilisent une adresse anycast sans en avoir conscience. En fait, pour les postes clients et les serveurs, il s'agit d'adresses conventionnelles (unicast). Ainsi, le procédé selon l'invention n'impose pas de modifications des postes clients ou des serveurs. Il intervient seulement au niveau du routeur ARhl. -9 Ce procédé ne prend pas en compte la sélection du meilleur serveur en fonction de critères applicatifs qui conduiraient ici à sélectionner le serveur AS2: cette sélection est optionnelle. Dans l'exemple précédemment décrit, le traitement dans les routeurs ARs affectés aux serveurs AS est le suivant: 1. Les routeurs ARs sont configurés pour que les adresses des serveurs AS, situés derrière eux, soient associés à l'adresse anycast du service. Ainsi, par exemple: a. Le routeur ARs2 est configuré de manière à ce que l'adresse AS2g du serveur AS2 soit associée à l'adresse anycast du service ANY/n, b. Le routeur ARs3 est configuré de manière à ce que l'adresse AS3g du routeur AS3 soit associée à l'adresse anycast du service ANY/n. 2. Les routeurs ARs annoncent une route vers l'adresse ANY/n dans le protocole de routage du réseau d'interconnexion. 3. Les routeurs ARs sont configurés pour capter les paquets qui ont une adresse de destination comprise dans ANY/n. 4. Quand un tel paquet arrive dans un routeur ARs (par exemple ARs2): a. Le routeur ARs reconnaît le paquet et retrouve l'association ANY/n e* adresse du serveur AS (par exemple l'adresse AS2g), - 10 b. Le routeur ARs traduit le paquet au niveau du réseau: l'adresse source demeure inchangée, l'adresse destination est traduite de l'adresse anycast ANY à l'adresse du serveur AS (par exemple AS2g). Aucun état n'est conservé sur cette transformation, c. Le nouveau paquet est alors relayé vers sa nouvelle destination (AS2g dans l'exemple). En ce qui concerne les routeurs ARh affectés aux postes clients, ces routeurs font l'objet des traitements suivants: 1. Ces routeurs ARh sont configurés avec des préfixes routables globalement, qui sont dédiés au mécanisme selon l'invention, par exemple Prhl/k à raison d'au moins un préfixe par routeur ARhl; 2. Ces routeurs ARh sont configurés pour capter les paquets ayant pour adresse de destination, une adresse ayant pour préfixe Prhl/k; 3. Ces routeurs ARh sont configurés pour capter des paquets ayant pour adresse de destination les adresses anycast des services autorisés dans le site, à savoir: ANY/m (m longueur du préfixe), ANY2/x... 4. Quand un paquet arrive dans un routeur ARh (par exemple ARhl) avec pour adresse de destination ANY: a. Le routeur ARh reconnaît le paquet (adresse de destination ANY), b. Le routeur ARh regarde si le flux auquel appartient le paquet est déjà connu, le flux étant défini par l'adresse source, l'adresse de destination, le port source, le port de destination, le protocole utilisé (TCP, UDP,...) i. Si le flux n'est pas connu: ò Le routeur ARh sélectionne une adresse non utilisée dans le préfixe Prhl/k (par exemple PRIX), * Le routeur ARh translate le paquet (adresse source traduite de HI à PRIX, adresse de destination inchangée), * Le routeur ARh crée un état sur le flux comprenant - l'adresse source (Hi) - l'adresse destination (ANY) - le port source - le port destination - le protocole utilisé (TCP, UDP,...) l'adresse sélectionnée PRIX - la date d'expiration (heure courante plus une durée de validité configurable) - l'adresse du serveur sélectionné (vide à ce stade) * Le routeur ARh relaie le paquet vers sa destination ANY, ii. Si le flux est connu (il a été trouvé dans la liste des états sur les flux): * Le routeur ARh traduit le paquet (adresse source traduite de Hi à PRIX, adresse destination passant de ANY à l'adresse du serveur sélectionné trouvé dans l'état sur le flux (par exemple AS3g), * Le routeur ARh remet à jour la date d'expiration de l'état sur le flux, - 12 * Le nouveau paquet est alors relayé vers sa nouvelle destination (AS3g dans cet exemple). 5. Quand un paquet arrive dans un routeur ARh (par exemple ARhl) avec une adresse de destination comprise dans Prhl/k: a. Le routeur ARh reconnaît le paquet (adresse de destination PRIX), b. Ce routeur ARh regarde si le flux auquel appartient le paquet est déjà connu (en cherchant dans la liste des états sur les flux, celui qui correspond à PRIX). i. Si le flux n'est pas connu, on supprime le paquet, ii. Si le flux est connu: 1. Le routeur ARh traduit le paquet (adresse source traduite de AS3g à ANY, adresse destination passe de PRIX à Hi, 2. Le routeur ARh remet à jour la date d'expiration de l'état sur le flux, 3. Le nouveau paquet est alors relayé vers sa nouvelle destination (Hl dans cet exemple). 6. Le routeur ARh vérifie dans la liste des états sur les flux si des états ont expiré: Si l'heure actuelle est postérieure à la date de l'expiration sur le flux, alors on supprime l'état. - 13 Dans les exemples précédemment décrits, le procédé ne prend pas en compte la sélection du meilleur serveur disponible, étant entendu que la qualité du serveur est caractérisée par un ensemble de critères tels que La distance réseau par rapport au client, - La charge des ressources du serveur utilisé par le service selon les cas, ces ressources peuvent être: * Le nombre de ressources déjà gérées par le serveur, * Le disque dur, * La mémoire RAM, * La CPU, * Les interfaces réseau du serveur, * Etc. Optionnellement, il sera donc possible d'effectuer une sélection des meilleurs serveurs, par exemple en effectuant les trois étapes suivantes * Une étape de découverte du plus proche serveur qui est un problème de routage réseau par lequel l'adressage anycast présente beaucoup d'intérêt, * Une étape de répartition de la charge qui est un problème applicatif dans lequel le réseau ne peut pas jouer de rôle significatif, * Une étape o le serveur élu répond à la requête du client. - 14 Revendications 1. Procédé permettant d'utiliser un adressage de type anycast ou équivalent pour des conmuunications de type client/serveur sans avoir à implanter des fonctions logicielles spécifiques, ni dans le serveur, ni dans le poste client, caractérisé en ce qu'il met en oeuvre un mécanisme implanté dans des noeuds de réseau intermédiaires situés sur le chemin entre les postes clients (H) et les serveurs (AS2, AS3), ce mécanisme effectuant une traduction d'adresse (IP) au niveau des couches réseau, cette traduction étant effectuée à une bordure de réseau. 2. Procédé selon la revendication 1, caractérisé en ce que les susdits noeuds de réseau intermédiaires consistent en des routeurs (ARhl, ARs2 et ARs3). 3. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que la susdite bordure de réseau est une frontière administrative. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que les adresses utilisées au niveau des serveurs (AS2, AS3) et/ou des postes clients (H) sont des adresses conventionnelles dites " unicast ". 5. Procédé selon l'une des revendications précédentes, caractérisé par la séquence d'initialisation suivante qui est effectuée à la suite d'une requête émise par un poste client (H) pour accéder à un service associé à un groupe anycast: - 15 - l'inscription d'un serveur (AS3) en configurant le noeud de bordure (ARs3) du serveur (AS3) délivrant le service, - des configurations préalables associant l'adresse anycast (ANY) au service anycast dans le routeur (ARhl), associé au poste client (H), - la configuration des noeuds (ARs2, ARs3) du réseau pour que l'adresse (ANY) corresponde aux serveurs (AS2g et AS3g) associés à ces noeuds. 6. Procédé selon la revendication 5 caractérisé en ce qu'à la suite de la susdite phase d'initialisation, il comprend les phases opératoires suivantes: - l'envoi par le poste client (H) d'une requête utilisant une adresse anycast (ANY) comme adresse de destination, - le transfert de la requête par un routeur associé au poste client, la création et la mémorisation par le mécanisme d'un état par ce routeur, l'allocation d'une adresse (PRIX) pour la connexion associée à cette requête ainsi que la traduction par ledit mécanisme de l'adresse (IP) source de la requête dans la nouvelle adresse (PRIX), - le routage par le réseau de la requête vers le serveur le plus proche (AS2) - la traduction par le routeur (ARs2) associé à ce serveur (AS2), - la traduction par le routeur (ARs2) associé à ce serveur (AS2) le plus proche de l'adresse (IP) destination en une nouvelle adresse (AS2g), - le choix du serveur (AS3), - la réponse par le serveur choisi (AS3) à la requête, - la mise à jour par le mécanisme de la table d'état du routeur (ARhl), de manière à concentrer l'adresse anycast (ANY) en l'adresse du poste (H), - la conservation de la connexion, de manière à ce que le même serveur soit utilisé pendant toute la durée d'une même connexion. - 16 7. Procédé selon l'une des revendications précédentes, caractérisé en ce que le traitement dans les routeurs affectés aux serveurs comprend: - la configuration des routeurs (ARs) pour que les adresses des serveurs situés derrière eux soient associés à l'adresse anycast du service, - la détermination par les routeurs (ARs) d'une route vers l'adresse (ANY/n) dans le protocole de routage du réseau d'interconnexion - la configuration des routeurs (ARs) pour capter les paquets qui ont une adresse de destination comprise dans l'adresse anycast du service (ANY/n). - quand l'un desdits paquets arrive dans un routeur (ARs): * la reconnaissance du paquet par le routeur (ARs) et l'association par ce routeur de l'adresse (ANY/n) avec l'adresse du serveur AS, * la traduction du paquet au niveau du réseau, l'adresse source demeurant inchangée tandis que l'adresse destination est traduite de l'adresse anycast (ANY) à l'adresse du serveur (AS), * le relayage du nouveau paquet vers sa nouvelle destination. 8. Procédé selon l'une des revendications précédentes, caractérisé en ce que les routeurs (ARh) affectés aux postes clients font l'objet des traitements suivants - la configuration des routeurs (ARh) avec des préfixes routables globalement qui sont dédiés au susdit mécanisme, - la configuration des routeurs (ARh) pour capter les paquets ayant pour adresse de destination une adresse ayant pour préfixe (Prhl/k), - la configuration des routeurs (ARh) pour capter des paquets ayant pour adresse de destination les adresses anycast des services autorisés dans le site - 17- 2843264 - quand un paquet arrive dans un routeur (ARh) avec pour adresse de destination (ANY): la reconnaissance du paquet par le routeur (ARh) avec pour adresse de destination l'adresse (ANY) l'examen par le routeur (ARh) du flux auquel appartient le paquet pour savoir si ce flux est déjà connu, le flux étant défini par des paramètres tels que l'adresse source, l'adresse de destination, le port source, le port destination et/ou le protocole utilisé, et - si le flux n'est pas connu: - la sélection par le routeur (ARh) d'une adresse non utilisée dans le préfixe (Prhl/k) - la traduction par le routeur (ARh) du paquet avec l'adresse source traduite de (HI) à (PRiX) (adresse de destination inchangée), - la création par le routeur (ARh) d'un état sur le flux comprenant des paramètres tels que l'adresse source (Hi), l'adresse de destination (ANY), le port source, le port destination; le protocole utilise l'adresse sélectionnée, la date d'expiration et/ou l'adresse du serveur sélectionné, - le relayage du paquet par le routeur vers sa destination (ANY). si le flux est connu: - la traduction par le routeur (ARh) du paquet de manière à ce que l'adresse source soit traduite de (HI) à (PRiX) et que l'adresse de destination passe de (ANY) à l'adresse du serveur sélectionné, trouvé dans l'état sur le flux, - la remise à jour par le routeur (ARh) de la date d'expiration de l'état sur le flux, - le relayage du nouveau paquet vers sa nouvelle destination. 9. Procédé selon la revendication 8, caractérisé en ce que, lors de l'arrivée d'un paquet dans un routeur (ARh) avec une adresse de destination comprise dans (Prhl/k), il comprend les étapes suivantes - la reconnaissance du paquet par le routeur (ARh), - l'examen du flux auquel appartient le paquet par le routeur (ARh) pour savoir si ce flux est déjà connu, - la suppression du paquet si celui-ci n'est pas connu, - si le flux est connu: la traduction par le routeur (ARh) du paquet avec l'adresse source traduite de (AS3g) à (ANY), l'adresse de destination passant de (PRiX) à (H1), * la remise à jour par le routeur (ARh) de la date d'expiration de l'état sur le flux, * le relayage du nouveau paquet vers sa nouvelle destination. 10. Procédé selon l'une des revendications 8 et 9, caractérisé en ce qu'il comprend en outre la vérification par le routeur (ARh) dans la liste des états sur les flux si des états ont expiré et la suppression de l'état si l'heure actuelle est postérieure à la date de l'expiration sur le flux.