FR3018411A1 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- FR3018411A1 FR3018411A1 FR1451722A FR1451722A FR3018411A1 FR 3018411 A1 FR3018411 A1 FR 3018411A1 FR 1451722 A FR1451722 A FR 1451722A FR 1451722 A FR1451722 A FR 1451722A FR 3018411 A1 FR3018411 A1 FR 3018411A1
- Authority
- FR
- France
- Prior art keywords
- dns
- dip
- server
- network
- network node
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012545 processing Methods 0.000 title claims abstract description 27
- 230000004044 response Effects 0.000 claims description 86
- 238000004590 computer program Methods 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 10
- 238000013519 translation Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 6
- 230000001427 coherent effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012876 topography Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1036—Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Procédé et système de traitement d'une requête DNS émise par un premier nœud réseau (12 ; 1) au cours d'une tentative d'accès par une application cliente (11) à un serveur distant (18) sur un réseau IP. Le procédé comprend des étapes de : - réception de la requête DNS par un second nœud réseau (14 ; 12) ; - obtention à partir de la requête DNS d'un identifiant DNS associé à un troisième nœud réseau (1, 12 ; 18) ; - recherche à partir de l'identifiant DNS obtenu, d'au moins un enregistrement ayant un format prédéfini et contenant des informations de connectivité réseau relatives au moins au troisième nœud réseau (1,12; 18) ; - si au moins un enregistrement a été trouvé, récupération d'au moins un enregistrement, et utilisation par le second nœud réseau (14 ; 12) des informations de connectivité contenues dans au moins un enregistrement pour au moins adapter le traitement de la requête DNS en fonction de ces informations de connectivité.A method and system for processing a DNS request issued by a first network node (12; 1) during an access attempt by a client application (11) to a remote server (18) over an IP network. The method comprises steps of: - receiving the DNS request by a second network node (14; 12); obtaining, from the DNS query, a DNS identifier associated with a third network node (1, 12; 18); - Searching from the obtained DNS identifier, at least one record having a predefined format and containing network connectivity information relating to at least the third network node (1,12; 18); - if at least one record has been found, retrieving at least one record, and using the second network node (14; 12) connectivity information contained in at least one record to at least adapt the processing of the DNS request based on this connectivity information.
Description
Procédé et système de traitement d'une requête DNS émise par un noeud réseau au cours d'une tentative d'accès par une application cliente à un serveur distant sur un réseau IP Domaine technique L'invention a trait de manière générale au domaine des télécommunications et plus précisément, les communications de type client-serveur dans un réseau de communication basé sur le protocole IP (Internet Protocol). L'invention concerne en particulier un procédé et un système de traitement d'une requête DNS émise par un noeud réseau au cours d'une tentative d'accès par une application cliente à un serveur distant sur un réseau IP. 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 suivant du protocole IP. Une adresse réseau du type IPv4 est codée sur quatre octets (32 bits), par exemple 20 193.43.55.67. 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, une entité réseau peut être identifiée par une ou plusieurs adresses réseau d'un même type, IPv4 ou IPv6. Elle peut aussi être identifiée simultanément par plusieurs 25 adresses IP de type différent. L'adresse réseau d'une entité réseau permet la détermination d'un chemin au travers du réseau permettant d'atteindre cette entité réseau. Des protocoles de routage, statiques ou dynamiques, permettent de déterminer un chemin entre deux entités connectées à un réseau telles que l'application cliente et le serveur de destination. L'Internet est formé actuellement d'un ensemble de réseaux interconnectés, les uns de 30 type IPv4, les autres de type IPv6 ou de type "double pile" (dual-stack). Les adresses IPv4 et IPv6 n'étant pas compatibles, la communication entre un équipement réseau ne disposant que d'adresses IPv6 et un équipement réseau ne disposant que d'adresses IPv4 constitue un problème. Deux approches sont alors possibles pour permettre une telle communication : la traduction de protocoles et la "double pile" (dual-stack), qui définissent des mécanismes dont 35 certains sont normalisés par l'IETF (Internet Engineering Task Force) et publiés sous forme de spécifications techniques appelées RFC (Request For Comments). Concernant la traduction de protocoles, on peut citer le mécanisme NAT64 (Network Address Translation 64) permettant à un équipement client IPv6 de joindre un équipement serveur IPv4. 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. Par ailleurs, afin de faciliter la recherche de ressources informatiques sur l'Internet par les utilisateurs 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 Domains), 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 ("."). L'extrémité d'une branche est appelée hôte, et correspond à une machine ou une entité du réseau. Le nom d'hôte qui lui est attribué doit être unique dans le domaine considéré, ou le cas échéant dans le sous-domaine. A titre d'exemple le serveur web d'un domaine porte ainsi généralement le nom "www". Le terme "domaine" correspond formellement au suffixe d'un nom de domaine, c'est-à-dire l'ensemble des étiquettes des noeuds d'une arborescence, à l'exception de l'hôte. 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é". 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 fInternet, et permet donc d'identifier un service fourni par un serveur sur le réseau.Method and system for processing a DNS request sent by a network node during an access attempt by a client application to a remote server on an IP network Technical field The invention relates generally to the field of telecommunications and more specifically, client-server type communications in an IP (Internet Protocol) based communication network. In particular, a method and system for processing a DNS request issued by a network node during an access attempt by a client application to a remote server over an IP 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 the following version 6 of the IP protocol. A network address of the IPv4 type is coded on four bytes (32 bits), for example 193 193.55.67. 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. In addition, a network entity can be identified by one or more network addresses of the same type, IPv4 or IPv6. It can also be simultaneously identified by several IP addresses of different type. The network address of a network entity allows the determination of a path through the network to reach this network entity. Routing protocols, static or dynamic, make it possible to determine a path between two entities connected to a network such as the client application and the destination server. The Internet currently consists of a set of interconnected networks, some of IPv4 type, others of IPv6 type or of "dual stack" type. Since IPv4 and IPv6 addresses are not compatible, communication between a network device with only IPv6 addresses and network equipment with only IPv4 addresses is a problem. Two approaches are then possible to allow such communication: the translation of protocols and the "dual stack", which define mechanisms, some of which are standardized by the Internet Engineering Task Force (IETF) and published in form. technical specifications called Request For Comments (RFC). Concerning the translation of protocols, one can cite the NAT64 mechanism (Network Address Translation 64) allowing an IPv6 client equipment to join an IPv4 server equipment. 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. Moreover, in order to facilitate the search for computing resources on the Internet by the users 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 has a tree structure in which higher-level domains (referred to as Top Level Domains (TLDs)) are 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 end of a branch is called a host, and is a machine or an entity in the network. The host name assigned to it must be unique in the domain under consideration, or if applicable in the subdomain. For example, the web server of a domain usually has the name "www". The term "domain" formally corresponds to the suffix of a domain name, that is to say the set of tags of the nodes of a tree, with the exception of the host. 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 ". The maximum depth of the tree is 127 levels and the maximum length of a FQDN name is 255 characters. Thus an FQDN name makes it possible to uniquely locate a machine on the Internet, and thus makes it possible to identify a service provided by a server on the network.
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.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.
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 FQDN 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 FQDN, 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 FQDN (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 nom 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.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 for obtaining an IP address (for example: 193.43.55.67) of a network equipment (for example a multimedia content server) considered, from an FQDN name assigned to this equipment ( for example: 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 resolve a FQDN 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 a web browser wants to connect to a host known by its name FQDN (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 name 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 discussed in detail in IETF RFC 1035, particularly sections 3.2 and 4.
Avec la transition IPv4 vers IPv6 évoquée plus haut, du protocole IP, 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. Parmi ces équipements, certains sont compatibles uniquement avec IPv4 (IPv4 only), d'autres sont compatibles uniquement avec IPv6 (IPv6 only), d'autres sont compatibles avec les deux types de protocole IP (dual stack). Dans ce contexte, la résolution d'un nom FQDN demandée par une application cliente pour atteindre un serveur distant peut aboutir à l'obtention par celle-ci de plusieurs adresses IP, 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, 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). Le document RFC 6724 de l'IETF décrits deux algorithmes de sélection d'adresse pour la version 6 du protocole internet (IPv6), un pour la sélection de l'adresse source (adresse de l'équipement client initiant la communication) l'autre pour la sélection de l'adresse de destination (adresse de l'équipement serveur). Concernant en particulier la sélection de l'adresse de destination, ce document préconise, dans le cas où l'entité serveur est accessible par l'intermédiaire de plusieurs adresses réseau de type différent (IPv4 et IPv6), que l'entité cliente sélectionne préférentiellement les adresses IPv6 si celle-ci dispose elle-même d'une adresse IPv6 (adresse source). Ce critère de sélection vise à favoriser l'abandon progressif d'IPv4 sur Internet, mais ne tient pas compte de performances meilleures pouvant être obtenues le cas échéant par l'établissement d'une communication uniquement IPv4 avec l'entité serveur, lorsque l'entité cliente dispose d'une adresse IPv4 en plus de l'adresse IPv6.With the IPv4 to IPv6 transition referred to above, the IP protocol, the interconnection of IPv4 and IPv6 type IP networks, brings equipment or network nodes identified by IPv4 or IPv6 type IP addresses, or by addresses of both types. , having to communicate with each other. Some of these devices are compatible only with IPv4 (IPv4 only), others are only compatible with IPv6 (IPv6 only), others are compatible with both types of IP (dual stack). In this context, the resolution of a FQDN name requested by a client application to reach a remote server may result in it obtaining several IP addresses, IPv4 and IPv6, making it possible to reach 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 name server, in order to make possible or optimize the communication between the client application and the server. remote, in terms of quality of service (QoS) and the quality of the user experience (QoE or perceived quality). RFC 6724 of the IETF describes two address selection algorithms for version 6 of the internet protocol (IPv6), one for the selection of the source address (address of the client equipment initiating the communication) the other for selection of the destination address (address of the server equipment). Concerning in particular the selection of the destination address, this document recommends, in the case where the server entity is accessible via several different type of network addresses (IPv4 and IPv6), that the client entity preferentially selects IPv6 addresses if it itself has an IPv6 address (source address). This selection criterion aims at favoring the gradual abandonment of IPv4 on the Internet, but does not take into account the better performances that can be obtained if necessary by the establishment of a communication only IPv4 with the server entity, when the client entity has an IPv4 address in addition to the IPv6 address.
D'autre part, dans le cas où l'entité serveur est accessible par l'intermédiaire de plusieurs adresses réseau de même type (par exemple IPv4), il est alors préconisé que l'entité cliente utilise les adresses IP obtenues par résolution DNS selon l'ordre dans lequel elles figurent dans les enregistrements (RR) contenus dans la réponse DNS. Ainsi, si une première tentative de communication échoue avec une adresse IP donnée, l'entité cliente effectue une nouvelle tentative avec l'adresse IP suivante et ainsi de suite. Le nombre maximum de tentatives d'établissement de communication avec l'entité serveur est fixé par l'application cliente. On comprendra qu'avec cette dernière méthode de sélection, plus le nombre de tentatives effectives d'établissement de communication augmente et plus la qualité d'expérience utilisateur est dégradée.On the other hand, in the case where the server entity is accessible via several network addresses of the same type (for example IPv4), it is then recommended that the client entity uses the IP addresses obtained by DNS resolution according to the order in which they appear in the records (RRs) contained in the DNS response. Thus, if a first communication attempt fails with a given IP address, the client entity retries with the next IP address and so on. The maximum number of attempts to establish communication with the server entity is set by the client application. It will be understood that with this latter method of selection, the more the number of effective attempts to establish communication increases and the quality of user experience is degraded.
Le document RFC 6555 de l'IETF définit des exigences pour des algorithmes de sélection d'adresses destinés à des hôtes clients de type dual-stack, afin d'améliorer l'expérience utilisateur. En particulier, il est proposé dans ce document d'enregistrer dans une mémoire cache de l'entité cliente le résultat de chaque connexion tentée vers un serveur en utilisant l'adresse IPv4 ou l'adresse IPv6 associée au serveur. Lors d'une nouvelle tentative de connexion avec le serveur, si la dernière tentative utilisant l'une des deux adresses (IPv4 ou IPv6) s'est soldée par un échec, alors l'application cliente devra préférer l'autre adresse pour la nouvelle tentative. La méthode de sélection proposée dans le document précité permet de réduire le nombre de tentatives simultanées de connexions IPv4 ou IPv6 effectuées par un client dual- stack vers un serveur dual-stack, mais nécessite la mise à jour des applications clientes et des systèmes d'exploitation, et ne garantit pas une meilleure qualité d'expérience client une fois la connexion établie ; en effet, il se peut par exemple qu'une connexion IPv4 ou IPv6 établie rapidement peut ensuite se révéler insatisfaisante du point de vue du débit observé lors de l'échange de données entre le client et le serveur (par exemple un document multimédia téléchargé en streaming). Dans un autre exemple, un terminal Dual Stack qui sélectionne la connexion IPv6 en raison de sa rapidité, peut ensuite observer une dégradation de l'expérience utilisateur liée à l'absence de certaines fonctions du service, qui ne seraient disponibles qu'en IPv4.The IETF RFC 6555 defines requirements for address selection algorithms for dual-stack client hosts to improve the user experience. In particular, it is proposed in this document to record in a cache memory of the client entity the result of each connection attempted to a server using the IPv4 address or the IPv6 address associated with the server. When trying to connect to the server again, if the last attempt using one of the two addresses (IPv4 or IPv6) failed, then the client application will have to prefer the other address for the new one. attempt. The selection method proposed in the aforementioned document makes it possible to reduce the number of simultaneous attempts of IPv4 or IPv6 connections made by a dual-stack client to a dual-stack server, but requires the updating of client applications and systems. operation, and does not guarantee a better quality of customer experience once the connection is established; in fact, for example, a rapidly established IPv4 or IPv6 connection may then be unsatisfactory from the point of view of the bit rate observed during the data exchange between the client and the server (for example a multimedia document downloaded from streaming). In another example, a Dual Stack terminal that selects the IPv6 connection due to its speed, can then observe a degradation of the user experience related to the absence of certain functions of the service, which would be available only in IPv4.
Ainsi, aucune des méthodes de sélection d'adresses réseau exposées ci-dessus ne semble suffisamment efficace pour garantir une bonne qualité d'expérience utilisateur. Autrement dit, les méthodes actuelles de traitement de requête DNS - pour la résolution de noms de domaine (résolution DNS) ou d'adresse réseau (résolution DNS inverse) -, dans un contexte de coexistence d'adresses IPv4 et IPv6, notamment suite à une tentative de connexion d'un terminal d'utilisateur à un serveur sur un réseau IP, souffrent de performances variables qui pénalisent la qualité d'expérience utilisateur. Exposé de l'invention La présente invention vise à améliorer la situation exposée ci-dessus en proposant selon un premier aspect, un procédé de traitement d'une requête DNS émise par un premier noeud réseau au cours d'une tentative d'accès par une application cliente à un serveur distant sur un réseau IP. Conformément à l'invention ce procédé comprend des étapes de : - réception de ladite requête DNS par un second noeud réseau ; - obtention à partir de la requête DNS d'un identifiant DNS associé à un troisième noeud réseau ; - recherche à partir de l'identifiant DNS obtenu, d'au moins un enregistrement ayant un format prédéfini et contenant des informations de connectivité réseau relatives au moins au troisième noeud réseau ; - si au moins un enregistrement a été trouvé, récupération d'au moins un enregistrement, et utilisation par le second noeud réseau des informations de connectivité contenues dans au moins un enregistrement pour notamment adapter le traitement de la requête DNS en fonction de ces informations de connectivité. L'obtention selon l'invention d'informations de connectivité réseau, au cours du traitement d'une requête DNS, permet d'améliorer significativement ce traitement en permettant notamment, selon le cas d'usage considéré, d'adapter les mécanismes réseau impliqués dans le traitement DNS, comme l'adaptation des réponses DNS ou bien la sélection du meilleur chemin réseau ou bien la traduction de paquets IP (IPv4 vers IPv4 ou IPv4 vers IPV6 et inversement), en fonction des contraintes de l'application cliente et/ou du terminal utilisateur, ou du serveur distant auquel tente d'accéder l'application cliente. Selon une caractéristique particulière de l'invention, l'étape précitée de recherche, à partir de l'identifiant DNS obtenu, d'au moins un enregistrement contenant des informations de connectivité réseau relatives au troisième noeud réseau, comprend : - l'envoi par un module client installé dans le second noeud réseau à destination d'un module serveur installé dans un quatrième noeud réseau, d'un message de requête spécifique contenant au moins l'identifiant DNS, en vue d'obtenir au moins un enregistrement relatif au troisième noeud réseau ; - la recherche par le module serveur d'enregistrements correspondant à l'identifiant DNS et l'envoi à destination du module client d'un message de réponse spécifique contenant le résultat de la recherche d'enregistrements. Une telle mise en oeuvre de l'étape de recherche d'enregistrement contenant des informations de connectivité réseau, sous forme d'un mécanisme client/serveur avec un module client et un module serveur qui peuvent être implémentés sur des entités ou noeuds réseaux distincts, permet de pouvoir adapter aisément cette implémentation en fonction des cas d'usages de traitement de requête DNS, que l'on veut optimiser. Selon un premier mode de réalisation de l'invention, le procédé est mis en oeuvre dans un environnement réseau dans lequel le premier noeud est un serveur DNS local utilisé par une application cliente, le second noeud réseau est un serveur DNS autoritaire pour le domaine associé au serveur distant, et le troisième noeud est un terminal d'utilisateur dans lequel est exécutée l'application cliente ou le serveur DNS local. Selon une première variante du premier mode de réalisation précité, le quatrième noeud réseau est un serveur DNS TLD (Top Level Domain). Selon une seconde variante du premier mode de réalisation précité, le quatrième noeud réseau est le serveur DNS local.Thus, none of the network address selection methods discussed above seem sufficiently efficient to ensure a good quality of user experience. In other words, the current methods of DNS query processing - for the resolution of domain names (DNS resolution) or network address (reverse DNS resolution) -, in a context of coexistence of IPv4 and IPv6 addresses, in particular following an attempt to connect a user terminal to a server on an IP network, suffer from variable performance that penalizes the quality of user experience. DISCLOSURE OF THE INVENTION The present invention aims at improving the situation described above by proposing, according to a first aspect, a method of processing a DNS request sent by a first network node during an access attempt by a user. client application to a remote server on an IP network. According to the invention, this method comprises the steps of: receiving said DNS request by a second network node; obtaining, from the DNS query, a DNS identifier associated with a third network node; searching, from the obtained DNS identifier, at least one record having a predefined format and containing network connectivity information relating to at least the third network node; if at least one record has been found, retrieval of at least one record, and use by the second network node of the connectivity information contained in at least one record for, in particular, adapting the processing of the DNS request according to this information of connectivity. The obtaining according to the invention of network connectivity information, during the processing of a DNS request, makes it possible to significantly improve this processing by allowing, in particular, depending on the use case considered, to adapt the network mechanisms involved. in DNS processing, such as the adaptation of DNS responses or the selection of the best network path or the translation of IP packets (IPv4 to IPv4 or IPv4 to IPV6 and vice versa), depending on the constraints of the client application and / or the user terminal, or the remote server that the client application is trying to access. According to a particular characteristic of the invention, the aforementioned step of searching, from the obtained DNS identifier, of at least one record containing network connectivity information relating to the third network node, comprises: sending by a client module installed in the second network node for a server module installed in a fourth network node, of a specific request message containing at least the DNS identifier, in order to obtain at least one record relating to the third network node; the search by the record server module corresponding to the DNS identifier and the sending to the client module of a specific response message containing the result of the search for records. Such an implementation of the registration search step containing network connectivity information, in the form of a client / server mechanism with a client module and a server module that can be implemented on separate entities or network nodes, allows to easily adapt this implementation according to the case of uses of DNS query processing, which we want to optimize. According to a first embodiment of the invention, the method is implemented in a network environment in which the first node is a local DNS server used by a client application, the second network node is an authoritative DNS server for the associated domain to the remote server, and the third node is a user terminal in which the client application or the local DNS server is executed. According to a first variant of the aforementioned first embodiment, the fourth network node is a DNS TLD (Top Level Domain) server. According to a second variant of the first embodiment mentioned above, the fourth network node is the local DNS server.
Selon un deuxième mode de réalisation de l'invention, le procédé est mis en oeuvre dans un environnement réseau dans lequel le premier noeud est un terminal d'utilisateur, le second noeud réseau est un serveur DNS local utilisé par le terminal d'utilisateur, et le troisième noeud est le serveur distant. Selon une caractéristique de ce deuxième mode de réalisation, le quatrième noeud réseau est un serveur DNS autoritaire pour le domaine associé au serveur distant. Selon des caractéristiques d'implémentation du procédé de l'invention qui sont communes aux deux modes de réalisation : - Un message de requête selon l'invention est une structure de données organisée selon un format comprenant au moins les éléments suivants : - une entête contenant au moins un numéro de séquence ; - un corps de message contenant au moins : un champ contenant l'identifiant DNS. - Un message de réponse selon l'invention est une structure de données organisée selon un format comprenant au moins les éléments suivants : - une entête contenant au moins : un numéro de séquence, ce numéro de séquence étant identique à celui du message de requête correspondant, et un code de retour indiquant un résultat de recherche d'enregistrements ; - un corps de message contenant au moins : un champ contenant l'identifiant DNS et au moins un enregistrement, si au moins un enregistrement a été trouvé. - Un enregistrement selon l'invention correspondant à un noeud réseau considéré est une structure de données organisée selon un format comportant au moins les champs suivants : - un premier champ contenant un identifiant DNS relatif au noeud réseau ; - un second champ contenant une donnée représentative d'au moins un type de connectivité réseau disponible pour joindre le noeud réseau ; - un troisième champ contenant une donnée représentative d'une préférence d'usage d'un type de connectivité réseau parmi plusieurs types de connectivité réseau pour joindre le noeud. En pratique, selon une caractéristique de réalisation de l'invention, l'identifiant DNS associé au troisième noeud réseau est au moins un nom de domaine obtenu par le second noeud à partir d'une adresse réseau associée au troisième noeud réseau. Un tel nom de domaine peut être notamment un Nom de Domaine (DN) ou un FQDN. Corrélativement, selon un second aspect, l'invention concerne un système de traitement d'une requête DNS émise par un premier noeud réseau au cours d'une tentative d'accès par une application cliente à un serveur distant sur un réseau IP, comprenant : - des moyens de réception de ladite requête DNS par un second noeud réseau ; - des moyens d'obtention à partir de la requête DNS d'un identifiant DNS associé à un troisième noeud réseau ; - des moyens d'obtention à partir de l'identifiant DNS obtenu, d'au moins un enregistrement ayant un format prédéfini et contenant des informations de connectivité réseau relatives au moins au troisième noeud réseau ; - des moyens de traitement par le second noeud réseau des informations de connectivité contenues dans au moins un enregistrement, pour en particulier adapter le traitement de la requête DNS en fonction des informations de connectivité.According to a second embodiment of the invention, the method is implemented in a network environment in which the first node is a user terminal, the second network node is a local DNS server used by the user terminal, and the third node is the remote server. According to a characteristic of this second embodiment, the fourth network node is an authoritative DNS server for the domain associated with the remote server. According to implementation features of the method of the invention which are common to the two embodiments: A request message according to the invention is a data structure organized in a format comprising at least the following elements: a header containing at least one sequence number; a message body containing at least: a field containing the DNS identifier. - A response message according to the invention is a data structure organized in a format comprising at least the following elements: a header containing at least: a sequence number, this sequence number being identical to that of the corresponding request message , and a return code indicating a record search result; a message body containing at least: a field containing the DNS identifier and at least one record, if at least one record has been found. A record according to the invention corresponding to a considered network node is a data structure organized in a format comprising at least the following fields: a first field containing a DNS identifier relating to the network node; a second field containing data representative of at least one type of network connectivity available for joining the network node; a third field containing data representative of a usage preference of one type of network connectivity among several types of network connectivity to join the node. In practice, according to an embodiment of the invention, the DNS identifier associated with the third network node is at least one domain name obtained by the second node from a network address associated with the third network node. Such a domain name may include a Domain Name (DN) or an FQDN. Correlatively, according to a second aspect, the invention relates to a system for processing a DNS request sent by a first network node during an access attempt by a client application to a remote server on an IP network, comprising: means for receiving said DNS request by a second network node; means for obtaining, from the DNS query, a DNS identifier associated with a third network node; means for obtaining, from the obtained DNS identifier, at least one record having a predefined format and containing network connectivity information relating to at least the third network node; means for the second network node to process the connectivity information contained in at least one record, in particular to adapt the processing of the DNS request according to the connectivity information.
En particulier, selon une caractéristique de réalisation du système selon l'invention, les moyens d'obtention d'au moins un enregistrement à partir de l'identifiant DNS, comprennent : - un module client installé dans le second noeud, configuré pour générer et envoyer à destination d'un module serveur un message de requête spécifique contenant au moins l'identifiant DNS, en vue d'obtenir au moins un enregistrement relatif au troisième noeud réseau; - le module serveur, installé dans un quatrième noeud réseau, configuré pour recevoir le message de requête puis rechercher des enregistrements correspondant à l'identifiant DNS, et envoyer à destination du module client un message de réponse spécifique contenant un résultat de la recherche d'enregistrements.In particular, according to an embodiment of the system according to the invention, the means for obtaining at least one record from the DNS identifier include: a client module installed in the second node, configured to generate and sending to a server module a specific request message containing at least the DNS identifier, in order to obtain at least one record relating to the third network node; the server module, installed in a fourth network node, configured to receive the request message and then search for records corresponding to the DNS identifier, and send to the client module a specific response message containing a search result of recordings.
Par conséquent, la présente invention a aussi pour objet un module client installé dans un noeud réseau, mis en oeuvre dans le système précité, ainsi qu'un module serveur installé dans un noeud réseau, mis en oeuvre dans un système précité, selon l'invention. En pratique, les moyens constitutifs de l'invention qui sont compris dans les différents noeuds réseau susmentionnés, et en particulier les modules client et serveur selon l'invention, tels que décrits succinctement plus haut - et dont le fonctionnement permet de mettre ne oeuvre notamment l'étape de recherche à partir d'un identifiant DNS obtenu, d'au moins un enregistrement ayant un format prédéfini et contenant des informations de connectivité réseau relatives à un noeud réseau -, 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 le noeud réseau considéré. Par conséquent, selon un dernier aspect, la présente invention vise aussi un programme d'ordinateur mis en oeuvre dans un ou plusieurs noeuds réseau, ce programme comprenant des instructions de code dont l'exécution par un processeur informatique provoque la mise en oeuvre de tout ou partie des étapes d'un procédé de traitement d'une requête DNS, selon l'invention. 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 un système de traitement d'une requête DNS, un module client ou un module serveur, ainsi qu'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 d'une requête DNS selon l'invention, et ne seront par conséquent pas rappelés ici. 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 selon un premier mode de réalisation ; - 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é d'obtention d'informations de connectivité réseau, selon le premier mode de réalisation de l'invention ; - les figures 5 et 6 représentent respectivement le format d'une requête et d'une réponse d'obtention d'informations de connectivité, selon une implémentation conforme au protocole DNS, applicable à la première variante du premier mode de réalisation ; - les figures 7 et 8 représentent respectivement le format d'une requête et d'une réponse d'obtention d'informations de connectivité, selon une implémentation hors protocole DNS, applicable à la première variante du premier mode de réalisation ; - les figures 9 et 10 représentent respectivement deux exemples de formats de requêtes d'obtention d'informations de connectivité, selon une implémentation conforme au protocole DNS, applicable à la seconde variante du premier mode de réalisation ; - les figures 11 et 12 représentent respectivement deux exemples de formats de réponses d'obtention d'informations de connectivité, selon une implémentation conforme au protocole DNS, applicable à la seconde variante du premier mode de réalisation ; - les figures 13 et 14 représentent respectivement deux exemples de formats de requêtes d'obtention d'informations de connectivité, selon une implémentation hors protocole DNS, applicable à la seconde variante du premier mode de réalisation ; - la figure 15 représente le format d'une réponse d'obtention d'informations de connectivité, selon une implémentation hors protocole DNS, applicable à la seconde variante du premier mode de réalisation ; - la figure 16 représente un environnement réseau selon un second mode de réalisation de l'invention ; et - la figure 17 est un organigramme illustrant un procédé d'obtention d'informations de connectivité réseau, selon le second mode de réalisation de l'invention. Description détaillée de l'invention La figure 1 représente la topographie d'un environnement réseau dans lequel la présente invention est mise en oeuvre selon un premier mode de réalisation. A la figure 1, 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 de domaine associé au serveur 18, qu'elle transmet à un module (non représenté) de résolution (resolver) de nom de domaine installé sur le terminal, lequel module de résolution est chargé d'obtenir la ou les adresse(s) IP associées au serveur 18 et que l'application cliente 11 devra utiliser pour échanger des données avec le serveur. Une fois les adresses IP associées au serveur 18 renvoyées au terminal d'utilisateur 1, un module de sélection d'adresses réseau sur le terminal 1 est chargé de déterminer l'adresse IP associée au serveur 18 que l'application cliente 11 doit utiliser pour établir une communication.Therefore, the present invention also relates to a client module installed in a network node, implemented in the aforementioned system, and a server module installed in a network node, implemented in a aforementioned system, according to the invention. invention. In practice, the means constituting the invention which are included in the various network nodes mentioned above, and in particular the client and server modules according to the invention, as briefly described above - and whose operation allows to implement particular the search step from a DNS identifier obtained, at least one record having a predefined format and containing network connectivity information relating to a network node -, are essentially implemented in software form that is to say say one or more computer programs stored in one or more memories, of RAM (Random Access Memory), ROM (Read Only Memory) or magnetic type (hard disk for example), and executed by a processor incorporated in the considered network node . Therefore, according to a last aspect, the present invention also relates to a computer program implemented in one or more network nodes, this program comprising code instructions whose execution by a computer processor causes the implementation of any or part of the steps of a method of processing a DNS request, according to the invention. 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 advantages provided by a system for processing a DNS query, a client module or a server module, as well as a computer program, according to the invention, as briefly described above, are identical or contribute to those mentioned above in relation to the method of processing a DNS query according to the invention, and therefore will not be recalled here. 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 according to a first embodiment; 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 for obtaining network connectivity information, according to the first embodiment of the invention; FIGS. 5 and 6 respectively represent the format of a request and a response for obtaining connectivity information, according to a implementation compliant with the DNS protocol, applicable to the first variant of the first embodiment; FIGS. 7 and 8 respectively represent the format of a request and a response for obtaining connectivity information, according to an implementation outside the DNS protocol, applicable to the first variant of the first embodiment; FIGS. 9 and 10 respectively represent two examples of request formats for obtaining connectivity information, according to an implementation compliant with the DNS protocol, applicable to the second variant of the first embodiment; FIGS. 11 and 12 respectively represent two examples of connectivity information obtaining response formats, according to a DNS protocol implementation, applicable to the second variant of the first embodiment; FIGS. 13 and 14 respectively represent two examples of request formats for obtaining connectivity information, according to an implementation outside the DNS protocol, applicable to the second variant of the first embodiment; FIG. 15 represents the format of a response for obtaining connectivity information, according to an implementation outside the DNS protocol, applicable to the second variant of the first embodiment; FIG. 16 represents a network environment according to a second embodiment of the invention; and FIG. 17 is a flowchart illustrating a method for obtaining network connectivity information, according to the second embodiment of the invention. DETAILED DESCRIPTION OF THE INVENTION FIG. 1 represents the topography of a network environment in which the present invention is implemented according to a first embodiment. In FIG. 1, a client application 11 installed on a user terminal 1 must establish a communication with a remote server 18. In order to communicate with the server 18, the client application 11 uses the domain name associated with the server 18, it transmits to a module (not shown) resolving (resolver) domain name installed on the terminal, which resolution module is responsible for obtaining the IP address (s) associated with the server 18 and that the client application 11 will have to use to exchange data with the server. Once the IP addresses associated with the server 18 are returned to the user terminal 1, a network address selection module on the terminal 1 is responsible for determining the IP address associated with the server 18 that the client application 11 must use to establish a communication.
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é(e) 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 ex.), etc. De retour à a figure 1, l'entité 12 est un équipement réseau réalisant au moins une fonction de commutation permettant l'acheminement de paquets reçus en entrée au travers de réseaux tels 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é à l'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). Lors d'une tentative de connexion de l'application cliente 11 au serveur distant 18, l'application cliente 11 échange par conséquent avec le module 12a de l'équipement 12, qui joue le rôle de serveur DNS local pour le terminal 1, des blocs d'information DNS pour la résolution du nom du serveur 18 en une ou plusieurs adresses réseau. Le module 12a optimise les performances du réseau en réduisant le nombre d'échange de blocs d'information DNS échangés avec le réseau, en gérant une mémoire cache 12c dans lequel sont stockées des réponses DNS précédentes, selon une durée de validité TTL (Time To Live) prédéfinie. Le serveur de nom local 12a comprend également une base de données 12d dans laquelle sont stockés des enregistrements DNS correspondant aux terminaux des utilisateurs du réseau sur lequel est connecté le terminal utilisateur 1. Lorsque les informations (adresses réseau) relatives au serveur 18, recherché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 une entité 14, serveur de noms autoritaire, pour l'obtenir. Si ce dernier ne peut fournir les informations demandées, il échange des blocs d'information DNS avec un serveur DNS racine, 13, pour les obtenir. Le dispositif de routage 12b fait alors suivre les paquets de données 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 translation 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 l'entité 14a qui est responsable du traitement des requêtes DSN, et une base de données 14c contenant les 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). Conformément à l'invention, l'entité serveur DNS autoritaire 14a dispose également d'une mémoire cache 14c', dont la structure permet de stocker des associations entre une adresse réseau (de type IPv4 ou de type IPv6) et un FQDN. Ces associations représentent des entités tels que le serveur DNS local 12 et sont issues des échanges entre le serveur 14 et des entités telles que le serveur DNS local 12 lors d'opérations de résolution d'adresses précédentes.Here it is specified that: - by "client application" (11), any software application installed on a communicating device, such as, for example, a web browser, an FTP client (File Transfer Protocol), an email client etc. ; - "communicating equipment" means any computer device such as, for example, a user terminal (1) such as a computer, a mobile telephone, or a digital tablet, used by a user to access a service on the Internet , or on a corporate 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 (eg video), etc. Back to FIG. 1, the entity 12 is a network equipment device performing at least one switching function for routing incoming packets through networks 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 for the client application 11. Depending on the environments considered, the 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). When an attempt is made to connect the client application 11 to the remote server 18, the client application 11 therefore exchanges with the module 12a the equipment 12, which acts as a local DNS server for the terminal 1. DNS information blocks for resolving the name of the server 18 into one or more network addresses. The module 12a optimizes the performance of the network by reducing the number of exchange of DNS information blocks exchanged with the network, by managing a cache 12c in which are stored previous DNS responses, with a validity period TTL (Time To Live) predefined. The local name server 12a also comprises a database 12d in which are stored DNS records corresponding to the terminals of the users of the network to which the user terminal 1 is connected. When the information (network addresses) relating to the server 18, searched by the client application 11, are not obtained from the DNS records stored temporarily in the cache 12c of the local DNS server 12a, the latter communicates with an entity 14, authoritative name server, to obtain it. If the latter can not provide the requested information, it exchanges DNS information blocks with a root DNS server, 13, to obtain them. The routing device 12b then follows the 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 the data packets between the client application 11 and the server 18. The authoritative name server 14 comprises in particular the entity 14a which is responsible for the processing of the DSN requests, and a database 14c containing the 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). According to the invention, the authoritative DNS server entity 14a also has a cache memory 14c 'whose structure makes it possible to store associations between a network address (of the IPv4 or IPv6 type) and an FQDN. These associations represent entities such as the local DNS server 12 and come from exchanges between the server 14 and entities such as the local DNS server 12 during previous address resolution operations.
Le serveur DSN autoritaire 14 dispose également d'une structure de mémoire tampon (buffer) 14d, afin de stocker temporairement des adresse réseau de type IPv4 ou IPv6 et le cas échéant, des associations entre une adresse réseau et un FQDN. L'environnement réseau représenté à la figure 1, comprend aussi un équipement de routage 17 connecté au réseau dans lequel se situe le serveur 18, et destiné à acheminer des paquets de données jusqu'au serveur 18, en se basant sur des règles de routage ou des règles de traduction d'adresses (NAT). L'environnement réseau comprend également un serveur de noms TLD, 16, comprenant au moins un module (16a) serveur de noms de domaine Top Level et une base de données DNS locale (16b) destinée à la gestion des différents enregistrements DNS correspondant aux serveurs DNS tels que le serveur DNS local 12.The authoritative DSN server 14 also has a buffer structure 14d, in order to temporarily store network addresses of IPv4 or IPv6 type and, where appropriate, associations between a network address and an FQDN. The network environment shown in FIG. 1 also comprises a routing equipment 17 connected to the network in which the server 18 is located, and intended to route data packets to the server 18, based on routing rules. or address translation (NAT) rules. The network environment also includes a TLD name server, 16, comprising at least one top level domain name server module (16a) and a local DNS database (16b) for managing the different DNS records corresponding to the servers. DNS such as the local DNS server 12.
Conformément à l'invention, l'environnement réseau représenté à la figure 1, comprend un dispositif d'obtention d'informations de connectivité réseau relatives à certains noeuds ou équipements réseau situé dans l'environnement de la figure 1. Selon les modes de réalisation envisagés, les informations obtenues peuvent concerner l'application cliente 11, le ou les terminaux 1 de l'utilisateur final, ou encore le serveur distant 18. Plus généralement, le système décrit permet à tout dispositif informatique ou équipement intermédiaire d'obtenir des informations de connectivité réseau relatives à certains noeuds ou équipements réseau. Ce dispositif d'obtention est référencé par le chiffre 15 sur les figures. Selon le mode de réalisation décrit et illustré, il comporte plusieurs modules fonctionnels distincts, répartis sur des machines différentes.According to the invention, the network environment shown in FIG. 1 comprises a device for obtaining network connectivity information relating to certain nodes or network equipment located in the environment of FIG. 1. According to the embodiments envisaged, the information obtained may relate to the client application 11, the terminal or 1 of the end user, or the remote server 18. More generally, the system described allows any computer device or intermediate equipment to obtain information network connectivity for certain nodes or network devices. This obtaining device is referenced by the number 15 in the figures. According to the embodiment described and illustrated, it comprises several distinct functional modules distributed over different machines.
Un tel dispositif d'obtention d'informations de connectivité réseau permet ainsi de fournir des informations permettant, selon le cas d'usage, à l'entité 12 ou 14, ou à des entités équivalentes dans le réseau, d'adapter des mécanismes réseau comme le traitement DNS, la sélection du meilleur chemin réseau, ou la traduction de paquets IP, aux contraintes de l'entité 1, 12 ou 18. Par exemple, l'entité 14 peut adapter sa réponse DNS décrivant l'entité serveur 18 aux contraintes de connectivité réseau IPv4 ou IPv6 de l'entité 1. Par informations réseau concernant une entité réseau considérée, obtenues par le dispositif 15, il faut comprendre des données concernant les propriétés réseau de l'entité réseau concernée. Ces données réseau sont organisées sous la forme d'un ou plusieurs enregistrements, appelés dans le cadre de la présente description "enregistrements DIP" (Distributed Identity Protocol). Un ou plusieurs enregistrements DIP peuvent représenter une même entité réseau. En pratique, selon l'implémentation décrite, le dispositif 15 d'obtention d'informations de connectivité comprend un module client et un module serveur, appelés respectivement client DIP et serveur DIP dans le cadre de la présente description. Selon un mode de réalisation donné à titre d'exemple, un tel enregistrement DIP selon l'invention comprend notamment les champs suivants : Nom de l'entité réseau : ce champ correspond au FQDN de l'entité réseau. Ce champ a une taille variable. Nom du domaine (DN) : ce champ correspond au nom du domaine (DN) de l'entité réseau lorsque celle-ci gère plusieurs autres entités réseau différentes ayant le même type de connectivité réseau. Ce champ a une taille variable. Durée de validité : ce champ correspond au Time To Live (TTL) de l'enregistrement dans le cache 15b. Sa valeur est dictée par le module serveur DIP. Ce champ est codé sur 32 bits. Classe : ce champ correspond à la classe réseau pour laquelle l'enregistrement est applicable. Par défaut, ce champ correspond à la classe Internet. Ce champ est codé sur 16 bits.Such a device for obtaining network connectivity information thus makes it possible to provide information which, according to the use case, enables entity 12 or 14, or equivalent entities in the network, to adapt network mechanisms. such as DNS processing, the selection of the best network path, or the translation of IP packets, to the constraints of the entity 1, 12 or 18. For example, the entity 14 can adapt its DNS response describing the server entity 18 to IPv4 or IPv6 network connectivity constraints of the entity 1. By network information concerning a considered network entity, obtained by the device 15, it is necessary to understand data concerning the network properties of the network entity concerned. This network data is organized as one or more records, referred to herein as "Distributed Identity Protocol (DID) records". One or more DIP records can represent the same network entity. In practice, according to the implementation described, the device 15 for obtaining connectivity information comprises a client module and a server module, respectively called DIP client and DIP server in the context of the present description. According to an embodiment given by way of example, such a DIP record according to the invention comprises in particular the following fields: Name of the network entity: this field corresponds to the FQDN of the network entity. This field has a variable size. Domain Name (DN): This field corresponds to the domain name (DN) of the network entity when it manages several other different network entities with the same type of network connectivity. This field has a variable size. Validity period: This field corresponds to the Time To Live (TTL) of the record in cache 15b. Its value is dictated by the DIP server module. This field is 32-bit coded. Class: This field corresponds to the network class for which the registration is applicable. By default, this field corresponds to the Internet class. This field is coded on 16 bits.
Type de l'enregistrement : ce champ correspond au type de l'information stockée dans une mémoire cache du serveur DIP (15b). Par défaut, ce champ correspond au type "DIP" qui doit être enregistré auprès de l'IANA. Ce champ est codé sur 16 bits. Type de connectivité réseau : ce champ correspond aux types ou familles de connectivité réseau disponibles pour joindre l'entité réseau identifiée par le champ FQDN, ou bien pour joindre les entités réseau gérées sous le domaine identifié par le champ DN. Les caches (15b) du client DIP et (15d) du serveur DIP stockent autant d'enregistrements DIP qu'il y a de types de connectivité réseau par entité réseau. Ce champ est codé sur deux bits comme suit : a) '00' : IPv4 non partagée, b) '01' : IPv4 partagée, c) '10' : IPv6, d) '11' : Dual Stack.Record Type: This field corresponds to the type of information stored in a cache of the DIP server (15b). By default, this field corresponds to the type "DIP" that must be registered with the IANA. This field is coded on 16 bits. Network Connectivity Type: This field corresponds to the types or families of network connectivity available to join the network entity identified by the FQDN field, or to join the managed network entities under the domain identified by the DN field. The caches (15b) of the DIP client and (15d) of the DIP server store as many DIP records as there are types of network connectivity per network entity. This field is coded on two bits as follows: a) '00': IPv4 not shared, b) '01': IPv4 shared, c) '10': IPv6, d) '11': Dual Stack.
Préférence d'usage de type de connectivité réseau : ce champ correspond à la préférence d'usage d'un type de connectivité réseau. Il est nécessaire du fait qu'une entité réseau peut disposer de plusieurs types de connectivité réseau (IPv4, IPv4 partagée, IPv6 ou Dual Stack). Ce champ est codé sur 8 bits. Il contient une valeur décimale indiquant la préférence d'usage d'un enregistrement DIP.Network Connectivity Type Usage Preference: This field corresponds to the usage preference of a type of network connectivity. It is necessary because a network entity can have several types of network connectivity (IPv4, shared IPv4, IPv6 or Dual Stack). This field is 8-bit coded. It contains a decimal value indicating the usage preference of a DIP record.
Priorité d'usage de type de connectivité réseau : ce champ correspond à la préférence relative d'usage d'un type donné de connectivité réseau. Il est nécessaire du fait qu'une entité réseau peut disposer de plusieurs types de connectivité réseau simultanément et de plusieurs adresses réseau de même type simultanément. Ce champ est codé sur 8 bits. Il contient une valeur décimale indiquant la priorité d'usage d'un enregistrement DIP. Poids d'usage de type de connectivité réseau : ce champ correspond au poids à donner à chaque préférence d'usage d'un type de connectivité réseau. A préférence égale, le type de connectivité auquel correspond le poids le plus important est prioritaire. Ce champ est utilisé uniquement si plusieurs enregistrements de priorité égale existent. Ce champ est codé sur au moins 8 bits. Numéro de port : ce champ correspond au numéro de port sur lequel un service est accessible, par type de connectivité réseau. Un service est identifié alors par le couple : FQDN et numéro de port. Ce champ est utilisé uniquement lorsque l'entité identifiée par le champ FQDN est un serveur. Ce champ est codé sur 16 bits.Network Connectivity Type Usage Priority: This field corresponds to the usage preference of a given type of network connectivity. It is necessary because a network entity can have several types of network connectivity simultaneously and several network addresses of the same type simultaneously. This field is 8-bit coded. It contains a decimal value indicating the usage priority of a DIP record. Network Connectivity Type Usage Weight: This field is the weight to be given to each usage preference of a type of network connectivity. Equally preferably, the type of connectivity to which the largest weight corresponds has priority. This field is used only if multiple records of equal priority exist. This field is coded on at least 8 bits. Port Number: This field corresponds to the port number on which a service is accessible, by type of network connectivity. A service is then identified by the pair: FQDN and port number. This field is used only when the entity identified by the FQDN field is a server. This field is coded on 16 bits.
Comme indiqué précédemment, le dispositif d'obtention d'informations de connectivité selon l'invention comporte plusieurs modules fonctionnels distincts qui sont répartis sur des machines différentes. En particulier, selon l'implémentation choisie, le dispositif d'obtention d'informations de connectivité (15) peut inclure des modules instanciés sur le serveur DNS autoritaire 14 et sur le serveur DNS TLD 16, ou bien sur le serveur DNS autoritaire 14 et sur le serveur DNS Local 12. Dans les modes de réalisation exposés ci-après, le dispositif 15 d'obtention d'informations réseau, selon l'invention, comprend un module client (client DIP) 15a et un module serveur (serveur DIP) 15c. En relation avec les figures 2 et 3 on va à présent décrire un environnement réseau selon un premier mode de réalisation de l'invention, selon une première (figure 2) et une seconde variante (figure 3). Dans ce premier mode de réalisation la mise en oeuvre du procédé selon l'invention est déclenchée par la réception par le serveur DNS 14a d'un bloc d'information DNS de type requête, pour la résolution du nom du serveur 18 en une ou en plusieurs adresses réseau.As indicated above, the device for obtaining connectivity information according to the invention comprises several distinct functional modules which are distributed on different machines. In particular, depending on the implementation chosen, the device for obtaining connectivity information (15) may include modules instantiated on the authoritative DNS server 14 and on the DNS server TLD 16, or on the authoritative DNS server 14 and on the local DNS server 12. In the embodiments described below, the device 15 for obtaining network information, according to the invention, comprises a client module (DIP client) 15a and a server module (DIP server). 15c. With reference to FIGS. 2 and 3, a network environment according to a first embodiment of the invention will now be described, according to a first (FIG. 2) and a second variant (FIG. 3). In this first embodiment, the implementation of the method according to the invention is triggered by the reception by the DNS server 14a of a request-type DNS information block for the resolution of the name of the server 18 in one or more multiple network addresses.
Selon le premier mode de réalisation présenté, le module client DIP 15a est situé dans le serveur DNS autoritaire 14 ou à une proximité telle que la communication entre le client DIP 15a et le serveur DNS 14 puisse se faire sans perte ni latence (réseau hautement performant). Selon la première variante de ce mode de réalisation, illustrée à la figure 2, le module serveur DIP 15c est situé dans le serveur DNS TLD 16. Comme représenté à la figure 2, le module client DIP 15a gère une mémoire cache 15b dans laquelle sont stockées des informations réseau relatives notamment au serveur DNS local 12a. Cependant, le cache 15b peut aussi contenir des informations réseau sur l'application cliente 11 et concernant les terminaux (1) de l'utilisateur ou des serveurs tels que le serveur 18. Les informations réseau stockées dans le cache 15b représentent des propriétés réseau de l'entité réseau concernée. Ces données réseau sont organisées sous la forme d'un ou plusieurs enregistrements DIP comme défini plus haut. Le module client DIP 15a utilise une mémoire volatile de type mémoire tampon, 15b'. Le buffer 15b' permet de stocker temporairement un ou plusieurs enregistrements DIP. Le module client DIP gère aussi une table d'association en mémoire 15d', permettant d'associer à une requête DNS générée par le serveur DNS local 12a à une requête DIP spécifique à l'invention, permettant d'obtenir des informations réseau utiles pour le traitement de la requête DNS. L'association entre une requête DNS et une requête DIP est effectuée grâce aux numéros de séquence respectifs.According to the first embodiment presented, the DIP client module 15a is located in the authoritative DNS server 14 or at a proximity such that the communication between the DIP client 15a and the DNS server 14 can be done without loss or latency (high-performance network ). According to the first variant of this embodiment, illustrated in FIG. 2, the DIP server module 15c is located in the DNS server TLD 16. As represented in FIG. 2, the DIP client module 15a manages a cache memory 15b in which are stored network information including the local DNS server 12a. However, the cache 15b may also contain network information on the client application 11 and on the terminals (1) of the user or servers such as the server 18. The network information stored in the cache 15b represents network properties of the network entity concerned. This network data is organized as one or more DIP records as defined above. The DIP client module 15a uses a buffer-type volatile memory 15b '. The buffer 15b 'temporarily stores one or more DIP records. The client module DIP also manages a memory association table 15d ', making it possible to associate a DNS query generated by the local DNS server 12a with a request DIP specific to the invention, making it possible to obtain network information that is useful for the processing of the DNS query. The association between a DNS request and a DIP request is made by the respective sequence numbers.
On peut également prévoir que la mémoire 15d' stocke en plus des numéros de séquence, un temporisateur, un nombre de tentatives (retries) d'envoi de requêtes DIP effectuées, ainsi qu'une copie de la requête DIP générée suite à la réception d'une requête DNS. Le module serveur DIP 15c - présent dans le serveur DNS TLD 16 selon la première variante du premier mode de réalisation (figure 2) et dans le serveur DNS local 12, selon la seconde variante (figure 3) - gère une mémoire 15d dans laquelle sont stockées des informations réseau, sous la forme d'enregistrements DIP dont la structure a été exposée plus haut. Comme déjà mentionné, les informations réseau stockées peuvent concerner selon l'implémentation un ou plusieurs serveurs DNS locaux 12a ou une ou plusieurs applications cliente (11), sur des terminaux (1) d'utilisateur, ou encore sur des serveurs de ressources tels que le serveur 18. En pratique, dans la première variante , le serveur DIP 15c est confondu avec le module résolveur (16a) du serveur DNS TLD. Le serveur DIP 15c gère une base de données 15d destinée à stocker des enregistrements contenant les données réseau selon l'invention ("données DIP"). Cette base de données 15d peut être confondue avec la base de données 16b propre au serveur DNS TLS, ou bien indépendante de cette dernière. La mémoire 15d est alimentée d'informations DIP selon l'invention, lors de l'enregistrement initial de chaque serveur DNS local (12) auprès du serveur DNS TLD 16. Le Registraire (Registrar en anglais) Internet qui est responsable du serveur DNS 16, peut proposer la souscription à un service de fourniture d'enregistrements DIP selon l'invention, soit par défaut, soit sous la forme d'une option gratuite ou payante. Le "service DIP" permet ainsi aux utilisateurs finaux utilisant le serveur DNS local (12) d'obtenir une meilleure qualité d'expérience Internet, lors d'accès à des serveurs (18) offrant des services sur Internet (par exemple la fourniture de contenus).It can also be provided that the memory 15d 'stores in addition to sequence numbers, a timer, a number of retries (retries) for sending DIP requests made, as well as a copy of the DIP request generated following the reception of DIP requests. a DNS query. The DIP server module 15c - present in the DNS server TLD 16 according to the first variant of the first embodiment (FIG. 2) and in the local DNS server 12, according to the second variant (FIG. 3) - manages a memory 15d in which are stored network information, in the form of DIP records whose structure has been exposed above. As already mentioned, the stored network information may, depending on the implementation, relate to one or more local DNS servers 12a or one or more client applications (11), to user terminals (1), or to resource servers such as the server 18. In practice, in the first variant, the DIP server 15c is merged with the resolver module (16a) of the DNS TLD server. The DIP server 15c manages a database 15d intended to store records containing the network data according to the invention ("DIP data"). This database 15d can be confused with the database 16b specific to the DNS server TLS, or independent of the latter. The memory 15d is fed with DIP information according to the invention, during the initial registration of each local DNS server (12) with the DNS server TLD 16. The Internet Registrar (Registrar) who is responsible for the DNS server 16 may offer the subscription to a service providing DIP records according to the invention, either by default or in the form of a free or paid option. The "DIP service" thus enables end users using the local DNS server (12) to obtain a better quality Internet experience, when accessing servers (18) offering services on the Internet (for example providing content).
Selon la seconde variante, illustrée à la figure 3, le module serveur DIP 15c est situé dans l'entité 12. Cette dernière comprend le module 12a correspondant au serveur de nom proprement dit. Le serveur DNS local 12a comporte également une base de données 12d dans laquelle il stocke les enregistrements DNS correspondant aux terminaux (1) des utilisateurs finaux. Dans l'implémentation choisie, le module serveur DIP 15c est confondu avec le module 12a du serveur DNS local. Le serveur DIP 15c gère la base de données (mémoire) 15d dans laquelle sont stockés les enregistrements contenant les données réseau DIP selon l'invention, comme défini plus haut. La base de données 15d peut être confondue avec la base de données 12d propre au serveur DNS local 12, ou bien indépendante de cette dernière.According to the second variant, illustrated in Figure 3, the DIP server module 15c is located in the entity 12. The latter comprises the module 12a corresponding to the name server itself. The local DNS server 12a also comprises a database 12d in which it stores the DNS records corresponding to the terminals (1) of the end users. In the implementation chosen, the DIP server module 15c is confused with the module 12a of the local DNS server. The DIP server 15c manages the database (memory) 15d in which are stored the records containing the network data DIP according to the invention, as defined above. The database 15d may be confused with the database 12d specific to the local DNS server 12, or independent of the latter.
La base de données 15d est dans tous les cas alimentée préalablement en informations réseau selon l'invention c'est-à-dire en "enregistrements DIP", ces enregistrements concernant en particulier des utilisateurs finaux considérés dans leur ensemble ou de manière individuelle. Dans ce cas, l'opérateur local peut proposer la souscription au "service DIP" selon l'invention, soit par défaut, soit sous la forme d'une option gratuite ou bien payante. L'opérateur local peut par ailleurs collecter les informations réseau selon l'invention (DIP) dans le réseau de manière automatique, ou bien les ajouter préalablement à la demande de l'utilisateur final qui a souscrit à l'option DIP afin de bénéficier d'une meilleure expérience utilisateur Internet. La figure 4 est un organigramme illustrant un procédé d'obtention d'informations de connectivité réseau, selon le premier mode de réalisation de l'invention. Le procédé commence par l'étape E60 au cours de laquelle, le serveur DNS autoritaire 14 reçoit une requête DNS de la part du serveur DNS local 12a afin d'obtenir l'adresse réseau du serveur 18. A l'étape E61, le module 14a du serveur DNS autoritaire identifie l'adresse réseau source de la requête DNS reçue à l'étape E60 et la mémorise dans la mémoire tampon 14d. A l'étape E62, le module 14a du serveur DNS autoritaire consulte sa mémoire cache 14c' pour déterminer l'identifiant FQDN du serveur DNS local 12 correspondant à l'adresse réseau, en pratique une adresse IP, identifiée à l'étape E61. Si la mémoire cache 14c' contient l'identifiant FQDN du serveur DNS local (12), alors on passe à l'étape E63, au cours de laquelle, le serveur DNS autoritaire (module 14a) lit l'identifiant FQDN du serveur DNS local 12 et met à jour la mémoire tampon 14d. Le serveur DNS autoritaire (14a) exécute alors l'étape E65. En revanche, si à l'étape E62, le cache 14c' ne contient pas l'identifiant FQDN du serveur DNS local (12), on passe à l'étape E64 au cours de laquelle le serveur DNS autoritaire (14) obtient l'identifiant FQDN du serveur DNS local (12) en effectuant une résolution inverse de l'adresse réseau du serveur DNS local. A cette fin, une interrogation est effectuée auprès du domaine Internet "in-addr.arpa", si l'adresse réseau utilisée par le serveur DNS local est de type IPv4, ou bien le domaine Internet "ipv6.arpa", si l'adresse réseau utilisée par le serveur DNS local est de type IPv6. Le serveur DNS autoritaire (module 14a) met ensuite à jour, d'une part, le cache 14c' avec l'adresse réseau du serveur DNS local 12 et l'identifiant FQDN associé, et d'autre part, la mémoire tampon (buffer 14d) avec l'association adresse réseau du serveur DNS local (12) et l'identifiant FQDN. Le serveur DNS autoritaire (14a) passe alors à l'étape E65. Cependant, dans une implémentation particulière où le module client DIP 15a n'est pas confondu avec le serveur DNS autoritaire (module 14a), le serveur DNS autoritaire passe de l'étape E64 ou E63, selon le cas, à l'étape E65' au cours de laquelle le serveur DNS autoritaire (14a) envoie au client DIP (15a), via un réseau fiable et sans latence (par exemple un réseau utilisant la transmission par fibre optique), un message contenant le numéro de séquence de la requête DNS afin de provoquer la génération d'une requête DIP, ainsi que l'identifiant FQDN du serveur DNS local (12a). On passe alors à l'étape E65.The database 15d is in any case previously supplied with network information according to the invention, that is to say in "DIP records", these records concerning in particular end users considered as a whole or individually. In this case, the local operator can offer the subscription to the "DIP service" according to the invention, either by default, or in the form of a free or paid option. The local operator can also collect the network information according to the invention (DIP) in the network automatically, or add them beforehand to the request of the end user who has subscribed to the DIP option in order to benefit from the 'a better Internet user experience. Fig. 4 is a flowchart illustrating a method of obtaining network connectivity information, according to the first embodiment of the invention. The method starts with step E60 in which the authoritative DNS server 14 receives a DNS request from the local DNS server 12a to obtain the network address of the server 18. In step E61, the module 14a of the authoritative DNS server identifies the source network address of the DNS request received in step E60 and stores it in the buffer 14d. In step E62, the module 14a of the authoritative DNS server consults its cache memory 14c 'to determine the FQDN identifier of the local DNS server 12 corresponding to the network address, in practice an IP address, identified in step E61. If the cache memory 14c 'contains the FQDN identifier of the local DNS server (12), then proceed to step E63, during which the authoritative DNS server (module 14a) reads the FQDN identifier of the local DNS server. 12 and updates the buffer 14d. The authoritative DNS server (14a) then executes step E65. On the other hand, if in step E62, the cache 14c 'does not contain the FQDN identifier of the local DNS server (12), it proceeds to the step E64 during which the authoritative DNS server (14) obtains the FQDN identifier of the local DNS server (12) by performing an inverse resolution of the network address of the local DNS server. For this purpose, a query is made to the Internet domain "in-addr.arpa", if the network address used by the local DNS server is of type IPv4, or the Internet domain "ipv6.arpa", if the The network address used by the local DNS server is IPv6. The authoritative DNS server (module 14a) then updates, on the one hand, the cache 14c 'with the network address of the local DNS server 12 and the associated FQDN identifier, and on the other hand, the buffer memory (buffer 14d) with the network address association of the local DNS server (12) and the FQDN identifier. The authoritative DNS server (14a) then proceeds to step E65. However, in a particular implementation where the DIP client module 15a is not confused with the authoritative DNS server (module 14a), the authoritative DNS server goes from step E64 or E63, as the case may be, to step E65 ' during which the authoritative DNS server (14a) sends to the client DIP (15a), via a reliable network and without latency (for example a network using the optical fiber transmission), a message containing the sequence number of the DNS request to cause the generation of a DIP request, as well as the FQDN identifier of the local DNS server (12a). We then go to step E65.
A l'étape E65, le client DIP (15a), ayant obtenu le FQDN ainsi que le nom de domaine (DN) du serveur DNS local (12), consulte sa mémoire cache 15b afin de rechercher des enregistrements DIP selon l'invention contenant des informations réseau concernant le serveur DNS local (12) ; les enregistrements DIP recherchés sont ceux contenant comme identifiant FQDN ou comme nom de domaine (DN), ceux obtenus à l'étape E63 ou à l'étape E64.In step E65, the DIP client (15a), having obtained the FQDN and the domain name (DN) of the local DNS server (12), consults its cache memory 15b in order to search for DIP records according to the invention containing network information about the local DNS server (12); the sought DIP records are those containing as FQDN identifier or as domain name (DN) those obtained in step E63 or step E64.
Si au moins un enregistrement DIP est trouvé dans la mémoire cache 15b, on passe à l'étape E66, au cours de laquelle le module client DIP 15a obtient les enregistrements DIP trouvés par lecture et les stocke dans le buffer 15b'. On passe ensuite à l'étape E73. Toutefois, dans l'implémentation précitée selon laquelle le module client DIP 15a n'est pas confondu avec le serveur DNS autoritaire (module 14a), on passe de l'étape E66 à l'étape E71' décrite plus bas. Au contraire, si à l'étape E65 aucun enregistrement DIP correspondant au FQDN ou au nom de domaine (DN) du serveur DNS local (12) n'a été trouvé dans la mémoire cache 15b, on passe à l'étape E67 (ou E67'). A cette étape, afin d'obtenir de tels enregistrements DIP selon l'invention, le module client DIP 15a génère une ou plusieurs requêtes ("requête DIP") à destination du module serveur DIP 15c selon l'invention. L'obtention d'enregistrements DIP selon l'invention est mise en oeuvre selon deux variantes de réalisation correspondant respectivement au cas où le serveur DIP 15c est confondu avec le serveur TLD 16a (figure 2) - variante "Ml-V1" - ou au cas où le serveur DIP 15c est confondu avec le serveur DNS local 12a (figure 3) - variante "M1-V2". Les étapes E67-E70 (et E67'-E70') sont détaillées plus bas dans la description en fonction de la variante de réalisation considérée (M1-V1, M1-V2). Si le module client DIP 15a reçoit de la part du serveur DIP 15c une (ou plusieurs) réponse ("réponse DIP") suite à l'envoi d'une ou plusieurs requêtes DIP, il vérifie (étape E68) leur intégrité, conformément aux variantes de réalisation de l'étape E67 décrites plus bas. Si la réponse DIP reçue est valide, alors le module client DIP 15a passe à l'étape E69.If at least one DIP record is found in the cache memory 15b, step E66 is proceeded to, during which the DIP client module 15a obtains the DIP records found by reading and stores them in the buffer 15b '. Then we go to step E73. However, in the aforementioned implementation in which the DIP client module 15a is not confused with the authoritative DNS server (module 14a), it goes from step E66 to step E71 'described below. On the contrary, if in step E65 no DIP record corresponding to the FQDN or the domain name (DN) of the local DNS server (12) has been found in the cache memory 15b, proceed to step E67 (or E67 '). At this stage, in order to obtain such DIP records according to the invention, the DIP client module 15a generates one or more requests ("DIP request") for the DIP server module 15c according to the invention. Obtaining DIP records according to the invention is implemented according to two variants respectively corresponding to the case where the DIP server 15c is merged with the TLD server 16a (FIG. 2) - variant "Ml-V1" - or where the DIP server 15c is confused with the local DNS server 12a (Figure 3) - variant "M1-V2". Steps E67-E70 (and E67'-E70 ') are detailed below in the description according to the considered embodiment variant (M1-V1, M1-V2). If the DIP client module 15a receives from the DIP server 15c one (or more) response ("DIP response") following the sending of one or more DIP requests, it verifies (step E68) their integrity, in accordance with the variants of step E67 described below. If the received DIP response is valid, then the DIP client module 15a proceeds to step E69.
Si à l'inverse la réponse DIP reçue n'est pas valide, alors, selon l'implémentation exposée, une variable N initialisée préalablement à une valeur positive prédéterminée, utilisée comme compteur de tentatives d'envoi de requêtes DIP à destination du serveur DIP 15c, est testée. Si la valeur de la variable N n'est pas égale à zéro, alors la variable est décrémentée de 1, puis on retourne à l'étape E67 ou E67'. En revanche si la valeur de la variable est égale à zéro, alors le module client DIP 15a positionne un code de retour du message de réponse DIP à la valeur '1' indiquant un message non cohérent. Le module client DIP 15a passe alors à l'étape E69. A l'étape E69, le module client DIP 15a traite chacune des réponses DIP reçues. A cette fin, chacun des messages de réponse DIP est traité en fonction du code de retour indiqué dans l'entête du message de réponse DIP, conformément aux variantes de réalisation décrites plus bas dans la description (variante Ml-V1 et variante Ml-V2). Quelle que soit la variante considérée, le module client DIP 15a traite chaque message de réponse DIP en fonction de son code de retour (return code, RC) comme suit : - Si RC = 0 ("Succès"), cela signifie que des enregistrements DIP contenant des informations réseau relatives à au moins le serveur DNS local 12a ont été obtenus. Le module client DIP 15a passe alors à l'étape E71 au cours de laquelle le module client DIP 15a met à jour le cache 15b avec les enregistrements DIP valides obtenus à l'étape E69, et purge également les enregistrements DIP stockés dans le cache 15b, dont la durée de vie (TTL) a expiré. Le processus se termine alors avec un code de retour égal à zéro. Le client DIP 15a passe ensuite à l'étape E73. - Si le RC # 0 ("Réponse Vide ou Incohérente"), cela signifie que le client DIP 15a n'a pas pu obtenir des informations réseau sur le serveur DNS local 12a. Le client DIP 15a passe alors à l'étape E72 au cours de laquelle aucune mise à jour de la mémoire cache 15b n'est effectuée. Le processus se termine avec un code de retour différent de zéro. On passe ensuite à l'étape E73. Dans une implémentation selon laquelle le module client DIP 15a n'est pas confondu avec le serveur DNS autoritaire 14a, mais relié à ce dernier par un réseau fiable et sans latence, par exemple un réseau utilisant la transmission par fibre optique, le client DIP 15a passe alors de l'étape E71 ou de l'étape E72, à l'étape E71'. A l'étape E71', le module client DIP 15a envoie au serveur DNS autoritaire 14a un message contenant le numéro de séquence de la requête DNS à l'origine de la génération de la requête DIP, le FQDN du serveur DNS local (12a), ainsi que le ou les enregistrements DIP obtenus. Le serveur DNS autoritaire (14a) passe ensuite à l'étape E73 au cours de laquelle il met à jour une mémoire cache avec les informations contenues dans les enregistrements DIP reçus à l'étape E71'. L'étape E73 représente la fin du procédé, selon l'invention, d'obtention d'informations réseau concernant notamment le serveur DNS local 12a et/ou le terminal d'utilisateur 1. Selon le cas d'usage considéré, ces informations réseau DIP peuvent être utilisées, soit par le serveur DNS autoritaire (14a), soit par d'autres entités réseau, à diverses fins, par exemple pour : - adapter les réponses DNS aux contraintes d'une ou plusieurs entités réseau comme le terminal utilisateur ; - activer, désactiver ou adapter divers mécanismes ou services dans le réseau du fournisseur d'accès Internet (ISP), en prenant en compte les spécificités et les contraintes des utilisateurs finaux, etc.If, conversely, the received DIP response is not valid, then, according to the implementation exposed, a variable N initialized before a predetermined positive value, used as a counter of attempts to send DIP requests to the DIP server 15c, is tested. If the value of the variable N is not equal to zero, then the variable is decremented by 1, then it returns to the step E67 or E67 '. On the other hand, if the value of the variable is equal to zero, then the DIP client module 15a sets a return code of the DIP response message to the value '1' indicating a non-coherent message. The DIP client module 15a then proceeds to step E69. In step E69, the DIP client module 15a processes each of the received DIP responses. For this purpose, each of the DIP response messages is processed according to the return code indicated in the header of the DIP response message, in accordance with the embodiments described below in the description (variant Ml-V1 and variant Ml-V2 ). Regardless of the variant considered, the DIP client module 15a processes each DIP response message according to its return code (RC) as follows: - If RC = 0 ("Success"), this means that records DIPs containing network information relating to at least the local DNS server 12a have been obtained. The DIP client module 15a then proceeds to the step E71 during which the DIP client module 15a updates the cache 15b with the valid DIP records obtained in the step E69, and also purges the DIP records stored in the cache 15b , whose lifetime (TTL) has expired. The process then ends with a return code equal to zero. The DIP client 15a then proceeds to step E73. - If the RC # 0 ("Empty or Incoherent Response"), this means that the DIP client 15a could not obtain network information on the local DNS server 12a. The DIP client 15a then proceeds to step E72 during which no update of the cache 15b is performed. The process ends with a nonzero return code. Then we go to step E73. In an implementation according to which the DIP client module 15a is not confused with the authoritative DNS server 14a, but connected thereto by a reliable and latency-free network, for example a network using the optical fiber transmission, the DIP client 15a then going from step E71 or step E72 to step E71 '. In step E71 ', the DIP client module 15a sends to the authoritative DNS server 14a a message containing the sequence number of the DNS request that originated the generation of the DIP request, the FQDN of the local DNS server (12a). , as well as the DIP record (s) obtained. The authoritative DNS server (14a) then proceeds to step E73 during which it updates a cache memory with the information contained in the DIP records received in step E71 '. Step E73 represents the end of the method, according to the invention, of obtaining network information concerning in particular the local DNS server 12a and / or the user terminal 1. According to the use case considered, these network information DIPs may be used either by the authoritative DNS server (14a) or by other network entities for various purposes, for example to: - adapt DNS responses to the constraints of one or more network entities such as the user terminal; - enable, disable or adapt various mechanisms or services in the ISP network, taking into account the specificities and constraints of end-users, etc.
On va à présent détailler l'obtention d'enregistrements DIP selon l'invention selon les deux variantes de réalisation précitées.We will now detail obtaining DIP records according to the invention according to the two aforementioned embodiments.
La première variante, désignée dans le cadre du présent exposé par "M1-V1", correspond au cas où le serveur DIP 15c est confondu avec le serveur TLD 16a, et dont l'environnement réseau est illustré par la figure2. La seconde variante, désignée dans le cadre du présent exposé par "M1-V2", correspond au cas où le serveur DIP 15c est confondu avec le serveur DNS local 12a, et dont l'environnement réseau est illustré par la figure3. 1. Première variante du 1er mode de réalisation (M1-V1) Dans cette variante, le serveur DIP 15c est confondu avec le serveur TLD 16a comme illustré par la figure 2. On va détailler les étapes E67-E70 (E67'-E70') de la figure 4 selon cette variante (M1-V1) en envisageant deux implémentations : une implémentation s'inscrivant dans le cadre du protocole DNS (désignée par M1-V1_i1) et une implémentation hors DNS, c'est-à-dire indépendante du protocole DNS (désignée par M1-V1_i2). 1.1. Implémentation DNS (M1-V1 i1) Les figures 5 et 6 représentent respectivement le format d'une requête et d'une réponse d'obtention d'informations DIP de connectivité réseau, selon une implémentation conforme au protocole DNS, applicable à la première variante (M1-V1) du premier mode de réalisation. Dans cette implémentation, à l'étape E67 le module client 15a génère à destination du module serveur 15c une ou plusieurs requêtes DNS de type DIP dont le format est illustré par la figure 5. Des moyens de routage déterminent alors un meilleur chemin vers le serveur DIP 15c.The first variant, referred to herein as "M1-V1", corresponds to the case where the DIP server 15c is merged with the TLD server 16a, and whose network environment is illustrated in FIG. The second variant, designated as "M1-V2" in the present description, corresponds to the case where the DIP server 15c is merged with the local DNS server 12a, and whose network environment is illustrated by FIG. 1. First Variant of the 1st Embodiment (M1-V1) In this variant, the DIP server 15c is merged with the TLD server 16a as illustrated in FIG. 2. The steps E67-E70 (E67'-E70 ') will be detailed. ) of Figure 4 according to this variant (M1-V1) by considering two implementations: an implementation within the framework of the DNS protocol (designated M1-V1_i1) and an implementation outside DNS, that is to say independent the DNS protocol (designated M1-V1_i2). 1.1. DNS Implementation (M1-V1 i1) Figures 5 and 6 respectively represent the format of a network connectivity DIP information request and response, in a DNS-compliant implementation, applicable to the first variant. (M1-V1) of the first embodiment. In this implementation, in step E67, the client module 15a generates, for the server module 15c, one or more DNS requests of the DIP type whose format is illustrated in FIG. 5. Routing means then determine a better path to the server DIP 15c.
Le client DIP 15a gère en mémoire 15d' une table permettant d'associer la requête DNS reçue du serveur DNS local (12a) à la requête DIP générée. Le client DIP 15a met à jour la table 15d'. A la réception de la requête DNS de type DIP par le module serveur DIP 15c, ce dernier, à l'étape E70, effectue d'abord une recherche dans sa base de données locale 15d afin de trouver des enregistrements DIP correspondant à l'identifiant FQDN du serveur DNS local 12a. Il génère ensuite une réponse DNS de type DIP, c'est-à-dire une réponse DNS contenant zéro, un ou plusieurs enregistrements DIP trouvés dans la base de données locale 15d, puis envoie enfin la réponse DNS DIP à destination du client DIP 15a. Des moyens de routage déterminent le meilleur chemin vers le client DIP 15a.The DIP client 15a manages in memory 15d a table for associating the DNS request received from the local DNS server (12a) with the generated DIP request. The DIP client 15a updates the table 15d '. On receipt of the DIP type DNS request by the DIP server module 15c, the latter, in step E70, first searches its local database 15d in order to find DIP records corresponding to the identifier FQDN of the local DNS server 12a. It then generates a DIP-type DNS response, that is, a DNS response containing zero, one or more DIP records found in the local database 15d, and then finally sends the DNS DIP response to the DIP client 15a. . Routing means determine the best path to the DIP client 15a.
Le format d'une réponse DNS DIP selon cette implémentation représenté à la figure 6. Ainsi, selon le format représenté, le champ RDATA contient zéro, un ou plusieurs enregistrements DIP contenant au moins les champs suivants tels que définis plus haut dans la description : - Nom du domaine (DN) de l'entité réseau ; - Type de connectivité réseau ; - Préférence d'usage du type de connectivité réseau ; - Priorité d'usage du type de connectivité réseau ; - Poids d'usage du type de connectivité réseau ; - Numéro de port. L'implémentation DNS (M1-V1_i1) requiert préalablement de réserver et d'enregistrer le type d'enregistrement DNS de type "DIP" auprès de l'IANA. Elle requiert d'autre part d'étendre le protocole DNS pour le support de la génération de requêtes DNS de type DIP, du stockage d'enregistrements DNS de type DIP, et de la génération de réponses DNS de type DIP. 1.2. Implémentation hors DNS (M1-V1_i2) Les figures 7 et 8 représentent respectivement le format d'une requête et d'une réponse d'obtention d'informations de connectivité, selon une implémentation hors protocole DNS, applicable à la première variante (M1-V1) du premier mode de réalisation.The format of a DNS DIP response according to this implementation represented in FIG. 6. Thus, according to the format represented, the RDATA field contains zero, one or more DIP records containing at least the following fields as defined above in the description: - Domain name (DN) of the network entity; - Type of network connectivity; - Use preference of the type of network connectivity; - Use priority of the type of network connectivity; - User weight of the type of network connectivity; - Port number. The DNS implementation (M1-V1_i1) requires prior reservation and registration of the type of DNS record of type "DIP" with the IANA. On the other hand, it requires extending the DNS protocol to support the generation of DIP-type DNS queries, the storage of DIP-type DNS records, and the generation of DNS-type DIP responses. 1.2. Non-DNS implementation (M1-V1_i2) Figures 7 and 8 respectively represent the format of a request and a response for obtaining connectivity information, according to a non-DNS implementation, applicable to the first variant (M1-V1_i2). V1) of the first embodiment.
Dans cette seconde implémentation, à l'étape E67, le client DIP 15a génère à destination du serveur DIP 15c une (ou plusieurs) requête de type DIP, qui est acheminée par des moyens de routage vers le serveur DIP 15c. Cependant, à la différence de l'implémentation précédente (M1-V1_i2), la requête DIP est générée indépendamment du protocole DNS. La figure 7 représente le format d'une requête DIP hors protocole DNS, selon cette seconde implémentation. La figure 8 représente le format d'une réponse DIP hors protocole DNS, selon cette seconde implémentation. L'entête du message est commun aux messages DIP de type requête ou de type réponse. De ce fait, il contient les champs suivants: - Sequence ID (Numéro de séquence) : ce champ est codé sur 16 bits. Il est nécessaire pour l'identification d'une transaction DIP (requête/réponse). Toutes les réponses ont le même numéro de séquence que la requête correspondante. - Flags (drapeaux) : - Flag 'QR' : ce champ est codé sur 1 bit. Il indique le type du message (QR=0 si Question, QR=1 si Réponse) ; - Flag 'AA' : ce champ est codé sur 1 bit. Il indique si la réponse DIP provient d'un serveur de nom autoritaire ou non. - Flag 'TC' : Drapeau TC : ce champ est codé sur 1 bit. Il indique si la réponse DIP est tronquée ou non. - Flag 'Z' : ce champ est codé sur 1 bit. Il est réservé. - RCODE (Code de retour) : ce champ est codé sur 4 bits et il est utilisé uniquement dans une réponse DIP. Il peut contenir l'une des valeurs suivantes : - 0 : pour indiquer un succès, c'est-à-dire qu'une ou plusieurs réponses DIP ont été trouvées. - 1 : pour indiquer que le domaine est bien géré par le serveur TLD (16) mais qu'aucun enregistrement de réponse DIP, correspondant au champ DATA n'a été trouvé. - 2 : pour indiquer qu'un problème système est survenu au niveau du module serveur DIP (15c), lequel n'a pu traiter la requête DIP. - 3 : pour indiquer qu'aucun domaine correspondant au champ DATA n'a été trouvé. - 4 : pour indiquer que le message DIP est non cohérent. - 5-15: valeurs réservées. - Checksum : ce champ est codé sur 8 bits. Il est nécessaire à la gestion d'intégrité des échanges DIP. Son contenu est calculé en appliquant un algorithme de hachage sur tout le message DIP (entête (sans checksum) et corps). A la réception d'un message DIP, l'entité qui le reçoit recalcule le checksum en utilisant le même algorithme de hachage et compare le résultat au contenu du champ checksum. Si le message DIP est corrompu, il est supprimé silencieusement. Le corps d'un message de type DIP dépend du type du message DIP (requête ou réponse). Le corps d'un message DIP de type requête (figure 8) contient les champs suivants : - TYPE : ce champ est codé sur 16 bits. Il indique le type de la requête. Un seul type est défini dans cette version qui est le type DIP. - TTL : ce champ est codé sur 32 bits. Il indique le temps de validité (Time To Live) d'un message DIP. Il est utilisé pour la mise en mémoire cache les messages DIP. - DATA LENGTH : ce champ est codé sur 16 bits. Il indique la taille du champ DATA. - DATA : ce champ est de taille variable. Il indique le FQDN ou le DN du serveur DNS local (12). Une requête DIP est envoyée (figure 4, étape E67) par défaut sur un paquet UDP/IP (User Datagram Protocol/Internet Protocol), à destination du serveur DIP (15c). Le protocole UDP est utilisé afin d'éviter les problèmes de latence liés à l'établissement d'une connexion TCP. En variante, une requête DIP peut être envoyée en utilisant le protocole TCP/IP (Transmission Control Protocol/Internet Protocol), en particulier à l'étape E67' (figure 4), à destination du serveur DIP (15c). Enfin, lors de l'envoi de chaque requête DIP, le module client DIP (15a) met à jour la structure de données (table 15d') en : - insérant le numéro de séquence de la requête DNS qui est à l'origine de la génération de la requête DIP ; - déclenchant un temporisateur ; - mettant à jour la variable N dont la valeur est indicative du nombre de tentatives d'envoi à destination du dispositif 15c (serveur DIP) ; - créant une copie de la requête DIP générée, qui est stockée dans une mémoire tampon (buffer memory). La ligne correspondante de la table (15d') est purgée si l'une des conditions suivantes se réalise : - lorsque le temporisateur arrive à expiration et le nombre maximum de tentatives d'envoi à destination du serveur DIP (15c) est atteint ; - à la réception d'une réponse DIP valide (c'est-à-dire, non malformée, non dupliquée, avec un code d'erreur indiquant un succès).In this second implementation, in step E67, the DIP client 15a generates, for the DIP server 15c, one (or more) request of the DIP type, which is routed by routing means to the DIP server 15c. However, unlike the previous implementation (M1-V1_i2), the DIP request is generated independently of the DNS protocol. Figure 7 shows the format of a non-DNS protocol DIP request, according to this second implementation. Figure 8 shows the format of a non-DNS protocol DIP response, according to this second implementation. The message header is common to request or response type DIP messages. As a result, it contains the following fields: - Sequence ID: This field is coded on 16 bits. It is necessary for the identification of a DIP transaction (request / response). All responses have the same sequence number as the corresponding request. - Flags: - Flag 'QR': this field is coded on 1 bit. It indicates the type of the message (QR = 0 if Question, QR = 1 if Answer); - Flag 'AA': This field is coded on 1 bit. It indicates whether the DIP response comes from an authoritative name server or not. - Flag 'TC': Flag TC: This field is coded on 1 bit. It indicates whether the DIP response is truncated or not. - Flag 'Z': This field is coded on 1 bit. He is reserved. - RCODE (Return Code): This field is 4-bit coded and is used only in a DIP response. It can contain one of the following values: - 0: to indicate success, that is, one or more DIP responses were found. - 1: to indicate that the domain is well managed by the TLD server (16) but that no DIP response record corresponding to the DATA field has been found. - 2: to indicate that a system problem has occurred in the DIP server module (15c), which could not process the DIP request. - 3: to indicate that no domain corresponding to the DATA field has been found. - 4: to indicate that the DIP message is non-coherent. - 5-15: reserved values. - Checksum: this field is coded on 8 bits. It is necessary for the integrity management of DIP exchanges. Its content is calculated by applying a hashing algorithm on the entire DIP message (header (without checksum) and body). On receipt of a DIP message, the receiving entity recalculates the checksum using the same hash algorithm and compares the result with the contents of the checksum field. If the DIP message is corrupted, it is silently deleted. The body of a DIP message depends on the type of the DIP message (request or response). The body of a request type DIP message (Figure 8) contains the following fields: - TYPE: This field is coded on 16 bits. It indicates the type of the request. Only one type is defined in this version which is the DIP type. - TTL: this field is coded on 32 bits. It indicates the time of validity (Time To Live) of a DIP message. It is used for caching DIP messages. - DATA LENGTH: This field is coded on 16 bits. It indicates the size of the DATA field. - DATA: this field is of variable size. It indicates the FQDN or DNS of the local DNS server (12). A DIP request is sent (Figure 4, step E67) by default on a User Datagram Protocol / Internet Protocol (UDP) packet to the DIP server (15c). UDP is used to avoid latency issues related to establishing a TCP connection. Alternatively, a DIP request may be sent using Transmission Control Protocol / Internet Protocol (TCP / IP), particularly at step E67 '(FIG. 4), to the DIP server (15c). Finally, when sending each DIP request, the client module DIP (15a) updates the data structure (table 15d ') by: - inserting the sequence number of the DNS query which is at the origin of the generation of the DIP request; - triggering a timer; updating the variable N whose value is indicative of the number of attempts to send to the device 15c (DIP server); - creating a copy of the generated DIP request, which is stored in a buffer memory. The corresponding line of the table (15d ') is purged if one of the following conditions occurs: - when the timer expires and the maximum number of attempts to send to the DIP server (15c) is reached; - upon receipt of a valid DIP response (ie, undistorted, unduplicated, with an error code indicating success).
Ainsi en se référant à nouveau à la figure 4, une fois une requête DIP envoyée par le module client DIP 15a à destination du module serveur DIP (15c), le module client DIP passe à l'étape E68 déjà décrite. A la réception de la requête DIP, le serveur DIP (15c) vérifie l'intégrité de la requête DIP en (étape 70) en calculant le Checksum du message, par application du même algorithme de hachage que celui utilisé par le module client DIP (15a), sur l'entête et le corps de la requête DIP reçue, puis en comparant la valeur calculée à la valeur du checksum présente dans l'entête de la requête DIP reçue. Si la requête DIP est invalide alors le serveur DIP 15c la supprime "silencieusement" c'est-à-dire sans transmettre de message de réponse. En variante, le serveur DIP (15c) supprime la requête DIP invalide et génère un message DIP de type réponse vide dont le code de retour est égal à 3. Dans ce cas, la valeur du numéro de séquence est le même que celui de la requête DIP à laquelle le message de réponse correspond. Au contraire, si la requête DIP est valide alors le serveur DIP (15c) effectue une recherche dans sa base de données locale (15d) d'enregistrements DIP correspondant à l'identifiant FQDN du serveur DNS local (12a), lequel identifiant est indiqué dans le champ DATA de la requête DIP. Le serveur DIP génère ensuite une réponse DIP contenant zéro, un ou plusieurs enregistrements DIP trouvés dans la base de données locale (15d). Le format de la réponse DIP est représenté à la figure 8. Enfin, la réponse DIP est envoyée à destination du module client DIP (15a).Thus, referring again to FIG. 4, once a DIP request has been sent by the DIP client module 15a to the DIP server module (15c), the client module DIP proceeds to the step E68 already described. Upon receipt of the DIP request, the DIP server (15c) checks the integrity of the DIP request in (step 70) by calculating the checksum of the message, by applying the same hash algorithm as that used by the client module DIP ( 15a), on the header and the body of the received DIP request, and then comparing the calculated value with the value of the checksum present in the header of the received DIP request. If the DIP request is invalid then the DIP server 15c deletes it "silently" that is to say without transmitting a response message. In a variant, the DIP server (15c) deletes the invalid DIP request and generates an empty response type DIP message whose return code is equal to 3. In this case, the value of the sequence number is the same as that of the DIP request to which the response message matches. On the contrary, if the DIP request is valid then the DIP server (15c) searches its local database (15d) of DIP records corresponding to the FQDN identifier of the local DNS server (12a), which identifier is indicated. in the DATA field of the DIP request. The DIP server then generates a DIP response containing zero, one or more DIP records found in the local database (15d). The format of the DIP response is shown in FIG. 8. Finally, the DIP response is sent to the DIP client module (15a).
Dans la réponse DIP transmise, le champ DATA (figure 8), inclut zéro, un ou plusieurs enregistrements DIP contenant au moins les champs suivants : - Nom du domaine (DN) de l'entité réseau concernée (défini plus haut). - Type de connectivité réseau (défini plus haut). - Préférence d'usage du type de connectivité réseau (défini plus haut). - Priorité d'usage du type de connectivité réseau (défini plus haut). - Poids d'usage du type de connectivité réseau (défini plus haut). - Numéro de port (défini plus haut). 2. Seconde variante du 1er mode de réalisation (M1-V2) Dans cette variante, le serveur DIP 15c est confondu avec le serveur DNS local 12a, comme illustré par la figure 3. On va détailler les étapes E67-E70 (E67'-E70') de la figure 4 selon cette variante (M1-V2) en envisageant deux implémentations : une implémentation s'inscrivant dans le cadre du protocole DNS (désignée par M1-V2_i1) et une implémentation hors DNS, c'est-à-dire indépendante du protocole DNS (désignée par Ml-V2_i2). 2.1. Implémentation DNS (M1-V2 il) Les figures 9 et 10 représentent respectivement deux exemples de formats de requêtes d'obtention d'informations de connectivité, selon une implémentation conforme au protocole DNS, applicable à la seconde variante du premier mode de réalisation. Les figures 11 et 12 représentent respectivement deux exemples de formats de réponses d'obtention d'informations de connectivité, selon une implémentation conforme au protocole DNS, applicable à la seconde variante du premier mode de réalisation. Dans cette implémentation, le module client DIP (15a) génère (étape E67, figure 4), à destination du module serveur DIP (15c) une ou plusieurs requête DNS de type DIP dont le format est défini ci-dessous. Selon un premier exemple, le serveur DNS local (12) sur lequel est installé le module serveur DIP (15c) gère une population d'utilisateurs finaux à connectivité réseau du même type. Dans ce cas, le module client DIP (15a) génère, à destination du module serveur DIP (15c), des messages de requête DNS DIP dont le format est représenté à la figure 9. Selon un second exemple, le serveur DNS local (12) sur lequel est installé le module serveur DIP (15c) gère une population d'utilisateurs finaux à connectivité réseau hétérogène. Dans ce cas, le module client DIP (15a) génère à destination du serveur DIP (15c) des messages de requête DNS DIP dont le format est représenté à la figure 10.In the transmitted DIP response, the DATA field (Figure 8) includes zero, one or more DIP records containing at least the following fields: - Domain Name (DN) of the relevant network entity (defined above). - Network connectivity type (defined above). - Use preference of the type of network connectivity (defined above). - Use priority of the type of network connectivity (defined above). - User weight of the type of network connectivity (defined above). - Port number (defined above). 2. Second Variant of the First Embodiment (M1-V2) In this variant, the DIP server 15c is merged with the local DNS server 12a, as illustrated in FIG. 3. The steps E67-E70 (E67'- E70 ') of Figure 4 according to this variant (M1-V2) by considering two implementations: an implementation within the framework of the DNS protocol (designated M1-V2_i1) and a non-DNS implementation, that is to say say independent of the DNS protocol (designated Ml-V2_i2). 2.1. DNS Implementation (M1-V2 il) FIGS. 9 and 10 respectively represent two examples of request formats for obtaining connectivity information, according to a DNS protocol implementation, applicable to the second variant of the first embodiment. FIGS. 11 and 12 respectively represent two examples of connectivity information obtaining response formats, according to a DNS protocol implementation, applicable to the second variant of the first embodiment. In this implementation, the DIP client module (15a) generates (step E67, FIG. 4), destined for the DIP server module (15c), one or more DIP type DNS requests whose format is defined below. According to a first example, the local DNS server (12) on which the DIP server module (15c) is installed manages a population of end users with network connectivity of the same type. In this case, the DIP client module (15a) generates, to the DIP server module (15c), DIP DNS request messages whose format is represented in FIG. 9. According to a second example, the local DNS server (12) ) on which the DIP server module (15c) is installed manages a population of end users with heterogeneous network connectivity. In this case, the DIP client module (15a) generates DNS DIP request messages, the format of which is shown in FIG. 10, for the DIP server (15c).
A la figure 10, le champ EDNSO DATA est transporté dans la partie "Additional section" de la requête DNS conformément aux spécifications du RFC 2671 (Extension Mechanisms for DNS (EDNSO) de l'IETF. Le champ OPT RR pour le protocole 'DIP' selon l'invention contient le champ RDATA qui indique (sur 16 bits) l'identifiant (ID) de la requête DNS qui est à l'origine de la requête DNS DIP.In Figure 10, the EDNSO DATA field is carried in the "Additional section" portion of the DNS request according to the specifications of IETF RFC 2671 (Extension Mechanisms for DNS (EDNSO).) The OPT RR field for the 'DIP' protocol 'according to the invention contains the field RDATA which indicates (on 16 bits) the identifier (ID) of the DNS request which is at the origin of the request DNS DIP.
Le module client DIP (15a) gère en mémoire (15d') une table permettant d'associer une requête DNS générée par le serveur DNS local (12a) à la requête DIP. Le (client DIP) 15a met à jour la structure 15d' (il passe alors à l'étape E68 de la figure 4). A la réception de la requête DNS de type DIP, le serveur DIP (15c) effectue (étape 70) d'abord une recherche dans sa base de données locale (15d) d'enregistrements DIP correspondant à la requête DIP reçue. Si l'on se place dans le cas du premier exemple ci-dessus, le serveur DIP (15c) recherche dans sa base de données locale (15d) des enregistrements DIP correspondant à l'identifiant FQDN du serveur DNS local (12a). Si l'on se place dans le cas du second exemple ci-dessus, le serveur DIP (15c) recherche dans sa base de données locale (15d) des enregistrements DIP correspondant à l'utilisateur final source de la requête DNS dont l'identifiant est indiqué dans le champ RDATA (sur 16 bits). Le module serveur DIP génère ensuite une réponse DNS de type DIP correspondant à la requête DIP reçue, c'est-à-dire une réponse DNS contenant zéro, un ou plusieurs enregistrements DIP trouvés dans la base de données locale (15d). Le format de la réponse DNS DIP est selon l'exemple considéré (premier ou second) conforme à la figure 11 (premier exemple) ou conforme à la figure 12 (second exemple). La réponse DNS DIP générée est alors envoyée au module client DIP (15a) via un chemin optimal déterminé par des moyens de routage. Dans les messages de réponse DIP dont le format est représenté aux figures 11 et 12, le champ RDATA, contient zéro, un ou plusieurs enregistrements DIP contenant au moins les champs suivant : - Nom du domaine (DN) de l'entité réseau concernée (défini plus haut). - Type de connectivité réseau (défini plus haut). - Préférence d'usage du type de connectivité réseau (défini plus haut). - Priorité d'usage du type de connectivité réseau (défini plus haut). - Poids d'usage du type de connectivité réseau (défini plus haut). - Numéro de port (défini plus haut).The client module DIP (15a) manages in memory (15d ') a table for associating a DNS query generated by the local DNS server (12a) with the request DIP. The (DIP client) 15a updates the structure 15d '(it then goes to the step E68 of FIG. 4). Upon receiving the DIP type DNS request, the DIP server (15c) performs (step 70) first a search in its local database (15d) of DIP records corresponding to the received DIP request. If one places oneself in the case of the first example above, the DIP server (15c) searches in its local database (15d) for DIP records corresponding to the FQDN identifier of the local DNS server (12a). If one takes the case of the second example above, the DIP server (15c) searches in its local database (15d) for DIP records corresponding to the end user source of the DNS query whose identifier is indicated in the field RDATA (on 16 bits). The DIP server module then generates a DIP-type DNS response corresponding to the received DIP request, i.e. a DNS response containing zero, one or more DIP records found in the local database (15d). The format of the DNS DIP response is according to the example considered (first or second) according to FIG. 11 (first example) or according to FIG. 12 (second example). The generated DNS DIP response is then sent to the DIP client module (15a) via an optimal path determined by routing means. In the DIP response messages whose format is shown in Figures 11 and 12, the RDATA field contains zero, one or more DIP records containing at least the following fields: - Domain name (DN) of the network entity concerned ( defined above). - Network connectivity type (defined above). - Use preference of the type of network connectivity (defined above). - Use priority of the type of network connectivity (defined above). - User weight of the type of network connectivity (defined above). - Port number (defined above).
Le champ extension DNS (EDNSO) pour DIP (figure 12), contient l'identifiant (ID) de la requête DNS qui a engendré le message de requête DIP. Cet identifiant est copié à partir de la requête DIP correspondante (figure 9 ou 10). 2.2. Implémentation hors DNS (M1-V2 i2) Les figures 13 et 14 représentent respectivement deux exemples de formats de requêtes d'obtention d'informations de connectivité, selon une implémentation hors protocole DNS, applicable à la seconde variante du premier mode de réalisation. La figure 15 représente le format d'une réponse d'obtention d'informations de connectivité, selon une implémentation hors protocole DNS, applicable à la seconde variante du premier mode de réalisation.The DNS extension field (EDNSO) for DIP (Figure 12) contains the identifier (ID) of the DNS request that generated the DIP request message. This identifier is copied from the corresponding DIP request (FIG. 9 or 10). 2.2. Non-DNS Implementation (M1-V2 i2) FIGS. 13 and 14 respectively represent two examples of connectivity information obtaining request formats, according to a non-DNS protocol implementation, applicable to the second variant of the first embodiment. FIG. 15 represents the format of a connectivity information obtaining response, according to a non-DNS protocol implementation, applicable to the second variant of the first embodiment.
Dans cette implémentation, le module client DIP (15a) génère (étape E67, figure 4), à destination du module serveur DIP (15c) une ou plusieurs requête(s) DNS de type DIP dont le format est défini ci-après, selon les deux exemples (premier et second) exposés ci-dessus (2.1. Implémentation DNS). Selon le premier exemple, c'est-à-dire, lorsque le serveur DNS local (12) sur lequel est installé le module serveur DIP (15c) gère une population d'utilisateurs finaux à connectivité réseau du même type, le module client DIP (15a) génère, à destination du module serveur DIP (15c), des messages de requête DIP (hors DNS) dont le format est représenté à la figure 13. Selon le second exemple, c'est-à-dire lorsque le serveur DNS local (12) sur lequel est installé le module serveur DIP (15c) gère une population d'utilisateurs finaux à connectivité réseau hétérogène, le module client DIP (15a) génère à destination du serveur DIP (15c) des messages de requête DIP (hors DNS) dont le format est représenté à la figure 14. L'entête du message est commun aux messages DIP de type requête ou de type réponse. De ce fait, il contient les champs suivants: - Sequence ID (Numéro de séquence) : ce champ est codé sur 16 bits. Il est nécessaire pour l'identification d'une transaction DIP (requête/réponse). Toutes les réponses ont le même numéro de séquence que la requête correspondante. - Flags (drapeaux) : - Flag 'QR' : ce champ est codé sur 1 bit. Il indique le type du message (QR=0 si Question, QR=1 si Réponse) ; - Flag 'AA' : ce champ est codé sur 1 bit. Il indique si la réponse DIP provient d'un serveur de nom autoritaire ou non. - Flag 'TC' : Drapeau TC : ce champ est codé sur 1 bit. Il indique si la réponse DIP est tronquée ou non. - Flag 'Z' : ce champ est codé sur 1 bit. Il est réservé. - RCODE (Code de retour) : ce champ est codé sur 4 bits et il est utilisé uniquement dans une réponse DIP. Il peut contenir l'une des valeurs suivantes : - 0 : pour indiquer un succès, c'est-à-dire qu'une ou plusieurs réponses DIP ont été trouvées. - 1 : pour indiquer que le domaine est bien géré par le serveur TLD (16) mais qu'aucun enregistrement de réponse DIP, correspondant au champ DATA n'a été trouvé. - 2 : pour indiquer qu'un problème système est survenu au niveau du module serveur DIP (15c), lequel n'a pu traiter la requête DIP. - 3 : pour indiquer qu'aucun domaine correspondant au champ DATA n'a été trouvé. - 4 : pour indiquer que le message DIP est non cohérent. - 5-15: valeurs réservées. - Checksum : ce champ est codé sur 8 bits. Il est nécessaire à la gestion d'intégrité des échanges DIP. Son contenu est calculé en appliquant un algorithme de hachage sur tout le message DIP (entête (sans checksum) et corps). A la réception d'un message DIP, l'entité qui le reçoit recalcule le checksum en utilisant le même algorithme de hachage et compare le résultat au contenu du champ checksum. Si le message DIP est corrompu, il est supprimé silencieusement. Le corps d'un message de type DIP dépend du type du message DIP (requête ou réponse). Le corps d'un message DIP de type requête (figures 13 et 14) contient les champs suivants : - TYPE : ce champ est codé sur 16 bits. Il indique le type de la requête. Un seul type est défini dans cette version qui est le type DIP. - TTL : ce champ est codé sur 32 bits. Il indique le temps de validité (Time To Live) d'un message DIP. Il est utilisé pour la mise en mémoire cache les messages DIP. - DATA LENGTH : ce champ est codé sur 16 bits. Il indique la taille du champ DATA. - DATA : ce champ est de taille variable. Il indique le FQDN ou le DN du serveur DNS local (12) dans le cadre du premier exemple (figure 13), et l'identifiant (ID) de la requête DNS à l'origine de la requête DIP dans le cadre du second exemple (figure 14). Une requête DIP est envoyée (figure 4, étape E67) par défaut sur un paquet UDP/IP (User Datagram Protocol/Internet Protocol), à destination du serveur DIP (15c). Le protocole UDP est utilisé afin d'éviter les problèmes de latence liés à l'établissement d'une connexion TCP. En variante, une requête DIP peut être envoyée en utilisant le protocole TCP/IP (Transmission Control Protocol/Internet Protocol), en particulier à l'étape E67' (figure 4), à destination du serveur DIP (15c).In this implementation, the DIP client module (15a) generates (step E67, FIG. 4), destined for the DIP server module (15c), one or more DIP type DNS request (s) whose format is defined below, according to the two examples (first and second) described above (2.1 DNS implementation). According to the first example, that is to say, when the local DNS server (12) on which the DIP server module (15c) is installed manages a population of end users with network connectivity of the same type, the client module DIP (15a) generates, to the DIP server module (15c), DIP request messages (excluding DNS) whose format is shown in FIG. 13. According to the second example, that is to say when the DNS server local (12) on which is installed the DIP server module (15c) manages a population of end users with heterogeneous network connectivity, the client module DIP (15a) generates DIP request messages (15c) to the DIP server (out DNS) whose format is shown in Figure 14. The header of the message is common to the DIP message type or response type. As a result, it contains the following fields: - Sequence ID: This field is coded on 16 bits. It is necessary for the identification of a DIP transaction (request / response). All responses have the same sequence number as the corresponding request. - Flags: - Flag 'QR': this field is coded on 1 bit. It indicates the type of the message (QR = 0 if Question, QR = 1 if Answer); - Flag 'AA': This field is coded on 1 bit. It indicates whether the DIP response comes from an authoritative name server or not. - Flag 'TC': Flag TC: This field is coded on 1 bit. It indicates whether the DIP response is truncated or not. - Flag 'Z': This field is coded on 1 bit. He is reserved. - RCODE (Return Code): This field is 4-bit coded and is used only in a DIP response. It can contain one of the following values: - 0: to indicate success, that is, one or more DIP responses were found. - 1: to indicate that the domain is well managed by the TLD server (16) but that no DIP response record corresponding to the DATA field has been found. - 2: to indicate that a system problem has occurred in the DIP server module (15c), which could not process the DIP request. - 3: to indicate that no domain corresponding to the DATA field has been found. - 4: to indicate that the DIP message is non-coherent. - 5-15: reserved values. - Checksum: this field is coded on 8 bits. It is necessary for the integrity management of DIP exchanges. Its content is calculated by applying a hashing algorithm on the entire DIP message (header (without checksum) and body). On receipt of a DIP message, the receiving entity recalculates the checksum using the same hash algorithm and compares the result with the contents of the checksum field. If the DIP message is corrupted, it is silently deleted. The body of a DIP message depends on the type of the DIP message (request or response). The body of a request type DIP message (Figures 13 and 14) contains the following fields: - TYPE: This field is coded on 16 bits. It indicates the type of the request. Only one type is defined in this version which is the DIP type. - TTL: this field is coded on 32 bits. It indicates the time of validity (Time To Live) of a DIP message. It is used for caching DIP messages. - DATA LENGTH: This field is coded on 16 bits. It indicates the size of the DATA field. - DATA: this field is of variable size. It indicates the FQDN or DNS of the local DNS server (12) as part of the first example (Figure 13), and the identifier (ID) of the DNS query that originated the DIP query as part of the second example (Figure 14). A DIP request is sent (Figure 4, step E67) by default on a User Datagram Protocol / Internet Protocol (UDP) packet to the DIP server (15c). UDP is used to avoid latency issues related to establishing a TCP connection. Alternatively, a DIP request may be sent using Transmission Control Protocol / Internet Protocol (TCP / IP), particularly at step E67 '(FIG. 4), to the DIP server (15c).
Enfin, lors de l'envoi de chaque requête DIP, le module client DIP (15a) met à jour la structure de données (table 15d') en : - insérant le numéro de séquence de la requête DNS qui est à l'origine de la génération de la requête DIP ; - déclenchant un temporisateur ; - mettant à jour la variable N dont la valeur est indicative du nombre de tentatives d'envoi à destination du dispositif 15c (serveur DIP) ; - créant une copie de la requête DIP générée, qui est stockée dans une mémoire tampon (buffer memory). La ligne correspondante de la table (15d') est purgée si l'une des conditions suivantes se réalise : - lorsque le temporisateur arrive à expiration et le nombre maximum de tentatives d'envoi à destination du serveur DIP (15c) est atteint ; - à la réception d'une réponse DIP valide (c'est-à-dire, non malformée, non dupliquée, avec un code d'erreur indiquant un succès).Finally, when sending each DIP request, the client module DIP (15a) updates the data structure (table 15d ') by: - inserting the sequence number of the DNS query which is at the origin of the generation of the DIP request; - triggering a timer; updating the variable N whose value is indicative of the number of attempts to send to the device 15c (DIP server); - creating a copy of the generated DIP request, which is stored in a buffer memory. The corresponding line of the table (15d ') is purged if one of the following conditions occurs: - when the timer expires and the maximum number of attempts to send to the DIP server (15c) is reached; - upon receipt of a valid DIP response (ie, undistorted, unduplicated, with an error code indicating success).
Le module client DIP (15a) gère en mémoire (15d') une table permettant d'associer une requête DNS générée par le serveur DNS local (12a) à la requête DIP. Le (client DIP) 15a met à jour la structure 15d' (il passe alors à l'étape E68 de la figure 4). A la réception de la requête DIP, le serveur DIP (15c) vérifie l'intégrité de la requête DIP en (étape 70) en calculant le Checksum du message, par application du même algorithme de hachage que celui utilisé par le module client DIP (15a), sur l'entête et le corps de la requête DIP reçue, puis en comparant la valeur calculée à la valeur du checksum présente dans l'entête de la requête DIP reçue. Si la requête DIP est invalide alors le serveur DIP 15c la supprime "silencieusement" c'est-à-dire sans transmettre de message de réponse. En variante, le serveur DIP (15c) supprime la requête DIP invalide et génère un message DIP de type réponse vide dont le code de retour est égal à 3. Dans ce cas, la valeur du numéro de séquence est le même que celui de la requête DIP à laquelle le message de réponse correspond. Au contraire, si la requête DIP est valide alors le serveur DIP (15c) effectue une recherche dans sa base de données locale (15d) d'enregistrements DIP correspondant à l'identifiant FQDN du serveur DNS local (12a), lequel identifiant est indiqué dans le champ DATA de la requête DIP. Le serveur DIP génère ensuite une réponse DIP contenant zéro, un ou plusieurs enregistrements DIP trouvés dans la base de données locale (15d). Le format de la réponse DIP est représenté à la figurel5. Enfin, la réponse DIP est envoyée à destination du module client DIP (15a). Dans la réponse DIP transmise, le champ DATA (figure 15), inclut zéro, un ou plusieurs enregistrements DIP contenant au moins les champs suivants : - Nom du domaine (DN) de l'entité réseau concernée (défini plus haut). - Type de connectivité réseau (défini plus haut). - Préférence d'usage du type de connectivité réseau (défini plus haut). - Priorité d'usage du type de connectivité réseau (défini plus haut). - Poids d'usage du type de connectivité réseau (défini plus haut). - Numéro de port (défini plus haut).The client module DIP (15a) manages in memory (15d ') a table for associating a DNS query generated by the local DNS server (12a) with the request DIP. The (DIP client) 15a updates the structure 15d '(it then goes to the step E68 of FIG. 4). Upon receipt of the DIP request, the DIP server (15c) checks the integrity of the DIP request in (step 70) by calculating the checksum of the message, by applying the same hash algorithm as that used by the client module DIP ( 15a), on the header and the body of the received DIP request, and then comparing the calculated value with the value of the checksum present in the header of the received DIP request. If the DIP request is invalid then the DIP server 15c deletes it "silently" that is to say without transmitting a response message. In a variant, the DIP server (15c) deletes the invalid DIP request and generates an empty response type DIP message whose return code is equal to 3. In this case, the value of the sequence number is the same as that of the DIP request to which the response message matches. On the contrary, if the DIP request is valid then the DIP server (15c) searches its local database (15d) of DIP records corresponding to the FQDN identifier of the local DNS server (12a), which identifier is indicated. in the DATA field of the DIP request. The DIP server then generates a DIP response containing zero, one or more DIP records found in the local database (15d). The format of the DIP response is shown in Figure 5. Finally, the DIP response is sent to the DIP client module (15a). In the transmitted DIP response, the DATA field (Figure 15) includes zero, one or more DIP records containing at least the following fields: - Domain Name (DN) of the relevant network entity (defined above). - Network connectivity type (defined above). - Use preference of the type of network connectivity (defined above). - Use priority of the type of network connectivity (defined above). - User weight of the type of network connectivity (defined above). - Port number (defined above).
En relation avec les figures 16 et 17, on va à présent détailler un second mode de réalisation de l'invention, selon lequel le module client DIP (15a) est installé dans le serveur DNS local (12) voire dans le résolveur DNS (11) du terminal client (1), tandis que le module serveur DIP (15c) est installé dans le serveur DNS autoritaire (14) qui gère le serveur (18) auquel l'utilisateur souhaite accéder via son terminal (1).With reference to FIGS. 16 and 17, a second embodiment of the invention will now be described, according to which the client module DIP (15a) is installed in the local DNS server (12) or even in the DNS resolver (11). ) of the client terminal (1), while the DIP server module (15c) is installed in the authoritative DNS server (14) which manages the server (18) to which the user wishes to access via his terminal (1).
La figure 16 représente un environnement réseau selon ce second mode de réalisation. Sur la figure 16, le module client DIP 15c est représenté comme étant installé dans le serveur DNS local 12. Par conséquent, dans ce mode de réalisation, le serveur DNS autoritaire 14 reçoit en provenance du serveur DNS local 12, un message de requête DNS de type "DIP" selon l'invention, afin d'obtenir notamment des informations réseau sur les types de connectivité réseau d'un serveur distant tel que le serveur 18. La figure 17 est un organigramme illustrant un procédé d'obtention d'informations de connectivité réseau, selon le second mode de réalisation de l'invention. Le procédé commence par l'étape E60 au cours de laquelle, le serveur DNS local 12 reçoit une requête DNS de la part du terminal utilisateur (application 11) afin d'accéder au serveur 18. Le serveur DNS local (12a) identifie (étape E61) alors à partir de la requête DNS l'identifiant FQDN correspondant au serveur 18. Dans ce mode de réalisation, lorsque le module client DIP (15a) est confondu avec le serveur DNS local (entité 12a), le procédé se poursuit par l'étape E65. En variante, lorsque le module client DIP (15a) n'est pas confondu avec le serveur DNS local (entité 12a), mais relié à ce dernier par un réseau fiable et sans latence, par exemple un réseau utilisant la transmission par fibre optique, alors on passe à l'étape E65' au cours de laquelle le serveur DNS local (12a) envoie au client DIP (15a) un message contenant le numéro de séquence de la requête DNS afin de provoquer la génération d'une requête DIP, ainsi que l'identifiant FQDN du serveur 18. On passe alors à l'étape E65.Fig. 16 shows a network environment according to this second embodiment. In Fig. 16, the DIP client module 15c is shown as being installed in the local DNS server 12. Therefore, in this embodiment, the authoritative DNS server 14 receives from the local DNS server 12, a DNS request message of the "DIP" type according to the invention, in particular to obtain network information on the types of network connectivity of a remote server such as the server 18. FIG. 17 is a flowchart illustrating a method for obtaining information network connectivity according to the second embodiment of the invention. The method begins with step E60 in which the local DNS server 12 receives a DNS request from the user terminal (application 11) to access the server 18. The local DNS server (12a) identifies (step E61) then from the DNS query the FQDN corresponding to the server 18. In this embodiment, when the DIP client module (15a) is merged with the local DNS server (entity 12a), the process continues with the step E65. As a variant, when the client module DIP (15a) is not confused with the local DNS server (entity 12a), but connected thereto by a reliable and latency-free network, for example a network using optical fiber transmission, then we go to step E65 'during which the local DNS server (12a) sends the client DIP (15a) a message containing the sequence number of the DNS request to cause the generation of a DIP request, and the FQDN identifier of the server 18. We then go to step E65.
On notera ici que dans l'environnement réseau conforme à ce second mode de réalisation, le procédé d'obtention réseau selon l'invention peut être également mis en oeuvre dans le cadre d'une résolution DNS inverse, c'est-à-dire le processus consistant à déterminer, pour une ressource réseau donnée (ici le serveur 18), un identifiant FQDN à partir d'une adresse réseau (IPv4 ou Ipv6). Dans ce cas, à l'étape E61, le serveur DNS local (12a) identifie à partir d'une requête DNS de résolution inverse, l'adresse réseau du serveur 18. De même, lorsque le module client DIP (15a) n'est pas confondu avec le serveur DNS local (entité 12a), mais relié à ce dernier par un réseau fiable et sans latence tel qu'un réseau utilisant la transmission par fibre optique, alors à l'étape E65' le serveur DNS local (12a) envoie au client DIP (15a) un message contenant le numéro de séquence de la requête DNS inverse destinée à provoquer la génération d'une requête DIP, ainsi que dans ce cas l'adresse réseau du serveur 18. A l'étape E65, le client DIP (15a), ayant obtenu le FQDN ainsi que le nom de domaine (DN) du serveur 18, consulte sa mémoire cache 15b afin de rechercher des enregistrements DIP selon l'invention contenant des informations réseau concernant le serveur 18 ; les enregistrements DIP recherchés sont ceux contenant comme identifiant FQDN ou comme nom de domaine (DN), ceux obtenus à l'étape E61. Lorsque la requête DNS d'origine est une requête de résolution inverse, les enregistrements DIP recherchés sont ceux correspondant à l'adresse réseau (IPv4 ou IPv6) du serveur 18 obtenue à l'étape E61.It will be noted here that in the network environment according to this second embodiment, the network obtaining method according to the invention can also be implemented in the context of an inverse DNS resolution, that is to say the process of determining, for a given network resource (here the server 18), an FQDN from a network address (IPv4 or Ipv6). In this case, in step E61, the local DNS server (12a) identifies from a DNS query of inverse resolution, the network address of the server 18. Similarly, when the client module DIP (15a) does not is not confused with the local DNS server (entity 12a), but connected thereto by a reliable and latency-free network such as a network using fiber optic transmission, then in step E65 'the local DNS server (12a) ) sends to the client DIP (15a) a message containing the sequence number of the reverse DNS request intended to cause the generation of a DIP request, as well as in this case the network address of the server 18. At step E65, the DIP client (15a), having obtained the FQDN as well as the domain name (DN) of the server 18, consults its cache memory 15b in order to search for DIP records according to the invention containing network information concerning the server 18; the searched DIP records are those containing as FQDN identifier or as domain name (DN), those obtained in step E61. When the original DNS request is a reverse resolution request, the searched DIP records are those corresponding to the network address (IPv4 or IPv6) of the server 18 obtained in step E61.
Si au moins un enregistrement DIP correspondant au serveur 18 est trouvé dans la mémoire cache 15b, on passe à l'étape E66, au cours de laquelle le module client DIP 15a obtient les enregistrements DIP trouvés par lecture et les stocke dans le buffer 15b'. On passe ensuite à l'étape E73. Toutefois, dans l'implémentation précitée selon laquelle module client DIP (15a) n'est pas confondu avec le serveur DNS local (entité 12a), on passe de l'étape E66 à l'étape E71' décrite plus bas. Au contraire, si à l'étape E65 aucun enregistrement DIP correspondant au FQDN ou au nom de domaine (DN) du serveur 18 (ou correspondant à l'adresse réseau de serveur 18 en cas de résolution DNS inverse) n'a été trouvé dans la mémoire cache 15b, on passe à l'étape E67.If at least one DIP record corresponding to the server 18 is found in the cache memory 15b, proceed to step E66, during which the DIP client module 15a obtains the DIP records found by reading and stores them in the buffer 15b ' . Then we go to step E73. However, in the aforementioned implementation according to which the client module DIP (15a) is not confused with the local DNS server (entity 12a), step E66 is moved to step E71 'described below. On the other hand, if in step E65 no DIP record corresponding to the FQDN or to the domain name (DN) of the server 18 (or corresponding to the server network address 18 in the event of an inverse DNS resolution) has been found in the cache memory 15b, we go to step E67.
A l'étape E67, afin d'obtenir de tels enregistrements DIP selon l'invention, le module client DIP 15a génère une ou plusieurs requêtes ("requête DIP") à destination du module serveur DIP 15c selon l'invention. Le processus d'obtention d'enregistrements DIP selon ce second mode de réalisation peut être mis en oeuvre selon deux variantes de réalisation, qui sont identiques à celles décrites plus haut dans le cadre du premier mode de réalisation (première variante "Ml -V1") : implémentation DNS (M1-V1_i1) et implémentation hors DNS (M1-V1_i2), en relation avec respectivement les figures 5 et 6, et les figures 7 et 8. Ces deux variantes ne sont donc pas reproduites dans cette partie de la description.In step E67, in order to obtain such DIP records according to the invention, the DIP client module 15a generates one or more requests ("DIP request") for the DIP server module 15c according to the invention. The process of obtaining DIP records according to this second embodiment can be implemented according to two variant embodiments, which are identical to those described above in the context of the first embodiment (first variant "Ml -V1" ): DNS implementation (M1-V1_i1) and non-DNS implementation (M1-V1_i2), in relation with Figures 5 and 6, and Figures 7 and 8 respectively. These two variants are therefore not reproduced in this part of the description .
A noter que dans le cas où l'on considère une résolution DNS inverse, le champ FQDN de l'entête de la requête DIP (figure 5, implémentation DNS) et le champ DATA du corps de la requête DIP (figure 7, implémentation hors DNS) contient l'adresse réseau (adresse IP) du serveur 18.Note that in the case where we consider an inverse DNS resolution, the FQDN field of the header of the DIP request (Figure 5, DNS implementation) and the DATA field of the DIP request body (Figure 7, implementation out DNS) contains the network address (IP address) of the server 18.
De retour à la figure 17, à l'étape E68, si le module client DIP 15a reçoit de la part du serveur DIP 15c une (ou plusieurs) réponse ("réponse DIP") suite à l'envoi d'une ou plusieurs requêtes DIP, il vérifie leur intégrité, conformément aux variantes de réalisation de l'étape E67 décrites plus bas. Si la réponse DIP reçue est valide, alors le module client DIP 15a passe à l'étape E69.Returning to FIG. 17, in step E68, if the DIP client module 15a receives from the DIP server 15c one (or more) response ("DIP response") following the sending of one or more requests DIP, it checks their integrity, according to the embodiments of step E67 described below. If the received DIP response is valid, then the DIP client module 15a proceeds to step E69.
Si à l'inverse la réponse DIP reçue n'est pas valide, alors, selon l'implémentation exposée, une variable N initialisée préalablement à une valeur positive prédéterminée, utilisée comme compteur de tentatives d'envoi de requêtes DIP à destination du serveur DIP 15c, est testée. Si la valeur de la variable N n'est pas égale à zéro, alors la variable est décrémentée de 1, puis on retourne à l'étape E67 ou E67'. En revanche si la valeur de la variable est égale à zéro, alors le module client DIP 15a affecte à un code de retour du message de réponse DIP la valeur '4' indiquant un message non cohérent. Le module client DIP 15a passe alors à l'étape E69. A l'étape E69, le module client DIP 15a traite chacune des réponses DIP reçues. A cette fin, chacun des messages de réponse DIP est traité en fonction du code de retour indiqué dans l'entête du message de réponse DIP. Le module client DIP 15a traite chaque message de réponse DIP en fonction de son code de retour (return code, RC) comme suit : - Si RC = 0 ("Succès"), cela signifie que des enregistrements DIP contenant des informations réseau relatives à au moins le serveur 18 ont été obtenus. Le module client DIP 15a passe alors à l'étape E71, cours de laquelle le module client DIP 15a met à jour la mémoire cache 15b avec les enregistrements DIP valides obtenus (étape E69). Le processus se termine avec un code de retour égal à zéro. On passe ensuite à l'étape E73. - Si le RC # 0 ("Réponse Vide ou Incohérente"), cela signifie que le client DIP 15a n'a pas pu obtenir des informations réseau sur le serveur 18. Le client DIP 15a passe alors à l'étape E72 au cours de laquelle aucune mise à jour de la mémoire cache 15b n'est effectuée. Le processus se termine avec un code de retour différent de zéro. On passe ensuite à l'étape E73. Dans une implémentation selon laquelle le module client DIP 15a n'est pas confondu avec l'entité 12a du serveur DNS local, mais à proximité réseau de ce dernier, de sorte que l'on puisse considérer que ces deux entités sont reliées par un réseau fiable et sans latence (par exemple un réseau utilisant la transmission par fibre optique), le client DIP 15a passe alors de l'étape E71 ou de l'étape E72, à l'étape E71'. A l'étape E71', le module client DIP 15a envoie au serveur DNS local (12a) un message contenant le numéro de séquence de la requête DNS à l'origine de la génération de la requête DIP, le FQDN du serveur 18 (ou son adresse réseau, s'il s'agit de résolution DNS inverse), ainsi que le ou les enregistrements DIP obtenus. Le serveur DNS local (12a) passe ensuite à l'étape E73 au cours de laquelle il met à jour le cas échéant une mémoire cache avec les informations contenues dans les enregistrements DIP reçus à l'étape E71'.If, conversely, the received DIP response is not valid, then, according to the implementation exposed, a variable N initialized before a predetermined positive value, used as a counter of attempts to send DIP requests to the DIP server 15c, is tested. If the value of the variable N is not equal to zero, then the variable is decremented by 1, then it returns to the step E67 or E67 '. On the other hand, if the value of the variable is equal to zero, then the DIP client module 15a assigns a return code of the DIP response message a value of '4' indicating a non-coherent message. The DIP client module 15a then proceeds to step E69. In step E69, the DIP client module 15a processes each of the received DIP responses. For this purpose, each of the DIP response messages is processed according to the return code indicated in the header of the DIP response message. The DIP client module 15a processes each DIP response message according to its return code (RC) as follows: - If RC = 0 ("Success"), this means that DIP records containing network information relating to at least the server 18 have been obtained. The DIP client module 15a then proceeds to step E71, during which the DIP client module 15a updates the cache memory 15b with the valid DIP records obtained (step E69). The process ends with a return code equal to zero. Then we go to step E73. If the RC # 0 ("Empty or Incoherent Response"), this means that the DIP client 15a could not obtain network information on the server 18. The DIP client 15a then proceeds to step E72 during which no update of the cache 15b is performed. The process ends with a nonzero return code. Then we go to step E73. In an implementation according to which the DIP client module 15a is not confused with the entity 12a of the local DNS server, but in the network vicinity of the latter, so that it can be considered that these two entities are connected by a network reliable and latency-free (for example a network using fiber optic transmission), the DIP client 15a then moves from step E71 or step E72 to step E71 '. In step E71 ', the DIP client module 15a sends to the local DNS server (12a) a message containing the sequence number of the DNS request causing the generation of the DIP request, the FQDN of the server 18 (or its network address, in the case of reverse DNS resolution), as well as the DIP record (s) obtained. The local DNS server (12a) then proceeds to step E73 during which it updates, if necessary, a cache memory with the information contained in the DIP records received in step E71 '.
L'étape E73 représente la fin du procédé, selon l'invention, d'obtention d'informations réseau concernant, dans ce mode de réalisation, notamment le serveur distant 18 auquel le terminal d'utilisateur (1) tente d'accéder. Selon le cas d'usage considéré, ces informations réseau DIP peuvent être utilisées, soit par le serveur DNS local (12a), soit par d'autres entités réseau, à diverses fins, par exemple pour : - adapter les réponses DNS aux contraintes d'une ou plusieurs entités réseau telles qu'un serveur de contenus (serveur 18) distant ; - activer, désactiver ou adapter divers mécanismes ou services dans le réseau du fournisseur d'accès Internet (ISP), comme la translation d'adresse, en prenant en compte les spécificités et les contraintes d'entités serveurs (serveur 18) sur le réseau, etc.15Step E73 represents the end of the method, according to the invention, of obtaining network information concerning, in this embodiment, in particular the remote server 18 to which the user terminal (1) tries to access. Depending on the use case considered, this DIP network information may be used either by the local DNS server (12a) or by other network entities, for various purposes, for example to: - adapt the DNS responses to the constraints of the network. one or more network entities such as a remote content server (server 18); - enable, disable or adapt various mechanisms or services in the ISP network, such as address translation, taking into account the specificities and constraints of server entities (server 18) on the network , etc.15
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1451722A FR3018411A1 (en) | 2014-03-04 | 2014-03-04 | 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 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1451722A FR3018411A1 (en) | 2014-03-04 | 2014-03-04 | 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 |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3018411A1 true FR3018411A1 (en) | 2015-09-11 |
Family
ID=50877440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1451722A Withdrawn FR3018411A1 (en) | 2014-03-04 | 2014-03-04 | 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 |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3018411A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694358B1 (en) * | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
US7032010B1 (en) * | 1999-12-16 | 2006-04-18 | Speedera Networks, Inc. | Scalable domain name system with persistence and load balancing |
US20120179814A1 (en) * | 2000-07-19 | 2012-07-12 | Akamai Technologies, Inc. | Determination and use of metrics in a domain name service (DNS) system |
-
2014
- 2014-03-04 FR FR1451722A patent/FR3018411A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694358B1 (en) * | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
US7032010B1 (en) * | 1999-12-16 | 2006-04-18 | Speedera Networks, Inc. | Scalable domain name system with persistence and load balancing |
US20120179814A1 (en) * | 2000-07-19 | 2012-07-12 | Akamai Technologies, Inc. | Determination and use of metrics in a domain name service (DNS) system |
Non-Patent Citations (1)
Title |
---|
ANDREWS M ET AL: "Clustering and server selection using passive monitoring", PROCEEDINGS IEEE INFOCOM 2002. THE CONFERENCE ON COMPUTER COMMUNICATIONS. 21ST. ANNUAL JOINT CONFERENCE OF THE IEEE COMPUTER AND COMMUNICATIONS SOCIETIES. NEW YORK, NY, JUNE 23 - 27, 2002; [PROCEEDINGS IEEE INFOCOM. THE CONFERENCE ON COMPUTER COMMUNI, vol. 3, 23 June 2002 (2002-06-23), pages 1717 - 1725, XP010593740, ISBN: 978-0-7803-7476-8, DOI: 10.1109/INFCOM.2002.1019425 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2000929B1 (en) | Use of a prefix hash tree (PHT) to locate services within a peer-to-peer communication network | |
EP2297928B1 (en) | Method for receiving a data packet in an ipv6 domain, and associated device and residential gateway | |
EP3987752B1 (en) | Method and device for obtaining an ip address | |
US9331979B2 (en) | Facilitating content accessibility via different communication formats | |
US8762573B2 (en) | Reverse DNS lookup with modified reverse mappings | |
JP5006968B2 (en) | Collaborative NAT behavior discovery | |
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 | |
WO2017161965A1 (en) | Method, device, and system for dynamic domain name system (dns) redirection | |
EP2294798A2 (en) | Method and related device for routing a data packet in a network | |
EP3603024A1 (en) | Method for recommending a communication stack | |
US7356031B1 (en) | Inter-v4 realm routing | |
EP1641223B1 (en) | Improved method for assigning network identifiers using interface identifiers | |
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. | |
EP1142269B1 (en) | Addressing method and name and address server in a digital network | |
EP1453279A1 (en) | Sorting addresses in a domain name server | |
WO2012104527A1 (en) | Method and device for address translation | |
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 | |
EP2169903A1 (en) | Apparatus and method for routing allowing the translation of addresses in cascade in a network | |
EP2036301A2 (en) | Method for addressing call transmission and service elements between heterogeneous nodes | |
FR2988544A1 (en) | SELECTING A NETWORK ENTITY FOR PROVIDING DIGITAL CONTENT | |
EP3632089B1 (en) | Optimisation de la fréquence de rafraichissement d'un enregistrement dns | |
FR3140502A1 (en) | Method for processing a name resolution request, communication method, message processing method and server, client device and relay node configured to implement these methods | |
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 | |
EP2053833A1 (en) | Method of translating data packet headers | |
WO2006016009A1 (en) | Method and device for processing a domain name translation request |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20151130 |