FR 3090945 A1 20200626 FR 1874090 A 20181224 Description Titre de l'invention : Procédé de raccordement d'un périphérique distant à un réseau local virtuel Domaine technique [0001] La présente invention concerne un adaptateur convenant au raccordement fonctionnel d'un périphérique distant, doté d'une interface réseau, à un réseau local virtuel. La présente invention concerne en outre un procédé mis en oeuvre dans un tel adaptateur, un système comportant ledit adaptateur et un produit programme d'ordinateur convenant à mettre en oeuvre le procédé. [0002] La présente invention trouve une application particulière dans une architecture in- formatique dans laquelle une session informatique d'utilisateur s'exécute sur une machine virtuelle et est diffusée à un client distant avec lequel la session informatique est associée. Arrière-plan technologique [0003] Les documents US2017228851 et FR3047576 décrivent une configuration de système informatique, dans lequel des dispositifs d'interface d'utilisateur (affichage, clavier...) sont séparés de la partie traitement de l'application. Les dispositifs d'interface utilisateur (également dénommé collectivement comme le « client ») se trouvent à proximité de l'utilisateur alors que les composants de traitement et de stockage formant un ordinateur hôte se trouvent dans un lieu d'hébergement distant. Les dispositifs d'interface utilisateur ont généralement accès, au niveau de l'ordinateur hôte, à une machine virtuelle dédiée par l'intermédiaire d'un réseau (le plus souvent Internet), la machine virtuelle émulant le traitement, le stockage et toutes les autres ressources informatiques requises pour que l'utilisateur puisse exploiter une session informatique, comme si celle-ci s'exécutait localement. L'ordinateur hôte héberge le système d'exploitation et les applications logicielles utilisées par les clients, ce qui limite les ressources de traitement du côté client. [0004] Il est habituel que l'ordinateur hôte soit constitué d'une pluralité de systèmes infor- matiques physiques (serveurs), chacun hébergeant une pluralité de machines virtuelles. Chaque machine virtuelle est connectée à un client, et fournit un environnement virtuel dédié pour émuler les fonctions d'un ordinateur personnel physique, y compris le traitement des données graphiques, et fournir les images de session d'utilisateur sur l'écran du client. Ces images de session sont préparées et traitées au moyen d'une carte graphique, pouvant être physique ou virtuelle, qui est attribuée à la machine virtuelle au moment du démarrage de celle-ci. De la même manière, les données de son produites au cours de l'exécution de la session d'utilisateur sont transférées au client. 2 Le client possède des ressources informatiques suffisantes pour recevoir le flux de données et afficher et/ou émettre celles-ci. Le client échange également des informations ou des instructions avec la machine virtuelle, telles que celles générés par les dispositifs d'interface (clavier, souris...). Ces infoimations sont appelées données de commande. Les images de session étant destinées à être diffusées au client distant, les serveurs sur lesquels s'exécutent les machines virtuelles hébergeant ces sessions ne sont généralement pas reliés à des écrans. [0005] Il peut exister des situations dans lesquelles il est souhaitable de pouvoir utiliser un périphérique réseau disposé sur un site sur lequel se trouve le client distant. [0006] Ceci n'est pas possible avec les solutions selon l'art antérieur dans lesquelles le péri- phérique réseau n'appartient pas au réseau virtuel local d'une machine virtuelle distante qui appartient audit réseau virtuel local sur laquelle le poste client travaille. Exposé de l'invention [0007] Selon un premier aspect de l'invention, il est proposé un adaptateur convenant au raccordement fonctionnel d'un périphérique (5) distant, doté d'une interface réseau à un réseau local virtuel. [0008] Ce type d'adaptateur est souvent nommé « donglc » dans la littérature. [0009] Lc périphérique peut typiquement être une imprimante, un scanner, un photocopieur, un moyen de stockage réseau, une télévision. [0010] Lc réseau local virtuel est distant du périphérique. [0011] Lc réseau local virtuel peut comporter éventuellement une ou plusieurs machines virtuelles et un ou plusieurs commutateurs virtuels. [0012] L'adaptateur selon le premier aspect de l'invention présente deux interfaces réseau, de préférence exactement deux, comprenant une première et une deuxième interface réseau. [0013] La première interface est agencée pour être fonctionnellement raccordée au péri- phérique. La première interface est de préférence de type RJ45. Elle peut être raccordée au périphérique au moyen d'un premier câble Ethernet. [0014] L'adaptateur selon le premier aspect de l'invention comporte en outre des moyens de traitement configurés pour : établir un tunnel réseau de type Vpn entre la deuxième interface et une interface virtuelle du réseau virtuel, injecter des trames dans le tunnel de type VPN, lesdites trames injectées résultant d'une encapsulation [de type UDP] de trames provenant de, et reçues par, la première l'interface. [0015] La deuxième interface peut être une interface radio ou Ethernet. [0016] Le tunnel est éventuellement établi à travers le réseau Internet et/ou à travers un 3 réseau local, distinct du réseau local virtuel. [0017] L'encapsulation des trames provenant de la première interface est de préférence réalisée par le protocole UDP, pour l'anglais User Datagram Protocol. Brève description des figures [0018] D'autres caractéristiques et avantages de l'invention ressortiront de la description détaillée de l'invention qui va suivre en référence aux figures annexées sur lesquels : [0019] [fig.11 la figure 1 représente schématiquement une architecture informatique dans laquelle peut être mise en oeuvre la présente invention, [0020] [lïg.21 la figure 2 représente schématiquement un premier mode de réalisation d'un système selon l'invention, [0021] [fig.3] la figure 3 représente schématiquement un premier mode de réalisation d'un adaptateur selon l'invention mis en oeuvre dans le système représenté sur la figure 2, [0022] [fig.4] la figure 4 représente schématiquement un deuxième mode de réalisation d'un système selon l'invention Description détaillée de l'invention [0023] Les modes de réalisation décrits ci-après n'étant nullement limitatifs, on pourra notamment considérer des variantes de l'invention ne comprenant qu'une sélection de caractéristiques décrites, par la suite isolées des autres caractéristiques décrites, si cette sélection de caractéristiques est suffisante pour conférer un avantage technique ou pour différencier l'invention par rapport à l'état de la technique antérieure. Cette sélection comprend au moins une caractéristique, de préférence fonctionnelle sans détails structurels, ou avec seulement une partie des détails structurels si cette partie uniquement est suffisante pour conférer un avantage technique ou pour différencier l'invention par rapport à l'état de la technique antérieure. 100241 Sur les figures un élément apparaissant sur plusieurs figures conserve la même référence. 100251 Dans la description qui suit, des descriptions détaillées de fonctions et d'éléments connus, qui pourraient inutilement rendre obscur l'essentiel de la présente invention, seront omises. Architecture informatique 100261 La figure 1 représente une architecture informatique permettant de mettre en oeuvre le procédé de maintenance qui fera l'objet d'une description détaillée dans la suite de cette description. [0027] Cette architecture est formée ici d'un ordinateur hôte 1 qui présente une pluralité de serveurs 2. Les serveurs 2 sont constitués de composants performants (CPU, mémoire, disque de stockage, cartes graphiques et de réseau,...) de manière à former une plateforme matérielle particulièrement efficace pour exécuter des applications pouvant nécessiter des capacités de traitement importantes, telles que les jeux vidéo. [0028] Comme cela est bien connu, les serveurs 2 peuvent être configurés pour héberger une ou plusieurs machine(s) virtuelle(s) 3, en même temps que son/leur système d'exploitation et ses/leurs applications. La virtualisation permet qu'une pluralité de machines virtuelles 3 soient hébergées dans chaque serveur 2 pour fournir une pluralité d'environnements virtuels totalement isolés les uns des autres. Chaque environnement virtuel a accès aux ressources matérielles du serveur (CPU, mémoire, moyens de stockage, carte graphique...) permettant d'y exécuter une session informatique d'utilisateur. On peut citer, parmi les technologies de virtualisation bien connues, Citrix XenServcr, Microsoft Hyper-V, VMware ESXi, Oracle Virtual box, Quick Emulator sous licence ouverte GNU (QEMU), etc. [0029] Chacune des machines virtuelles 3 dans l'ordinateur hôte 1 peut être dédiée à un uti- lisateur spécifique. Les utilisateurs interagissent avec leurs machines virtuelles 3 dédiées depuis des clients distants 4, 4', chacun étant connecté à l'ordinateur hôte 1 par l'intermédiaire d'un réseau comme Internet. Étant donné que la plus grande partie, si ce n'est l'intégralité, du traitement se fait au niveau de l'ordinateur hôte 1, les clients distants 4, 4' peuvent rester très simples, et peuvent inclure, par exemple, un simple terminal, un connecteur de réseau et des dispositifs d'entrée/sortie de base (clavier, souris...) comme représenté par le client distant 4 sur la figure 1. Le client distant 4 peut être formé d'un dispositif informatique simplifié, tel qu'une tablette, un Smartphone. Selon une autre solution, il peut s'agir d'un ordinateur personnel standard, disposant de sa propre unité centrale, d'une carte graphique, de périphériques... comme représenté par le client distant 4'. [0030] Chaque serveur 2 de l'ordinateur hôte 1 héberge, de préférence, moins de dix machines virtuelles 3 pour fournir des ressources informatiques suffisantes, notamment matérielles, à chaque machine virtuelle 3 pour exécuter des applications hautes performances avec un niveau suffisant de service. Chaque machine virtuelle 3 est créée au moment de la connexion du client à l'ordinateur hôte 1 et comprend une unité centrale virtuelle, une mémoire principale virtuelle, ainsi que toutes les autres ressources nécessaires. [0031] La machine virtuelle 3 comporte notamment, ou a accès à, une unité de traitement graphique pour préparer des données d'affichage de la session. Cette unité de traitement graphique peut correspondre à une simple carte vidéo matérielle ou à une carte graphique matérielle associée à la machine virtuelle 3. Il peut s'agir également d'une carte vidéo virtuelle ou d'une carte graphique virtuelle entièrement écoulée par les ressources matérielles du serveur 2 (et notamment par son ou ses unité(s) de traitement et/ou sa ou ses carte(s) graphique(s), ces ressources étant mises à disposition de la machine virtuelle 3 par la couche logicielle de virtualisation (l'hyperviseur) s'exécutant sur le serveur 2. Cette unité de traitement graphique peut également mixer des éléments matériels et des éléments virtuels. [0032] Quelle qu'en soit la nature, matérielle ou virtuelle, l'unité de traitement graphique associée à la machine virtuelle a pour fonction de préparer et fournir les données d'affichage de la session informatique s'exécutant dans la machine virtuelle 3. [0033] La session informatique d'utilisateur s'exécute sur l'ordinateur hôte 1 et exploite les capacités de traitement d'une unité de traitement graphique qui prépare les données d'affichage de la session. Ces données d'affichage sont fournies répétitivement par l'unité de traitement graphique, dans une mémoire tampon de cette unité ou associée à cette unité. Les données d'affichage peuvent, par exemple, être préparées et fournies toutes les 4 à 35 millisccondes par l'unité de traitement graphique. [0034] Chaque machine virtuelle 3 émule un ordinateur personnel virtuel hautes per- formances qui est associé et commandé par un client distant 4, 4'. Chaque machine virtuelle 3 constitue donc, ou est l'équivalent, d'une session d'utilisateur, et un grand nombre de ces sessions d'utilisateur peuvent être exécutées sur les serveurs 2 de l'ordinateur hôte 1. L'architecture informatique peut comprendre une pluralité d'ordinateurs hôtes 1, reliés entre eux et qui peuvent se trouver dans des centres de données informatiques géographiquement séparés. [0035] Chaque session d'utilisateur est associée à un client (listant 4, 4'. Pour afficher les images de la session d'utilisateur sur le terminal du client (listant 4, 4' qui lui est associé, l'ordinateur hôte 1 fournit le client distant 4, 4' en informations (l'affichage (y compris en sons) et en informations de commande pour les dispositifs d'entrée/sortie installés sur le site (listant. [0036] À l'inverse, les clients distants 4, 4' fournit l'ordinateur hôte 1 en informations de commande en provenance des dispositifs d'entrée/sortie qui se trouvent sur le site distant (clavier, souris), et éventuellement (l'autres formes de données telles que des informations d'affichage et sonores fournies par un dispositif USB ou intégrées dans une caméra et un microphone du client distant 4, 4', ou des périphériques de réseau, au niveau du client distant 4, 4', tels des imprimantes... [0037] On désignera dans la présente description par «informations de session » toutes les informations échangées entre le client distant 4, 4' et l'ordinateur hôte 1. [0038] Du côté de l'ordinateur hôte 1, un programme de capture et de diffusion des in- formations de session s'exécute, en tache de fond, dans chaque session informatique. Le programme de capture et de diffusion met en oeuvre des opérations visant à 6 collecter les données d'affichage, de son et de commande préparées par la session informatique, d'encoder ces données pour limiter l'utilisation de la bande passante du réseau et de les transmettre au client distant 4, 4'. Le programme de capture et de diffusion reçoit et décode également les données de commande communiquées par le client distant 4, 4', les exploite ou les fournit à la session d'utilisateur pour qu'elles soient traitées et exploitées de manière conventionnelle. [0039] Les clients distants 4, 4', de leur côté, sont munis des ressources matérielles et/ou lo- gicielles appropriées pour décoder les informations communiquées par le programme de capture et de diffusion afin qu'elles soient exploitées du côté client. Ces ressources permettent également de préparer les données de commande générées par le client distant 4, 4' et de les transmettre à l'ordinateur hôte 1. Outre les données issues des dispositifs d'interface du client distant 4, 4' (clavier, souris,...), les données de commande peuvent comprendre des informations additionnelles, telles que l'information de débit de données reçue de l'ordinateur hôte 1, permettant de caractériser la qualité de la liaison informatique avec cet ordinateur. Système, procédé et dispositif selon l'invention [0040] La figure 2 illustre un premier mode de réalisation d'un système 100 selon l' invention. [0041] On va décrit le système 100 selon l'invention, en même temps que le procédé mis en oeuvre dans cc système. [0042] Lc système 100 comporte : un réseau local virtuel 30, deux sites SI et 52, distants entre eux et distants du réseau local virtuel 30, sur lesquels sont installés des clients distants, l'un des sites étant pourvu d'un adaptateur selon un premier mode de réalisation d'un adaptateur selon l'invention. [0043] Le réseau local virtuel 30 comporte une pluralité de machines virtuelles 3, 3' et 3". [0044] Les machines peuvent appartenir à un même serveur, comme les machines virtuelles 3 et 3' qui appartiennent à un serveur 2 ou à un autre serveur comme la machine 3" qui appartient à un serveur 2'. [0045] Comme cela est illustré, les machines virtuelles appartiennent au réseau local virtuel 30. [0046] Le réseau local virtuel comporte au minimum un switch virtuel de niveau 2, ici un routeur virtuel 6 de niveau 3. [0047] Comme cela est schématisé, chacune des machines virtuelles 3, 3' et 3" est fonction- nellement raccordée à une interface virtuelle du routeur virtuel 6. [0048] Le site 51 comporte un premier réseau local, par exemple de type réseau local d'entreprise, comportant un routeur RI, et deux terminaux clients distants 4 et 4" tels 7 que précédemment décrits. [0049] Comme cela a été décrit, les terminaux clients distants 4 et 4" sont associés aux machines virtuelles 3 et 3", chacune des machines virtuelles émulant un ordinateur personnel virtuel hautes performances qui est associé et commandé par le client distant 4. 4". [0050] À cet effet, une connexion est établie entre le terminal client distant et sa machine virtuelle associée. [0051] Plus précisément, une connexion est établie entre le terminal client distant 4 et la machine virtuelle 3 au moyen du réseau local du site Sl, du routeur R1, du réseau Internet, d'une interface d'entrée disponible (non représentée) au niveau du routeur 6, et de l'interface du routcur 6 raccordée à la machine 3. [0052] Le site S2 comporte un deuxième réseau local, par exemple de type réseau local d'entreprise, comportant un routcur R2, et un terminal client distant 4 tel que précédem ment décrit. [0053] Comme cela a été décrit, le terminal client distant 4 est associé à la machine virtuelle 3, la machine virtuelle 3 émulant un ordinateur personnel virtuel hautes performances qui est associé et commandé par le client distant 4. [0054] À cet effet, une connexion est établie entre le terminal client distant et sa machine virtuelle associée. [0055] Plus précisément, une connexion est établie entre le terminal client distant 4' et la machine virtuelle 3' au moyen du réseau local du site S2, du routeur R2, du réseau Internet, d'une interface d'entrée disponible (non représentée) au niveau du routeur 6, et de l'interface du routeur 6 raccordée à la machine 3'. [0056] Comme les machines virtuelles 3, 3' et 3" sont dans le même réseau local 30, les uti- lisateurs des machines virtuelles 3, 3' et 3", bien que situés sur deux sites différents, travaillent sur le même réseau local virtuel 30. [0057] Toutefois, il se pose la question de l'usage de la ressource 5, de type imprimante, scanner, photocopieur, stockage réseau, ou encore télévision disponible sur le site S2. [0058] Comme l'utilisateur du terminal client 4' travaille sur sa machine virtuelle 3' du réseau local virtuel 30, il ne peut pas utiliser la ressource périphérique 5, qui n'appartient au plan d'adressage dudit réseau local virtuel 30. [0059] Pour résoudre ce problème, le site S2 comporte l'adaptateur 200. [0060] Fonctionnellement, l'adaptateur 200 est disposé entre la ressource périphérique 5 et le routeur R2. [0061] Plus précisément, en référence à la figure 3, l'adaptateur 200 comporte : une première interface 202, de type RJ45, agencée pour être fonctionnellement raccordée au périphérique 5, par exemple au moyen d'un premier câble Ethernet, 8 des moyens de traitement de données 204, une deuxième interface 206, de type RJ45. [0062] Les moyens de traitement de données 204 sont configurés pour : établir un tunnel T (figure 2) de type Vpn entre la deuxième interface 206 et une interface virtuelle Iv du routcur virtuel 6 via le réseau Internet à travers le réseau local du site S2, chiffrer (par exemple selon l'algorithme AES) les trames reçues par la première interface 202, encapsuler (dans des trames de type UDP) les trames chiffrées, injecter les trames encapsulées dans le tunnel T, les trames encapsulées. [0063] Les moyens de traitement 204 sont en outre configurés pour : décapsuler les trames provenant, via l'interface 206, du tunnel T, déchiffrer les trames décapsulées, injecter les trames déchiffrées au niveau de la première interface 202. [0064] De la sorte, un pont réseau sécurisé est créé entre la ressource périphérique 5 et le réseau local virtuel 30. Aucune modification logicielle n'est à apporter, ni du côté de l'une des machines virtuelles ni du côté de l'un des terminaux. [0065] Du point de vue matériel, l'adaptateur 200 est formé d'un système sur une puce 210, en anglais SoC pour System on Chip, comportant un circuit intégré 212 sur lequel sont montés : les première et deuxième interfaces réseaux 202 et 204, un processeur 208 sous forme de CPU, pour l'anglais central processing unit, une mémoire 214 dans laquelle sont enregistrées les instructions d'un programme pour mettre en oeuvre le procédé selon l'invention. une interface PCI 216, un circuit intégré reprogrammable 218 en silicium, sous forme de FPGA, insérable dans l'interface PCI 216. [0066] En référence à la figure 4, il est décrit un deuxième mode de réalisation d'un système 100' selon l'invention. [0067] Le système 100' n'est décrit que pour ses différences avec le premier mode de réa- lisation d'un système 100 selon l'invention. [0068] L'adaptateur 200 est modifié pour être remplacé par un un adaptateur 200' selon un deuxième mode de réalisation d'un adaptateur selon l'invention. [0069] À la différence de l'adaptateur 200, l'adaptateur 200' n'est plus raccordé au routeur R2. À la place, il est en communication avec une antenne A, selon un protocole de type 3G, 4G ou encore 5G ou l'une de ses évolutions. [0070] Le tunnel n'est alors plus établi au travers du deuxième réseau local du site S2 mais via l'antenne A. 9 [0071] A cet effet, il suffit de modifier l'interface réseau 206 (figure 3) du dispositif 200 qui est de type Ethernet, pour la remplacer par une interface réseau de type radio. [0072] Bien entendu l'invention n'est pas limitée au mode de mise en oeuvre décrit et on peut y apporter des variantes de réalisation sans sortir du cadre de l'invention tel que défini par les revendications. 10