FR3023098A1 - METHOD AND SYSTEM FOR PROCESSING A REQUEST FOR RESOLUTION OF A NAME OF A SERVER, ISSUED BY A CLIENT APPLICATION ON A COMMUNICATION NETWORK. - Google Patents

METHOD AND SYSTEM FOR PROCESSING A REQUEST FOR RESOLUTION OF A NAME OF A SERVER, ISSUED BY A CLIENT APPLICATION ON A COMMUNICATION NETWORK. Download PDF

Info

Publication number
FR3023098A1
FR3023098A1 FR1456234A FR1456234A FR3023098A1 FR 3023098 A1 FR3023098 A1 FR 3023098A1 FR 1456234 A FR1456234 A FR 1456234A FR 1456234 A FR1456234 A FR 1456234A FR 3023098 A1 FR3023098 A1 FR 3023098A1
Authority
FR
France
Prior art keywords
dns
server
module
network
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1456234A
Other languages
French (fr)
Inventor
Narjess Ayari
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR1456234A priority Critical patent/FR3023098A1/en
Publication of FR3023098A1 publication Critical patent/FR3023098A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/686Types of network addresses using dual-stack hosts, e.g. in Internet protocol version 4 [IPv4]/Internet protocol version 6 [IPv6] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Procédé de traitement d'une demande de résolution d'un nom d'un serveur (18), émise par une application cliente (11) installée sur un terminal client (1), sur un réseau de communication. Ce procédé comprend des étapes de : a) - obtention par une première entité réseau (11,12) d'un ensemble de messages DNS suite à la demande de résolution ; b) - obtention par la première entité réseau (11,12) d'informations de connectivité réseau relatives au moins au terminal client ou au serveur (18), et génération d'un code, dit de marquage, représentatif des informations de connectivité réseau ; c) - traitement par la première entité réseau (11,12) de l'ensemble de messages DNS en fonction du code de marquage, et envoi en conséquence d'un ensemble de messages DNS, dits marqués, à une seconde entité réseau (14) ; d) - traitement par la seconde entité réseau (14) de l'ensemble de messages DNS marqués, afin de délivrer à l'application cliente (11) au moins une réponse DNS adaptée en fonction des informations de connectivité réseau.Method for processing a request for resolving a name of a server (18), sent by a client application (11) installed on a client terminal (1), over a communication network. This method comprises the steps of: a) obtaining by a first network entity (11, 12) a set of DNS messages following the request for resolution; b) - obtaining by the first network entity (11,12) network connectivity information relating to at least the client terminal or the server (18), and generating a code, said marking, representative of the network connectivity information ; c) - processing by the first network entity (11,12) of the set of DNS messages according to the marking code, and sending accordingly a set of DNS messages, said marked, to a second network entity (14 ); d) - processing by the second network entity (14) of the set of marked DNS messages, in order to deliver to the client application (11) at least one DNS response adapted according to the network connectivity information.

Description

Domaine technique L'invention a trait de manière générale au domaine des communications de type client-serveur dans un réseau de communication basé sur le protocole IP (Internet Protocol). Elle concerne en particulier un procédé et un système de traitement d'une demande de résolution d'un nom d'un serveur, émise par une application cliente installée sur un terminal client, sur un réseau de communication. Etat de la technique Actuellement dans un réseau basé sur la pile de protocoles IP (Internet Protocol), désignée couramment par " réseau IP", tel que le réseau mondial Internet, chaque équipement connecté au réseau dispose d'au moins une adresse numérique qui permet de l'identifier de manière unique sur le réseau. Ces adresses sont actuellement de deux types "IPv4" et "IPv6". IPv4 correspond à la version 4 du protocole IP tandis qu'IPv6 correspond à la version 6 du protocole IP. Une adresse réseau du type IPv4 est codée sur quatre octets (32 bits). La croissance du nombre d'utilisateurs et de serveurs sur Internet s'accompagnant d'un épuisement des adresses IPv4 disponibles, cela conduit au développement de l'IPv6 permettant le codage d'une adresse IP sur 16 octets (128 bits). Par ailleurs, afin de faciliter aux utilisateurs la recherche de ressources informatiques sur l'Internet sans avoir à connaître l'adresse IP de ces ressources (serveur notamment), un système de nommage de ressources connu sous le nom de DNS (Domain Name System) a été créé. Le système DNS est décrit notamment dans les spécifications RFC 1034 et 1035 de l'IETF. Il repose sur trois composants essentiels : un espace de noms de domaines, un système de serveurs distribués, appelés serveurs de noms, et des programmes clients appelés "résolveurs" (resolvers en anglais). L'espace de noms de domaine (Domaine Name Space) possède une structure arborescente dans laquelle sont définis des domaines de niveau supérieur (appelés TLD, pour Top Level Domain), rattachés à un noeud racine (root node) représenté par un point. On appelle "nom de domaine" chaque noeud de l'arbre, chaque noeud possédant une étiquette (label) d'une longueur maximale de 63 caractères. L'ensemble des noms de domaine constitue ainsi un arbre inversé où chaque noeud est séparé du suivant par un point ("."). Le nom complet correspondant à l'ensemble des étiquettes des noeuds d'une arborescence, séparées par des points, et terminé par un point final, est appelé adresse FQDN (Fully Qualified Domain Name), c'est-à-dire "Nom de Domaine Totalement Qualifié". Les adresses IPv6 étant plus complexes que les adresses IPv4, le système DNS a été enrichi par des extensions "DNS Extensions to support IP version 6" qui sont décrites dans les documents RFC 1886 et 3596. Ces documents RFC décrivent le support de l'enregistrement de type AAAA (correspondant à une adresse IPv6) ainsi que les modifications nécessaires à apporter aux enregistrements DNS pour le support de l'IPv6 (tels que les enregistrements MX, etc.).TECHNICAL FIELD The invention relates generally to the field of client-server type communications in an Internet Protocol (IP) -based communication network. It relates in particular to a method and a system for processing a request for resolution of a name of a server, sent by a client application installed on a client terminal, on a communication network. State of the art Currently in a network based on the Internet protocol (IP) protocol stack, commonly referred to as "IP network", such as the global Internet network, each equipment connected to the network has at least one digital address that allows to uniquely identify it on the network. These addresses are currently of two types "IPv4" and "IPv6". IPv4 corresponds to version 4 of the IP protocol while IPv6 corresponds to version 6 of the IP protocol. A network address of the type IPv4 is coded on four bytes (32 bits). With the growth of the number of users and servers on the Internet with the exhaustion of available IPv4 addresses, this leads to the development of IPv6 allowing the coding of a 16-byte (128-bit) IP address. Moreover, in order to facilitate users searching for computing resources on the Internet without having to know the IP address of these resources (server in particular), a system of naming resources known as DNS (Domain Name System) has been created. The DNS system is described in particular in the IETF RFC 1034 and 1035 specifications. It relies on three essential components: a domain namespace, a distributed server system, called name servers, and client programs called "resolvers" (resolvers in English). The domain name space (Domain Name Space) has a tree structure in which higher-level domains (called TLDs, for Top Level Domain) are defined, attached to a root node represented by a period. Each node of the tree is called a "domain name", each node having a label with a maximum length of 63 characters. The set of domain names thus constitutes an inverted tree where each node is separated from the next by a dot ("."). The full name corresponding to the set of labels of the nodes of a tree, separated by points, and terminated by an end point, is called FQDN (Fully Qualified Domain Name), that is to say "Name of Fully Qualified Domain ". Because IPv6 addresses are more complex than IPv4 addresses, the DNS system has been augmented by "DNS Extensions to IP Support Version 6" extensions that are described in RFC 1886 and 3596. These RFC documents describe the support for the registration. AAAA type (corresponding to an IPv6 address) as well as necessary changes to DNS records for IPv6 support (such as MX records, etc.).

Par conséquent, dans le contexte de la transition d'IPv4 vers IPv6 qui vise au remplacement progressif du protocole IPv4 par IPv6 sur Internet, l'interconnexion de réseaux IP de type IPv4 et IPv6, amène des équipements ou noeuds réseaux identifiés par des adresses IP de type IPv4 ou IPv6, ou par des adresses des deux types, à devoir communiquer entre eux. Deux approches sont alors possibles pour permettre une communication entre un équipement réseau ne disposant que d'adresses IPv6 et un équipement réseau ne disposant que d'adresses IPv4 : la "double pile" (dual-stack) et la "traduction de protocoles". Concernant la "double-pile", un équipement ou noeud IP est dit "dual-stack" (DS) s'il embarque les deux piles protocolaires IPv4 et IPv6 et s'il est capable d'émettre, de recevoir et de traiter indifféremment des paquets IPv4 et IPv6.Therefore, in the context of the transition from IPv4 to IPv6 that aims at the progressive replacement of the IPv4 protocol by IPv6 over the Internet, the IPv4 and IPv6 IP network interconnection, brings equipment or network nodes identified by IP addresses. IPv4 or IPv6 type, or by addresses of both types, to communicate with each other. Two approaches are then possible to allow communication between a network device having only IPv6 addresses and a network device having only IPv4 addresses: the "dual stack" and the "protocol translation". Regarding the "double-stack", a device or IP node is said to "dual-stack" (DS) if it embeds the two IPv4 and IPv6 protocol stacks and if it is capable of transmitting, receiving and processing indifferently IPv4 and IPv6 packets.

Concernant la traduction de protocoles, le mécanisme NAT64 (Network Address Translation 64), décrit par les spécifications RFC (Request For Comments) 6146 et 6052 publiés par l'IETF (Internet Engineering Task Force), permet à un équipement client IPv6 de joindre un équipement serveur IPv4. La traduction de protocoles par NAT64 (Network Address Translation 64) s'appuie sur l'utilisation du système DNS ou bien de son extension DNS64 décrite dans le document RFC 6147. Grâce au système de nommage DNS, un équipement serveur IPv4 peut être représenté par une adresse IPv6, même si le service fourni par cet équipement n'est pas compatible IPv6. L'adresse IPv6 affectée à l'équipement serveur IPv4 a pour rôle d'acheminer le trafic IPv6 d'un équipement client IPv6 vers une passerelle de traduction de protocoles NAT64. Cette dernière se charge de la traduction du trafic IPv6 de l'équipement client en trafic IPv4 compréhensible par l'équipement serveur IPv4. L'adresse IPv6 qui sert à identifier l'équipement serveur IPv4 dans le système de nommage peut être gérée statiquement par le système DNS, ou bien elle est créée ou synthétisée dynamiquement par le système DNS64.For protocol translation, the Network Address Translation 64 (NAT64) mechanism, described in the Request for Comments (RFC) 6146 and 6052 published by the Internet Engineering Task Force (IETF), allows an IPv6 client device to attach a IPv4 server equipment. The translation of protocols by NAT64 (Network Address Translation 64) is based on the use of the DNS system or its DNS64 extension described in RFC 6147. With the DNS naming system, an IPv4 server device can be represented by an IPv6 address, even if the service provided by this device is not IPv6 compatible. The IPv6 address assigned to the IPv4 server equipment serves to route IPv6 traffic from an IPv6 client device to a NAT64 protocol translation gateway. The latter is responsible for translating the IPv6 traffic of the client equipment into IPv4 traffic understandable by the IPv4 server equipment. The IPv6 address used to identify IPv4 server equipment in the naming system can be managed statically by the DNS system, or dynamically created or synthesized by the DNS64 system.

La traduction de protocoles est très utile aux fournisseurs de contenus ainsi qu'aux fournisseurs de solutions d'informatique en nuage (cloud computing), car elle permet à un service IPv4 d'être joignable par des équipements clients IPv6, même si l'infrastructure de service elle-même n'est pas compatible IPv6. Cependant, cette approche présente des limites. En effet, étant donné que les systèmes d'exploitation sont configurés généralement pour privilégier l'IPv6, un équipement client "double pile" préfèrera l'adresse IPv6 d'un équipement serveur IPv4, si ce dernier est représenté dans le système de nommage par les deux types d'adresses (IPv4 et IPv6). Il en résultera qu'un client "double pile" génèrera un trafic essentiellement IPv6 qui sera acheminé vers une passerelle de traduction protocolaire, alors même qu'un chemin IPv4 natif, c'est-à-dire ne nécessitant pas de traduction protocolaire, existe. Cela résulte, d'une part, en une possible dégradation de service pour le client "double pile". En effet, la traduction protocolaire offre un service "au mieux" (best effort) qui s'accompagne d'une perte d'informations, liées en particulier à la qualité de service (QoS). D'autre part, cela implique une charge de trafic supplémentaire sur la passerelle de traduction protocolaire, ce qui accroit les coûts et investissements pour le fournisseur de service ou l'opérateur. Ainsi, dans le contexte actuel de transition IPv4 et IPv6, la résolution d'un nom de domaine demandée par une application cliente pour atteindre un serveur distant peut aboutir à l'obtention par celle-ci de plusieurs adresses, IPv4 et IPv6, permettant de joindre le serveur distant. Il se pose alors le problème de la sélection par l'application cliente de l'adresse IP parmi des adresses IPv4 et IPv6 retournées par un serveur de noms de domaine, afin de rendre possible ou d'optimiser la communication entre l'application cliente et le serveur distant, sur le plan de qualité de service (QoS) et de la qualité de l'expérience utilisateur (QoE ou qualité perçue). Exposé de l'invention La présente invention vise à améliorer notamment la situation exposée ci-dessus en proposant selon un premier aspect un procédé de traitement d'une demande de résolution d'un nom d'un serveur, émise par une application cliente installée sur un terminal client, sur un réseau de communication. Conformément à l'invention, ce procédé comprend des étapes de : a) - obtention par une première entité réseau d'un ensemble de messages DNS suite à la demande de résolution ; b) - obtention par la première entité réseau d'informations de connectivité réseau relatives au moins au terminal client ou au serveur, et génération d'un code, dit de marquage, représentatif des informations de connectivité réseau précitées ; c) - traitement par la première entité réseau de l'ensemble de messages DNS en fonction du code de marquage, et envoi en conséquence d'un ensemble de messages DNS, dits marqués, à une seconde entité réseau ; d) - traitement par la seconde entité réseau dudit ensemble de messages DNS marqués, afin de délivrer à l'application cliente au moins une réponse DNS adaptée en fonction desdites informations de connectivité réseau. L'obtention par la première entité réseau d'informations de connectivité réseau relatives au moins au terminal client ou au serveur distant auquel le terminal client tente d'accéder, permet d'agir, via le code de marquage susmentionné, soit sur les requêtes DNS (générées par exemple par un module résolveur du terminal après réception de la demande de résolution), soit directement sur les réponses DNS générées par le traitement des requêtes DNS précitées (par exemple par un serveur DNS autoritaire), de manière à ce que les réponses DNS effectivement reçues par l'application cliente du terminal soient adaptées, selon l'implémentation, aux contraintes de connectivité IP du terminal client, au trafic IP échangé entre l'application cliente et le serveur, ainsi qu'aux contraintes de connectivité du serveur distant.Protocol translation is very useful for content providers as well as providers of cloud computing solutions because it allows an IPv4 service to be reachable by IPv6 client devices, even if the infrastructure service itself is not IPv6 compatible. However, this approach has limitations. Indeed, since operating systems are generally configured to favor IPv6, a "dual stack" client device will prefer the IPv6 address of an IPv4 server device, if it is represented in the IPv4 naming system. both types of addresses (IPv4 and IPv6). As a result, a "double stack" client will generate essentially IPv6 traffic which will be routed to a protocol translation gateway, even though a native IPv4 path, that is to say that does not require protocol translation, exists . This results, on the one hand, in a possible degradation of service for the customer "double stack". Indeed, the protocol translation offers a service "at best" (best effort) which is accompanied by a loss of information, related in particular to the quality of service (QoS). On the other hand, this implies an additional traffic load on the protocol translation gateway, which increases the costs and investments for the service provider or the operator. Thus, in the current context of IPv4 and IPv6 transition, the resolution of a domain name requested by a client application to reach a remote server may result in the latter obtaining several addresses, IPv4 and IPv6, making it possible to join the remote server. There arises the problem of the selection by the client application of the IP address among IPv4 and IPv6 addresses returned by a domain name server, in order to make possible or optimize the communication between the client application and the remote server, in terms of quality of service (QoS) and the quality of the user experience (QoE or perceived quality). DISCLOSURE OF THE INVENTION The present invention aims to improve in particular the situation described above by proposing, according to a first aspect, a method of processing a request for resolution of a name of a server, issued by a client application installed on a client terminal, on a communication network. According to the invention, this method comprises the steps of: a) obtaining by a first network entity of a set of DNS messages following the request for resolution; b) obtaining by the first network entity network connectivity information relating to at least the client terminal or the server, and generating a code, said marking, representative of the aforementioned network connectivity information; c) - processing by the first network entity of the set of DNS messages according to the marking code, and sending accordingly a set of DNS messages, said marked, to a second network entity; d) - processing by the second network entity of said set of marked DNS messages, in order to deliver to the client application at least one DNS response adapted according to said network connectivity information. The obtaining by the first network entity of network connectivity information relating to at least the client terminal or the remote server to which the client terminal is trying to access, makes it possible to act, via the aforementioned marking code, or on the DNS requests (generated for example by a resolver module of the terminal after reception of the request for resolution), or directly on the DNS responses generated by the processing of the aforementioned DNS requests (for example by an authoritative DNS server), so that the answers DNS actually received by the client application of the terminal are adapted, depending on the implementation, to the IP connectivity constraints of the client terminal, to the IP traffic exchanged between the client application and the server, and to the connectivity constraints of the remote server .

Selon un premier mode de réalisation de l'invention, à l'étape a) susmentionnée l'ensemble de messages DNS est un ensemble de requêtes DNS générées suite à la réception par un module de résolution DNS de la demande de résolution de nom ; et à l'étape b), les informations de connectivité réseau incluent au moins une information de type et de préférence d'usage d'interface IP active pour ledit terminal client.According to a first embodiment of the invention, in the above step a) the set of DNS messages is a set of DNS queries generated following the reception by a DNS resolution module of the name resolution request; and in step b), the network connectivity information includes at least one type and preference information of active IP interface usage for said client terminal.

Selon ce mode de réalisation, ce sont les requêtes DNS qui subissent un traitement spécifique pour provoquer l'obtention de réponses DNS adaptées notamment aux contraintes réseau du terminal client, qui sont définies par au moins une information de type et de préférence d'usage d'interface IP active pour le terminal client. Selon une première variante de réalisation du premier mode de réalisation, l'étape c) de traitement de l'ensemble de requêtes DNS inclut l'insertion du code de marquage dans chaque requête de l'ensemble de requêtes DNS, à l'intérieur d'un champ déterminé du corps de la requête, formant ainsi un ensemble de requêtes marquées. En pratique selon une caractéristique de réalisation, ce champ est un champ RDATA du corps de la requête conformément à l'extension EDNSO du protocole DNS.According to this embodiment, it is the DNS requests that undergo a specific processing to cause the obtaining of DNS responses adapted in particular to the network constraints of the client terminal, which are defined by at least one type of information and preference of use of the client. Active IP interface for the client terminal. According to a first embodiment of the first embodiment, step c) of processing the set of DNS queries includes the insertion of the marking code in each request of the set of DNS queries, within a given field of the body of the request, thus forming a set of marked requests. In practice according to an embodiment characteristic, this field is an RDATA field of the request body according to the DNS protocol EDNSO extension.

Dans cette variante de réalisation, l'étape de traitement d) comprend la lecture du code de marquage contenu dans chaque requête de l'ensemble de requêtes marquées, puis la recherche d'enregistrements DNS conformes aux informations de connectivité obtenues à partir du code de marquage. Si au moins un tel enregistrement est trouvé, au moins une réponse DNS est générée, cette réponse contenant l'enregistrement. Cette (au moins une) réponse DNS ensuite envoyée à destination de l'application cliente. Ainsi, grâce au marquage des requêtes DNS selon les contraintes de connectivité réseau du terminal client, les réponses DNS sont par exemple sélectionnées en fonction de leur adéquation avec les contraintes réseau du terminal client. Selon une deuxième variante de réalisation du premier mode de réalisation, l'étape c) de traitement inclut le filtrage de l'ensemble de requêtes DNS en fonction du code de marquage. Selon cette variante, aucune information n'est insérée dans le corps des requêtes DNS, les requêtes DNS subissent seulement un filtrage, par exemple celles correspondant à une interface IP associée à un degré de préférence d'usage faible sont supprimées avant envoi à la seconde entité réseau, afin d'obtenir des réponses DNS conformes aux préférences d'usage d'interface IP du terminal client. Selon diverses implémentations de ce premier mode de réalisation, la première entité réseau est située dans le terminal client ou dans un serveur DNS, local vis-à-vis de l'application cliente, et ladite seconde entité réseau est située dans un serveur DNS autoritaire pour le domaine associé au serveur. Selon un second mode de réalisation de l'invention, à l'étape a) l'ensemble de messages DNS est un ensemble de réponses DNS générées par la première entité réseau, suite à la réception d'un ensemble de requêtes DNS générées par un module de résolution DNS suite à la réception de la demande de résolution de nom ; et, à l'étape b), les informations de connectivité réseau sont caractéristiques d'un type d'adresse IP identifiant le serveur, contenue dans chaque réponse DNS de l'ensemble de réponses. Selon ce second mode de réalisation, l'étape c) de traitement, par la première entité réseau de chaque réponse DNS, comprend l'insertion du code de marquage à l'intérieur d'un champ déterminé du corps de la réponse, formant ainsi un ensemble de réponses marquées, puis l'envoi de l'ensemble de réponses DNS marquées à la seconde entité réseau. Dans ce second mode de réalisation, ce sont ainsi seulement les réponses DNS qui subissent un marquage selon l'invention de manière à contenir des informations de connectivité réseau relatives au serveur distant, et une fois ces réponses DNS transmises au terminal client, l'application cliente pourra avantageusement confronter ces informations de connectivité liées au serveur distant avec ses propres contraintes de connectivité, afin de choisir au moins une adresse IP contenue dans une réponse DNS, pour communiquer avec le serveur distant dans des conditions optimales en termes de qualité de service et de performances réseau.In this variant embodiment, the processing step d) comprises reading the marking code contained in each request of the set of marked requests, and then searching for DNS records conforming to the connectivity information obtained from the code of marking. If at least one such record is found, at least one DNS response is generated, this response containing the record. This (at least one) DNS response is then sent to the client application. Thus, by marking the DNS requests according to the network connectivity constraints of the client terminal, the DNS responses are for example selected according to their adequacy with the network constraints of the client terminal. According to a second variant embodiment of the first embodiment, the processing step c) includes filtering the set of DNS queries according to the marking code. According to this variant, no information is inserted in the body of the DNS queries, the DNS queries undergo only a filtering, for example those corresponding to an IP interface associated with a degree of low usage preference are deleted before sending to the second network entity, in order to obtain DNS responses conforming to the IP interface usage preferences of the client terminal. According to various implementations of this first embodiment, the first network entity is located in the client terminal or in a local DNS server vis-à-vis the client application, and said second network entity is located in an authoritative DNS server. for the domain associated with the server. According to a second embodiment of the invention, in step a) the set of DNS messages is a set of DNS responses generated by the first network entity, following the reception of a set of DNS queries generated by a DNS resolution module following the receipt of the name resolution request; and, in step b), the network connectivity information is characteristic of a type of IP address identifying the server contained in each DNS response of the response set. According to this second embodiment, step c) of processing, by the first network entity of each DNS response, comprises the insertion of the marking code within a given field of the body of the response, thus forming a set of marked responses, then sending the set of marked DNS responses to the second network entity. In this second embodiment, it is thus only the DNS responses that are tagged according to the invention so as to contain network connectivity information relating to the remote server, and once these DNS responses transmitted to the client terminal, the application client can advantageously confront this connectivity information related to the remote server with its own connectivity constraints, in order to choose at least one IP address contained in a DNS response, to communicate with the remote server under optimal conditions in terms of quality of service and network performance.

En pratique, dans ce mode de réalisation, le champ précité est un champ RDATA du corps de la réponse conformément à l'extension EDNSO du protocole DNS. Selon une caractéristique de réalisation de ce mode de réalisation, l'étape de traitement d) effectué par la seconde entité réseau comprend : - l'obtention d'informations indicatives de préférence de connectivité réseau pour le terminal client ; - la comparaison du code de marquage contenu dans chaque réponse de l'ensemble de réponses marquées avec les informations indicatives de préférence de connectivité réseau pour le terminal client, puis la sélection des réponses DNS satisfaisant aux informations indicatives de préférence de connectivité réseau pour le terminal client.In practice, in this embodiment, the aforementioned field is an RDATA field of the response body according to the DNS protocol EDNSO extension. According to an embodiment characteristic of this embodiment, the processing step d) performed by the second network entity comprises: obtaining information indicative of network connectivity preference for the client terminal; comparing the marking code contained in each response of the set of marked responses with the information indicative of network connectivity preference for the client terminal, then the selection of the DNS responses satisfying the information indicative of network connectivity preference for the terminal customer.

Selon diverses implémentations de ce second mode de réalisation, la première entité réseau est située dans un serveur DNS autoritaire pour le domaine associé au serveur, et la seconde entité réseau est située dans le terminal client, par exemple dans l'application cliente, ou dans un serveur DNS, local vis-à-vis de l'application cliente. Selon un deuxième aspect, l'invention concerne un système de traitement d'une demande de résolution d'un nom d'un serveur, émise par une application cliente installée sur un terminal client, sur un réseau de communication, ce système comprenant : - au moins une première entité réseau comportant : - un module d'obtention d'un ensemble de messages DNS suite à la demande de résolution ; - un module d'obtention d'informations de connectivité réseau relatives au moins audit terminal client ou au serveur, et de génération d'un code, dit de marquage, représentatif de ces informations de connectivité réseau ; et - un module de traitement de l'ensemble de messages DNS en fonction du code de marquage, afin d'obtenir un ensemble de messages DNS, dit marqués ; - au moins une seconde entité réseau comportant : - un module de réception dudit ensemble de messages DNS marqués, en provenance de cette au moins une première entité réseau ; et - un module de traitement de l'ensemble de messages DNS marqués, afin de délivrer à l'application cliente au moins une réponse DNS adaptée en fonction des informations de connectivité réseau. Selon un troisième aspect, l'invention concerne une première entité réseau telle que définie ci-dessus, mise en oeuvre dans un système de traitement d'une demande de résolution d'un nom d'un serveur, selon l'invention. Selon un quatrième aspect, l'invention concerne une seconde entité réseau telle que définie ci-dessus, mise en oeuvre dans un système de traitement d'une demande de résolution d'un nom d'un serveur, selon l'invention.According to various implementations of this second embodiment, the first network entity is located in an authoritative DNS server for the domain associated with the server, and the second network entity is located in the client terminal, for example in the client application, or in the client terminal. a DNS server, local vis-à-vis the client application. According to a second aspect, the invention relates to a system for processing a request for resolution of a name of a server, issued by a client application installed on a client terminal, on a communication network, this system comprising: at least one first network entity comprising: a module for obtaining a set of DNS messages following the request for resolution; a module for obtaining network connectivity information relating at least to said client terminal or to the server, and for generating a code, referred to as a marking code, representative of this network connectivity information; and a module for processing the set of DNS messages according to the marking code, in order to obtain a set of DNS messages, said to be marked; at least one second network entity comprising: a module for receiving said set of marked DNS messages from this at least one first network entity; and a processing module of the set of marked DNS messages, in order to deliver to the client application at least one DNS response adapted according to the network connectivity information. According to a third aspect, the invention relates to a first network entity as defined above, implemented in a system for processing a request for resolving a name of a server, according to the invention. According to a fourth aspect, the invention relates to a second network entity as defined above, implemented in a system for processing a request for resolving a name of a server, according to the invention.

En pratique, les moyens constitutifs de l'invention qui sont compris dans les différentes entités (appelés également noeuds) réseau susmentionnées, et en particulier les modules mis en oeuvre dans une "première" ou une seconde "entité" selon l'invention, telles que décrits succinctement plus haut, sont essentiellement implémentés sous forme logicielle c'est-à-dire un ou plusieurs programmes informatiques stockés dans une ou plusieurs mémoires, de type RAM (Random Access Memory), ROM (Read Only Memory) ou de type magnétique (disque dur par exemple), et exécutés par un processeur incorporé dans l'entité réseau considérée. Par conséquent, selon un cinquième aspect, la présente invention vise aussi un programme d'ordinateur mis en oeuvre par une entité réseau sur un réseau de communication, ce programme comprenant des instructions de code pour la mise en oeuvre des étapes a), b), c) et/ou d) d'un procédé de traitement d'une demande de résolution d'un nom d'un serveur, tel que défini plus haut, lorsque ce programme est exécuté par un processeur équipant l'entité réseau considérée. Enfin, l'invention vise aussi un support d'enregistrement d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur selon l'invention. Un tel support d'enregistrement peut être constitué par n'importe quelle entité ou dispositif capable de stocker un tel programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement amovible tel qu'une clé USB ou un moyen d'enregistrement magnétique, tel qu'un disque dur. D'autre part, un module logiciel selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Les avantages procurés par l'utilisation d'un système de traitement d'une demande de résolution d'un nom d'un serveur, d'une première ou d'une seconde entité réseau module client, ainsi que d'un programme d'ordinateur, selon l'invention, tels que brièvement exposés ci-dessus, sont identiques ou contribuent à ceux mentionnés plus haut en relation avec le procédé de traitement de traitement d'une demande de résolution d'un nom d'un serveur, selon l'invention, et ne seront par conséquent pas rappelés ici.In practice, the means constituting the invention which are included in the various entities (also called nodes) network mentioned above, and in particular the modules implemented in a "first" or a second "entity" according to the invention, such that described briefly above, are essentially implemented in software form that is to say one or more computer programs stored in one or more memories, type RAM (Random Access Memory), ROM (Read Only Memory) or magnetic type (hard disk for example), and executed by a processor embedded in the considered network entity. Therefore, according to a fifth aspect, the present invention is also directed to a computer program implemented by a network entity on a communication network, this program comprising code instructions for the implementation of steps a), b) , c) and / or d) a method of processing a request for resolution of a name of a server, as defined above, when this program is executed by a processor equipping the considered network entity. Finally, the invention also provides a computer-readable information recording medium, comprising instructions of a computer program according to the invention. Such a recording medium may be constituted by any entity or device capable of storing such a program. For example, the medium may include storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a removable recording means such as a USB key or a recording medium magnetic, such as a hard disk. On the other hand, a software module according to the invention can in particular be downloaded to an Internet type network. The benefits of using a system for processing a request to resolve a name of a server, a first or a second client module network entity, as well as a program for computer, according to the invention, as briefly discussed above, are identical or contribute to those mentioned above in connection with the processing method of processing a request for resolution of a name of a server, according to the invention, and therefore will not be recalled here.

Brève description des figures D'autres caractéristiques et avantages de la présente invention ressortiront de la description détaillée qui suit, laquelle fait référence aux dessins annexés dans lesquels : - la figure 1 représente la topographie d'un environnement réseau dans lequel la présente invention est mise en oeuvre; - la figure 2 représente un environnement réseau selon une première variante d'un premier mode de réalisation de l'invention ; - la figure 3 représente un environnement réseau selon une seconde variante du premier mode de réalisation de l'invention ; - la figure 4 est un organigramme illustrant un procédé de traitement d'une requête d'accès à un serveur distant selon le premier mode de réalisation de l'invention ; - les figures 5 et 6 représentent respectivement le format d'une requête DNS standard et le format d'une requête DNS marquée, conformément au protocole DNS, applicables au premier mode de réalisation de l'invention; - la figure 7 représente un environnement réseau selon une première variante d'un deuxième mode de réalisation de l'invention ; - la figure 8 représente un environnement réseau selon une seconde variante du deuxième mode de réalisation de l'invention ; - la figure 9 est un organigramme illustrant un procédé de traitement d'une requête d'accès à un serveur distant selon le deuxième mode de réalisation ; et - la figure 10 représente le format d'une réponse DNS, applicable au deuxième mode de réalisation de l'invention. Description détaillée de l'invention On donne ci-après des explications supplémentaires concernant le système DNS décrit notamment dans les spécifications RFC 1034 et 1035 de l'IETF. Comme mentionné précédemment, il repose sur trois composants essentiels : un espace de noms de domaines, un système de serveurs distribués, appelés serveurs de noms, et des programmes clients appelés "résolveurs" (resolvers en anglais).BRIEF DESCRIPTION OF THE FIGURES Other features and advantages of the present invention will be apparent from the following detailed description, which refers to the accompanying drawings, in which: FIG. 1 represents the topography of a network environment in which the present invention is implemented; FIG. 2 represents a network environment according to a first variant of a first embodiment of the invention; FIG. 3 represents a network environment according to a second variant of the first embodiment of the invention; FIG. 4 is a flowchart illustrating a method of processing an access request to a remote server according to the first embodiment of the invention; FIGS. 5 and 6 respectively represent the format of a standard DNS query and the format of a DNS query marked according to the DNS protocol, applicable to the first embodiment of the invention; FIG. 7 represents a network environment according to a first variant of a second embodiment of the invention; FIG. 8 represents a network environment according to a second variant of the second embodiment of the invention; FIG. 9 is a flowchart illustrating a method of processing an access request to a remote server according to the second embodiment; and FIG. 10 represents the format of a DNS response, applicable to the second embodiment of the invention. DETAILED DESCRIPTION OF THE INVENTION The following is an explanation of the DNS system described in particular in the IETF RFC 1034 and 1035 specifications. As mentioned before, it relies on three essential components: a domain namespace, a distributed server system, called name servers, and client programs called "resolvers" (resolvers in English).

L'espace de noms de domaine (Domaine Name Space) possède une structure arborescente dans laquelle sont définis des domaines de niveau supérieur (appelés TLD, pour Top Level Domain), rattachés à un noeud racine (root node) représenté par un point. On appelle "nom de domaine" chaque noeud de l'arbre, chaque noeud possédant une étiquette (label) d'une longueur maximale de 63 caractères. L'ensemble des noms de domaine constitue ainsi un arbre inversé où chaque noeud est séparé du suivant par un point ("."). Le nom complet correspondant à l'ensemble des étiquettes des noeuds d'une arborescence, séparées par des points, et terminé par un point final, est appelé adresse FQDN (Fully Qualified Domain Name), c'est-à-dire "Nom de Domaine Totalement Qualifié".The domain name space (Domain Name Space) has a tree structure in which higher-level domains (called TLDs, for Top Level Domain) are defined, attached to a root node represented by a period. Each node of the tree is called a "domain name", each node having a label with a maximum length of 63 characters. The set of domain names thus constitutes an inverted tree where each node is separated from the next by a dot ("."). The full name corresponding to the set of labels of the nodes of a tree, separated by points, and terminated by an end point, is called FQDN (Fully Qualified Domain Name), that is to say "Name of Fully Qualified Domain ".

La profondeur maximale de l'arborescence est de 127 niveaux et la longueur maximale d'un nom FQDN est de 255 caractères. Ainsi un nom FQDN permet de repérer de façon unique une machine sur l'Internet, et permet donc d'identifier un service fourni par un serveur sur le réseau. Par exemple, l'adresse "www.orange.fr" représente un nom FQDN. Les serveurs de noms (Name Servers) sont des machines permettant d'établir la correspondance entre un nom de domaine et une ou plusieurs adresses IP identifiant des machines ou équipements d'un réseau. Chaque domaine possède un serveur de noms appelé "serveur de noms primaire" (primary domain name server), et généralement un serveur de noms secondaire (secondary domaine name server), permettant de prendre le relais du serveur de noms primaire en cas d'indisponibilité de ce dernier. Chaque serveur de noms est déclaré dans un serveur de noms de domaine de niveau immédiatement supérieur, ce qui permet implicitement une délégation d'autorité sur les domaines. Le système DNS est une architecture distribuée, où chaque entité est responsable de la gestion de son nom de domaine. Un serveur qui dispose de toutes les informations concernant un domaine est désigné par serveur ayant autorité ou autoritaire (authoritative server) pour le domaine considéré. Le serveur de noms qui est autoritaire pour le domaine associé au noeud sous la racine (par exemple le noeud ".fr" dans l'adresse "www.orange.fr") est dit serveur de domaine de niveau supérieur ou "serveur TLD" ( Top Level Domain server). Enfin un serveur ayant autorité sur le domaine au dessus de domaine de plus haut niveau est appelé "serveur racine" (root server). Ainsi, un serveur de noms définit une zone, c'est-à-dire un ensemble de domaines sur lequel le serveur a autorité, il est alors dit "autoritaire" (authoritative) pour cette zone. Dans le système DNS, le mécanisme permettant d'obtenir une adresse IP (par exemple: 193.43.55.67) d'un équipement réseau (par exemple un serveur de contenus multimédias) considéré, à partir d'un nom de domaine attribué à cet équipement (par exemple 'srv.mycompany.com') est désigné par "résolution de noms de domaine", le processus contraire (obtenir un nom de domaine à partir d'une adresse IP) étant désigné par "résolution inverse". Afin de pouvoir permettre de résoudre un nom de domaine, chaque machine cliente telle qu'un terminal d'utilisateur doit être équipée d'une application appelée résolveur (resolver) généralement intégrée dans le système d'exploitation de la machine. Lorsqu'une application cliente telle qu'un navigateur internet souhaite se connecter à un hôte connu par son nom de domaine (par exemple "www.orange.fr"), celle-ci va interroger un serveur de noms défini dans sa configuration réseau. Chaque machine connectée au réseau possède en effet dans sa configuration les adresses IP d'au moins un serveur de noms de son fournisseur d'accès. Ce serveur de noms est appelé usuellement "serveur de noms local". Ainsi, dans l'exemple de l'adresse "www.orange.fr" l'application cliente (navigateur internet par exemple) envoie une requête au serveur de noms local. Si celui-ci possède l'enregistrement dans son cache, il l'envoie à l'application cliente, dans le cas contraire il peut interroger un serveur TLD correspondant au domaine ".fr". Le serveur de noms TLD renvoie alors une liste d'adresses IP des serveurs de noms faisant autorité sur le domaine ".fr" afin de déterminer ensuite le serveur de nom faisant autorité sur le domaine ".orange". Le serveur de nom local interroge alors ce dernier afin d'obtenir l'adresse IP du serveur dont le FQDN est "www.orange.fr". Le mécanisme de résolution d'adresses tel qu'expliqué ci-dessus, repose sur un protocole de communication, le protocole DNS, comprenant la définition de messages DNS de différents types (requête, réponse en particulier) et d'informations (Resource Records - RR) associées à chaque nom de domaine, et enregistrées selon un format spécifique enregistrements DNS (ou Resource Records - RR) dans la base de données distribuée formée par l'ensemble des serveurs de noms de domaine. Le format des enregistrements DNS (RR) et des messages DNS est exposé en détail dans le document RFC 1035 de l'IETF, en particulier aux sections 3.2 et 4. La figure 1 représente un environnement réseau dans lequel la présente invention peut être mise en oeuvre. Dans cet environnement, une application cliente 11, installée sur un terminal d'utilisateur 1 doit établir une communication avec un serveur distant 18. Pour communiquer avec le serveur 18, l'application cliente 11 utilise le nom FQDN associé au serveur 18, qu'elle transmet à un module lla de résolution (resolver) de nom de domaine installé sur le terminal. Le module de résolution 11a est chargé d'obtenir au moins une adresse IP associée au serveur 18, que l'application cliente 11 devra utiliser pour échanger des données avec le serveur. Une fois la ou les adresses IP du serveur 18 envoyées au terminal d'utilisateur 1, le module de résolution 11a met en mémoire cache 11c les adresses IP obtenues avant de les envoyer à l'application 11, qui les utilisera dans l'ordre de leur réception, afin de communiquer avec le serveur 18. On précise ici que l'on entend : - par "application cliente" (11), toute application logicielle installée sur un équipement communiquant, tel que par exemple, un navigateur web, un client FTP (File Transfer Protocol), un client de messagerie, etc. ; - par "équipement communiquant" tout dispositif informatique tel que par exemple un terminal d'utilisateur (1) tel qu'un ordinateur, un téléphone mobile, ou une tablette numérique, utilisé par un utilisateur pour accéder à un service sur Internet, ou sur un réseau d'entreprise, ou un équipement intermédiaire d'un réseau ; - par "serveur distant" (18), toute entité réseau offrant un service réseau sur Internet, tel qu'un serveur web, un serveur de messagerie, un serveur de contenus multimédias (vidéo par exemple), etc. A la figure 1, l'entité 12 représente un équipement réseau réalisant au moins une fonction de commutation permettant l'acheminement de paquets reçus en entrée via un réseau tel que l'Internet. L'équipement 12 comprend notamment un module serveur DNS 12a, responsable de la résolution des noms associés à des serveurs de destination pour le compte de terminaux utilisateurs tels que le terminal 1, et un module 12b responsable du routage du trafic réseau en provenance de ou destiné à une application cliente (11). Selon les environnements considérés, l'entité 12 peut être confondue avec un routeur Internet dédié à un ou plusieurs utilisateurs finaux. Ce routeur Internet peut être par exemple intégré de manière classique au sein d'une passerelle résidentielle (désignée usuellement par "box" en anglais).The maximum depth of the tree is 127 levels and the maximum length of a FQDN name is 255 characters. Thus a name FQDN uniquely identifies a machine on the Internet, and thus identifies a service provided by a server on the network. For example, the address "www.orange.fr" represents a name FQDN. Name Servers are machines that map a domain name to one or more IP addresses that identify machines or devices on a network. Each domain has a name server called a primary domain name server, and usually a secondary domain name server, to take over from the primary name server if unavailable. of the last. Each name server is declared in an immediately higher-level domain name server, which implicitly allows for delegation of authority over the domains. DNS is a distributed architecture, where each entity is responsible for managing its domain name. A server that has all the information about a domain is referred to as an authoritative or authoritative server for that domain. The name server that is authoritative for the domain associated with the node under the root (for example the ".fr" node in the "www.orange.fr" address) is called a higher-level domain server or "TLD server". (Top Level Domain server). Finally, a server with authority over the domain above the top-level domain is called a "root server". Thus, a name server defines an area, that is to say a set of domains on which the server has authority, it is then said "authoritative" (authoritative) for this area. In the DNS system, the mechanism to obtain an IP address (for example: 193.43.55.67) of a network equipment (for example a multimedia content server) considered, from a domain name assigned to this equipment (eg 'srv.mycompany.com') is referred to as "domain name resolution", the opposite process (obtaining a domain name from an IP address) being referred to as "reverse resolution". In order to be able to solve a domain name, each client machine such as a user terminal must be equipped with an application called resolver (resolver) generally integrated into the operating system of the machine. When a client application such as an internet browser wants to connect to a host known by its domain name (for example "www.orange.fr"), it will query a name server defined in its network configuration. Each machine connected to the network has indeed in its configuration the IP addresses of at least one name server of its ISP. This name server is usually called "local name server". Thus, in the example of the address "www.orange.fr" the client application (internet browser for example) sends a request to the local name server. If it has the record in its cache, it sends it to the client application, otherwise it can query a TLD server corresponding to the domain ".fr". The TLD Name Server then returns a list of IP addresses from the authoritative name servers on the ".fr" domain to then determine the authoritative name server on the ".orange" domain. The local name server then queries the latter in order to obtain the IP address of the server whose FQDN is "www.orange.fr". The address resolution mechanism as explained above, is based on a communication protocol, the DNS protocol, including the definition of DNS messages of different types (query, response in particular) and information (Resource Records - RR) associated with each domain name, and recorded in a specific DNS records (or Resource Records - RR) format in the distributed database formed by all the domain name servers. The format of DNS (RR) records and DNS messages is detailed in IETF RFC 1035, particularly sections 3.2 and 4. Figure 1 shows a network environment in which the present invention can be implemented. artwork. In this environment, a client application 11 installed on a user terminal 1 must establish a communication with a remote server 18. To communicate with the server 18, the client application 11 uses the FQDN name associated with the server 18, which it transmits to a domain resolver resolution module (resolver) installed on the terminal. The resolution module 11a is responsible for obtaining at least one IP address associated with the server 18, which the client application 11 will have to use to exchange data with the server. Once the server IP address or addresses 18 have been sent to the user terminal 1, the resolution module 11a caches the obtained IP addresses before sending them to the application 11, which will use them in the order of their reception, in order to communicate with the server 18. It is specified here that is meant: - by "client application" (11), any software application installed on a communicating equipment, such as for example, a web browser, a client FTP (File Transfer Protocol), a mail client, etc. ; - "Equipment communicating" any computer device such as for example a user terminal (1) such as a computer, a mobile phone, or a digital tablet, used by a user to access a service on the Internet, or an enterprise network, or intermediate equipment of a network; - by "remote server" (18), any network entity offering a network service on the Internet, such as a web server, a mail server, a multimedia content server (video, for example), etc. In Figure 1, the entity 12 represents a network equipment performing at least one switching function for routing incoming packets via a network such as the Internet. The equipment 12 includes a DNS server module 12a, responsible for resolving the names associated with destination servers on behalf of user terminals such as the terminal 1, and a module 12b responsible for routing network traffic from or intended for a client application (11). Depending on the environments considered, entity 12 may be confused with an Internet router dedicated to one or more end users. This Internet router can be for example integrated in a conventional manner within a residential gateway (usually referred to as "box" in English).

Lors d'une tentative de connexion de l'application cliente 11 au serveur distant 18, l'application cliente 11 communique d'abord localement avec le module de résolution 11a afin d'obtenir les adresses IP du serveur distant 18. A cette fin, une mémoire cache 11c est d'abord consultée. La mémoire cache 11c enregistre temporairement, en effet, des réponses DNS obtenues précédemment, selon une durée de validité TTL (rime To Live) prédéfinie, permettant ainsi d'optimiser les performances réseau. Si l'information recherchée (adresses réseau) ne figure pas dans la mémoire cache 11c, le module de résolution 11a génère des blocs d'information DNS pour déclencher la résolution du nom du serveur 18 afin d'obtenir une ou plusieurs adresses réseau. Les blocs d'information DNS pour la résolution du nom du serveur 18 sont envoyés à destination du module serveur DNS 12a de l'équipement 12 qui joue par conséquent dans cet exemple, le rôle de serveur DNS local pour le terminal client 1. Le module DNS local 12a dispose également pour optimiser les performances réseau d'une mémoire cache 12c dans lequel sont stockées des réponses DNS précédentes, émises par des serveurs distants tels le serveur 18, selon une durée de validité (TTL) prédéfinie. Ainsi, lorsque les informations (adresses réseau) relatives au serveur 18, demandées par l'application cliente 11, ne sont pas obtenues à partir des enregistrements DNS stockés temporairement dans le cache 12c du serveur DNS local 12a, celui-ci communique avec un serveur de noms autoritaire 14, pour les obtenir. Après avoir obtenu les adresses réseau du serveur de noms autoritaire, le dispositif de routage 12b fait alors suivre les paquets de données correspondants vers le serveur 18 en se basant sur des règles de routage, statiques ou dynamiques. En variante, le dispositif de routage 12b peut aussi utiliser des règles de traduction d'adresses NAT (Network Address Translation) pour permettre le routage des paquets de données entre l'application cliente 11 et le serveur 18. Le serveur de noms autoritaire 14 comprend en particulier un module serveur DNS standard 14a, responsable du traitement des requêtes DNS, et une base de données 14c contenant des associations entre les adresses réseau de serveurs, tels que le serveur 18, et leur nom de serveur ou "Fully Qualified Domain Name" (FQDN). Les adresses réseau gérées dans la base de données 14c peuvent être du type IPv4 ou IPv6 et chacune est associée au nom du serveur correspondant (FQDN).During an attempt to connect the client application 11 to the remote server 18, the client application 11 first communicates locally with the resolution module 11a in order to obtain the IP addresses of the remote server 18. For this purpose, a cache 11c is first consulted. The cache memory 11c temporarily records, in effect, previously obtained DNS responses, with a predefined duration TTL (rhyme To Live) validity, thus optimizing network performance. If the information sought (network addresses) is not in the cache memory 11c, the resolution module 11a generates blocks of DNS information to trigger the resolution of the name of the server 18 to obtain one or more network addresses. The blocks of DNS information for the resolution of the name of the server 18 are sent to the DNS server module 12a of the equipment 12, which therefore plays in this example, the local DNS server role for the client terminal 1. The module Local DNS 12a also has for optimizing the network performance of a cache 12c in which are stored previous DNS responses, issued by remote servers such as the server 18, with a predefined validity period (TTL). Thus, when the information (network addresses) relating to the server 18, requested by the client application 11, is not obtained from the DNS records stored temporarily in the cache 12c of the local DNS server 12a, the latter communicates with a server authoritative names 14, to get them. After obtaining the network addresses of the authoritative name server, the routing device 12b then follows the corresponding data packets to the server 18 based on routing rules, static or dynamic. Alternatively, the routing device 12b may also use Network Address Translation (NAT) translation rules to allow the routing of data packets between the client application 11 and the server 18. The authoritative name server 14 comprises in particular a standard DNS server module 14a, responsible for the processing of DNS queries, and a database 14c containing associations between the network addresses of servers, such as the server 18, and their server name or "Fully Qualified Domain Name" (FQDN). The network addresses managed in the database 14c can be of the IPv4 or IPv6 type and each is associated with the corresponding server name (FQDN).

Par ailleurs, le serveur DNS autoritaire 14 peut comporter en outre un module serveur DNS64 14a'. Le fonctionnement du module serveur DNS64 (autoritaire) 14a' est décrit dans le document RFC 6147. Le module DNS64 14a' a pour fonction de générer dynamiquement une adresse IPv6 représentant un serveur IPv4 18, à partir de l'adresse IPv4 de celui-ci, ainsi qu'au moins un Préfix IPv6 identifiant une passerelle NAT64 dans le réseau Internet. La configuration DNS64 est gérée par un module base de données 14c'. Dans le cadre de la présente description : - on désigne par "adresse IP native" une adresse IP correspondant à une interface IP active sur une entité serveur IP (par exemple l'entité 18). Cette adresse peut être IPv4 ou IPv6 ; - on désigne par "adresse IP fictive", une adresse IP représentant le serveur IP 18, mais ne correspondant pas à une interface IP active sur le serveur IP 18. Dans un contexte NAT64, cette adresse est une adresse IPv6 représentant un serveur IPv4, via une passerelle NAT64. Le fonctionnement du serveur DNS64 autoritaire 14a' est le suivant. A la réception d'un bloc d'information de type requête DNS IPv6, le module serveur DNS autoritaire standard (14a) est d'abord interrogé pour obtenir le ou les enregistrements DNS correspondant au serveur 18. Si aucun enregistrement DNS n'est obtenu (IPv4 ou IPv6), ou bien si au moins un enregistrement DNS IPv6, contenant une adresse IPv6 native, est obtenu, alors le serveur DNS64 autoritaire envoie la réponse DNS obtenue au module 12a. Si au moins un enregistrement DNS IPv4 est obtenu, mais qu'aucun enregistrement DNS IPv6 n'est obtenu (correspondant à au moins une adresse IPv6 "native"), alors : au moins une adresse IPv6 "fictive", représentant le serveur 18, est synthétisée à partir de l'adresse IPv4 obtenue de celui-ci, ainsi que du Préfix IPv6 de la passerelle NAT64 ; un bloc d'information DNS de type réponse DNS IPv6, contenant au moins l'enregistrement DNS IPv6 synthétisé, est généré et est transmis au module serveur DNS local 12a. Les enregistrements DNS IPv4 sont aussi envoyés au module 12a par le serveur DNS dans un bloc d'information DNS de type réponse DNS IPv4. Comme mentionné plus haut, l'environnement réseau représenté à la figure 1, comprend un équipement de routage 19 connecté au réseau dans lequel se situe le serveur 18, via l'équipement de routage 17. Les équipements de routage 17 et 19 sont destinés à acheminer des paquets de données jusqu'au serveur 18, en se basant sur des règles de routage ou de traduction d'adresses standard (NAT IPv4), ou sur des règles de traduction d'adresses conformes au standard NAT64 (décrit dans le document RFC 6146) qui vise à traduire des paquets IPv6 en provenance d'un client IPv6 en paquets IPv4 compréhensibles par un serveur IPv4. La passerelle NAT64 est représentée à la figure 1 soit par une entité routeur 19, située dans le réseau de l'opérateur de l'entité serveur 18, soit par un module de traduction 17b d'un équipement de routage 17, dont le rôle est de traduire tout paquet IPv6 reçu à destination de serveur 18, en un paquet IPv4 compréhensible par l'entité serveur IPv4 18, et inversement. L'environnement réseau comprend également un serveur de noms proxy 13 de l'environnement du terminal client, et un serveur de noms proxy 16 de l'environnement du serveur DNS autoritaire 14. Les serveurs de noms (DNS) proxy 13 et 16, comprennent respectivement au moins un module (13a, 16a) capable d'intercepter et de traiter des blocs d'information DNS. Conformément à l'invention, l'environnement réseau représenté à la figure 1 comprend par ailleurs un module 15 configuré pour obtenir et adapter des blocs d'informations DNS aux contraintes réseau relatives aux échanges client-serveur dans cet environnement.In addition, the authoritative DNS server 14 may further comprise a DNS64 server module 14a '. The operation of the server module DNS64 (authoritarian) 14a 'is described in the document RFC 6147. The function of the DNS64 module 14a' is to generate dynamically an IPv6 address representing an IPv4 server 18, from the IPv4 address thereof , as well as at least one IPv6 Prefix identifying a NAT64 gateway in the Internet. The DNS64 configuration is managed by a database module 14c '. In the context of the present description: the term "native IP address" denotes an IP address corresponding to an active IP interface on an IP server entity (for example entity 18). This address can be IPv4 or IPv6; the term "fictitious IP address" denotes an IP address representing the IP server 18, but does not correspond to an active IP interface on the IP server 18. In a NAT64 context, this address is an IPv6 address representing an IPv4 server, via a NAT64 gateway. The operation of the authoritative DNS64 server 14a 'is as follows. Upon receipt of an IPv6 DNS request information block, the standard authoritative DNS server module (14a) is first polled to obtain the DNS record (s) corresponding to the server 18. If no DNS record is obtained (IPv4 or IPv6), or if at least one IPv6 DNS record, containing a native IPv6 address, is obtained, then the authoritative DNS64 server sends the obtained DNS response to the module 12a. If at least one IPv4 DNS record is obtained, but no IPv6 DNS record is obtained (corresponding to at least one "native" IPv6 address), then: at least one "fictitious" IPv6 address, representing the server 18, is synthesized from the IPv4 address obtained from it, as well as from the IPv6 prefix of the NAT64 gateway; an IPv6 DNS response type DNS information block, containing at least the synthesized IPv6 DNS record, is generated and is transmitted to the local DNS server module 12a. The IPv4 DNS records are also sent to the module 12a by the DNS server in an IPv4 DNS response type DNS information block. As mentioned above, the network environment represented in FIG. 1, comprises a routing equipment 19 connected to the network in which the server 18 is located, via the routing equipment 17. The routing equipments 17 and 19 are intended for routing data packets to server 18, based on standard address translation or routing rules (NAT IPv4), or NAT64-compliant address translation rules (described in RFC) 6146) for translating IPv6 packets from an IPv6 client into IPv4 packets understandable by an IPv4 server. The NAT64 gateway is represented in FIG. 1 either by a router entity 19, located in the network of the operator of the server entity 18, or by a translation module 17b of a routing equipment 17 whose role is to translate any received IPv6 packet to server 18 into an IPv4 packet understandable by the IPv4 server entity 18, and vice versa. The network environment also includes a proxy server 13 of the client terminal environment, and a proxy name server 16 of the authoritative DNS server environment 14. The proxy name servers (DNS) 13 and 16, include respectively at least one module (13a, 16a) capable of intercepting and processing blocks of DNS information. In accordance with the invention, the network environment represented in FIG. 1 further comprises a module 15 configured to obtain and adapt blocks of DNS information to network constraints relating to client-server exchanges in this environment.

Selon l'invention, le dispositif 15 d'obtention de blocs d'informations DNS adaptées aux contraintes du réseau de l'application cliente 11 et du serveur 18, comporte en particulier deux modules fonctionnels distincts : un module de marquage de blocs d'informations DNS et un module de traitement de blocs d'informations DNS. Les modules précités peuvent être répartis selon les modes de réalisation choisis sur des machines différentes, ce qui est illustré sur la figure 1, par trait pointillé englobant plusieurs modules d'entités distinctes (1, 12, 13, 14, 16). ler mode de réalisation On va à présent décrire un premier mode de réalisation de l'invention. Les figures 2 et 3 représentent respectivement un environnement réseau selon une première variante et une seconde variante de ce premier mode de réalisation.According to the invention, the device 15 for obtaining DNS information blocks adapted to the constraints of the network of the client application 11 and the server 18 comprises in particular two distinct functional modules: a module for marking blocks of information DNS and a module processing DNS information blocks. The aforementioned modules may be distributed according to the embodiments chosen on different machines, which is illustrated in FIG. 1, by dashed line encompassing several distinct entity modules (1, 12, 13, 14, 16). Embodiment Next, a first embodiment of the invention will be described. FIGS. 2 and 3 respectively represent a network environment according to a first variant and a second variant of this first embodiment.

Selon ce premier mode de réalisation de l'invention, le dispositif de traitement d'une requête d'accès à un serveur distant (18) par une application cliente (11), comprend un module de marquage de requêtes DNS (15a) et un module de traitement de réponses DNS (15b). Selon ce premier mode de réalisation, le module de marquage (15a) est situé dans le réseau de l'entité cliente, c'est-à-dire soit dans le terminal utilisateur 1 (figure 2), soit dans le serveur DNS local 12 ou dans l'entité serveur proxy DNS local 13a (figure 3), et le module de traitement (15b) est situé dans le serveur DNS autoritaire 14 ou dans le serveur de noms proxy 16 associé. Selon ce premier mode de réalisation de l'invention, la mise en oeuvre du procédé est déclenchée par la réception par une entité cliente DNS (11a, 12a ou 13), d'une requête pour la résolution du nom du serveur 18, cette requête étant initiée par l'application cliente 11 dans le terminal client 1. Dans ce premier mode de réalisation, Afin de réduire le délai du marquage d'un bloc d'information DNS de type requête par la fonction de marquage fournie par le module de marquage (15a), une opération préalable de création d'informations de marquage est effectuée par le module de marquage (15a). Cette opération de création d'informations de marquage consiste à créer pour chaque interface IP active du terminal 1 un enregistrement dont le format est décrit plus-bas. Ces informations utiles pour la fonction de marquage sont stockées dans une mémoire cache 15c, dont le contenu est géré au niveau du terminal client 1 ou dans le serveur DNS local 12 (selon la variante considérée du premier mode de réalisation). La mémoire cache 15c est structurée par un ou par plusieurs enregistrements décrivant au moins une interface IP active du terminal 1 et comportant chacun les champs suivants : un type, un identifiant, un état, une préférence d'usage du type de l'interface, ainsi qu'une durée de validité (Time to Live (TTL)). Les champs précités sont détaillés ci-après.According to this first embodiment of the invention, the device for processing a request to access a remote server (18) by a client application (11) comprises a DNS request marking module (15a) and a DNS response processing module (15b). According to this first embodiment, the marking module (15a) is located in the network of the client entity, that is to say either in the user terminal 1 (FIG. 2) or in the local DNS server 12 or in the local DNS proxy server entity 13a (FIG. 3), and the processing module (15b) is located in the authoritative DNS server 14 or in the associated proxy name server 16. According to this first embodiment of the invention, the implementation of the method is triggered by the reception by a client entity DNS (11a, 12a or 13) of a request for the resolution of the name of the server 18, this request being initiated by the client application 11 in the client terminal 1. In this first embodiment, in order to reduce the delay in marking a request-type DNS information block by the marking function provided by the marking module (15a), a preliminary operation of creating marking information is performed by the marking module (15a). This marking information creation operation consists in creating for each active IP interface of the terminal 1 a record whose format is described below. This information useful for the marking function is stored in a cache memory 15c, whose content is managed at the client terminal 1 or in the local DNS server 12 (according to the considered variant of the first embodiment). The cache 15c is structured by one or more records describing at least one active IP interface of the terminal 1 and each having the following fields: a type, an identifier, a state, a usage preference of the type of the interface, as well as a validity period (Time to Live (TTL)). The aforementioned fields are detailed below.

Type de l'interface IP : ce champ correspond au type de la pile IP de l'interface IP. Il est codé sur deux bits. La valeur '10' indique une pile IPv4, la valeur '01' indique une pile IPv6 et la valeur '11' indique une "double pile" (dual stack). Identifiant de l'interface IP : ce champ correspond à l'identifiant réseau de l'interface IP. Il contient un identifiant de l'interface réseau associé comme par exemple son adresse IP (IPv4 ou IPv6). Etat fonctionnel de l'interface IP : ce champ indique si l'interface est fonctionnelle ou non. Il est codé sur 1 seul bit. La valeur '0' indique que l'interface IP est fonctionnelle. La valeur '1' indique que l'interface IP est non fonctionnelle - par exemple, en raison d'un problème physique ou logiciel sur le réseau auquel l'interface réseau est rattachée (3G, Ethernet, etc.) tel qu'une panne concernant la passerelle par défaut ou concernant le lien entre le terminal et la passerelle par défaut, etc. Préférence d'usage de l'interface IP : ce champ indique la préférence d'usage de l'interface. La valeur d'une préférence d'usage '0' indique que l'utilisateur du terminal client ne souhaite pas utiliser cette interface, momentanément. Ce champ est codé sur 8 bits. Durée de validité : ce champ correspond à la durée de vie ou Time to Live (TTL) de l'enregistrement dans le cache (15c). Par défaut, la valeur de ce champ est la même pour tous les enregistrements contenus dans le cache. L'utilisateur peut néanmoins modifier la valeur du TTL d'un enregistrement donné, par exemple, en le mettant à '0' pour forcer ainsi la mise à jour de l'ensemble du cache. A titre d'exemple, on considère un terminal disposant d'une seule interface réseau, et ayant obtenu d'un opérateur d'accès Internet deux adresses IP : une du type IPv4 publique et une autre de type IPv6 globale. A un instant donné, les enregistrements stockés dans le cache 15c pourront être : <10, 192.0.1.10, 0, 1, 5> : interface de type IPv4 fonctionnelle et que le terminal client 1 utilise. Cet enregistrement est valable pour une durée d'encore 5 secondes. et <11, 2a01:c079::c0a8:1c3, 1,0, 5> : interface de type IPv6, non fonctionnelle (par exemple en raison de problème sur la passerelle par défaut), et que l'administrateur du terminal client ne souhaite pas utiliser momentanément. Cet enregistrement est valable pour encore 5 secondes. La mémoire cache (15c) du module de marquage (15a) est alimentée par une fonction de collecte de l'état fonctionnel de chaque interface IP du terminal client (1), notée : Collect IP Interface Status ( ip interface). Selon l'invention, cette fonction effectue, à intervalles de temps réguliers, des tests visant à vérifier l'état fonctionnel de chaque interface IP du terminal client (1), et met à jour le contenu de la mémoire cache (15c) en indiquant l'état fonctionnel de chaque interface réseau du terminal client.Type of IP interface: This field corresponds to the IP stack type of the IP interface. It is coded on two bits. The value '10' indicates an IPv4 stack, the value '01' indicates an IPv6 stack and the value '11' indicates a "dual stack". IP interface identifier: This field corresponds to the network identifier of the IP interface. It contains an identifier of the associated network interface such as its IP address (IPv4 or IPv6). Functional status of the IP interface: This field indicates whether the interface is functional or not. It is coded on 1 single bit. The value '0' indicates that the IP interface is functional. The value '1' indicates that the IP interface is non-functional - for example, due to a physical or software problem on the network to which the network interface is attached (3G, Ethernet, etc.) such as a failure about the default gateway or the link between the terminal and the default gateway, etc. Preference for use of the IP interface: this field indicates the preference of use of the interface. The value of a usage preference '0' indicates that the user of the client terminal does not wish to use this interface momentarily. This field is 8-bit coded. Validity period: This field corresponds to the lifetime or Time to Live (TTL) of the record in the cache (15c). By default, the value of this field is the same for all records in the cache. However, the user can change the TTL value of a given record, for example, by setting it to '0' to force updating of the entire cache. By way of example, consider a terminal having a single network interface, and having obtained from an Internet access operator two IP addresses: one of the public IPv4 type and another of the global IPv6 type. At a given moment, the records stored in the cache 15c may be: <10, 192.0.1.10, 0, 1, 5>: interface of the functional IPv4 type and which the client terminal 1 uses. This recording is valid for a further 5 seconds. and <11, 2a01: c079 :: c0a8: 1c3, 1,0, 5>: IPv6 type interface, non-functional (for example due to a problem on the default gateway), and the terminal administrator does not do not want to use it momentarily. This record is valid for another 5 seconds. The cache memory (15c) of the marking module (15a) is fed by a function of collecting the functional state of each IP interface of the client terminal (1), noted: Collect IP Interface Status (ip interface). According to the invention, this function performs, at regular time intervals, tests aimed at verifying the functional state of each IP interface of the client terminal (1), and updates the contents of the cache memory (15c) by indicating the functional state of each network interface of the client terminal.

En pratique, la fonction précitée vérifie d'abord si une interface IP est active, puis vérifie ensuite si le réseau sous-jacent est fonctionnel. En effet, pour un terminal client, il suffit par exemple que la passerelle par défaut d'une interface IP soit en panne, pour que celle-ci devienne inutile, alors même que l'interface IP du terminal est active. La figure 4 est un organigramme illustrant un procédé de résolution d'un nom de serveur selon le premier mode de réalisation de l'invention, selon la première variante (étapes E40-E46) et selon la seconde variante (étapes spécifiques E41a-E46a, les autres étapes étant similaires). Première variante du 1' mode de réalisation (M1-V1) En liaison avec la figure 4, on va d'abord décrire un procédé de traitement de résolution d'un nom de serveur selon la première variante mentionnée plus haut, illustrée par la figure 2, et selon laquelle le module de marquage des blocs d'informations DNS (15a) est situé dans le module résolveur 11a du terminal client 1. A l'étape E40, le module résolveur 11a incluant le module de marquage 15a, reçoit une demande de résolution du nom du serveur 18 en adresses réseau, par exemple via une requête connue de type Get Host by Name O. En réponse à cette requête, le module 11a consulte d'abord son cache local 11c. Si aucune réponse DNS correspondant à la requête reçue n'est trouvée dans le cache 11c, alors le module résolveur 11a génère des blocs d'information DNS de type requête pour la résolution du nom du serveur 18. On notera ici qu'un module résolveur d'un système d'exploitation (OS) récent génère habituellement un bloc d'information DNS de type requête DNS IPv4 pour obtenir une ou plusieurs adresses IPv4 associées au serveur 18, et un bloc d'information DNS de type requête DNS IPv6, pour obtenir une ou plusieurs adresses IPv6 pour le serveur 18. A l'étape E41, chaque bloc d'information DNS de type requête généré est transféré au le module 15a de marquage de blocs d'informations DNS.In practice, the above function first checks whether an IP interface is active, and then checks whether the underlying network is functional. Indeed, for a client terminal, it is sufficient for example that the default gateway of an IP interface is down, so that it becomes unnecessary, even when the IP interface of the terminal is active. FIG. 4 is a flowchart illustrating a method for resolving a server name according to the first embodiment of the invention, according to the first variant (steps E40-E46) and according to the second variant (specific steps E41a-E46a, other steps being similar). First Variant of the 1st Embodiment (M1-V1) In connection with FIG. 4, a method for processing a resolution of a server name according to the first variant mentioned above, illustrated by FIG. 2, and according to which the marking module of the DNS information blocks (15a) is located in the resolver module 11a of the client terminal 1. In step E40, the resolver module 11a including the marking module 15a receives a request resolving the name of the server 18 to network addresses, for example via a known request of the type Get Host by Name O. In response to this request, the module 11a first consults its local cache 11c. If no DNS response corresponding to the received request is found in the cache 11c, then the resolver module 11a generates DNS information blocks of the request type for the resolution of the name of the server 18. It will be noted here that a resolver module of a recent operating system (OS) usually generates an IPv4 DNS request type DNS information block to obtain one or more IPv4 addresses associated with the server 18, and an IPv6 DNS query type information block, for obtain one or more IPv6 addresses for the server 18. In step E41, each generated query type DNS information block is transferred to the DNS information block marking module 15a.

A l'étape E42, le module de marquage des blocs d'informations DNS (15a) consulte son cache 15c afin d'obtenir des informations valides (dont le TTL est différent de zéro), indiquant le type de chaque interface IP fonctionnelle sur le terminal client 1. Pour cela, selon l'invention, la fonction suivante est utilisée : Get IP Interface Status O.In step E42, the DNS information block marking module (15a) consults its cache 15c in order to obtain valid information (the TTL of which is not zero), indicating the type of each functional IP interface on the client terminal 1. For this, according to the invention, the following function is used: Get IP Interface Status O.

Si la fonction Get IP Interface Status () détermine que le cache 15c contient au moins un enregistrement dont la durée de vie (TTL) est égale à zéro, alors à l'étape E44, la mise à jour du cache 15c est forcée par l'exécution de la fonction Collect IP Interface Status( ip interface), provoquant la mise à jour du cache 15c avec indication de l'état fonctionnel de chaque interface réseau du terminal client 1. Dans le cas contraire (aucun enregistrement n'a une durée de vie égale à zéro), on passe à l'étape E43. A cette étape, une fonction notée : Generate DNS Marking (cache) est exécutée afin d'obtenir un résumé de l'information valide obtenue du cache 15c et de générer à partir de ce résumé un code qui va servir pour le marquage des requêtes DNS L'exécution de la fonction Generate DNS Marking précitée provoque d'abord la sélection du type et de la préférence d'usage de chaque enregistrement représentant une interface IP fonctionnelle (dont la valeur du champ "Etat fonctionnel de l'interface IP" est à 0, voir plus haut). Puis, les redondances entre ces enregistrements sont éliminées et pour chaque ensemble d'enregistrements fonctionnels du cache 15c, un seul code de marquage est généré. Chaque code contient au plus trois couples d'information : un premier décrivant l'état des interfaces IPv4, un deuxième décrivant l'état des interfaces IPv6 et un troisième décrivant l'état des interfaces "double pile". La valeur du code généré par la fonction Generate DNS Marking est codée sur 32 bits.If the Get IP Interface Status () function determines that the cache 15c contains at least one record whose lifetime (TTL) is equal to zero, then in step E44, the update of the cache 15c is forced by the execution of the Collect IP Interface Status function (ip interface), causing the update of the cache 15c with indication of the functional state of each network interface of the client terminal 1. Otherwise (no record has a duration of life equal to zero), we go to step E43. At this stage, a function noted: Generate DNS Marking (cache) is executed in order to obtain a summary of the valid information obtained from the cache 15c and to generate from this summary a code that will be used for the marking of DNS queries The execution of the above Generate DNS Marking function first causes the selection of the type and the usage preference of each record representing a functional IP interface (whose value of the "Functional state of the IP interface" field is 0, see above). Then, the redundancies between these records are eliminated and for each set of functional records of the cache 15c, only one marking code is generated. Each code contains at most three pairs of information: a first describing the state of the IPv4 interfaces, a second describing the state of the IPv6 interfaces and a third describing the state of the "double stack" interfaces. The value of the code generated by the Generate DNS Marking function is encoded on 32 bits.

A titre d'exemple, si le cache 15c du module de marquage contient les enregistrements suivants : - <10, 192.0.1.10, 0, 2, 5> - <01, 2a01:c079::c0a8:1c3, 1,0, 5> - <01, 2a11:0db8::d0b8:1, 0,1, 5> Alors, la fonction Generate DNS Marking génèrera le code suivant : (<IPv4,2>,<IPv6,1>) Le code ci-dessus indiquera au module (15b) de traitement des requêtes DNS marquées, qu'il faut renvoyer prioritairement un bloc d'information de type réponse DNS IPv4, la valeur '2' (associée à l'adresse IPv4) dans le code indiquant une plus grande préférence.For example, if the cache 15c of the marking module contains the following records: - <10, 192.0.1.10, 0, 2, 5> - <01, 2a01: c079 :: c0a8: 1c3, 1.0, 5> - <01, 2a11: 0db8 :: d0b8: 1, 0,1, 5> Then the Generate DNS Marking function will generate the following code: (<IPv4,2>, <IPv6,1>) The code below above it will indicate to the module (15b) handling of the marked DNS queries, that a block of information of the IPv4 DNS response type must first be returned, the value '2' (associated with the IPv4 address) in the code indicating a higher value. great preference.

Dans le cas particulier d'une valeur de préférence égale entre plusieurs adresses, par exemple, pour un code généré (<IPv4,1>,<IPv6,1>), le module de traitement enverra des blocs d'information de type réponse DNS IPv4 et IPv6. Enfin, si le code de marquage est (<IPv6,1>), alors le module de traitement retournera uniquement des réponses IPv6. Toujours à la figure 4, à l'étape E45, le module de marquage (15a) active une fonction de marquage de requête DNS, notée Apply Marking (DNS Request, Code) utilisant le code de marquage obtenu à l'étape précédente (E43), afin de marquer chaque bloc d'information DNS de type requête. A cet effet cela, la fonction Apply Marking utilise les extensions DNS EDNSO (Extension Mechanisms for DNS (EDNSO) - RFC 2671), pour inscrire le code dans la requête DNS, comme illustré par la figure 6.In the particular case of a value preferably equal between several addresses, for example, for a generated code (<IPv4,1>, <IPv6,1>), the processing module will send blocks of information of the DNS response type IPv4 and IPv6. Finally, if the marking code is (<IPv6,1>), then the processing module will only return IPv6 responses. Still in FIG. 4, in step E45, the marking module (15a) activates a DNS query marking function, called Apply Marking (DNS Request, Code) using the marking code obtained in the previous step (E43 ), to mark each block of DNS information of the query type. For this purpose, the Apply Marking function uses the EDNSO (Extensible Mechanisms for DNS (EDNSO) - RFC 2671) DNS extensions, to register the code in the DNS query, as shown in Figure 6.

Les figures 5 et 6 représentent respectivement le format d'une requête DNS standard et le format d'une requête DNS marquée, conformément au protocole DNS, applicables au premier mode de réalisation de l'invention; Selon une implémentation particulière (notée var10), le module 15a n'effectue aucun filtrage des requêtes DNS qui ont une moindre préséance (precedence en anglais). L'avantage de cette approche est une meilleure fiabilité du service. En effet, les requêtes DNS IPv4 et IPv6 n'étant pas envoyées dans les mêmes paquets IP, si l'interface fonctionnelle préférée subit une quelconque dégradation, par exemple suite à la mobilité de l'utilisateur, ou bien si le bloc d'information de type requête DNS dont la préséance est la plus grande, est perdue dans le réseau, alors que le bloc d'information de type requête DNS de moindre préséance arrive à destination, cela n'empêchera pas la communication de s'établir via une interface IP fonctionnelle moins préférée, tout en évitant un quelconque délai de résolution DNS supplémentaire. Selon une autre implémentation (notée var11) alternative avec la précédente, à l'étape E45, la fonction _Apply_Marking (DNS Request, Code) exécutée par le module 15a utilise le code de marquage obtenu à l'étape E43 pour filtrer c'est-à-dire supprimer les blocs d'information DNS de type requête qui ont un niveau de préséance le plus faible. Par exemple, si un terminal client 1 est "double pile" mais est configuré pour "préférer" communiquer avec des serveurs (18) en utilisant la pile IPv4, alors la fonction _Apply_Marking filtrera les requêtes DNS IPv6. Dans un autre exemple, un terminal client 1 peut être configuré pour "préférer" utiliser l'IPv6 pour communiquer avec un serveur « double pile », sans pour autant accepter de passer par des passerelles du type NAT64. Dans ce cas, si par exemple le serveur 18 se trouve être joignable en IPv4 natif, et en IPv6 via NAT64, alors, en supprimant les requêtes DNS IPv4, l'implémentation var11 privilégiera un chemin non natif par rapport au chemin IPv4 natif. Dans ce cas d'usage particulier, l'implémentation selon la variante var10 permettra d'obtenir une communication de meilleure qualité. A l'étape E46, le module de marquage des blocs d'informations DNS (15a), confondue, dans l'exemple de réalisation exposé ici, avec l'entité 11a génère en fonction du code de marquage le ou les blocs d'information DNS de type requête et les envoie à destination de l'entité serveur DNS local 12a. Selon une variante d'implémentation selon laquelle le module de marquage 15a n'est pas confondu avec le module résolveur 11a, le module 15a intercepte d'abord les requêtes DNS générées par le module résolveur 11a, puis effectue un marquage de chaque requête DNS et fournit chaque bloc d'information DNS marqué directement au système d'exploitation (OS) du terminal client 1. La requête DNS est ensuite envoyée par l'OS du terminal client vers l'entité serveur DNS local 12 (module 12a). Par ailleurs, selon une implémentation particulière, le module serveur DNS local 12a envoie le ou les blocs d'information DNS reçus de type requête, marqués, sans les modifier, à destination de l'entité serveur DNS autoritaire 14, sans filtrage des requêtes de moindre préséance. Selon une autre implémentation possible, si le module 11a a utilisé le code de marquage pour supprimer les requêtes DNS de moindre préséance, alors le module serveur DNS local (12a) achemine à destination de l'entité serveur DNS autoritaire 14, un ou plusieurs blocs d'information DNS de type requête, standard(s), c'est-à-dire n'incluant pas d'extension EDNSO. Selon une autre implémentation possible de cette première variante du premier mode de réalisation de l'invention, le module serveur DNS local 12a consulte le marquage des blocs d'information DNS de type requête pour la résolution d'un même serveur 18, supprime les requêtes de moindre préséance et envoie à l'entité serveur DNS autoritaire 14, un ou plusieurs blocs d'information DNS standards de type requête, c'est-à-dire n'incluant pas d'extension EDNSO. L'envoi des blocs d'information DNS de type requête à destination de l'entité serveur DNS autoritaire 14 est illustré par l'étape E47 détaillée plus bas dans la description. Seconde variante du 1 er mode de réalisation (M1-V2) Toujours en liaison avec la figure 4, on va décrire les étapes, notées E41a-E46a, spécifiques à la seconde variante mentionnée plus haut, illustrée par la figure 3, et selon laquelle le module de marquage des blocs d'informations DNS (15a) est situé soit dans l'entité serveur DNS local 12 (module résolveur 12a) ou dans l'entité serveur proxy DNS local 13, de la partie réseau de l'entité cliente. Comme exposé plus haut, à l'étape E40, suite à la réception d'une demande de résolution du nom du serveur 18, le module résolveur 11a du terminal 1 consulte d'abord son cache local 11c. Si aucune réponse DNS correspondant à la requête reçue n'est trouvée dans le cache local, alors le module résolveur 11a génère des blocs d'information DNS de type requête pour la résolution du nom du serveur 18 en une ou en plusieurs adresses réseau. A l'étape E41a, le module 11a achemine chaque bloc d'information DNS de type requête généré à l'étape précédente, à destination de l'entité DNS local 12 (module 12a).Figures 5 and 6 respectively represent the format of a standard DNS query and the format of a DNS query marked, according to the DNS protocol, applicable to the first embodiment of the invention; According to a particular implementation (denoted var10), the module 15a does not perform any filtering of the DNS queries which have a lower priority (precedence in English). The advantage of this approach is a better reliability of the service. Indeed, IPv4 and IPv6 DNS requests are not sent in the same IP packets, if the preferred functional interface undergoes any degradation, for example following the mobility of the user, or if the information block DNS request whose precedence is greatest, is lost in the network, while the block of information of the type of DNS query of less precedence arrives at the destination, this will not prevent the communication to be established via an interface Less preferred functional IP, while avoiding any additional DNS resolution time. According to another implementation (denoted var11) which is alternative to the preceding one, in step E45, the function _Apply_Marking (DNS Request, Code) executed by the module 15a uses the marking code obtained in step E43 to filter out that is, remove query-type DNS information blocks that have the lowest precedence level. For example, if a client terminal 1 is "dual stacked" but is configured to "prefer" to communicate with servers (18) using the IPv4 stack, then the _Apply_Marking function will filter the IPv6 DNS queries. In another example, a client terminal 1 may be configured to "prefer" to use IPv6 to communicate with a "double stack" server, without accepting to go through gateways of NAT64 type. In this case, if, for example, the server 18 is reachable in native IPv4, and in IPv6 via NAT64, then, by removing the IPv4 DNS queries, the implementation var11 will privilege a non-native path with respect to the native IPv4 path. In this case of particular use, the implementation of variant var10 will provide a better quality of communication. In step E46, the DNS information block marking module (15a), which, in the embodiment described here, merges with the entity 11a generates, according to the marking code, the information block or blocks. Query DNS and sends them to the local DNS server entity 12a. According to an implementation variant in which the marking module 15a is not confused with the resolver module 11a, the module 15a first intercepts the DNS requests generated by the resolver module 11a, then carries out a marking of each DNS request and provides each marked DNS information block directly to the operating system (OS) of the client terminal 1. The DNS request is then sent by the OS of the client terminal to the local DNS server entity 12 (module 12a). Moreover, according to a particular implementation, the local DNS server module 12a sends the received DNS information block or blocks of request type, marked, without modifying them, to the authoritative DNS server entity 14, without filtering the requests of less precedence. According to another possible implementation, if the module 11a has used the marking code to suppress the lower precedence DNS requests, then the local DNS server module (12a) sends one or more blocks to the authoritative DNS server entity 14. Request-type DNS information, standard (s), that is, not including an EDNSO extension. According to another possible implementation of this first variant of the first embodiment of the invention, the local DNS server module 12a consults the marking of the DNS information blocks of the request type for the resolution of the same server 18, deletes the requests of least precedence and sends to the authoritative DNS server entity 14, one or more standard DNS information blocks of the query type, that is to say not including an EDNSO extension. The sending of the request-type DNS information blocks to the authoritative DNS server entity 14 is illustrated by the step E47 detailed below in the description. Second Variant of the 1st Embodiment (M1-V2) Still in connection with FIG. 4, the steps, denoted E41a-E46a, specific to the second variant mentioned above, illustrated in FIG. 3, will be described, according to which the DNS information block marking module (15a) is located either in the local DNS server entity 12 (resolver module 12a) or in the local DNS proxy server entity 13, of the network part of the client entity. As explained above, in step E40, following the receipt of a request for resolving the name of the server 18, the resolver module 11a of the terminal 1 first consults its local cache 11c. If no DNS response corresponding to the received request is found in the local cache, then the resolver module 11a generates query-type DNS information blocks for the resolution of the server name 18 in one or more network addresses. In step E41a, the module 11a routes each request-type DNS information block generated in the previous step, to the local DNS entity 12 (module 12a).

Comme déjà mentionné, dans cette variante le module de marquage des blocs d'informations DNS (15a) est situé comme illustré par la figure 3, soit dans le module serveur DNS local 12a, soit dans le module proxy DNS local 13a. Une structure en mémoire15d, est gérée par le module de marquage 15a. Cette structure en mémoire correspondant soit à la mémoire référencée 12d lorsque le module de marquage est situé dans le serveur DNS local 12, soit à la mémoire référencée 13c lorsque le module de marquage 15a est situé dans le serveur proxy DNS local 13. Cette mémoire, 12d ou 13c selon le cas, contient notamment pour chaque terminal client (1) des enregistrements, définissant pour chaque terminal client (1), la liste de ses interfaces IP, la pile ou type des interfaces IP actives et fonctionnelles (IPv4 ou IPv6), la préférence d'usage par type d'interface, ainsi qu'une valeur de durée de validité (TTL).As already mentioned, in this variant, the module for marking the information blocks DNS (15a) is located as illustrated by FIG. 3, either in the local DNS server module 12a, or in the local DNS proxy module 13a. A structure in memory 15d is managed by the marking module 15a. This memory structure corresponds either to the memory referenced 12d when the marking module is located in the local DNS server 12, or to the memory referenced 13c when the marking module 15a is located in the local DNS proxy server 13. This memory, 12d or 13c as appropriate, contains in particular for each client terminal (1) records, defining for each client terminal (1), the list of its IP interfaces, the stack or type of active and functional IP interfaces (IPv4 or IPv6) , the preference of use by type of interface, as well as a value of duration of validity (TTL).

A l'étape E42a, le module de marquage des blocs d'informations DNS (15a) associe d'abord la requête au terminal client qui l'a généré, par exemple, en utilisant l'adresse mac ou ip source du paquet transportant la requête DNS. Ensuite, le module 15a exécute un certain nombre de fonctions pour obtenir les préférences IP du terminal en question.In step E42a, the DNS information block marking module (15a) first associates the request with the client terminal that generated it, for example, by using the source mac or ip address of the packet carrying the DNS query. Then, the module 15a performs a number of functions to obtain the IP preferences of the terminal in question.

Tout d'abord, le module 15a consulte la mémoire cache (12d ou 13c) afin d'obtenir des informations valides indiquant le type de chaque interface IP fonctionnelle pour le terminal client 1 considéré. A cette fin, une fonction Get IP Interface Status (id terminal) est exécutée. Suite à l'exécution de la fonction précitée : si le terminal n'est pas identifié par au moins un enregistrement dans la structure en mémoire 12d ou 13c, ou bien, si le terminal est identifié par au moins un enregistrement dans la structure en mémoire 12d ou 13c, mais qu'il existe au moins un enregistrement dont le TTL est égal à 0 dans la structure en mémoire alors une mise à jour du cache est déclenchée, à l'étape E44a, par l'intermédiaire d'une fonction Collect IP Interface Status( id client). L'exécution de cette fonction provoque la mise à jour de la mémoire cache (12d ou 13c), avec indication des interfaces du terminal client, ainsi que des préférences d'usage de la ou des interface(s) réseau fonctionnelles du terminal client 1 (identifié par le paramètre '_id client). Dans le cas contraire (aucun enregistrement n'a une durée de vie égale à zéro), on passe à l'étape E43a au cours de laquelle le module client 15a obtient des informations de préférence d'usage de la ou des interface(s) IP fonctionnelles du terminal client 1. Selon une première implémentation, une fonction cliente exécutée dans le module 15a interroge une fonction serveur exécutée dans le terminal client 1, selon une relation client- serveur. Plus précisément, il s'agit pour la fonction cliente de la fonction Collect IP Interface Status( id client), et pour la fonction serveur, de chaque terminal, de la fonction Generate DNS Marking O. La fonction cliente Collect IP Interface Status utilise un identifiant id client pour interroger le terminal en question et obtenir ses préférences IP grâce à la fonction locale Generate DNS Marking O. L'identifiant du client id client est soit l'adresse IP soit l'adresse physique d'une interface d'un terminal ayant généré au moins une requête DNS à destination du serveur DNS local 12. Comme exposé plus haut en relation avec la première variante (M1-V1), le code de marquage obtenu par la fonction cliente suite à l'interrogation d'un terminal client contient au plus trois couples d'information : un premier décrivant l'état des interfaces IPv4, un deuxième décrivant l'état des interfaces IPv6 et un troisième décrivant l'état des interfaces "double pile". Dans le cas particulier, où le module de marquage 15a est situé dans l'entité proxy DNS 13, le module 15a utilise une fonction d'interception des blocs d'information de type requête DNS pour obtenir pour chaque requête DNS l'identifiant du client à l'origine de cette requête DNS. Selon une seconde implémentation applicable, par exemple, à un contexte de clients résidentiels, la structure en mémoire (12d ou 13c) peut être alimentée manuellement par un utilisateur du terminal client 1 via une interface web fournie par un routeur-serveur DNS local 12. Ce routeur 12 étant alors confondu avec une passerelle résidentielle (désignée également box en anglais). Une fois le cache 12d ou 13c mis à jour, le module 15a passe ensuite à l'étape E43a. Dans le cas contraire (si le terminal est identifié avec des enregistrements valides, c.-à- d. dont la durée de vie est différente de zéro), on passe à l'étape E43a au cours de laquelle le module client 15a obtient des informations de préférence d'usage de la ou des interface(s) IP fonctionnelles du terminal client 1. Le module 15a passe ensuite à l'étape E45a. A l'étape E45a, selon une implémentation particulière, le module de marquage 15a applique à un bloc d'information DNS de type requête, une extension DNS EDNSO comme illustré à la figure 6. Selon une autre implémentation possible, le module de marquage 15a utilise le code de marquage obtenu à l'étape précédente (E44a) pour filtrer c'est-à-dire éliminer les blocs d'information DNS de type requête qui ont la priorité la plus faible. A l'étape E46a, le module 15a de marquage des blocs d'informations DNS transmet chaque bloc d'information DNS de type requête (marqué ou standard, selon l'implémentation), au module serveur DNS local 12a. Les étapes suivantes E47-E50 représentées à la figure 4, sont applicables aux deux variantes de réalisation décrites ci-dessus (M1-V1, Ml-V2). A l'étape E47, chaque bloc d'information DNS de type requête, généré à l'étape précédente (E46, E46a), est transmis à destination de l'entité serveur DNS autoritaire 14.Firstly, the module 15a consults the cache memory (12d or 13c) in order to obtain valid information indicating the type of each functional IP interface for the client terminal 1 under consideration. For this purpose, a Get IP Interface Status function (terminal id) is executed. Following the execution of the above function: if the terminal is not identified by at least one record in the memory structure 12d or 13c, or if the terminal is identified by at least one record in the memory structure 12d or 13c, but there is at least one record whose TTL is equal to 0 in the structure in memory then a cache update is triggered, in step E44a, via a collection function IP Interface Status (client id). The execution of this function causes the updating of the cache memory (12d or 13c), with indication of the interfaces of the client terminal, as well as the usage preferences of the functional network interface (s) of the client terminal 1 (identified by the '_id client' parameter). Otherwise (no record has a lifetime of zero), proceed to step E43a in which the client module 15a obtains usage preference information from the interface (s) Functional IP of the client terminal 1. According to a first implementation, a client function executed in the module 15a queries a server function executed in the client terminal 1, according to a client-server relationship. Specifically, this is for the client function of the Collect IP Interface Status function (client id), and for the server function of each terminal, the Generate DNS Marking O function. The Collect IP Interface Status client function uses a client id identifier to query the terminal in question and obtain its IP preferences thanks to the Generate DNS Marking O local function. The client id client identifier is either the IP address or the physical address of a terminal interface. having generated at least one DNS request destined for the local DNS server 12. As explained above in relation to the first variant (M1-V1), the marking code obtained by the client function following the interrogation of a client terminal contains at most three pairs of information: a first describing the state of the IPv4 interfaces, a second describing the state of the IPv6 interfaces and a third describing the state of the "double stack" interfaces. In the particular case, where the marking module 15a is located in the DNS proxy entity 13, the module 15a uses an interception function of the DNS query type information blocks to obtain for each DNS request the client identifier. at the origin of this DNS query. According to a second implementation applicable, for example, to a context of residential customers, the memory structure (12d or 13c) can be manually powered by a user of the client terminal 1 via a web interface provided by a local DNS server router 12. This router 12 is then confused with a residential gateway (also called box in English). Once the cache 12d or 13c is updated, the module 15a then proceeds to step E43a. In the opposite case (if the terminal is identified with valid records, ie whose lifetime is different from zero), proceed to step E43a in which the client module 15a obtains information. usage preference information of the functional IP interface (s) of the client terminal 1. The module 15a then proceeds to step E45a. In step E45a, according to a particular implementation, the marking module 15a applies to a request-type DNS information block an EDNSO DNS extension as illustrated in FIG. 6. According to another possible implementation, the marking module 15a uses the marking code obtained in the previous step (E44a) to filter that is to say eliminate the query type DNS information blocks that have the lowest priority. In step E46a, the DNS information block marking module 15a transmits each request-type DNS information block (marked or standard, depending on the implementation) to the local DNS server module 12a. The following steps E47-E50 shown in Figure 4, are applicable to the two embodiments described above (M1-V1, Ml-V2). In step E47, each request-type DNS information block generated in the previous step (E46, E46a) is transmitted to the authoritative DNS server entity 14.

Dans le mode de réalisation choisi et présenté, le serveur DNS autoritaire 14 comporte soit un module serveur DNS autoritaire standard 14a, soit un module serveur DNS autoritaire 14a enrichi d'un module serveur DNS64 autoritaire 14a'. Selon une première implémentation (notée IM1), le module 15b de traitement des blocs d'informations DNS (15b) selon l'invention est situé dans l'entité serveur DNS autoritaire 14, sur laquelle est instanciée un module serveur autoritaire DNS 14a et un module serveur autoritaire DNS64 14a' (voir figures 2 et 3). Toujours à l'étape E47, le module de traitement 15b active une fonction Read Code (DNS Request) afin d'obtenir à partir des extensions EDNSO de chaque bloc DNS de type requête reçu, les informations de préférence relatives au terminal client 1 (type d'interfaces IP fonctionnelles, préférences du terminal). A l'étape E48, lorsque le module 15b de traitement des blocs d'informations DNS est confondu avec le module serveur autoritaire DNS64 14a', il active une fonction Apply DNS Code (DNS Request, Code), afin d'obtenir des blocs d'information de type réponse DNS, adaptés au code de marquage obtenu de l'étape précédente (E47). Pour cela, le module de traitement 15b consulte une base de données DNS 14c ainsi que celle (14c') associée au l'entité 14a' afin d'obtenir un ou plusieurs enregistrements DNS adaptés aux contraintes du terminal client 1 via une fonction notée : Search DNS Code (DNS Request, Code) Si aucun enregistrement DNS satisfaisant au code de marquage ('Code'), n'est obtenu, et si les préférences associées au terminal client 1 permettent à ce dernier d'utiliser une ou plusieurs adresse(s) IP Fictive(s) (c'est-à-dire non native(s)), alors le module de traitement 15b en synthétise au moins une. Selon ce premier mode de réalisation de l'invention, la particularité de la fonction précitée est qu'elle est configurée pour privilégier toujours des enregistrements portant l'identité native de l'entité serveur 18, lorsque celle-ci correspond aux préférences et besoins du terminal client 1.In the embodiment chosen and presented, the authoritative DNS server 14 comprises either a standard authoritative DNS server module 14a or an authoritative DNS server module 14a enriched with an authoritative DNS64 server module 14a '. According to a first implementation (denoted IM1), the module 15b for processing the DNS information blocks (15b) according to the invention is located in the authoritative DNS server entity 14, on which is instantiated a DNS authoritative server module 14a and a DNS64 authoritative server module 14a '(see Figures 2 and 3). Still in step E47, the processing module 15b activates a Read Code function (DNS Request) in order to obtain from the EDNSO extensions of each received request type DNS block the preference information relating to the client terminal 1 (type functional IP interfaces, terminal preferences). In step E48, when the module 15b processing blocks of DNS information is confused with the authoritative server module DNS64 14a ', it activates a function Apply DNS Code (DNS Request, Code), in order to obtain blocks of DNS response type information, adapted to the marking code obtained from the previous step (E47). For this, the processing module 15b consults a DNS database 14c as well as that (14c ') associated with the entity 14a' in order to obtain one or more DNS records adapted to the constraints of the client terminal 1 via a function noted: Search DNS Code If no DNS record satisfying the marking code ('Code') is obtained, and if the preferences associated with the client terminal 1 allow the latter to use one or more addresses ( s) Fictitious IP (s) (that is to say non-native), then the processing module 15b synthesizes at least one. According to this first embodiment of the invention, the particularity of the aforementioned function is that it is configured to always privilege records bearing the native identity of the server entity 18, when it corresponds to the preferences and needs of the server. customer terminal 1.

Ainsi, selon une premier exemple, si le code de marquage obtenu est (<IPv4,2>,<IPv6,1>), la fonction Search DNS Code (DNS Request, Code) est configurée pour en déduire que le terminal client 1 est "double pile", mais qu'il "préfère" obtenir une réponse DNS de type IPv4, et ne retient par conséquent que l'enregistrement DNS IPv4. Dans ce cas, même si le serveur 18 est nativement "double pile" ou bien si celui-ci est accessible via une passerelle NAT64, seules ses adresses IPv4 natives seront envoyées au terminal client 1 incorporées dans un ou plusieurs blocs d'information de type réponse DNS IPv4. Selon un second exemple, si le code correspond à l'enregistrement : (<1Pv4,1>,<IPv6,1>), la fonction Search DNS Code (DNS Request, Code) est configurée pour en déduire que le terminal client 1 dispose d'une "double pile", et qu'il "souhaite" obtenir des réponses DNS de type IPv4 et des réponses DNS de type IPv6. Ainsi, si le serveur 18 est IPv4 mais qu'il est représenté en plus par une ou plusieurs adresses IPv6 fictives dans la base de donnée DNS ou via DNS64, alors seules les adresses natives IPv4 seront envoyées au terminal client 1 "double pile", via un ou plusieurs blocs d'information de type réponse DNS I Pv4.Thus, according to a first example, if the marking code obtained is (<IPv4,2>, <IPv6,1>), the Search DNS Code function (DNS Request, Code) is configured to deduce that the client terminal 1 is "double stack", but that it "prefers" to obtain a DNS response of type IPv4, and retains only the IPv4 DNS record. In this case, even if the server 18 is natively "double stacked" or if it is accessible via a NAT64 gateway, only its native IPv4 addresses will be sent to the client terminal 1 incorporated in one or more blocks of information type IPv4 DNS response. In a second example, if the code corresponds to the record: (<1Pv4,1>, <IPv6,1>), the Search DNS Code function (DNS Request, Code) is configured to deduce that the client terminal 1 has of a "double stack", and that it "wishes" to obtain IPv4-type DNS responses and IPv6-type DNS responses. Thus, if the server 18 is IPv4 but is additionally represented by one or more fictitious IPv6 addresses in the DNS database or via DNS64, then only the IPv4 native addresses will be sent to the client terminal 1 "double stack", via one or more information blocks of the DNS I Pv4 response type.

Selon un troisième exemple, si le code correspond à l'enregistrement : (<IPv4,1>,<IPv6,2>), la fonction Search DNS Code (DNS Request, Code) est configurée pour en déduire que le terminal client 1 dispose d'une "double pile", et qu'il "souhaite" obtenir des réponses DNS de type IPv4 et des réponses DNS de type IPv6, avec une préférence pour les adresses IPv6 natives. Ainsi, si le serveur 18 est IPv4 mais qu'il est représenté en plus par une ou plusieurs adresses IPv6 fictives dans la base de donnée DNS ou via DNS64, alors seules les adresses natives IPv4 seront envoyées au terminal client 1 "double pile", via un ou plusieurs blocs d'information de type réponse DNS IPv4, préférant ainsi les chemins natifs à la traversée de passerelles NAT (NAT64 dans cet exemple).According to a third example, if the code corresponds to the record: (<IPv4,1>, <IPv6,2>), the Search DNS Code function (DNS Request, Code) is configured to deduce that the client terminal 1 has of a "double stack", and that it "wants" to obtain IPv4-like DNS responses and IPv6-like DNS responses, with a preference for native IPv6 addresses. Thus, if the server 18 is IPv4 but is additionally represented by one or more fictitious IPv6 addresses in the DNS database or via DNS64, then only the IPv4 native addresses will be sent to the client terminal 1 "double stack", via one or more blocks of IPv4 DNS response type information, thus preferring native paths to traversing NAT gateways (NAT64 in this example).

Selon un quatrième exemple, si le code obtenu correspond à l'enregistrement suivant : (<IPv6,1>), la fonction Search DNS Code (DNS Request, Code) est configurée pour en déduire que le terminal client 1 a uniquement une pile IPv6 fonctionnelle et qu'il est possible de lui envoyer un bloc d'information DNS de type réponse avec des adresses IPv6 fictives. Dans ce cas, si le serveur 18 est IPv4 mais qu'il est représenté par une ou plusieurs adresses IPv6 fictives dans la base de donnée DNS (14c) ou via DNS64, alors, ces adresses IPv6 seront envoyées au terminal client 1, via un ou plusieurs blocs d'information de type réponse DNS IPv6. Selon une deuxième implémentation (notée IM2), le module 15b de traitement des blocs d'informations DNS n'est pas situé sur l'entité serveur DNS autoritaire 14 mais sur une entité serveur proxy DNS 16 localisée en amont de l'entité 14. Dans ce cas, à l'étape E48, le module 15b (confondu avec le module 16a sur la figure 3) intercepte chaque bloc d'information DNS de type requête, puis active une fonction Read Code (DNS Request), afin d'obtenir à partir des extensions EDNSO des blocs d'information DNS de type requête, les informations de préférence du terminal client 1 correspondant à la requête DNS (type d'interfaces IP fonctionnelles, préférences du terminal client). Le module 15b active ensuite la fonction Apply DNS Code (DNS Request, Code), afin d'obtenir au moins un bloc d'information de type requête DNS, adapté au code de marquage obtenu.According to a fourth example, if the obtained code corresponds to the following record: (<IPv6,1>), the Search DNS Code function (DNS Request, Code) is configured to deduce that the client terminal 1 has only one IPv6 stack functional and it is possible to send him a block of DNS information of type response with fictitious IPv6 addresses. In this case, if the server 18 is IPv4 but is represented by one or more fictitious IPv6 addresses in the DNS database (14c) or via DNS64, then these IPv6 addresses will be sent to the client terminal 1 via a or more IPv6 DNS response information blocks. According to a second implementation (denoted IM2), the module 15b for processing the DNS information blocks is not located on the authoritative DNS server entity 14 but on a DNS proxy server entity 16 located upstream of the entity 14. In this case, in step E48, the module 15b (confused with the module 16a in FIG. 3) intercepts each block of DNS information of the request type, then activates a Read Code function (DNS Request), in order to obtain from the EDNSO extensions of the query type DNS information blocks, the preference information of the client terminal 1 corresponding to the DNS request (type of functional IP interfaces, preferences of the client terminal). The module 15b then activates the Apply DNS Code function, in order to obtain at least one block of information of the DNS query type, adapted to the marking code obtained.

Pour cela, le module de traitement 15b active la fonction Search DNS Code (DNS Request, Code) afin d'obtenir au moins un enregistrement DNS adapté aux contraintes du terminal client 1. Cette fonction est configurée pour opérer comme suit, en fonction du code obtenu : Si le terminal client 1 est de type IPv6, alors le module de traitement 15b envoie le ou les blocs d'information de type requête DNS, au serveur DNS64 autoritaire (14a'). Il autorise ainsi, en cas de besoin, la synthèse d'adresses IPv6 fictives pour établir une communication entre le terminal client 1 et le serveur 18. Si le terminal client 1 est de type "double pile" ou IPv4, alors le module de traitement 15b transmet la ou les requêtes DNS directement au serveur DNS autoritaire (14a) et non pas au serveur DNS64 autoritaire. Ainsi, il n'autorise pas la synthèse d'adresses IPv6 fictives et préfère de ce fait pour les terminaux double pile les chemins natifs à la traduction. L'avantage de cette seconde implémentation (IM2) est que le module de traitement 15b est simple à implémenter car il n'agit que sur les requêtes DNS et non sur des réponses DNS.For this, the processing module 15b activates the Search DNS Code function (DNS Request, Code) to obtain at least one DNS record adapted to the constraints of the client terminal 1. This function is configured to operate as follows, depending on the code obtained: If the client terminal 1 is of the IPv6 type, then the processing module 15b sends the information block or blocks of DNS query type to the authoritative DNS64 server (14a '). It thus authorizes, if necessary, the synthesis of fictitious IPv6 addresses for establishing a communication between the client terminal 1 and the server 18. If the client terminal 1 is of the "double stack" or IPv4 type, then the processing module 15b transmits the DNS request (s) directly to the authoritative DNS server (14a) and not to the authoritative DNS64 server. Thus, it does not allow the synthesis of fictitious IPv6 addresses and therefore prefers native translation paths for dual-stack terminals. The advantage of this second implementation (IM2) is that the processing module 15b is simple to implement because it only acts on DNS requests and not on DNS responses.

Par conséquent, il ne requiert pas de structure en mémoire complexe pour associer des couples (requêtes DNS, code) avec des réponses DNS. Selon cette implémentation, il est possible d'interroger directement le serveur DNS autoritaire (14a), sans consulter le serveur DNS64 autoritaire (14a').Therefore, it does not require a complex memory structure to associate pairs (DNS queries, code) with DNS responses. According to this implementation, it is possible to directly query the authoritative DNS server (14a) without consulting the authoritative DNS64 server (14a ').

A l'étape E49, le serveur autoritaire 14 génère un ou plusieurs blocs d'information DNS de type réponse et les transmet au serveur DNS local 12 (module 12a). Enfin, à l'étape E50, le module DNS local 12a reçoit le ou les blocs d'information DNS de type réponse DNS. Il les stocke en mémoire 12c avant de les transmettre au module résolveur 11a du terminal client 1. Ce dernier les stocke en mémoire 11c avant de les transmettre à l'application cliente 11. Les réponses DNS obtenues par l'application 11 sont adaptées aux contraintes du terminal client 1. 2ème Mode de réalisation On va à présent décrire un second mode de réalisation de l'invention selon deux variantes de réalisation (notées M2-V1 et M2-V2). Les figures 7 et 8 représentent respectivement un environnement réseau selon la première variante et un environnement réseau selon la seconde variante, de ce second mode de réalisation. La figure 9 est un organigramme illustrant un procédé de résolution d'un nom de serveur selon le deuxième mode de réalisation, applicable aux deux variantes précitées. Enfin, la figure 10 représente le format d'une réponse DNS, applicable à ce deuxième mode de réalisation. Selon ce second mode de réalisation de l'invention, le système de traitement d'une demande de résolution d'un nom d'un serveur par une application cliente, comprend un module (15a) de marquage de réponses DNS (blocs d'informations DNS de type réponse) et un module (15b) de traitement des réponses DNS marquées. Pour les deux variantes considérées, le module 15a de marquage est localisé dans le serveur DNS autoritaire 14. Selon les variantes considérées, le module 15b de traitement des réponses marquées est localisé soit dans le résolveur 11a (voir figure 7), soit dans un le serveur DNS local 12a ou bien dans un serveur DNS proxy 13 situé en amont du serveur DNS 12a (voir figure 8). Selon le deuxième mode de réalisation, la mise en oeuvre du procédé selon l'invention est déclenchée par la réception par une entité serveur DNS (14a, 14a'), d'une requête pour la résolution d'un nom du serveur (18) en une ou en plusieurs adresses réseau. Cette requête est initiée par le serveur DNS local 12 (module 12a), pour le compte d'une application cliente 11, ayant émise une requête d'accès à destination de ce serveur (18). A la figure 9, le processus de traitement d'une demande de résolution DNS selon l'invention débute par l'étape E90 au cours de laquelle le serveur DNS autoritaire 14 reçoit une demande de résolution du nom du serveur 18, sous la forme de blocs d'information DNS de type requête DNS IPv4 et/ou IPv6.In step E49, the authoritative server 14 generates one or more blocks of DNS information of the response type and transmits them to the local DNS server 12 (module 12a). Finally, in step E50, the local DNS module 12a receives the DNS response type information block or blocks. It stores them in memory 12c before transmitting them to the resolver module 11a of the client terminal 1. The latter stores them in memory 11c before transmitting them to the client application 11. The DNS responses obtained by the application 11 are adapted to the constraints of the client terminal 1. 2nd Embodiment A second embodiment of the invention will now be described according to two variant embodiments (denoted M2-V1 and M2-V2). FIGS. 7 and 8 respectively represent a network environment according to the first variant and a network environment according to the second variant of this second embodiment. Fig. 9 is a flowchart illustrating a method of resolving a server name according to the second embodiment, applicable to the two aforementioned variants. Finally, FIG. 10 represents the format of a DNS response applicable to this second embodiment. According to this second embodiment of the invention, the system for processing a request for the resolution of a name of a server by a client application comprises a module (15a) for marking DNS responses (information blocks DNS response type) and a module (15b) for processing the DNS responses marked. For both variants considered, the marking module 15a is located in the authoritative DNS server 14. According to the variants under consideration, the module 15b for processing the marked responses is located either in the resolver 11a (see FIG. 7) or in the local DNS server 12a or in a proxy DNS server 13 located upstream of the DNS server 12a (see Figure 8). According to the second embodiment, the implementation of the method according to the invention is triggered by the reception by a DNS server entity (14a, 14a ') of a request for the resolution of a server name (18) in one or more network addresses. This request is initiated by the local DNS server 12 (module 12a), on behalf of a client application 11, having sent an access request to this server (18). In FIG. 9, the process for processing a DNS resolution request according to the invention starts with the step E90 during which the authoritative DNS server 14 receives a request for resolution of the name of the server 18, in the form of DNS information blocks of the IPv4 and / or IPv6 DNS query type.

Selon une première configuration, l'entité serveur 14 contient un serveur DNS autoritaire14a, et selon une autre configuration, l'entité serveur 14 comporte en plus du serveur DNS autoritaire 14a, un module serveur DNS64 standard 14a'.According to a first configuration, the server entity 14 contains an authoritative DNS server 14a, and according to another configuration, the server entity 14 comprises in addition to the authoritative DNS server 14a, a standard DNS64 server module 14a '.

Les étapes suivantes E91-E97 représentées à la figure 9, sont applicables aux deux variantes de réalisation décrites ci-dessus (M2-V1, M2-V2). A l'étape E91, en réponse aux requêtes DNS reçues, l'entité serveur 14 tente d'obtenir des réponses DNS.The following steps E91-E97 shown in FIG. 9 are applicable to the two embodiments described above (M2-V1, M2-V2). In step E91, in response to the received DNS requests, the server entity 14 attempts to obtain DNS responses.

Selon la première configuration, l'entité 14 contient un serveur DNS autoritaire standard 14a. Celui-ci consulte sa base de données 14c à la recherche d'enregistrements DNS IPv4 ou IPv6 correspondant au serveur 18. Selon une deuxième configuration, l'entité 14 contient en plus du serveur DNS autoritaire standard 14a, un serveur DNS64 autoritaire 14a'. Celui-ci traite les requêtes DNS comme suit : Pour chaque requête DNS IPv4 reçue, la requête DNS IPv4 est traitée par le serveur DNS standard 14a. Pour chaque requête DNS IPv6 reçue, le serveur DNS64 14a' consulte le serveur DNS 14a, lequel consulte sa base de données 14c à la recherche d'enregistrement DNS représentant le serveur 18. Si au moins un enregistrement DNS est obtenu, alors, selon le cas, le serveur DNS64 14a' génèrera: o Une réponse DNS6 IPv6 contenant au moins un enregistrement DNS IPv6 incluant une adresse IPv6 « native » du serveur 18 « double pile » ; o Une réponse DNS6 IPv6 contenant au moins un enregistrement DNS IPv6 incluant une adresse IPv6 « fictive » du serveur 18 IPv4. Cette adresse est synthétisée par le serveur DNS64 comme décrit plus haut.According to the first configuration, the entity 14 contains a standard authoritative DNS server 14a. The latter consults its database 14c looking for IPv4 or IPv6 DNS records corresponding to the server 18. According to a second configuration, the entity 14 contains in addition to the standard authoritative DNS server 14a, an authoritative DNS64 server 14a '. The latter processes the DNS requests as follows: For each IPv4 DNS request received, the IPv4 DNS request is processed by the standard DNS server 14a. For each IPv6 DNS request received, the DNS64 server 14a 'consults the DNS server 14a, which consults its database 14c looking for the DNS record representing the server 18. If at least one DNS record is obtained, then, according to the In this case, the DNS64 server 14a 'will generate: o An IPv6 DNS6 response containing at least one IPv6 DNS record including a "native" IPv6 address of the "double stack" server 18; o An IPv6 DNS6 response containing at least one IPv6 DNS record including a "fictitious" IPv6 address of the IPv4 server. This address is synthesized by the DNS64 server as described above.

Selon l'invention, selon la configuration choisie (comme exposé ci-dessus), le module de marquage 15a peut être confondu soit avec le serveur DNS autoritaire 14a, soit avec le serveur DNS64 14a'. A l'étape E91, lors de l'obtention de réponses DNS associée(s) à une requête DNS, le module de marquage 15a inscrit dans une structure en mémoire 15d (confondue avec la structure 14d sur la figure 7) une information "Type" définie ci-après. La structure de données en mémoire 14d se compose des champs suivants : Un champ contenant un identifiant de la requête DNS traitée, obtenu par copie de l'identifiant de la requête DNS traitée. Il est codé sur 16 bits. Un champ contenant un identifiant de l'enregistrement DNS, dans l'ordre de son obtention par le module 14 (14a ou 14a' selon la configuration). Ce champ est codé sur 4 bits. Selon une implémentation, on peut prévoir que ce champ contienne l'adresse IP contenue dans l'enregistrement DNS obtenu.According to the invention, according to the configuration chosen (as explained above), the marking module 15a can be confused with either the authoritative DNS server 14a or the DNS64 server 14a '. In step E91, when obtaining DNS responses associated with a DNS request, the marking module 15a inscribes in a memory structure 15d (which is identical with the structure 14d in FIG. 7) a "type" information. "defined below. The data structure in memory 14d consists of the following fields: A field containing an identifier of the processed DNS request, obtained by copying the identifier of the processed DNS request. It is coded on 16 bits. A field containing an identifier of the DNS record, in the order of its obtaining by the module 14 (14a or 14a 'according to the configuration). This field is coded on 4 bits. According to one implementation, it can be provided that this field contains the IP address contained in the DNS record obtained.

Un champ indiquant le "Type" de l'enregistrement. Le Type d'un enregistrement dans la structure 14d indique le type de l'adresse IP contenue dans cet enregistrement DNS. Ce champ est codé sur 2 bits comme suit: 00 : "Authentique", "Non partagée" 01 : "Authentique", "partagée" : "Fictive", "Non partagée" 11 : "Fictive", "partagée" A l'étape E92, le serveur DNS autoritaire 14 (le module 14a ou le module 14a' selon la 10 configuration choisie) achemine le bloc d'information de type réponse DNS au module de marquage 15a. On peut également prévoir que le module de marquage 15a intercepte le bloc d'information de type réponse DNS. A l'étape E93, le module de marquage des blocs d'informations DNS 15a vérifie qu'il existe au moins un enregistrement dans le bloc d'information de type réponse DNS en cours de traitement. Si la réponse DNS n'est pas vide, c'est-à-dire qu'elle contient au moins un enregistrement DNS de type IPv4 ou bien de type IPv6, alors le module 15a passe à l'étape E94. Dans le cas contraire, à l'étape E95, la réponse DNS vide ne subit aucun marquage. Le module 15a passe à l'étape E97.A field indicating the "Type" of the record. The Type of a record in structure 14d indicates the type of IP address contained in this DNS record. This field is coded on 2 bits as follows: 00: "Authentic", "Not shared" 01: "Authentic", "shared": "Fictive", "Not shared" 11: "Fictitious", "shared" At the step E92, the authoritative DNS server 14 (the module 14a or the module 14a 'according to the chosen configuration) routes the DNS response type information block to the marking module 15a. It is also possible that the marking module 15a intercepts the block of information type DNS response. In step E93, the DNS information block marking module 15a verifies that there is at least one record in the DNS response type information block being processed. If the DNS response is not empty, that is to say that it contains at least one IPv4 or IPv6 type DNS record, then the module 15a proceeds to step E94. Otherwise, in step E95, the empty DNS response is not tagged. The module 15a goes to the step E97.

A l'étape E94, la réponse DNS n'étant pas vide, le module 15a active la fonction locale Generate DNS Response Marking (DNS Request ID), dont l'exécution provoque la consultation du cache 14d afin d'obtenir le type des adresses IP contenues dans le ou les enregistrement(s) DNS d'une réponse DNS associée à une requête DNS. La fonction Generate DNS Response Marking est configurée pour identifier d'abord, dans la mémoire 14d la requête DNS initiale, par le champ identifiant de la requête DNS(DNS Request ID) (voir étape E91 plus haut). Ensuite, la fonction précitée obtient, dans l'ordre de leur lecture, le Type de chaque enregistrement DNS inclus dans la réponse. Les informations obtenues constituent un code de marquage des réponses DNS utilisé à l'étape suivante (E96). Ainsi par exemple, le code "0010" obtenu pour une réponse DNS indique que la réponse DNS contient deux enregistrements DNS: Le premier enregistrement DNS contient une adresse IPv4 publique, "Authentique" "Non partagée" Le deuxième enregistrement DNS contient une adresse IPv6 globale "Fictive", "Non partagée", synthétisée par le module DNS64 (14a').At the step E94, the DNS response not being empty, the module 15a activates the local function Generate DNS Response Marking (DNS Request ID), the execution of which causes the consultation of the cache 14d in order to obtain the type of the addresses IPs contained in the DNS record (s) of a DNS response associated with a DNS query. The Generate DNS Response Marking function is configured to first identify the initial DNS request in the memory 14d by the DNS Request ID identifier field (see step E91 above). Then, the above function obtains, in the order of their reading, the Type of each DNS record included in the response. The information obtained is a DNS response marking code used in the next step (E96). For example, the "0010" code obtained for a DNS response indicates that the DNS response contains two DNS records: The first DNS record contains a public IPv4 address, "Authentic" "Not shared" The second DNS record contains a global IPv6 address "Fictive", "Not shared", synthesized by the DNS64 module (14a ').

A l'étape E96 le module de marquage (15a) active la fonction de marquage Apply Marking (DNS Response, Code) dont l'exécution provoque l'application à chaque bloc d'information de type réponse DNS, le code obtenu à l'étape E94. Ce code indique le type de chaque enregistrement inclus dans la réponse DNS, dans l'ordre de leur insertion dans la réponse DNS.In step E96, the marking module (15a) activates the Apply Marking (DNS Response, Code) marking function whose execution causes the application to each block of information of the DNS response type, the code obtained by the step E94. This code indicates the type of each record included in the DNS response, in the order of their insertion in the DNS response.

A cette fin, la fonction Apply Marking insère le code précité dans le champ RDATA de l'extension EDNSO appliquée à la réponse DNS, comme représenté à la figure 10. L'envoi des blocs d'information DNS de type requête à destination de l'entité serveur DNS local 12 est illustré par l'étape E97.To this end, the Apply Marking function inserts the above code in the RDATA field of the EDNSO extension applied to the DNS response, as shown in Figure 10. The sending of the request-type DNS information blocks to local DNS server entity 12 is illustrated by step E97.

A l'étape E97, chaque bloc d'information de type réponse DNS généré à l'étape précédente (E96, E96a) est transmis à destination de l'entité serveur DNS local 12 (module 12a). A l'étape E98, l'ensemble de blocs d'information de type réponse DNS est reçu par le module serveur DNS local 12a.In step E97, each DNS response type information block generated in the previous step (E96, E96a) is transmitted to the local DNS server entity 12 (module 12a). In step E98, the set of DNS response type information blocks is received by the local DNS server module 12a.

Si la réponse DNS reçue est vide alors elle est non marquée. Cette réponse est acheminée telle qu'elle par le serveur DNS local 12a à destination de l'application 11. Sinon, il existe au moins une réponse DNS non vide et marquée. Le traitement des réponses DNS marquées est alors mis en oeuvre. - Traitement des réponses DNS marquées Comme dit précédemment, dans les variantes de réalisation exposées, le module 15b de traitement des blocs d'informations de type réponse DNS est situé, selon une première variante (M2-V1) dans le module résolveur DNS local (11a) (voir figure 7), et selon une deuxième variante (M2-V2) dans le module DNS local 12a ou proxy 13 (voir figure 8).If the received DNS response is empty then it is unmarked. This response is routed as it is by the local DNS server 12a to the application 11. Otherwise, there is at least one non-empty and marked DNS response. The processing of the marked DNS responses is then implemented. Processing of the Marked DNS Responses As mentioned above, in the embodiments shown, the module 15b for processing DNS response type information blocks is located, according to a first variant (M2-V1) in the local DNS resolver module ( 11a) (see FIG. 7), and according to a second variant (M2-V2) in the local DNS module 12a or proxy 13 (see FIG. 8).

Première variante du 2ème mode de réalisation (M2-V1) Selon la première variante M2-V1du traitement des réponses marquées, le module 15b de traitement des blocs d'informations de type réponse DNS est situé dans le module résolveur DNS local (11 a), comme illustré par la figure 7. Dans ce cas, à l'étape E98, le module serveur DNS local 12a mémorise les réponses DNS reçues dans la structure en mémoire 12c. Le module 12a transmet ensuite chaque bloc d'information reçu de type réponse DNS marquée, sans modification, au terminal client (1). A l'étape E99, les blocs d'information DNS marquées sont reçus par l'entité 11 a du terminal client 1. Ils sont d'abord stockés en mémoire cache 11c. Ensuite, ils sont traités par le module de traitement des blocs d'informations DNS (15b), confondu avec le module résolveur (11 a). Selon cette première variante du deuxième mode de réalisation de l'invention (M2-V1), le module de traitement 15b gère dans une structure en mémoire 15c, l'état des interfaces IP fonctionnelles du terminal client 1. Cette structure de données 15c, décrite plus haut, indique pour chaque interface IP active, son type, son identifiant, son état, la préférence d'usage de l'interface ainsi qu'une durée de validité (Time to Live - TTL). Afin d'obtenir les préférences IP du terminal client 1, le module de traitement 15b exécute la fonction locale Get IP Interface Status Summary ().First Variant of the 2nd Embodiment (M2-V1) According to the first variant M2-V1 of the processing of the marked responses, the module 15b for processing the DNS response type information blocks is located in the local DNS resolver module (11 a) as shown in FIG. 7. In this case, in step E98, the local DNS server module 12a stores the DNS responses received in the memory structure 12c. The module 12a then transmits each block of received information of the DNS response type marked, without modification, to the client terminal (1). In step E99, the marked DNS information blocks are received by the entity 11a of the client terminal 1. They are first stored in the cache 11c. Then, they are processed by the DNS information block processing module (15b), confused with the resolver module (11a). According to this first variant of the second embodiment of the invention (M2-V1), the processing module 15b manages in a memory structure 15c the state of the functional IP interfaces of the client terminal 1. This data structure 15c, described above, indicates for each active IP interface, its type, its identifier, its state, the preference of use of the interface as well as a validity period (Time to Live - TTL). In order to obtain the IP preferences of the client terminal 1, the processing module 15b executes the local function Get IP Interface Status Summary ().

Cette fonction vérifie d'abord si le cache 15c contient au moins un enregistrement dont la durée de vie (TTL) est égale à zéro. Si c'est le cas, alors la mise à jour du cache 15c est forcée par l'exécution de la fonction Collect IP Interface Status( ip interface). Dans le cas contraire (si aucun enregistrement n'a une durée de vie égale à zéro), on passe à l'étape E100. A cette étape, une fonction notée : Generate Terminal IP Preference () est exécutée afin d'obtenir un résumé de l'information valide obtenue du cache 15c. Cette fonction résume le contenu du cache 15c en un code qui va indiquer les préférences IP instantanées du terminal client 1.This function first checks whether the cache 15c contains at least one record whose lifetime (TTL) is equal to zero. If this is the case, then the updating of the cache 15c is forced by the execution of the Collect IP Interface Status function (ip interface). In the opposite case (if no record has a lifetime equal to zero), proceed to step E100. At this stage, a function noted: Generate Terminal IP Preference () is executed in order to obtain a summary of the valid information obtained from cache 15c. This function summarizes the contents of the cache 15c into a code that will indicate the instantaneous IP preferences of the client terminal 1.

L'exécution de la fonction Generate Terminal IP Preference précitée provoque d'abord la sélection du type et de la préférence d'usage de chaque enregistrement représentant une interface IP fonctionnelle (dont la valeur du champ "Etat fonctionnel de l'interface IP" est à 0, voir plus haut). Puis, les redondances entre ces enregistrements sont éliminées et pour chaque ensemble d'enregistrements fonctionnels du cache 15c, un seul code de marquage est généré. Chaque code contient au plus trois couples d'information : un premier décrivant l'état des interfaces IPv4, un deuxième décrivant l'état des interfaces IPv6 et un troisième décrivant l'état des interfaces "double pile". La valeur du code généré par la fonction Generate Terminal IP Preference est codée sur 32 bits. A titre d'exemple, si le cache 15c du module de marquage contient les enregistrements suivants : - <10, 192.0.1.10, 0, 2, 5> - <01, 2a01:c079::c0a8:1c3, 1,0, 5> - <01, 2a11:0db8::d0b8:1, 0,1, 5> Alors, la fonction Generate DNS Request Marking g énèrera le code suivant : (<IPv4,2>,<IPv6,1>) On passe ensuite à l'étape E101 au cours de laquelle, le module de traitement 15b active la fonction Apply Marking (DNS Response, Code1, Code2) pour adapter les enregistrements DNS contenus dans la ou les réponse(s) DNS reçue(s) aux contraintes du terminal client 1.Execution of the aforementioned Generate Terminal IP Preference function first causes the selection of the type and the usage preference of each record representing a functional IP interface (whose value of the field "Functional state of the IP interface" is to 0, see above). Then, the redundancies between these records are eliminated and for each set of functional records of the cache 15c, only one marking code is generated. Each code contains at most three pairs of information: a first describing the state of the IPv4 interfaces, a second describing the state of the IPv6 interfaces and a third describing the state of the "double stack" interfaces. The value of the code generated by the Generate Terminal IP Preference function is 32-bit. For example, if the cache 15c of the marking module contains the following records: - <10, 192.0.1.10, 0, 2, 5> - <01, 2a01: c079 :: c0a8: 1c3, 1.0, 5> - <01, 2a11: 0db8 :: d0b8: 1, 0,1, 5> Then the Generate DNS Request Marking function will generate the following code: (<IPv4,2>, <IPv6,1>) Pass then at step E101 in which, the processing module 15b activates the Apply Marking function (DNS Response, Code1, Code2) to adapt the DNS records contained in the DNS response (s) received (s) to the constraints the client terminal 1.

Pour cela, il utilise le code indiqué dans le marquage des réponses DNS (champ RDATA), ainsi que le code indiquant l'état des interfaces IP fonctionnelles du terminal 1 afin de fournir à l'application cliente (11) seulement la ou les adresses IP "utiles" du serveur 18, c'est-à-dire, celles qui sont adaptées aux contraintes du réseau du terminal client 1. Ainsi, si le code indiquant les préférences IP du terminal client 1 est (<IPv4,2>,<IPv6,1>), et que la réponse obtenu contient deux enregistrements DNS : - Un premier enregistrement DNS qui comprend une adresse IPv4 authentique non partagé - Un deuxième enregistrement DNS qui comprend une adresse IPv6 fictive non partagé alors, la fonction Apply Marking indiquera à l'application cliente 11 uniquement l'adresse IPv4 du serveur 18. Elle supprime la réponse DNS contenant une adresse IPv6 fictive. Dans un autre exemple, si le code indiquant les préférences IP du terminal client 1 est (<1Pv4,1>,<IPv6,1>), et que la réponse obtenu contient deux enregistrements DNS : Un premier enregistrement DNS qui comprend une adresse IPv4 authentique non partagé Un deuxième enregistrement DNS qui comprend une adresse IPv6 authentique non partagé alors cela signifie que le terminal 1 est configuré pour accepter de manière équivalente les réponses DNS IPv4 et les réponses DNS IPv6. Le module de traitement 15b retourne alors à l'application cliente (11) les adresses IPv4 et IPv6. Dans un troisième exemple, si le code indiquant les préférences IP du terminal client 1 est (<IPv6,1>), et que la réponse obtenu contient deux enregistrements DNS : - Un premier enregistrement DNS qui comprend une adresse IPv4 authentique non partagé - Un deuxième enregistrement DNS qui comprend une adresse IPv6 fictive non partagé alors le module de traitement 15b retourne à l'application cliente (11) l'adresse IPv6 fictive. Enfin, à l'étape E102, l'application cliente (11) obtient du module 11a, confondu avec le module 15b une ou plusieurs adresses IP associées à l'entité serveur 18, adaptées aux contraintes du réseau du terminal 1.For this, it uses the code indicated in the marking of the DNS responses (RDATA field), as well as the code indicating the state of the functional IP interfaces of the terminal 1 in order to provide the client application (11) only the address or addresses "Useful" IPs of the server 18, that is to say those adapted to the constraints of the network of the client terminal 1. Thus, if the code indicating the IP preferences of the client terminal 1 is (<IPv4.2>, <IPv6,1>), and the resulting response contains two DNS records: - A first DNS record that includes a genuine non-shared IPv4 address - A second DNS record that includes a non-shared fictitious IPv6 address then, the Apply Marking function will indicate to the client application 11 only the IPv4 address of the server 18. It removes the DNS response containing a fictitious IPv6 address. In another example, if the code indicating the IP preferences of the client terminal 1 is (<1Pv4,1>, <IPv6,1>), and the response obtained contains two DNS records: A first DNS record that includes an IPv4 address Authentic Unshared A second DNS record that includes a genuine non-shared IPv6 address means that Terminal 1 is configured to equally accept IPv4 DNS responses and IPv6 DNS responses. The processing module 15b then returns to the client application (11) the IPv4 and IPv6 addresses. In a third example, if the code indicating the IP preferences of the client terminal 1 is (<IPv6,1>), and the response obtained contains two DNS records: - A first DNS record that includes an authentic non-shared IPv4 address - A second DNS record that includes a non-shared fictitious IPv6 address then the processing module 15b returns to the client application (11) the fictitious IPv6 address. Finally, in step E102, the client application (11) obtains from the module 11a, confused with the module 15b, one or more IP addresses associated with the server entity 18, adapted to the constraints of the network of the terminal 1.

Deuxième variante du 2ème mode de réalisation (M2-V2) Selon la deuxième variante M2-V2 du traitement des réponses marquées, le module 15b de traitement des blocs d'informations de type réponse DNS est situé dans le module serveur DNS local 12a ou bien dans le module proxy DNS 13, comme illustré par la figure 8. Une structure en mémoire 15d, est gérée par le module 15b. Cette structure en mémoire correspond soit à la mémoire référencée 12d lorsque le module de marquage 15b est situé dans le serveur DNS local 12, soit à la mémoire référencée 13c lorsque le module de marquage 15b est situé dans le serveur proxy DNS local 13. Cette mémoire, 12d ou 13c selon le cas, contient notamment pour chaque terminal client (1) des enregistrements, définissant pour chaque terminal client (1), les interfaces IP, la pile ou type des interfaces IP actives et fonctionnelles (IPv4 ou IPv6), la préférence d'usage par type d'interface, ainsi qu'une valeur de durée de validité (TTL). A l'étape E98a, le module de traitement des blocs d'informations DNS (15b) associe d'abord la réponse obtenu au terminal client qui a généré la requête DNS associée. Pour cela, le module 15b maintient au préalable une structure en mémoire associant chaque bloc d'information DNS au terminal qui l'a généré (structure 15e). Ensuite, à l'étape E99a, le module 15b exécute un certain nombre de fonctions pour obtenir les préférences IP du terminal client ayant généré la requête DNS en question.Second Variant of the 2nd Embodiment (M2-V2) According to the second variant M2-V2 of the processing of the marked responses, the module 15b for processing the DNS response type information blocks is located in the local DNS server module 12a or else in the DNS proxy module 13, as shown in FIG. 8. A memory structure 15d is managed by the module 15b. This structure in memory corresponds either to the memory referenced 12d when the marking module 15b is located in the local DNS server 12, or to the memory referenced 13c when the marking module 15b is located in the local DNS proxy server 13. This memory , 12d or 13c as appropriate, contains in particular for each client terminal (1) records, defining for each client terminal (1), the IP interfaces, the stack or type of active and functional IP interfaces (IPv4 or IPv6), the preference of use by type of interface, as well as a value of duration of validity (TTL). In step E98a, the DNS information block processing module (15b) first associates the response obtained with the client terminal that generated the associated DNS request. For this, the module 15b previously maintains a memory structure associating each block of DNS information to the terminal that generated it (structure 15e). Then, in step E99a, the module 15b performs a number of functions to obtain the IP preferences of the client terminal that generated the DNS query in question.

Tout d'abord, le module 15b consulte la mémoire cache (12d ou 13c) afin d'obtenir des informations valides indiquant le type de chaque interface IP fonctionnelle pour le terminal client 1 considéré. A cette fin, une fonction Get IP Interface Status (id terminal) est exécutée. Le module 15b utilise en effet l'identifiant de la requête DNS pour obtenir l'identifiant du terminal qui a généré la requête DNS. Suite à l'exécution de la fonction précitée : si le terminal n'est pas identifié par au moins un enregistrement dans la structure en mémoire 12d ou 13c, ou bien, si le terminal est identifié par au moins un enregistrement dans la structure en mémoire 12d ou 13c, mais qu'il existe au moins un enregistrement dont le TTL est égal à 0 dans la structure en mémoire, alors une mise à jour du cache est déclenchée, par l'intermédiaire d'une fonction Collect IP Interface Status( id client). L'exécution de cette fonction provoque la mise à jour de la mémoire cache (12d ou 13c), avec indication des interfaces du terminal client, ainsi que des préférences d'usage de la ou des interface(s) réseau fonctionnelles du terminal client 1 (identifié par le paramètre '_id client). Selon une première implémentation, une fonction cliente exécutée dans le module 15b interroge une fonction serveur exécutée dans le terminal client 1, selon une relation client-serveur. Plus précisément, il s'agit pour la fonction cliente de la fonction Collect IP Interface Status( id client), et pour la fonction serveur, de chaque terminal, de la fonction Generate Client Terminal Preferences(), similaire à la fonction Generate DNS Request Marking O décrite plus haut. La fonction cliente Collect IP Interface Status utilise un identifiant id client pour interroger le terminal en question et obtenir ses préférences IP ainsi que la liste de ces interfaces IP, grâce à une fonction serveur sur le terminal client 1 que nous appelons Generate Client Terminal Preferences O. L'identifiant du client id client est soit l'adresse IP soit l'adresse physique d'une interface d'un terminal ayant généré au moins une requête DNS à destination du serveur DNS local 12. Le code de marquage obtenu par la fonction cliente suite à l'interrogation d'un terminal client contient au plus trois couples d'information : un premier décrivant l'état des interfaces IPv4, un deuxième décrivant l'état des interfaces IPv6 et un troisième décrivant l'état des interfaces "double pile". Dans le cas particulier, où le module 15b est situé dans l'entité proxy DNS 13, le module 15b utilise une fonction d'interception des blocs d'information de type requête DNS pour obtenir pour chaque requête DNS l'identifiant du terminal client à l'origine de cette requête DNS.Firstly, the module 15b consults the cache memory (12d or 13c) in order to obtain valid information indicating the type of each functional IP interface for the client terminal 1 under consideration. For this purpose, a Get IP Interface Status function (terminal id) is executed. The module 15b uses the identifier of the DNS query to obtain the identifier of the terminal that generated the DNS query. Following the execution of the above function: if the terminal is not identified by at least one record in the memory structure 12d or 13c, or if the terminal is identified by at least one record in the memory structure 12d or 13c, but there is at least one record whose TTL is 0 in the memory structure, then a cache update is triggered, via a Collect IP Interface Status function (id customer). The execution of this function causes the updating of the cache memory (12d or 13c), with indication of the interfaces of the client terminal, as well as the usage preferences of the functional network interface (s) of the client terminal 1 (identified by the '_id client' parameter). According to a first implementation, a client function executed in the module 15b interrogates a server function executed in the client terminal 1, according to a client-server relationship. Specifically, for the client function, this is the Collect IP Interface Status function (client id), and for the server function, for each terminal, the Generate Client Terminal Preferences () function, similar to the Generate DNS Request function. Marking O described above. The Collect IP Interface Status client function uses a client id identifier to query the terminal in question and obtain its IP preferences and the list of these IP interfaces, thanks to a server function on the client terminal 1 that we call Generate Client Terminal Preferences O The client ID of the client is either the IP address or the physical address of an interface of a terminal that has generated at least one DNS request to the local DNS server 12. The marking code obtained by the function client following the interrogation of a client terminal contains at most three pairs of information: a first describing the state of IPv4 interfaces, a second describing the state of IPv6 interfaces and a third describing the state of interfaces "double battery". In the particular case, where the module 15b is located in the DNS proxy entity 13, the module 15b uses a function of interception of the DNS query type information blocks to obtain for each DNS request the identifier of the client terminal to the origin of this DNS query.

Ensuite, il communique avec le terminal comme décrit ci-dessous pour obtenir la liste des interfaces IP du terminal ainsi que ses préférences IP. Selon une seconde implémentation applicable, par exemple, à un contexte de clients résidentiels, la structure en mémoire (12d ou 13c) peut être alimentée manuellement par un utilisateur du terminal client 1 via une interface web fournie par un routeur-serveur DNS local 12. Ce routeur 12 étant alors confondu avec une passerelle résidentielle (désignée également box en anglais). Une fois le cache 12d ou 13c mis à jour, le module 15b passe ensuite à l'étape E100a. Dans le cas contraire (si le terminal est identifié avec des enregistrements valides, c.-à- d. dont la durée de vie est différente de zéro), on passe à l'étape E100a au cours de laquelle le module 15b obtient des informations de préférence d'usage de la ou des interface(s) IP fonctionnelles du terminal client 1. A l'étape E100a, le module 15b stocke d'abord l'ensemble des réponses DNS marquées reçues dans la mémoire 12c. Ensuite, il active la fonction Apply Marking (DNS Response, Codel , Code2) pour adapter les enregistrements DNS contenues dans la ou les réponse(s) DNS aux contraintes du terminal client 1. Pour cela, il utilise le code indiqué dans le marquage des réponses DNS (champ RDATA), ainsi que le code indiquant l'état des interfaces IP fonctionnelles du terminal 1 afin d'indiquer au terminal client (11) uniquement la ou les réponses DNS reçues "utiles", c'est-à- dire, celles qui sont adaptées aux contraintes du réseau de celui-ci. Cette fonction est similaire à ce qui est décrit plus haut (E101). Le module 15b passe ensuite à l'étape E101a, où il envoie les enregistrements DNS utiles résultant de l'étape précédente E100a dans un ou plusieurs bloc(s) d'information de type réponse DNS, au terminal client 1.Then, it communicates with the terminal as described below to obtain the list of IP interfaces of the terminal as well as its IP preferences. According to a second implementation applicable, for example, to a context of residential customers, the memory structure (12d or 13c) can be manually powered by a user of the client terminal 1 via a web interface provided by a local DNS server router 12. This router 12 is then confused with a residential gateway (also called box in English). Once the cache 12d or 13c is updated, the module 15b then proceeds to step E100a. In the opposite case (if the terminal is identified with valid records, ie whose lifetime is different from zero), we proceed to the step E100a during which the module 15b obtains information. preferably of use of the functional IP interface (s) of the client terminal 1. In step E100a, the module 15b stores first of all the marked DNS responses received in the memory 12c. Then, it activates the Apply Marking function (DNS Response, Codel, Code2) to adapt the DNS records contained in the DNS response (s) to the constraints of the client terminal 1. For this, it uses the code indicated in the marking of the DNS responses (RDATA field), as well as the code indicating the state of the functional IP interfaces of the terminal 1 in order to indicate to the client terminal (11) only the DNS response (s) received "useful", that is to say , those which are adapted to the constraints of the network of this one. This function is similar to what is described above (E101). The module 15b then proceeds to the step E101a, where it sends the useful DNS records resulting from the previous step E100a in one or more block (s) of DNS response type information to the client terminal 1.

Enfin, à l'étape E102a, l'entité 11a reçoit une ou plusieurs adresses IP associées à l'entité serveur 18, adaptées aux contraintes du réseau du terminal 1. Elle les stocke en mémoire 11c avant de les livrer à l'application cliente (11).30Finally, in step E102a, the entity 11a receives one or more IP addresses associated with the server entity 18, adapted to the constraints of the network of the terminal 1. It stores them in memory 11c before delivering them to the client application (11) .30

Claims (16)

REVENDICATIONS1. Procédé de traitement d'une demande de résolution d'un nom d'un serveur (18), émise par une application cliente (11) installée sur un terminal client (1), sur un réseau de communication, le procédé étant caractérisé par des étapes de : a) - obtention par une première entité réseau (11,12 ; 14) d'un ensemble de messages DNS suite à ladite demande de résolution ; b) - obtention par la première entité réseau (11,12 ; 14) d'informations de connectivité réseau relatives au moins audit terminal client ou audit serveur (18), et génération d'un code, dit de marquage, représentatif desdites informations de connectivité réseau ; c) - traitement par ladite première entité réseau (11,12 ; 14) dudit ensemble de messages DNS en fonction dudit code de marquage, et envoi en conséquence d'un ensemble de messages DNS, dits marqués, à une seconde entité réseau (14 ; 11,12) ; d) - traitement par la seconde entité réseau (14 ; 11,12) dudit ensemble de messages DNS marqués, afin de délivrer à l'application cliente (11) au moins une réponse DNS adaptée en fonction desdites informations de connectivité réseau.REVENDICATIONS1. A method of processing a request for resolving a name of a server (18), issued by a client application (11) installed on a client terminal (1), over a communication network, the method being characterized by steps of: a) - obtaining by a first network entity (11, 12; 14) a set of DNS messages following said resolution request; b) - obtaining by the first network entity (11,12; 14) network connectivity information relating to at least said client terminal or said server (18), and generating a code, said marking, representative of said information of network connectivity; c) - processing by said first network entity (11,12; 14) said set of DNS messages according to said marking code, and sending accordingly a set of DNS messages, said marked, to a second network entity (14 11,12); d) - processing by the second network entity (14; 11,12) of said set of marked DNS messages, in order to deliver to the client application (11) at least one DNS response adapted according to said network connectivity information. 2. Procédé selon la revendication 1, dans lequel à l'étape a) ledit ensemble de messages DNS est un ensemble de requêtes DNS générées suite à la réception par un module (11a) de résolution DNS de ladite demande de résolution de nom, et dans lequel à l'étape b), lesdites informations de connectivité réseau incluent au moins une information de type et de préférence d'usage d'interface IP active pour ledit terminal client (1).The method according to claim 1, wherein in step a) said set of DNS messages is a set of DNS queries generated following the reception by a DNS resolution module (11a) of said name resolution request, and wherein in step b) said network connectivity information includes at least one type and preference information of active IP interface usage for said client terminal (1). 3. Procédé selon la revendication 2, dans lequel l'étape c) de traitement de l'ensemble de requêtes DNS inclut : - l'insertion du code de marquage dans chaque requête dudit ensemble de requêtes DNS, à l'intérieur d'un champ déterminé du corps de la requête, formant ainsi un ensemble de requêtes marquées.3. The method according to claim 2, wherein step c) of processing the set of DNS queries includes: the insertion of the marking code in each request of said set of DNS queries, within a determined field of the body of the query, thus forming a set of marked queries. 4. Procédé selon la revendication 3, dans lequel l'étape de traitement d) comprend la lecture du code de marquage contenu dans chaque requête de l'ensemble de requêtes marquées, puis la recherche d'enregistrements DNS conformes auxdites informations de connectivité obtenues à partir dudit code de marquage, et si au moins un tel enregistrement est trouvé, génération d'au moins une réponse DNS contenant ledit enregistrement, puis envoi de ladite au moins une réponse DNS à destination de l'application cliente (11).The method of claim 3, wherein the processing step d) comprises reading the marking code contained in each request of the set of marked requests, and then searching for DNS records conforming to said connectivity information obtained at from said marking code, and if at least one such record is found, generating at least one DNS response containing said record, then sending said at least one DNS response to the client application (11). 5. Procédé selon la revendication 3, dans lequel ledit champ déterminé est un champ RDATA du corps de la requête conformément à l'extension EDNSO du protocole DNS.The method of claim 3, wherein said determined field is an RDATA field of the request body according to the EDNSO extension of the DNS protocol. 6. Procédé selon la revendication 2, dans lequel l'étape c) de traitement inclut le filtrage dudit ensemble de requêtes DNS en fonction du code de marquage.The method of claim 2, wherein the processing step c) includes filtering said set of DNS queries according to the marking code. 7. Procédé selon l'une quelconque des revendications 2 à 6, dans lequel ladite première entité réseau est située dans le terminal client (1) ou dans un serveur DNS local (12) vis-à-vis de l'application cliente, et ladite seconde entité réseau est située dans un serveur DNS autoritaire (14) pour le domaine associé au serveur (18).The method according to any one of claims 2 to 6, wherein said first network entity is located in the client terminal (1) or in a local DNS server (12) vis-à-vis the client application, and said second network entity is located in an authoritative DNS server (14) for the domain associated with the server (18). 8. Procédé selon la revendication 1, dans lequel à l'étape a) ledit ensemble de messages DNS est un ensemble de réponses DNS générées par ladite première entité réseau (14), suite à la réception d'un ensemble de requêtes DNS générées par un module (11a) de résolution DNS suite à la réception de ladite demande de résolution de nom, et dans lequel à l'étape b), lesdites informations de connectivité réseau sont caractéristiques d'un type d'adresse IP identifiant ledit serveur (18) contenue dans chaque réponse DNS dudit ensemble.The method of claim 1, wherein in step a) said set of DNS messages is a set of DNS responses generated by said first network entity (14), upon receipt of a set of DNS queries generated by a DNS resolution module (11a) following receipt of said name resolution request, and wherein in step b) said network connectivity information is characteristic of a type of IP address identifying said server (18); ) contained in each DNS response of said set. 9. Procédé selon la revendication 8, dans lequel, à l'étape de traitement c) par ladite première entité réseau (14) de chaque réponse DNS dudit ensemble, comprend l'insertion du code de marquage à l'intérieur d'un champ déterminé du corps de la réponse, formant ainsi un ensemble de réponses marquées, puis l'envoi dudit ensemble de réponses DNS marquées à ladite seconde entité réseau (11,12).The method of claim 8, wherein in the processing step c) said first network entity (14) of each DNS response of said set comprises inserting the tag code within a field determined the body of the response, thereby forming a set of marked responses, and then sending said set of marked DNS responses to said second network entity (11,12). 10. Procédé selon la revendication 9, dans lequel l'étape de traitement d) effectué par ladite seconde entité réseau (11,12) comprend : - l'obtention d'informations indicatives de préférence de connectivité réseau pour le terminal client ; - la comparaison du code de marquage contenu dans chaque réponse de l'ensemble de réponses marquées avec lesdites informations indicatives de préférence de connectivité réseau pour ledit terminal client (1), puis la sélection des réponses DNS satisfaisant auxdites informations indicatives de préférence de connectivité réseau pour ledit terminal client.The method of claim 9, wherein the processing step d) performed by said second network entity (11,12) comprises: obtaining information indicative of network connectivity preference for the client terminal; comparing the marking code contained in each response of the set of marked responses with said information indicative of network connectivity preference for said client terminal (1), then the selection of the DNS responses satisfying said information indicative of network connectivity preference. for said client terminal. 11. Procédé selon la revendication 8, dans lequel ledit champ déterminé est un champ RDATA du corps de la réponse conformément à l'extension EDNSO du protocole DNS.The method of claim 8, wherein said determined field is an RDATA field of the response body according to the EDNSO extension of the DNS protocol. 12. Procédé selon l'une quelconque des revendications 8 à 11, dans lequel ladite première entité réseau est située dans un serveur DNS autoritaire (14) pour le domaine associéau serveur (18), et ladite seconde entité réseau est située dans ladite application cliente (11) ou dans un serveur DNS local (12) vis-à-vis de l'application cliente.The method of any one of claims 8 to 11, wherein said first network entity is located in an authoritative DNS server (14) for the domain associated with the server (18), and said second network entity is located in said client application. (11) or in a local DNS server (12) vis-à-vis the client application. 13. Système de traitement d'une demande de résolution d'un nom d'un serveur (18), émise par une application cliente (11) installée sur un terminal client, sur un réseau de communication, caractérisé en qu'il comprend : - au moins une première entité réseau (11,12 ;13. System for processing a request for resolution of a name of a server (18), issued by a client application (11) installed on a client terminal, on a communication network, characterized in that it comprises: at least one first network entity (11, 12; 14) comportant : - un module d'obtention d'un ensemble de messages DNS suite à ladite demande de résolution ; - un module d'obtention d'informations de connectivité réseau relatives au moins audit terminal client (1) ou audit serveur (18), et de génération d'un code, dit de marquage, représentatif desdites informations de connectivité réseau ; et - un module de traitement de l'ensemble de messages DNS en fonction du code de marquage, afin d'obtenir un ensemble de messages DNS, dit marqués ; - au moins une seconde entité réseau (14 ; 11,12) comportant : - un module de réception dudit ensemble de messages DNS marqués, en provenance de ladite au moins une première entité réseau (11,12 ; 14) ; et - un module de traitement de l'ensemble de messages DNS marqués, afin de délivrer à l'application cliente (11) au mo ins une réponse DNS adaptée en fonction desdites informations de connectivité réseau. 14. Entité réseau mise en oeuvre pour le traitement d'une demande de résolution d'un nom d'un serveur, émise par une application cliente installée sur un terminal client (1), sur un réseau de communication, ladite entité réseau comportant : - un module d'obtention d'un ensemble de messages DNS suite à ladite demande de résolution ; - un module d'obtention d'informations de connectivité réseau relatives au moins audit terminal client ou audit serveur, et de génération d'un code, dit de marquage, représentatif desdites informations de connectivité réseau ; et - un module de traitement de l'ensemble de messages DNS en fonction du code de marquage, afin d'obtenir un ensemble de messages DNS, dit marqués.14) comprising: - a module for obtaining a set of DNS messages following said request for resolution; a module for obtaining network connectivity information relating at least to said client terminal (1) or to said server (18), and for generating a code, said marking code, representative of said network connectivity information; and a module for processing the set of DNS messages according to the marking code, in order to obtain a set of DNS messages, said to be marked; at least one second network entity (14; 11,12) comprising: a module for receiving said set of marked DNS messages from said at least one first network entity (11,12; 14); and - a module for processing the set of marked DNS messages, in order to deliver to the client application (11) at mo ins a DNS response adapted according to said network connectivity information. Network entity implemented for processing a server name resolution request, issued by a client application installed on a client terminal (1), on a communication network, said network entity comprising: a module for obtaining a set of DNS messages following said request for resolution; a module for obtaining network connectivity information relating at least to said client terminal or to said server, and for generating a code, referred to as a marking code, representative of said network connectivity information; and a module for processing the set of DNS messages according to the marking code, in order to obtain a set of DNS messages, said to be marked. 15. Entité réseau mise en oeuvre pour le traitement d'une demande de résolution d'un nom d'un serveur, émise par une application cliente installée sur un terminal client, sur un réseau de communication, ladite entité réseau comportant : - un module de réception d'un ensemble de messages DNS marqués, en provenance d'une entité réseau selon la revendication 14; et- un module de traitement de l'ensemble de messages DNS marqués, afin de délivrer à l'application cliente au moins une réponse DNS adaptée en fonction desdites informations de connectivité réseau.15. Network entity implemented for processing a server name resolution request, issued by a client application installed on a client terminal, on a communication network, said network entity comprising: a module receiving a set of marked DNS messages from a network entity according to claim 14; and- a module for processing the set of marked DNS messages, in order to deliver to the client application at least one DNS response adapted according to said network connectivity information. 16. Programme d'ordinateur mis en oeuvre par une entité réseau sur un réseau de communication, ledit programme comprenant des instructions de code pour la mise en oeuvre des étapes a), b), c) et/ou d) d'un procédé de traitement d'une demande de résolution d'un nom d'un serveur, conforme à l'une quelconque des revendications 1 à 12, lorsque ce programme est exécuté par un processeur équipant ladite entité réseau.1016. Computer program implemented by a network entity on a communication network, said program comprising code instructions for implementing steps a), b), c) and / or d) of a method processing a request for resolving a name of a server, according to any one of claims 1 to 12, when the program is executed by a processor equipping said network entity.
FR1456234A 2014-06-30 2014-06-30 METHOD AND SYSTEM FOR PROCESSING A REQUEST FOR RESOLUTION OF A NAME OF A SERVER, ISSUED BY A CLIENT APPLICATION ON A COMMUNICATION NETWORK. Pending FR3023098A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1456234A FR3023098A1 (en) 2014-06-30 2014-06-30 METHOD AND SYSTEM FOR PROCESSING A REQUEST FOR RESOLUTION OF A NAME OF A SERVER, ISSUED BY A CLIENT APPLICATION ON A COMMUNICATION NETWORK.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1456234A FR3023098A1 (en) 2014-06-30 2014-06-30 METHOD AND SYSTEM FOR PROCESSING A REQUEST FOR RESOLUTION OF A NAME OF A SERVER, ISSUED BY A CLIENT APPLICATION ON A COMMUNICATION NETWORK.

Publications (1)

Publication Number Publication Date
FR3023098A1 true FR3023098A1 (en) 2016-01-01

Family

ID=51726666

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1456234A Pending FR3023098A1 (en) 2014-06-30 2014-06-30 METHOD AND SYSTEM FOR PROCESSING A REQUEST FOR RESOLUTION OF A NAME OF A SERVER, ISSUED BY A CLIENT APPLICATION ON A COMMUNICATION NETWORK.

Country Status (1)

Country Link
FR (1) FR3023098A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111711706A (en) * 2020-04-30 2020-09-25 广州根链国际网络研究院有限公司 DNS recursive request method and system
FR3096202A1 (en) * 2019-06-20 2020-11-20 Orange Method and device for obtaining an IP address
US12058097B2 (en) 2021-09-02 2024-08-06 Cisco Technology, Inc. Techniques for performing domain name system support

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037595A1 (en) * 2007-07-31 2009-02-05 Sprint Communications Company L.P. Selecting and applying a communication version
CN102368789A (en) * 2010-06-25 2012-03-07 中兴通讯股份有限公司 Method and system for connecting dual-stack terminal to network
CN103004173A (en) * 2012-09-29 2013-03-27 华为技术有限公司 Address allocation method, device and system thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037595A1 (en) * 2007-07-31 2009-02-05 Sprint Communications Company L.P. Selecting and applying a communication version
CN102368789A (en) * 2010-06-25 2012-03-07 中兴通讯股份有限公司 Method and system for connecting dual-stack terminal to network
CN103004173A (en) * 2012-09-29 2013-03-27 华为技术有限公司 Address allocation method, device and system thereof

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3096202A1 (en) * 2019-06-20 2020-11-20 Orange Method and device for obtaining an IP address
WO2020254766A1 (en) * 2019-06-20 2020-12-24 Orange Method and device for obtaining an ip address
CN114258667A (en) * 2019-06-20 2022-03-29 奥兰治 Method and device for obtaining IP address
CN114258667B (en) * 2019-06-20 2024-07-02 奥兰治 Method and device for obtaining IP address
CN111711706A (en) * 2020-04-30 2020-09-25 广州根链国际网络研究院有限公司 DNS recursive request method and system
CN111711706B (en) * 2020-04-30 2023-04-07 广州根链国际网络研究院有限公司 DNS recursive request method and system
US12058097B2 (en) 2021-09-02 2024-08-06 Cisco Technology, Inc. Techniques for performing domain name system support

Similar Documents

Publication Publication Date Title
US10212124B2 (en) Facilitating content accessibility via different communication formats
EP2297928B1 (en) Method for receiving a data packet in an ipv6 domain, and associated device and residential gateway
US8762573B2 (en) Reverse DNS lookup with modified reverse mappings
US10263950B2 (en) Directing clients based on communication format
FR2795581A1 (en) Integrated IP network allows simultaneous access to the same cabling and hardware for telephone, video, television, data etc. IP networks providing considerable hardware savings
WO2017194861A1 (en) Method for accessing a content hosted on a server selected as a function of the location of the user terminal
WO2006078953A2 (en) System and method for application acceleration on a distributed computer network
EP2553908B1 (en) Dns server, gateways and methods for managing an identifier of a port range in the transmission of data
FR2855697A1 (en) IPv4-BASED DATA CONVERSION SYSTEM TO IPv6-BASED DATA TO BE TRANSMITTED THROUGH AN IP SWITCHED NETWORK
FR2917259A1 (en) USE OF A PREFIXED HASH TREE (PHT) FOR LOCATION OF SERVICES WITHIN A POST-TO-POST COMMUNICATION NETWORK
EP3987752A1 (en) Method and device for obtaining an ip address
EP2294798B1 (en) Method and related device for routing a data packet in a network
FR3023098A1 (en) METHOD AND SYSTEM FOR PROCESSING A REQUEST FOR RESOLUTION OF A NAME OF A SERVER, ISSUED BY A CLIENT APPLICATION ON A COMMUNICATION NETWORK.
US7356031B1 (en) Inter-v4 realm routing
WO2024068722A1 (en) Methods for name resolution, communication, message processing and server, corresponding client device and relay node
FR3018411A1 (en) METHOD AND SYSTEM FOR PROCESSING A DNS QUERY ISSUED BY A NETWORK NODE DURING A DACCE ATTEMPT BY A CLIENT APPLICATION TO A REMOTE SERVER OVER AN IP NETWORK
EP4024820A1 (en) Method for configuring a secured interface between a transport network and one of a plurality of elementary networks federated through the transport network; associated interface
WO2013140097A1 (en) Selection of a network entity for the provision of a digital content
CN116266832A (en) Domain name resolution method, device, storage medium and computer equipment
WO2020020911A1 (en) Method for processing a data packet and associated device, switching equipment and computer program
WO2006016009A1 (en) Method and device for processing a domain name translation request

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20160101