Brevet FR2906909A1 — publié le 20080411

ARRIERE-PLAN DE L'INVENTION 1. Domaine de l'invention L'invention concerne de façon générale la connexité de réseau pour des entités invitées présentes sur un hôte partagé. Plus particulièrement, des modes de réalisation de l'invention permettent une connexité de réseau pour des entités sans mettre en oeuvre une traduction d'adresse de réseau. 2. Contexte technique Il existe plusieurs environnements de virtualisation commercialisés, tels que WMWARE et MICROSOFT VIRTUALPC . Ces environnements permettent l'existence de multiples entités invitées s'exécutant sur un seul hôte, chaque entité invitée pouvant établir une connexion de réseau avec le réseau extérieur et avec d'autres entités en utilisant le Protocole Internet (IP pour "Internet Protocol") ou un protocole similaire. Pour supporter la connexité entre entités, ces environnements assignent de façon caractéristique une ou plusieurs adresses aux entités, et résolvent des transferts de données faisant intervenir les entités au moyen de la traduction d'adresse de réseau (NAT pour "Network Address Translation"). Dans un environnement virtualisé, la NAT utilise le fait que la machine hôte a ses propres adresses de Commande d'Accès au Support (MAC pour "Media Access Control") et de Protocole Internet (IP), habituellement assignées par un serveur Dynamic Host Configuration Protocol (DHCP) dans le réseau. La machine hôte établit son propre réseau interne, dans lequel des adresses MAC et IP internes peuvent être assignées à chaque entité invitée. Lorsqu'une connexion est nécessaire pour envoyer un paquet de données à partir d'une entité invitée vers une cible externe à la machine hôte, la connexion peut être assignée à un port sur l'hôte pour la distinguer d'autres connexions. Avant que le paquet ne soit envoyé au réseau extérieur, les adresses MAC et IP internes de l'entité source peuvent être remplacées dans le paquet 2906909 2 de données par les adresses MAC et IP de l'hôte, le total de contrôle peut être recalculé et la traduction peut être enregistrée dans une table de traduction, de façon que le paquet de retour puisse être routé vers l'entité correcte. 5 Lorsqu'un paquet de données est retourné sur un port spécifique, la cible du paquet peut être recherchée dans une table de traduction, et les adresses MAC et IP internes de l'entité cible sont remplacées dans le paquet de données. Après remplacement des adresses, le total de 10 contrôle est recalculé à nouveau avant de diriger le paquet vers son entité cible. Lorsqu'une connexion sur l'hôte est fermée, la rubrique dans la table de traduction est supprimée. Pour des connexions exclusivement entre deux entités résidant sur l'hôte, des paquets de données sont 15 acheminés sans la nécessité de modifier les adresses ou la valeur de total de contrôle. La NAT a plusieurs limitations. Elle doit fixer des adresses pour absolument chaque paquet de données sortant ou entrant, et recalculer le total de contrôle de façon 20 correspondante. Habituellement, la NAT dans un réseau interne réside dans le routeur, de façon que son effet sur les performances de système soit minimal. Cependant, dans un environnement virtualisé, elle est mise en oeuvre dans un logiciel qui s'exécute sur l'hôte, et consomme des 25 ressources de système notables. La NAT rompt également certains protocoles de bout en bout tels que des tunnels de Réseau Privé Virtuel (VPN pour "Virtual Private Network") qui utilisent l'en-tête d'authentification pour la vérification. En outre, des utilisateurs d'une entité 30 invitée ne seront pas capables de voir ou d'utiliser leur adresse IP "réelle", c'est-à-dire publique, dans des buts de dépannage. Lorsque deux entités invitées (ou plus) utilisent le routage par des ports pour diviser le trafic de réseau 35 entre elles, une gamme de ports est assignée à chacune d'elles, et tout le trafic dans cette gamme est assigné à 2906909 3 cette entité invitée. Dans le routage par des ports, des paquets provenant d'une entité invitée ne peuvent pas être envoyés à une autre entité invitée, du fait qu'un paquet aura les mêmes adresses MAC et IP dans les champs de source 5 et de cible de son en-tête Ethernet. Ceci est appelé un paquet bouclé, et certains pilotes intermédiaires empêcheront de tels paquets d'aller au mini-port, en les faisant retourner à la pile de réseau. Ceci limite les capacités du système du fait que, par exemple, si le 10 système d'exploitation (SE) de service a une page de configuration basée sur le Web, de façon qu'on puisse configurer le comportement de la machine avec cette page, elle sera accessible seulement à partir d'un ordinateur externe et non à partir du SE de capacité. 15 BREVE DESCRIPTION DES DESSINS Les divers modes de réalisation de l'invention sont illustrés à titre d'exemple, et de façon non limitative, dans les figures des dessins annexés, parmi lesquelles : La figure 1 est un schéma illustrant un hôte avec 20 de multiples entités partageant une adresse MAC commune. La figure 2 est un schéma illustrant un hôte avec de multiples entités partageant à la fois une adresse MAC commune et une adresse IP commune. La figure 3 est un schéma de trame de données 25 illustrant une partie de la structure pour un paquet de données Ethernet. La figure 4 est un schéma de trame de données illustrant une partie de la structure pour un paquet de données de résolution d'adresse. 30 La figure 5A est un schéma synoptique illustrant le bouclage d'un paquet de données entre des entités sur un seul hôte. La figure 5B est un schéma synoptique illustrant la transmission d'un paquet de données entre des entités 35 résidant sur un seul hôte. 2906909 4 La figure 6 est un organigramme illustrant l'utilisation d'une adresse MAC auxiliaire pour empêcher un bouclage de données destinées à être transmises entre des entités résidant sur un seul hôte. 5 La figure 7 est un organigramme illustrant l'utilisation d'une adresse MAC auxiliaire et d'une adresse IP auxiliaire pour empêcher un bouclage de données destinées à être transmises entre des entités résidant sur un seul hôte. 10 La figure 8 est un schéma illustrant un mode de réalisation d'un système informatique conforme aux enseignements de la présente invention. DESCRIPTION DETAILLEE On décrit des techniques et des architectures pour 15 permettre une connexité de réseau pour des entités partageant un seul hôte. Dans la description suivante, dans des buts d'explication, de nombreux détails spécifiques sont présentés pour permettre une compréhension approfondie de l'invention. Il apparaîtra cependant à l'homme de l'art 20 que l'invention peut être mise en pratique sans ces détails spécifiques. Dans d'autres cas, des structures et des dispositifs sont représentés sous forme de schéma synoptique afin d'éviter d'obscurcir la description. Les références faites dans la description à "un 25 mode de réalisation" signifient qu'une fonction, structure ou caractéristique particulière décrite en relation avec le mode de réalisation est incluse dans au moins un mode de réalisation de l'invention. Les occurrences de l'expression "dans un mode de réalisation" à divers endroits dans la 30 description ne font pas nécessairement toutes référence au même mode de réalisation. Certaines parties des descriptions détaillées qui suivent sont présentées en termes d'algorithmes et de représentations symboliques d'opérations sur des bits de 35 données dans une mémoire d'ordinateur. Ces descriptions et représentations algorithmiques sont les moyens utilisés par 2906909 5 les spécialistes des techniques de réseaux pour transmettre le plus efficacement la substance de leur travail à d'autres spécialistes. Ici, et de façon générale, un algorithme est conçu comme étant une séquence d'étapes 5 ayant une cohérence interne, conduisant à un résultat désiré. Les étapes sont celles qui exigent des manipulations physiques de grandeurs physiques. Habituellement, bien que non nécessairement, ces grandeurs prennent la forme de signaux électriques ou magnétiques qui 10 peuvent être stockés, transférés, combinés, comparés et manipulés de toute autre manière. Il s'est avéré commode à certains moments, principalement pour des raisons d'usage courant, de faire référence à ces signaux comme des bits, valeurs, éléments, symboles, caractères, termes, nombres, 15 ou autres. Il faut cependant conserver à l'esprit le fait que tous ces termes, et des termes similaires, doivent être associés aux grandeurs physiques appropriées et sont simplement des étiquettes commodes appliquées à ces 20 grandeurs. Sauf mention spécifique du contraire dans l'explication suivante, on appréciera que dans l'ensemble de la description, des explications utilisant des termes tels que "traitement" ou "calcul" ou "détermination" ou "visualisation", ou autres, font référence à l'action et 25 aux processus d'un système informatique, ou d'un dispositif de calcul électronique similaire, qui manipule et transforme des données représentées comme des grandeurs physiques (électroniques) dans les registres et mémoires du système informatique, pour produire d'autres données 30 représentées de façon similaire comme des grandeurs physiques dans les mémoires ou registres du système informatique, ou dans d'autres dispositifs de stockage, transmission ou visualisation d'information, de type semblable. 35 Des modes de réalisation de l'invention portent également sur un appareil pour effectuer les opérations 2906909 6 décrites ici. Cet appareil peut être construit spécialement dans le but exigé, ou peut comprendre un ordinateur universel activé ou reconfiguré sélectivement par un programme informatique stocké dans l'ordinateur. Un tel 5 programme informatique peut être stocké sur un support de stockage lisible par ordinateur, tel que, mais de façon non limitative, un type quelconque de disque incluant des disquettes, des disques optiques, des CD-ROM et des disques magnéto-optiques, des mémoires mortes (ROM), des mémoires 10 vives (RAM), des mémoires mortes programmables électriquement (EPROM), des mémoires mortes programmables et effaçables électriquement (EEPROM), des cartes magnétiques ou optiques, ou n'importe quel type de support convenant pour stocker des instructions électroniques, et 15 chacun étant couplé à un bus de système informatique. Les algorithmes et visualisations présentés ici ne sont liés de manière inhérente à aucun ordinateur ou autre appareil particulier. Divers systèmes universels peuvent être utilisés avec des programmes en conformité avec les 20 enseignements présentés ici, ou bien il peut s'avérer commode de construire un appareil plus spécialisé pour exécuter les étapes de procédé exigées. La structure exigée pour une variété de ces systèmes ressortira de la description ci-dessous. De plus, l'invention n'est décrite 25 en référence à aucun langage de programmation particulier. On appréciera qu'il est possible d'utiliser une variété de langages de programmation pour mettre en oeuvre les enseignements de l'invention, comme décrit ici. On décrit un procédé et un appareil pour permettre 30 une connexité de réseau pour des entités résidant sur un seul hôte, sans mettre en oeuvre une traduction d'adresse de réseau. Un mode de réalisation permet à plusieurs entités invitées, utilisant des adresses IP individuelles, tout en partageant une adresse MAC unique, d'établir une 35 communication de réseau tout en protégeant les performances de système et la connexité de bout en bout. Dans un tel 2906909 7 mode de réalisation, toutes les entités dans le système utiliseront l'adresse MAC vraie unique de la carte réseau (NIC pour "Network Interface Card"), et acquièrent des adresses IP individuelles auprès du DHCP, en utilisant par 5 exemple le champ d'identification de client, option 61, décrit dans le document Request for Comments (RFC) 1533 de l'organisme Network Working Group, publié en octobre 1993. L'option 61 est un champ dans la demande DHCP qui a été ajouté pour permettre à de multiples clients utilisant la 10 même adresse MAC de recevoir des adresses IP différentes. Lorsqu'on utilise cette fonction, le DHCP assigne des adresses IP sur la base de l'adresse MAC et de MAC l'identification d'utilisateur (au lieu de l'adresse seulement). Ceci permettra à toutes les entités d'établir 15 des connexions de réseau avec le réseau extérieur, absolument sans aucune traduction. Un autre mode de réalisation permet une communication de réseau entre plusieurs entités invitées sans utiliser la NAT, ces entités invitées partageant à la 20 fois une adresse IP unique et une adresse MAC unique. Un tel mode de réalisation s'étend à des cas dans lesquels un serveur DHCP ne supporte pas des utilitaires tels que l'option 61. Si l'option 61 n'est pas disponible, les entités sont forcées à utiliser le routage par des ports 25 pour permettre des communications de réseau tout en partageant à la fois les adresses MAC et IP. De façon générale, le routage par des ports divise le trafic entre des entités sur la base des ports, ce qui limite la connexité mutuelle entre les entités. Divers modes de 30 réalisation étendent le connexité mutuelle entre deux entités invitées, dans un environnement d'hôte partagé. Les figures 1 et 2 montrent des exemples de configurations d'hôtes dans lesquels un mode de réalisation peut être mis en pratique. En ce qui concerne la figure 1, 35 de multiples entités invitées - dans ce cas, un système d'exploitation (SE) de service 104 et un certain nombre de 2906909 8 SE de capacité 106, 108 - s'exécutant sur la même machine hôte 100, sont représentés. Il est connu dans la technique que d'autres types d'entités, par exemple des machines virtuelles matérielles, des machines virtuelles 5 logicielles, des partitions et des clients VPN, peuvent remplacer les systèmes d'exploitation représentés sur la figure 1. Un SE de service 104 commande la carte réseau physique 103 par l'intermédiaire d'un pilote de pont de carte réseau, 105, et les SE de capacité 106, 108 ont 10 chacun leurs pilotes de carte réseau virtuelle respectifs, 107, 109. Les pilotes de carte réseau 105, 107, 109 sont utilisés pour communiquer avec un moniteur de machine virtuelle 102 supportant les multiples entités sur l'hôte 100. Le routage de paquets de données vers l'hôte, et à 15 partir de celui-ci, et de paquets de données qui sont envoyés à l'intérieur de l'hôte, entre des entités invitées, peut être pris en charge à l'hôte 100, dans ce cas par le pilote de pont de carte réseau 105 du SE de service 104. Le pilote de pont de carte réseau 105 peut 20 prendre en charge le routage de paquets de données en commandant un dispositif d'interface, dans ce cas une carte réseau physique 103, pour permettre la communication entre l'hôte 100 et un réseau 110. Il est connu dans la technique que divers modems ou d'autres dispositifs d'interface 25 peuvent être substitués à la carte réseau physique 103 représentée. Il est en outre connu dans la technique que l'hôte peut être en communication avec une seule machine ou avec un autre système, qui n'est pas un réseau. Chacun du SE de service 104, du SE de capacité 106 et du SE de 30 capacité 108 peut également être en communication avec une mémoire partagée 101 de l'hôte 100. Sur la figure 1, les entités invitées peuvent toutes partager une adresse MAC unique (MAC1), tout en ayant leurs propres adresses IP individuelles (IP1, IP2, 35 IP3, etc.). Ce partage d'adresses particulier peut être utilisé par l'hôte 100, par exemple dans un mode de routage 2906909 9 de Couche 3 du modèle d'Interconnexion de Systèmes Ouverts (OSI pour "Open Systems Interconnection"). L'adresse MAC unique, partagée par les entités invitées, peut être l'adresse MAC réelle du dispositif d'interface, par exemple 5 la carte réseau physique 103. Les adresses IP individuelles peuvent être assignées à leurs entités invitées respectives au moyen d'un serveur DHCP qui supporte le champ d'identification de client, option 61. En se référant à la figure 2, on voit une 10 configuration d'hôte similaire à celle de la figure 1. Dans ce cas, un SE de service 204 et un SE de capacité 206 s'exécutent sur la même machine hôte 200, comme représenté. Il est connu dans la technique que d'autres types d'entités, par exemple des machines virtuelles matérielles, 15 des machines virtuelles logicielles, des partitions et des clients VPN, peuvent remplacer les systèmes d'exploitation représentés sur la figure 1. Un SE de service 204 commande la carte réseau physique 203 par l'intermédiaire d'un pilote de pont de carte réseau 205, et le SE de capacité 20 206 inclut un pilote de carte réseau virtuelle 207. Les pilotes de carte réseau 205, 207 peuvent communiquer avec un moniteur de machine virtuelle 202 supportant les multiples entités sur l'hôte 200. Le routage de paquets de données vers l'hôte et à partir de celui-ci, et de paquets 25 de données envoyés à l'intérieur de l'hôte, entre des entités invitées, peut être pris en charge dans l'hôte 200, dans ce cas par le pilote de pont de carte réseau 205 du SE de service 204. Le pilote de pont de carte réseau 205 peut prendre en charge le routage de paquets de données en 30 commandant un dispositif d'interface, dans ce cas une carte réseau physique 203, pour permettre la communication entre l'hôte 200 et un réseau 208. Il est connu dans la technique que divers modems ou autres dispositifs d'interface peuvent remplacer la carte réseau physique 203 représentée. Il est 35 en outre connu dans la technique que l'hôte peut communiquer avec une seule machine, ou un autre système, 2906909 10 différent d'un réseau. Le SE de service 204 et le SE de capacité 206 peuvent également être en communication avec une mémoire partagée 201 de l'hôte 200. En plus de partager une adresse MAC unique, comme dans l'exemple de la figure 5 1, les entités invitées 204 et 206 sur l'hôte 200 partagent en outre une adresse IP unique IP1. Ce partage d'une adresse IP unique pourrait avoir lieu, par exemple, lorsque l'hôte ne parvient pas à trouver un serveur DHCP capable de supporter le champ d'option 61 dans une demande DHCP. En 10 partageant à la fois une adresse MAC et une adresse IP, l'hôte peut devoir utiliser le routage par des ports pour transmettre des paquets de données entre les entités invitées. Pour l'une ou l'autre des configurations 15 représentées sur les figures 1 et 2, une entité invitée peut essayer d'envoyer un paquet de données vers une autre entité invitée. Lorsqu'on élimine l'utilisation de la NAT ou on partage une adresse d'une autre manière entre les entités invitées, la structure de l'en-tête ou des en-têtes 20 dans lesquels ce paquet de données est encapsulé peut donner lieu à un problème de bouclage. Comme envisagé ci-dessous, le type d'en-tête détermine l'étendue du problème de bouclage. La figure 3 montre une partie d'un exemple d'en- 25 tête de mise en réseau 300 qui, conformément à un mode de réalisation, encapsule un paquet de données envoyé entre deux entités invitées. De façon spécifique, un en-tête Ethernet (ETH) 300 est représenté, et comprend un champ MAC de cible ETH 301, pour spécifier une entité destinataire du 30 paquet de données, un champ MAC de source ETH 302 pour spécifier l'entité qui envoie le paquet de données, et un champ de type 303 pour identifier le protocole de réseau qui est utilisé. Dans un mode de réalisation, chaque paquet de données envoyé par une entité invitée peut être 35 encapsulé au moins par un en-tête de mise en réseau. Il est connu dans la technique que l'un d'une variété de 2906909 11 protocoles peut être utilisé pour encapsuler des paquets de données dans un en-tête de mise en réseau. Certains paquets de données transmis entre des entités invitées peuvent en outre être encapsulés dans des 5 en-têtes contenant à la fois des champs d'adresse MAC de source et de cible et des champs d'adresse IP de source et de cible. La figure 4 montre un exemple d'un tel en-tête qui est un en-tête de Protocole de Résolution d'Adresse (ARP pour "Address Resolution Protocol") 400 tel que celui 10 décrit dans le document "An Ethernet Address Resolution Protocol", Request For Comments (RFC) N 826 du Network Working Group, publié en novembre 1982. Lorsqu'une entité a seulement une adresse IP pour une autre entité, l'entité peut envoyer une demande ARP concernant l'adresse de 15 matériel de l'autre entité, ce qui peut conduire à son tour à la réception d'une réponse ARP provenant de l'autre entité. Un paquet de données de demande ARP ainsi qu'un paquet de données de réponse ARP peuvent être encapsulés dans un en-tête ARP 400. 20 Un en-tête ARP 400 caractéristique peut comprendre : un champ de type de matériel 401 pour décrire le type de l'adresse MAC qui est mappée, un champ de type de protocole 402 pour décrire le type d'adresse de protocole vers laquelle l'adresse MAC est mappée, un champ de longueur 25 d'adresse de matériel 403 pour décrire la longueur de l'adresse MAC, un champ de longueur d'adresse de protocole 404 pour décrire la longueur de l'adresse de protocole, un champ de code d'opération 405 pour indiquer si le paquet de données est une demande ARP ou une réponse ARP, un champ 30 MAC de source ARP 406 pour conserver l'adresse MAC de l'entité envoyant le paquet de données, un champ IP de source ARP 407 pour conserver l'adresse IP de l'entité envoyant le paquet de données, un champ MAC de cible ARP 408 pour conserver l'adresse MAC de l'entité devant 35 recevoir le paquet de données, et un champ IP de cible ARP 2906909 12 409 pour conserver l'adresse IP de l'entité devant recevoir le paquet de données. La figure 5A illustre un problème de bouclage courant dans la transmission de paquets de données entre 5 des entités invitées résidant sur un hôte partagé. Dans cet exemple, une entité invitée résidant sur un hôte, qui est l'entité SE1 d'hôte 501, tente d'envoyer un paquet de données à une deuxième entité sur le même hôte, qui est l'entité SE2 d'hôte 502. Pour la simplicité, la figure 5A 10 montre seulement l'en-tête 505 qui encapsule le paquet de données. L'en-tête 505 peut inclure une information de source 506, qui inclut au moins un champ d'adresse MAC de source, et une information de cible 507, qui inclut au moins un champ d'adresse MAC de cible. Le champ d'adresse 15 MAC de source dans l'information de source 505 peut correspondre au champ MAC de source ETH 302 dans le cas d'un en-tête de réseau, ou au champ MAC de source ARP 406 dans le cas d'un en-tête ARP. Le champ d'adresse MAC de cible dans l'information de cible 507 peut correspondre au 20 champ MAC de cible ETH 301 dans le cas d'un en-tête de réseau, ou au champ MAC de cible ARP 408 dans le cas d'un en-tête ARP. Lorsque l'en-tête d'encapsulation 505 est un en-tête ARP, l'information de source 506 et l'information de cible 507 peuvent en outre inclure, respectivement, un 25 champ d'adresse IP correspondant au champ IP de source ARP 407, et un champ d'adresse IP correspondant au champ IP de cible ARP 409. L'information d'adresse IP dans l'en-tête 505 est représentée entre parenthèses pour montrer que certains modes de réalisation peuvent être mis en oeuvre 30 pour des types d'en-têtes qui n'encapsulent pas le paquet de données avec une information IP de source et de cible. Lorsque le paquet de données encapsulé est envoyé à partir de l'entité SE1 d'hôte 501, un dispositif intermédiaire sur l'hôte peut intercepter le paquet de 35 données et le traiter pour la transmission à l'entité SE2 d'hôte. Ce dispositif intermédiaire peut être le pilote de 2906909 13 pont de carte réseau 105 ou un dispositif d'hôte similaire désigné pour cette tâche. Un bouclage peut se produire lorsque le dispositif intermédiaire voit qu'une certaines information d'adresse de source et son information de cible 5 correspondante sont les mêmes. Par exemple, si seulement une adresse MAC unique est partagée par SEl d'hôte 501 et SE2 d'hôte 502, et le paquet de données 505 est encapsulé dans l'en-tête Ethernet 300, le champ d'adresse MAC de source ETH 301 et le champ d'adresse MAC de cible ETH 10 auront tous deux l'adresse MAC unique. Ceci entraînera l'échec de la transmission du paquet de données à SE2 d'hôte 502, en faveur d'un bouclage 511 vers SEl d'hôte 501. Dans des cas où le paquet de données est en outre 15 encapsulé avec un en-tête ARP, par exemple, un tel en-tête peut contenir une seconde base pour le bouclage du paquet de données par le dispositif intermédiaire. Par exemple, si SEl d'hôte 501 et SE2 d'hôte 502 partagent tous deux une adresse MAC unique et une adresse IP unique, et le paquet 20 de données 505 est en outre encapsulé dans un en-tête ARP 400, le champ MAC de source ARP 406 et le champ MAC de cible ARP 408 peuvent avoir tous deux l'adresse MAC unique partagée, et le champ IP de source ARP 407 et le champ IP de cible ARP 409 peuvent avoir tous deux l'adresse IP 25 unique partagée. Ceci peut constituer une base séparée, distincte de celle de l'en-tête de réseau, pour l'échec de la transmission du paquet de données vers SE2 d'hôte 502, en faveur d'un bouclage 511 vers SEl d'hôte 501. Par exemple, lorsque SEl d'hôte 501 et SE2 d'hôte 30 502 partagent une adresse MAC unique, l'adresse MAC vraie du dispositif d'interface de la machine hôte, un en-tête encapsulant le paquet de données - tel que l'en-tête Ethernet 300 - peut avoir cette adresse MAC unique à la fois dans le champ d'adresse MAC de cible ETH 301 et dans 35 le champ d'adresse MAC de source ETH 302. L'adresse MAC unique partagée par les entités invitées peut être 2906909 14 l'adresse MAC réelle du dispositif d'interface, par exemple la carte réseau physique 103. La figure 5B illustre une solution au problème de bouclage de la figure 5A, conformément à un mode de 5 réalisation. Dans cet exemple, une entité invitée résidant sur un hôte, qui est l'entité SEl d'hôte 503, peut tenter d'envoyer un paquet de données à une deuxième entité sur le même hôte, qui est l'entité SE2 d'hôte 504. Pour la simplicité, la figure 5B montre seulement un en-tête 508 10 qui encapsule le paquet de données. L'en-tête 508 peut inclure une information de source 509, qui inclut au moins un champ d'adresse MAC de source, et une information de cible 510, qui inclut au moins un champ d'adresse MAC de cible. Le champ d'adresse MAC de source dans l'information 15 de source 508 peut correspondre au champ MAC de source ETH 302 dans le cas d'un en-tête de réseau, ou au champ MAC de source ARP 406 dans le cas d'un en-tête ARP. Le champ d'adresse MAC de cible dans l'information de cible 510 peut correspondre au champ MAC de cible ETH 301 dans le cas d'un 20 en-tête de réseau, ou au champ MAC de cible ARP 408 dans le cas d'un en-tête ARP. Lorsque l'en-tête d'encapsulation 508 est un en-tête ARP, l'information de source 509 et l'information de cible 510 peuvent en outre inclure, respectivement, un champ d'adresse IP correspondant au 25 champ IP de source ARP 407, et un champ d'adresse IP correspondant au champ IP de cible ARP 409. Pour représenter cette possibilité, la figure 5B montre entre parenthèses une information d'adresse IP de l'en-tête 508. Pour permettre un trafic de réseau complet entre 30 les deux entités, un mode de réalisation peut utiliser des adresses auxiliaires, pouvant être des adresses MAC auxiliaires ou des adresses IP auxiliaires, ou les deux.. Chaque entité connaît l'adresse IP des autres entités. Cette information peut être communiquée par l'un quelconque 35 d'un certain nombre de moyens, comme par l'intermédiaire de la mémoire partagée. Chaque. entité sait en outre que sa 2906909 15 propre adresse MAC est l'adresse MAC de l'interface, par exemple la carte réseau physique. Lorsqu'une entité source résidant dans l'hôte envoie un paquet de données à une entité ciblerésidant dans l'hôte, l'adresse auxiliaire 5 peut être stockée dans un champ de cible - soit un champ MAC de cible, soit un champ IP de cible, soit les deux - de façon qu'un bouclage ne soit pas occasionné par le fait qu'un en-tête d'encapsulation du paquet de données a des adresses de cible et de source identiques. 10 L'entité source sur l'hôte peut placer une adresse MAC générique (c'est-à-dire auxiliaire) dans le champ d'adresse MAC de cible du paquet IP envoyé vers une entité cible résidant sur le même hôte. Les entités résidant sur l'hôte peuvent toutes utiliser la même adresse MAC 15 auxiliaire pour envoyer des paquets IP les unes aux autres. Le résultat est que chaque entité sur l'hôte apparaît à d'autres entités sur l'hôte comme ayant une adresse MAC différente de celle qu'elle a en réalité, ce qui empêche des bouclages dus à l'utilisation d'adresses MAC de source 20 et de cible identiques. Une utilisation similaire d'une adresse IP auxiliaire empêchera un bouclage dû à l'utilisation d'adresses IP de source et de cible identiques dans un paquet de données. Dans l'exemple de la figure 5B, l'adresse MAC 25 auxiliaire de l'en-tête 508 est stockée en tant qu'information de cible 510. Ceci empêche un bouclage basé sur des adresses MAC identiques. Si l'en-tête 508 est d'un type qui stocke également une adresse IP en tant qu'information de cible 510, alors l'entité SE1 d'hôte 503 30 inclura également une adresse IP auxiliaire qui empêche un bouclage basé sur des adresses IP identiques dans l'en-tête 508. Les détails de la manière selon laquelle un mode de réalisation tire parti d'adresses auxiliaires dans des en-têtes de paquets de données sont décrits ci-dessous. 35 La figure 6 montre un organigramme 600 d'un procédé mettant en oeuvre un mode de réalisation. Dans cet exemple, 2906909 16 le procédé peut être exécuté par une carte réseau d'un hôte ayant de multiples entités résidentes. En 601, un paquet de données peut être reçu à partir de l'une des entités résidant sur l'hôte, qui partage une adresse MAC unique 5 avec les autres entités de l'hôte. En 602, le paquet de données peut être contrôlé pour voir si un en-tête inclut un champ MAC de cible ETH qui contient l'adresse MAC auxiliaire partagée par toutes les entités. Ceci indique que la cible du paquet de données est une autre entité 10 résidant sur l'hôte. Si le champ MAC de cible ETH de l'en-tête du paquet de données ne contient pas l'adresse MAC auxiliaire, le paquet de données peut être routé à partir de l'hôte vers une destination de réseau extérieure à l'hôte, en 603. Si le champ MAC de cible ETH de l'en-tête 15 du paquet de données contient effectivement l'adresse MAC auxiliaire, en 604, le champ MAC de source ETH et le champ MAC de cible ETH de l'en-tête du paquet de données peuvent être permutés. Ensuite, en 605, le paquet de données peut être 20 contrôlé pour voir s'il est associé à un échange ARP, c'est-à-dire soit une demande ARP pour une adresse MAC, soit une réponse à une telle demande. Si le paquet de données n'est pas associé à un échange ARP, en 607, le paquet de données peut être routé à l'intérieur de l'hôte 25 vers une entité d'hôte cible. Si le paquet de données est associé à un échange ARP, en 606, l'adresse MAC de source ARP et l'adresse MAC de cible ARP de l'en-tête du paquet de données peuvent être permutées. Après permutation de l'adresse MAC de source ARP et de l'adresse MAC de cible 30 ARP, en 607, le paquet de données peut être routé à l'intérieur de l'hôte vers une entité d'hôte cible. La figure 7 montre un organigramme 700 pour un procédé mettant en oeuvre un autre mode de réalisation. Dans cet exemple, le procédé peut être exécuté par une carte 35 réseau d'un hôte ayant de multiples entités résidentes. En 701, un paquet de données peut être reçu à partir de l'une 2906909 17 des entités résidant sur l'hôte, qui partage à la fois une adresse MAC unique et une adresse IP unique avec les autres entités de l'hôte. En 702, le paquet de données peut être contrôlé pour voir si un en-tête inclut un champ MAC de 5 cible ETH qui contient l'adresse MAC auxiliaire partagée par toutes les entités. Ceci peut indiquer que la cible du paquet de données est une autre entité résidant sur l'hôte. Si le champ MAC de cible ETH de l'en-tête du paquet de données ne contient pas l'adresse MAC auxiliaire, le paquet 10 de données peut être routé à partir de l'hôte vers une destination de réseau extérieure à l'hôte, en 703. Si le champ MAC de cible ETH de l'en-tête du paquet de données contient effectivement l'adresse MAC auxiliaire, en 704, le champ MAC de source ETH et le champ MAC de cible ETH de 15 l'en-tête du paquet de données peuvent être permutés. Ensuite, en 705, le paquet de données peut être contrôlé pour voir s'il est associé à un échange ARP, c'est-à-dire soit une demande ARP pour une adresse MAC, soit une réponse à une telle demande. Si le paquet de 20 données n'est pas associé à un échange ARP, en 708, le paquet de données peut être routé à l'intérieur de l'hôte vers une entité d'hôte cible. Si le paquet de données est associé à un échange ARP, en 706, l'adresse MAC de source ARP et l'adresse MAC de cible ARP de l'en-tête du paquet de 25 données peuvent être permutées. De plus, en 707, l'adresse IP de source ARP et l'adresse IP de cible ARP de l'en-tête du paquet de données peuvent être permutées. Après permutation des adresses MAC de source et de cible ARP, ainsi que des adresses IP de 30 source et de cible ARP, en 708, le paquet de données est routé à l'intérieur de l'hôte vers une entité d'hôte cible. La figure 8 illustre un mode de réalisation d'un système informatique convenant pour l'utilisation avec l'invention. Le système informatique 800 peut inclure un 35 bus 804 ou un autre dispositif de communication pour communiquer de l'information, et un processeur 801 couplé 2906909 18 au bus 804 pour traiter de l'information. Bien que le système informatique 800 soit illustré avec un seul processeur, le système informatique 800 peut inclure de multiples processeurs. Le système informatique 800 peut en 5 outre inclure un dispositif de mémoire 802 tel qu'une mémoire vive (RAM), couplée au bus 804 pour stocker de l'information et des instructions à exécuter par le processeur 801. La mémoire 802 peut également être utilisée pour stocker des variables temporaires ou une autre 10 information intermédiaire pendant l'exécution d'instructions par le processeur 801. Le système informatique 800 comporte également, en couplage avec le bus 804, un moyen de stockage non volatil 803 - par exemple une mémoire morte (ROM) ou un microprogramme - pour stocker 15 des instructions de BIOS ou un logiciel de système similaire pour le processeur 801. Un autre support de stockage 807, tel qu'une mémoire flash, un disque magnétique ou un disque optique, et des lecteurs correspondants peuvent en outre être couplés au bus 804 20 pour stocker de l'information et des instructions. Le système informatique 800 peut également avoir un dispositif de visualisation 806 tel qu'un tube cathodique ou un dispositif de visualisation à cristaux liquides couplé au bus 804 par l'intermédiaire d'un contrôleur de 25 visualisation 805, pour présenter de l'information à un utilisateur d'ordinateur. Un dispositif d'entrée / sortie (E/S) alphanumérique 810, incluant des touches alphanumériques et autres, peut également être couplé au bus 804 par l'intermédiaire d'un contrôleur d'E/S 809. Le 30 système informatique 800 peut en outre inclure une interface de réseau 808 qui donne accès à un réseau 812. Dans un mode de réalisation, l'interface de réseau 808 est une carte réseau; cependant, on peut également utiliser d'autres interfaces de réseau. 35 Un mode de réalisation de l'invention est lié à l'utilisation d'une adresse auxiliaire pour empêcher un 2906909 19 bouclage de paquets de données routés entre des entités résidant sur un hôte. Conformément à un mode de réalisation, la prévention du bouclage au moyen d'adresses auxiliaires a lieu en réponse au fait que le processeur 801 5 exécute des séquences d'instructions contenues dans la mémoire 804. Dans d'autres modes de réalisation, des circuits câblés peuvent être utilisés à la place d'instructions de logiciel, ou en combinaison avec celles-ci, pour mettre en œuvre l'invention. L'invention n'est 10 donc pas limitée à une combinaison spécifique quelconque de circuits de matériel et d'instructions de logiciel. Bien que l'invention ait été décrite en termes de plusieurs modes de réalisation, l'homme de l'art reconnaîtra que l'invention n'est pas limitée aux modes de 15 réalisation décrits, mais peut être mise en pratique avec des modifications et des changements, dans l'esprit et le cadre des revendications annexées. La description doit donc être considérée comme illustrative et non limitative. REVENDICATIONS 1. Procédé comprenant les étapes suivantes : envoyer, à partir d'une première entité résidant sur un hôte, un paquet de données ayant un champ de Commande d'Accès au Support (MAC pour "Media Access Control") de source de mise en réseau et un champ MAC de cible de mise en réseau, la première entité partageant une adresse MAC unique avec une deuxième entité résidant sur l'hôte ; effectuer à l'hôte une détermination concernant le fait que le champ MAC de cible de mise en réseau du paquet de données contient une adresse MAC interne différente de l'adresse MAC unique, l'adresse MAC interne indiquant une entité qui réside sur l'hôte ; et permuter les contenus du champ MAC de source et du champ MAC de cible, sur la base d'un résultat de la détermination. 2. Procédé selon la revendication 1, dans lequel la première entité comprend une première machine virtuelle et la deuxième entité comprend une deuxième machine virtuelle. 3. Procédé selon la revendication 1, dans lequel la première entité (503) comprend un premier système d'exploitation (SE1) et la deuxième entité (504) comprend un deuxième système d'exploitation (SE2). 4. Procédé selon la revendication 1, dans lequel le paquet de données est conforme au standard 802.1AE de l'Institute of Electrical & Electronics Engineers (IEEE). 5. Procédé selon la revendication 1, dans lequel, lorsque la détermination est positive, le procédé comprend en outre les étapes suivantes : effectuer une deuxième détermination concernant le fait que le paquet de données est un paquet de résolution d'adresse ayant en outre un champ MAC de source de résolution d'adresse et un champ MAC de cible de résolution d'adresse ; et placer l'adresse MAC interne dans le champ MAC de source de résolution 2906909 21 d'adresse, sur la base d'un résultat de la deuxième détermination. 6. Procédé selon la revendication 5, dans lequel l'étape consistant à placer l'adresse MAC interne dans le 5 champ MAC de source de résolution d'adresse comprend la permutation des contenus du champ MAC de source de résolution d'adresse et du champ MAC de cible de résolution d'adresse. 7. Procédé selon la revendication 5, dans lequel la 10 demande de résolution d'adresse est conforme à un protocole Address Resolution Protocol (ARP). 8. Procédé selon la revendication 5, dans lequel les première et deuxième entités partagent en outre une adresse de Protocole Internet (IP) unique, le paquet de 15 données ayant en outre un champ IP de source de résolution d'adresse et un champ IP de cible de résolution d'adresse, comprenant en outre l'étape suivante : placer dans le champ IP de source de résolution d'adresse une adresse IP interne différente de l'adresse IP partagée, sur la base d'un 20 résultat de la deuxième détermination, l'adresse IP interne indiquant une entité qui réside sur l'hôte. 9. Procédé selon la revendication 8, dans lequel l'étape consistant à placer l'adresse MAC interne dans le champ IP de source de résolution d'adresse comprend la 25 permutation des contenus du champ IP de source de résolution d'adresse et du champ IP de cible de résolution d'adresse. 10. Appareil comprenant une première entité fonctionnelle résidant sur un hôte, la première entité 30 fonctionnelle envoyant un paquet de données ayant un champ MAC de source de mise en réseau et un champ MAC de cible de mise en réseau ; une deuxième entité fonctionnelle résidant sur l'hôte, la deuxième entité fonctionnelle recevant le paquet 35 de données, la deuxième entité fonctionnelle partageant une adresse MAC unique avec la première entité fonctionnelle ; 2906909 22 et un dispositif de mise en réseau pour effectuer une détermination concernant le fait que le champ MAC de cible de mise en réseau du paquet de données contient une adresse MAC interne différente de l'adresse MAC unique, 5 l'adresse MAC interne étant destinée à indiquer une entité fonctionnelle résidant sur l'hôte, le dispositif de mise en réseau permutant en outre les contenus du champ MAC de source de mise en réseau et du champ MAC de cible de mise en réseau, sur la base d'un résultat de la détermination. 10 11. Appareil selon la revendication 10, caractérisé en ce que le paquet de données est conforme au standard 802.1AE de l'Institute of Electrical & Electronics Engineers (IEEE). 12. Appareil selon la revendication 10, dans lequel 15 le dispositif de mise en réseau effectue en outre une deuxième détermination concernant le fait que le paquet de données est un paquet de résolution d'adresse ayant en outre un champ MAC de source de résolution d'adresse et un champ MAC de cible de résolution d'adresse, le dispositif 20 de mise en réseau plaçant en outre l'adresse MAC interne dans le champ MAC de source de résolution d'adresse, sur la base d'un résultat de la deuxième détermination. 13. Appareil selon la revendication 12, dans lequel le placement de l'adresse MAC interne dans le champ MAC de 25 source de résolution d'adresse comprend la permutation des contenus du champ MAC de source de résolution d'adresse et du champ MAC de cible de résolution d'adresse. 14. Appareil selon la revendication 12, dans lequel la demande de résolution d'adresse est conforme à un 30 protocole ARP. 15. Appareil selon la revendication 12, dans lequel les première et deuxième entités fonctionnelles partagent en outre une adresse de Protocole Internet (IP) unique, le paquet de données ayant en outre un champ IP de source de 35 résolution d'adresse et un champ IP de cible de résolution d'adresse, le dispositif de mise en réseau plaçant en outre 2906909 23 dans le champ IP de source de résolution d'adresse une adresse IP interne différente de l'adresse IP partagée, sur la base d'un résultat de la deuxième détermination, l'adresse IP interne indiquant une entité fonctionnelle 5 résidant sur l'hôte. 16. Appareil selon la revendication 15, dans lequel le placement de l'adresse MAC interne dans le champ MAC de source de résolution d'adresse comprend la permutation des contenus du champ IP de source de résolution d'adresse et 10 du champ IP de cible de résolution d'adresse. 17. Système comprenant : une mémoire vive dynamique (DRAM pour "Dynamic Random Access Memory") partagée pour héberger une première entité fonctionnelle et une deuxième entité fonctionnelle, la première entité fonctionnelle 15 envoyant un paquet de données ayant un champ MAC de source de mise en réseau et un champ MAC de cible de mise en réseau, la deuxième entité fonctionnelle recevant le paquet de données, la deuxième entité fonctionnelle partageant une adresse MAC unique avec la première entité fonctionnelle ; 20 un dispositif de mise en réseau pour effectuer une détermination concernant le fait que le champ MAC de cible de mise en réseau du paquet de données contient une adresse MAC interne différente de l'adresse MAC unique, l'adresse MAC interne indiquant une entité fonctionnelle hébergée par 25 la mémoire DRAM, le dispositif de mise en réseau permutant en outre les contenus du champ MAC de source de mise en réseau et du champ MAC de cible de mise en réseau, sur la base d'un résultat de la détermination ; et un bus connecté à la première entité 30 fonctionnelle, à la deuxième entité fonctionnelle et au dispositif de mise en réseau, le bus transmettant le paquet de données. 18. Système selon la revendication 17, dans lequel le paquet de données est conforme au standard (IEEE) 35 802.1AE de l'Institute of Electrical & Electronics Engineers. 2906909 24 19. Système selon la revendication 17, dans lequel le dispositif de mise en réseau effectue en outre une deuxième détermination concernant le fait que le paquet de données est un paquet de résolution d'adresse ayant en 5 outre un champ MAC de source de résolution d'adresse et un champ MAC de cible de résolution d'adresse, le dispositif de mise en réseau plaçant en outre l'adresse MAC interne dans le champ MAC de source de résolution d'adresse, sur la base d'un résultat de la deuxième détermination. 10 20. Système selon la revendication 19, dans lequel le placement de l'adresse MAC interne dans le champ MAC de source de résolution d'adresse comprend la permutation des contenus du champ MAC de source de résolution d'adresse et du champ MAC de cible de résolution d'adresse. 15 21. Système selon la revendication 19, dans lequel la demande de résolution d'adresse est conforme à un protocole ARP. 22. Système selon la revendication 19, dans lequel les première et deuxième entités fonctionnelles partagent 20 en outre une adresse de Protocole Internet (IP) unique, le paquet de données ayant en outre un champ IP de source de résolution d'adresse et un champ IP de cible de résolution d'adresse, le dispositif de mise en réseau plaçant en outre dans le champ IP de source de résolution d'adresse une 25 adresse IP interne différente de l'adresse IP partagée, sur la base d'un résultat de la deuxième détermination, l'adresse IP interne indiquant une entité fonctionnelle hébergée par la mémoire DRAM. 23. Système selon la revendication 22, dans lequel 30 le placement de l'adresse MAC interne dans le champ MAC de source de résolution d'adresse comprend la permutation des contenus du champ IP de source de résolution d'adresse et du champ IP de cible de résolution d'adresse. 24. Support lisible par une machine qui fournit des 35 instructions qui, lorsqu'elles sont exécutées par un ensemble d'un ou plusieurs processeurs (801), font en sorte 2906909 25 que cet ensemble de processeurs accomplissent un procédé comprenant les étapes suivantes : envoyer à partir d'une première entité résidant sur un hôte un paquet de données comprenant un champ MAC de 5 source et un champ MAC de cible, la première entité partageant une adresse MAC unique avec une deuxième entité résidant sur l'hôte; effectuer, à l'hôte, une détermination concernant le fait que le champ MAC de cible du paquet de données contient une adresse MAC interne différente de 10 l'adresse MAC unique, l'adresse MAC interne indiquant une entité résidant sur l'hôte ; permuter les contenus du champ MAC de source et du champ MAC de cible, sur la base d'un résultat de la détermination ; 15 et recevoir le paquet de données à la deuxième entité. 25. Support lisible par une machine selon la revendication 24, dans lequel le paquet de données est conforme au standard Institute of Electrical & Electronics 20 Engineers (IEEE) 802.1AE. 26. Support lisible par une machine selon la revendication 24, dans lequel la détermination est positive, le procédé comprenant en outre les étapes suivantes : 25 effectuer une deuxième détermination concernant le fait que le paquet de données est un paquet de résolution d'adresse ayant en outre un champ MAC de source de résolution d'adresse et un champ MAC de cible de résolution d'adresse ; 30 et placer l'adresse MAC interne dans le champ MAC de source de résolution d'adresse, sur la base d'un résultat de la deuxième détermination. 27. Support lisible par une machine selon la revendication 26, dans lequel le placement de l'adresse 35 MAC interne dans le champ MAC de source de résolution d'adresse comprend la permutation des contenus du champ MAC 2906909 26 de source de résolution d'adresse et du champ MAC de cible de résolution d'adresse. 28. Support lisible par une machine selon la revendication 26, dans lequel la demande de résolution 5 d'adresse est conforme à un protocole ARP. 29. Support lisible par une machine selon la revendication 26, dans lequel les première et deuxième entités partagent en outre une adresse de Protocole Internet (IP) unique, le paquet de données ayant en outre 10 un champ IP de source de résolution d'adresse et un champ IP de cible de résolution d'adresse, le procédé comprenant en outre : le placement dans le champ IP de source de résolution d'adresse d'une adresse IP interne différente de l'adresse IP partagée, sur la base d'un résultat de la 15 deuxième détermination, l'adresse IP interne indiquant une entité résidant sur l'hôte. 30. Support lisible par une machine selon la revendication 29, dans lequel le placement de l'adresse MAC interne dans le champ IP de source de résolution d'adresse 20 comprend la permutation des contenus du champ IP de source de résolution d'adresse et du champ IP de cible de résolution d'adresse.