SNT Internet

Identification

Infoforall

4 - Protocole DNS


Les activités précédentes nous ont montré que la gestion des communications entre les programmes des ordinateurs se faisaient sur plusieurs couches distinctes ayant chacune un rôle bien défini.

Nous allons aujourd'hui voir un protocole supplémentaire qui permet à ces communications de s'établir sans que l'utilisateur ai à fournir l'adresse IP du service à joindre.

Après tout, je suppose que vous ne connaissez absolument pas les adresses IP des sites sur lesquelles vous allez !

Ce système de traduction nom-adresse se nomme DNS et son principe est le même que votre répertoire téléphonique (un contact est identifié par un nom mais on utilise son vrai numéro de téléphone).

La différence entre le système du répertoire téléphonique et le système DNS d'Internet, c'est la taille. Avec plusieurs milliards de machines connectées, ça ferait un gros répertoire...

Evaluation ✎ : questions 07-12-13-14/15-17

Documents de cours :

1 - Rappel sur les couches et leurs rôles

Commençons par un rappel global.

Couche TRANSPORT Protocole : TCP (et +) Adresse : PORT Message : SEGMENT Couche Application Firefox Couche Application Serveur HTTP Communication prog A Comm. prog B A B Rq TCP Rp1 TCP Rp2 TCP vide TCP ? A TCP B TCP data SRC 2050 DST 443 Seq data SRC 24945 DST 443 Seq data SRC DST CS data Seq Anum F vide Seq Anum F SRC 2050 DST 443 F ACK Anum 0 Seq 1 CS XXXXX DATA d'un programme SEGMENT TCP Port SRC 443 Port DST 2050 Seq 4 Suiv 2 PAQUET IP IP DST 25.25.25.5 IP SRC 45.45.45.2 TTL 50 TRAME (Ethernet ou Wifi) SEQUENCE INTIALE MAC DST MAC SRC CheckSum selon le type de trame Couche RESEAU Protocole : IP (et +) Adresse : IP Message : PAQUET Couche ACCES réseau Protocole : WLAN ... Adresse : MAC Message : TRAME Couche Application Firefox (client) Protocole : HTTP Couche Application Serveur HTTP Protocole : HTTP Rep http Requete Rep TCP IP Req TCP IP Data TCP IP IP DST IP SRC TTL / HL ACK TCP IP IP Trame IP Trame

Nous avons vu que la communication entre deux programmes situés sur deux ordinateurs distants pouvait être schématisée de cette façon :

Si on résume ce que nous avons vu :

Couche Application

Cette couche est la couche qui gère la communication d'un programme.

Les informations transmises se nomment messages ou encore juste data.

Le protocole HTTP de l'application Web est un exemple de protocole de ce niveau. Il impose la façon de structurer les messages entre serveurs et clients.

Couche Transport

Cette couche se charge de faire la liaison entre des applications situées sur deux ordinateurs distants.

La couche Transport communique avec une autre couche Transport en passant par la couche inférieure Réseau en générant des communications qu'on nomme segments.

Les applications sont identifiées par une adresse nommé PORT (un entier entre 1 et 65535). Ce PORT nécessite 2 octets de mémoire.

Le protocole typique de cette couche est le protocole TCP qui se charge de découper les messages des applications, de vérifier que les segments sont arrivés et d'envoyer des accusés de réception.

TCP garantit donc la fiabilité de la communication mais ne peut pas garantir le délai de livraison.

Couche Réseau

Cette couche se charge de faire la liaison entre deux ordinateurs qui ne sont pas nécessairement sur le même réseau.

La couche Réseau communique avec une autre couche Réseau en passant par la couche inférieure Accès réseau en générant des communications qu'on nomme paquets.

Les ordinateurs sont identifiés par une adresse qu'on nomme adresse IP.

Une adresse en version IP v4 nécessite 4 octets en mémoire. On la présente comme un ensemble de 4 entiers séparés par des points. Exemple d'adresse IP v4 : 50.250.255.12 .

Une adresse en version IP v6 nécessite 16 octets en mémoire. On la présente comme un ensemble de 8 nombres hexadécimaux (il peut y avoir des a, b, c, d, e et f) séparés par des doubles points: Exemple d'adresse IP v6 : 2a01:cb0c:96c:d400:da8d:7fff:ffd8:a112 . On trouve parfois la présence de deux doubles points de suite sur certaines adresses.

Le protocole typique de cette couche est le protocole IP qui se charge de transporter les paquets IP de l'émetteur au récepteur en transmettant le paquet de machines en machines. Il se charge également de détruire les paquets qui traînent depuis trop longtemps sur le réseau.

A l'heure actuelle, les systèmes IPv4 et IPv6 cohabitent.

Couche Accès réseau

Cette couche se charge de faire la liaison entre deux cartes réseaux qui sont en communication directe sur le même réseau. Cette couche fait donc la liaison avec le monde physique.

La couche Accès réseau communique avec une autre couche Accès réseau en générant des communications qu'on nomme trames.

Une carte réseau est identifiée par une adresse qu'on nomme adresse MAC (Media Access Control).

Les adresses MAC nécessitent 6 octets. Elles se présentent sous la forme d'un ensemble de 6 chiffres hexadécimaux séparés par deux points doubles. Exemple :  5E:FF:56:A2:AF:15 .

Nous n'avons pas encore vu de protocole propre à cette couche.

2 - Nom et adresse IP

C'est bien beau tout ça mais vous n'avez jamais placé d'adresses IP dans la barre d'adresses de votre navigateur.

On y place simplement le nom du site qu'on veut joindre.

Comment votre machine parvient-elle alors à trouver l'adresse IP qu'il faut joindre ?

Première façon de faire : utiliser un site où quelqu'un a déjà tout programmé pour répondre à votre question !

01° Utiliser le site suivant (ou un autre offrant le même service de DNS Record Lookupdnslookup.online/ ou www.whatsmyip.org/.

Formulaire où on peut rentrer le nom du site dont on veut trouver l'IP
Formulaire du premier site fourni ci-dessus

Lancer une demande sur un site de votre choix. Regarder si le site parvient à trouver l'adresse IP correspondante.

Voici la réponse que j'ai obtenu avec ce site sur une demande www.infoforall.fr.

Formulaire où on peut rentrer le nom du site dont on veut trouver l'IP
Réponse du site ci-dessous

On obtient ici une adresse IP v4 :  185.35.40.11 .

DNS veut dire Domain Name System. C'est ce système qui vous permet au navigateur de savoir que la requête pour www.infoforall.fr doit être transmise à l'adresse IP  185.35.40.11 .

Le système de noms de domaine est donc une sorte de tableau ayant deux colonnes : la première est le nom de domaine et la deuxième l'adresse Ip à utiliser.

NomAdresse
www.infoforall.fr 185.35.40.11 

Au tout début d'Internet, la résolution se faisait un peu comme ça. Un seul fichier texte contenait les adresses IP de grands services à connaître.

Depuis, Internet a un peu grossi et on ne peut plus faire comme cela.

Voyons d'abord comment trouver les adresses IP directement depuis votre ordinateur, sans passer par un site externe.

02° Version pour le système d'exploitation Windows. Utiliser un terminal et utiliser les commandes suivantes pour obtenir l'adresse IP du serveur HTTP du site www.infoforall.fr.

Sous Windows 10 : pour accéder à l'invite de commande : Start Menu / Menu Démarrer pour ouvrir le menu des programmes. Chercher Système Windows et Invite de Commande.

Une simple commande ping peut suffire mais nous allons voir d'autres manières de faire.

Pour rappel, la commande ping sert à la base à tester la qualité de la communication entre votre ordinateur et la destination.

C:\Users\moi>ping www.infoforall.fr Envoi d’une requête 'ping' sur www.infoforall.fr [2a00:b6e0:1:20:2::1] avec 32 octets de données : Réponse de 2a00:b6e0:1:20:2::1 : temps=23 ms Réponse de 2a00:b6e0:1:20:2::1 : temps=28 ms Réponse de 2a00:b6e0:1:20:2::1 : temps=22 ms Réponse de 2a00:b6e0:1:20:2::1 : temps=35 ms Statistiques Ping pour 2a00:b6e0:1:20:2::1 : Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%), Durée approximative des boucles en millisecondes : Minimum = 22ms, Maximum = 35ms, Moyenne = 27ms

Deuxième possibilité : la commande nslookup (name service look up). Cette commande permet de voir l'adresse IP mais également de connaître le service qui a fourni cette réponse.

C:\Users\moi>nslookup www.infoforall.fr Serveur : UnKnown Address: fe80::da7d:7fff:fed7:a110 Réponse ne faisant pas autorité : Nom : www.infoforall.fr Addresses: 2a00:b6e0:1:20:2::1 185.31.40.11

On remarque donc ici que la réponse provient d'un serveur inconnu (UnKnown) d'adresse fe80::da7d:7fff:fed7:a110. Il s'agit d'une adresse locale (en IPv6, une adresse commençant par fe80 est une adresse locale).

Vous pouvez noter que la dernière réponse montre qu'on peut joindre le site soit en IP4, soit en IP6. Au choix.

03° Pour ceux qui ont un système d'exploitation Unix (Linux ou MacOS). Utiliser un terminal et utiliser les commandes suivantes pour obtenir l'adresse IP du serveur HTTP du site www.infoforall.fr.

Une simple commande ping peut suffire mais nous allons voir d'autres manières de faire.

Certaines peuvent ne pas fonctionner sur votre machine. Le tout c'est qu'au moins l'une d'entre elles fonctionnent.

Le ping est à stopper avec les touches  CTRL + C .

Pour rappel, la commande ping sert à la base à tester la qualité de la communication entre votre ordinateur et la destination.

rv@rv-HP2:~$ ping www.infoforall.fr PING www.infoforall.fr(http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1)) 56 data bytes 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=1 ttl=55 time=165 ms 64 bytes from http1.paris1.alwaysdata.com (2a00:b6e0:1:20:2::1): icmp_seq=2 ttl=55 time=187 ms ^C --- www.infoforall.fr ping statistics --- 3 packets transmitted, 2 received, 33% packet loss, time 2003ms rtt min/avg/max/mdev = 165.135/176.436/187.738/11.309 ms

Deuxième possibilité : la commande host. Elle permet de renvoyer l'adresse IP à partir d'un nom de machine. C'est pile poil ce qu'on veut. En plus, ça fournit les adresses IPv4 et Ipv6 si les deux sont possibles sur cette machine.

rv@rv-HP2:~$ host www.infoforall.fr www.infoforall.fr has address 185.31.40.11 www.infoforall.fr has IPv6 address 2a00:b6e0:1:20:2::1

Troisième possibilité : la commande dig. Elle permet de faire beaucoup de choses en lien avec les DNS pour comprendre les dysfonctionnements. En version light, on peut obtenir l'adresse IP d'un site, si le DNS marche bien.

rv@rv-HP2:~$ dig www.infoforall.fr +short 185.31.40.11

Si vous voulez obtenir de l'IPv6 avec dig :

rv@rv-HP2:~$ dig aaaa www.infoforall.fr +short 2a00:b6e0:1:20:2::1

Enfin, vous pouvez également utiliser la commande nslookup (name server look up), mais ce programme n'est plus mis à jour sur Linux.

rv@rv-HP2:~$ nslookup www.infoforall.fr Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: www.infoforall.fr Address: 185.31.40.11 Name: www.infoforall.fr Address: 2a00:b6e0:1:20:2::1

On remarque donc que la réponse provient d'un serveur d'adresse 127.0.0.53. Il s'agit d'une adresse localhost.

Evitez d'utiliser cette dernière commande, il semble que le programme ne soit plus mis à jour. Les commandes dig et host font très bien le boulot.

Comme vous le voyez, on alterne entre IPv4 et IPv6 en fonction des commandes.

Vous pouvez noter que la dernière réponse montre qu'on peut joindre le site soit en IP4, soit en IP6. Au choix.

Comment ça marche alors ? Votre ordinateur ne peut pas contenir un tableau qui contient toutes les correspondances Nom - Adresse IP au monde.

Le nom du service qui permet de traduire un nom en lettres en adresse IP est DNS, Domaine Name Service. Et ce service utilise des programmes serveurs. Ce ne sont pas des serveurs HTTP mais des serveurs ... DNS.

En voici le principe.

DNS : Domain Name Service

Le service DNS veut dire Domain Name Service.

C'est lui qui fait le lien entre un nom de machine et son adresse IP. C'est donc une sorte d'annuaire.

Imaginons que vous vouliez aller sur https://www.infoforall.fr et que l'installation de votre ordinateur soit toute neuve : impossible pour lui d'avoir déjà un fichier contenant l'IP de ce site.

Requête DNS

Dans ce cas, il va faire une requête DNS à un serveur DNS par défaut.

Requête DNS

Le plus souvent, il s'agit du serveur DNS de votre fournisseur d'accès à Internet (provider) : Orange, Free...

Après avoir cherché dans ses données, le serveur DNS va répondre en fournissant l'adresse IP voulue.

Requête DNS

Maintenant, votre machine sait que l'adresse Ip de www.infoforall.fr est  2a00:b6e0:1:20:2::1 . La machine va pouvoir envoyer sa requête HTTP au bon serveur HTTP.

Requête DNS

04° Quelles informations le serveur DNS peut-il apprendre sur vous ? Comment un serveur DNS peut-il censurer le Net ?

...CORRECTION...

A chaque fois que vous voulez utiliser une ressource d'un site, le serveur peut donc stocker la demande, l'heure et le client qui a fait cette demande.

Il y a pire : si le propriétaire d'un serveur DNS veut interdire l'accès à un site, il lui suffit de ne pas répondre ou de fournir une mauvaise IP.

Le rôle fondamental des serveurs DNS dans le fonctionnement d'Internet en fait des cibles de choix

  • pour ceux qui veulent censurer le Net (ne pas renvoyer de réponses DNS pour certains site, va empếcher les gens qui n'ont pas l'adresse IP de pouvoir s'y connecter),
  • pour ceux qui veulent créer des arnaques diverses (prendre le contrôle d'un serveur DNS permet de rediriger les internautes vers de faux sites) ou
  • pour ceux qui veulent récupérer un maximum d'informations sur un maximum de gens (on peut savoir qui veut voir quoi et qui se connecte à quoi).

En 2015, suite à une plainte pour violation répétée des droits d'auteurs, le Tribunal de grande instance de Paris permet d'imposer un blocage DNS de la plateforme The Pirate Bay auprès des fournisseurs d'accès à Internet français. Suite à cela, un nombre conséquent d'utilisateurs ont alors changé le DNS par défaut (celui du fournisseur de service) par ... le DNS de Google. Est-ce bien mieux ?

Mémoire cache DNS

La requête DNS prend du temps et crée des communications sur le réseau.

Pour limiter les demandes et les délais, il existe un système de mémoire-cache, soit dans votre navigateur (il mémorise temporairement les associations nom-adresse), soit dans votre système d'exploitation, soit dans le routeur de la Box (pour ceux qui ont une Box professionnelle par exemple).

Requête DNS

Le vrai fonctionnement est donc plutôt :

  1. Votre navigateur va voir s'il connait l'adresse de ce nom de domaine dans son cache DNS
  2. S'il ne la connaît pas, on va voir dans la mémoire-cache du système d'exploitation (operating system OS) : il est possible qu'un autre programme ai déjà fait cette demande
  3. Sinon, on transmet à la Box (certains modèles disposent d'une mémoire-cache également) : il est possible qu'un autre utilisateur du réseau ai déjà fait cette demande
  4. Sinon, on part sur Internet et on fait la demande au serveur DNS de référence.

Le cache permet donc de gagner du temps et de limiter les demandes courantes. Par contre, cela pose problème si l'adresse mémorisée n'est plus la bonne. Les serveurs Web changent rarement d'adresse mais cela arrive : mise à jour, changement d'hébergeur, changement de technologie...

Pour limiter le nombre de mauvaises associations Nom-IP, les données en mémoire dans le cache ont une certaine durée de vie (TTL, Time To Live).

L'accès à la mémoire cache DNS du navigateur ou du système d'exploitation peut donc permettre de connaître les sites que vous avez consulté dernièrement. En fait, cette liste contient la liste de tous les sites à qui vous avez fait une demande. Imaginons que sur l'un des sites visités se trouve une image dans l'attribut source src pointe vers un second site. Votre navigateur va faire la demande au second site pour obtenir le code de l'image. Et le cache DNS va donc contenir la demande pour le premier site (pour le code HTML au moins) et pour le second site (pour le code de l'image).

Sur Windows, l'accès à ce cache DNS est très simple :

C:\Users\moi>ipconfig /displaydns

Si vous êtes sur Windows, vous pouvez essayer. Vous allez voir que la confidentialité n'est pas au rendez-vous...

Sur Linux, cette fonctionnalité n'existe pas de base. Par contre, les navigateurs ont bien une mémoire cache DNS.

On peut bien entendu supprimer assez facilement ces mémoires-cache. Il existe de nombreux articles en parlant sur le Web.

Il existe un nom qui identifie l'ordinateur sur lequel on se trouve : localhost. L'adresse IP associée est toujours  127.0.0.1  en IPv4 ou  ::1  en IPv6.

Bien. Il nous reste à voir quel est le serveur DNS de référence de votre ordinateur.

3 - DNS de référence

05° Taper les instructions suivantes dans votre terminal pour voir l'adresse IP du serveur DNS local utilisé par votre ordinateur.

Windows : tapez ceci

C:\Users\rv>ipconfig

Linux et autres Unix : tapez ceci

rv@rv-HP2:~$ nmcli dev show |grep DNS

Pour Windows, vous devriez avoir un affichage qui ressemble à ceci :

h:\>ipconfig/all
Configuration IP de Windows Nom de l'hôte : e301-poste12 Carte Ethernet Connexion au réseau local : Suffixe DNS propre à la connexion : lycee.home Description : Broadcom NetXtreme Gigabit Ethernet Adresse physique : 25-CE-55-28-72-CE DHCP activé : Oui Configuration automatique activée : Oui Adresse IPv6 de liaison locale : ad41::fe80:b1b1:fe80:fe80%13(préféré) Adresse IPv4 : 192.168.2.78(préféré) Masque de sous-réseau : 255.255.0.0 Bail obtenu : jeudi 4 mai 2017 10:58:30 Bail expirant : vendredi 5 mai 2017 10:58:29 Passerelle par défaut : 192.168.0.250 Serveur DHCP : 192.168.0.250 IAID DHCPv6 : 270843397 DUID de client DHCPv6 : 00-01-00-01-17-BD-7B-ED-24-BE-05-10-C2-C2 Serveurs DNS : 192.168.0.253 Serveur WINS principal : 192.168.0.253 NetBIOS sur Tcpip : Activé

Avec Linux, l'instruction devrait vous montrer quelque chose proche de cela :

rv@rv-HP2:~$ nmcli dev show |grep DNS IP4.DNS[1]: 192.168.1.1 IP6.DNS[1]: 2a01:cb0c:96c:d400:da8d:7fff:ffd8:a112 IP6.DNS[2]: fe80::da8d:7fff:ffd8:a112

Pourquoi a-t-on 3 adresses DNS sur le deuxième exemple ?

En fait, c'est trois fois le même serveur DNS local qu'on peut joindre de plusieurs façons.

La première est son adresse IP v4 locale. Locale car elle commence par  192.168  : on ne peut pas vous joindre depuis l'extérieur de votre réseau avec cette adresse.

La deuxième est son adresse IP v6.

La troisième est son adresse IP v6 en version locale. Local car elle commence par  fe80::  : si vous regardez bien, les deux dernières finissent de la même manière. Il n'y a que le début qui change.

A moins que quelqu'un ai modifié votre réseau local et configuré un serveur DNS personnel, l'adresse que vous venez d'obtenir est certainement celle de votre Box. Votre ordinateur va donc se connecter à votre Box lorsqu'il doit faire une requête DNS.

Sur un réseau d'entreprise, comme celui du lycée par exemple, le DNS n'est pas nécessairement situé dans la passerelle. Si vous regarder l'exemple Windows, effectué dans un lycée, on voit que le DSN est situé en  192.168.0.253  alors que la passerelle (la Box) est situé en  192.168.0.250 .

Pour aller plus loin, il faudrait vous connecter à votre Box avec les identifiants administrateurs et aller fouiller dans les différents menus.

A titre d'exemple, dans une Livebox, il faut cliquer sur le menu de configuration (l'icone engrenage), choisir l'onglet Information Système, aller dans le menu Internet.

Menu Livebox

Ici, on voit donc que notre Box est configuré pour aller d'abord voir le serveur DNS d'adresse  80.10.246.7 .

S'il est en panne, la Box va transmettre vos demandes au serveur DNS secondaire, d'adresse  81.253.149.14 .

En réalité, il y a deux serveurs pour répartir les charges. Chacun d'entre eux récupère ainsi en moyenne 50% des demandes. Et en cas de panne, l'autre peut prendre temporairement le relais, au prix d'une augmentation du temps de réponse bien entendu.

06° Utiliser la commande ci-dessous en fonction de votre système d'exploitation pour obtenir le nom du service.

Attention, il est possible que les adresses aient changé ou que ce service soit en maintenance. C'est d'ailleurs pour cela qu'il y en a plusieurs.

Unix : Linux, MacOS

rv@rv-HP2:~$ host 81.253.149.14 Host 14.149.253.81.in-addr.arpa. not found: 3(NXDOMAIN) rv@rv-HP2:~$ host 80.10.246.7 7.246.10.80.in-addr.arpa domain name pointer dns-rtc-gpe2-a.wanadoo.fr.

Windows

C:\Users\moi>nslookup 80.10.246.7 C:\Users\moi>nslookup 81.253.149.14

Comme vous le voyez, on retrouve bien une connexion vers un serveur DNS, ici de chez wanadoo.fr, l'ancien nom de la société, avant Orange.

Et que fait ce serveur pour connaitre les associations (site, adresse IP) ? Il a téléchargé tous les noms possibles des sites sur Internet ? Ben non.

S'il ne la connaît pas, il va poser la question à un serveur DNS au dessus de lui, par exemple le serveur DNS de votre provider.

Et si votre DNS provider ne connaît pas ?

Pareil, il va demander au dessus. Nous allons maintenant voir le fonctionnement de ce système DNS.

4 - L'organisation du DNS

Comme ce système est très important pour le fonctionnement d'Internet (sinon, nous devrions tous connaître par coeur les adresses des serveurs), les personnes qui l'ont créé sont partis depuis un bon moment sur un système décentralisé. De cette façon, on ne peut pas facilement le détruire puisqu'il n'existe pas de centre à proprement parlé.

Vous vous souvenez de la façon dont on écrit une adresse de serveur dans URL :

Décomposition d'une adresse

www.infoforall.fr.

  • www est un sous-domaine : on peut créer autant de sous-domaine qu'on veut lorsqu'on possède un domaine
  • infoforall.fr est le nom de domaine qui est composé :
    • d'un nom de domaine de deuxième niveau : infoforall
    • d'un nom de domaine de premier niveau (TDL, top-level domain en anglais) : fr

✎ 07° Pour les adresses ci-dessous, fournir :

  • Le nom de domaine de premier niveau
  • Le nom de domaine de deuxième niveau
  • Le sous-domaine

Adresse A : www1.ac-lille.fr

Adresse B : www.onisep.fr

Adresse C : K.root-servers.net

08° A quoi fait référence www ? Un site présent sur le Web doit-il nécessairement avoir ce sous-domaine ?

...CORRECTION...

www pour World Wide Web.

Un site Web peut très bien ne pas avoir ce sous-domaine. Chacun fait comme il veut.

C'est juste une indication. Vous pouvez rendre vos pages Web accessibles depuis mail.infoforall.fr, mais c'est un peu tordu.

Pourquoi parler de cela pour le DNS ? Simplement car cette structure est à la base de la réponse d'un serveur DNS lorsque l'adresse demandée ne figure pas dans sa mémoire-cache.

Structure des noms de domaines

Un serveur DNS ne peut pas connaître les adresses de tous le monde sur Internet. Voici comment les concepteurs du système ont géré le problème.

En haut de la structure, on trouve le serveur racine (root en anglais). On le symbolise souvent par un point.

Le serveur-racine connait l'adresse de tous les serveurs DNS du domaine de premier niveau (TDL, top-level domain en anglais).

Racine et TLD

Pour connaître la racine, il faut donc

  1. Joindre le serveur-racine pour qu'il transmettre l'adresse du serveur responsable du domaine de premier niveau fr
  2. Utiliser la réponse pour joindre le serveur fr et lui demander de fournir l'adresse du serveur DNS qui gère le nom de domaine de deuxième niveau infoforall
  3. Utiliser la réponse pour demander à ce serveur DNS de fournir la bonne adresse finale !
Structure complète

Explications :

Vous demandez une ressource située à cette adresse www.infoforall.fr


Etape 1 : Votre navigateur va commencer par voir s'il possède cette adresse en mémoire-cache.

Cache Chronium

Première connexion donc le cache du navigateur ne connaît pas votre site.


Etape 2 : on lance une requête DNS à notre serveur DNS par défaut.

Requête DNS

Pas de chance. Personne n'a démandé à accéder à www.infoforall.fr dernièrement. La mémoire-cache de ce serveur ne contient pas non plus l'adresse du site.


Etape 3 : le serveur DNS va alors lancer lui-même une requête DNS. A qui ? A l'un des serveurs racines d'Internet. Le serveur DNS du provider doit donc avoir son adresse en mémoire. Que lui demande-t-il ? Il lui demande de lui fournir l'adresse d'un serveur Top-Level-Domain gérant les adresses en .fr.

Requête DNS à la racine

On dit que les serveurs racines sont des serveurs d'autorité pour fournir les adresses des serveurs TLD.

Une fois que le serveur racine a répondu, notre serveur DNS connaît maintenant une adresse valide correspondant à un serveur gérant le domaine de premier niveau fr.


Etape 4 : le serveur DNS utilise l'adresse du serveur gérant le domaine fr pour lancer une requête DNS sur le domaine de deuxième niveau infoforall.

Requête DNS au serveur fd

Le serveur TDL fr est un serveur d'autorité pour fournir les adresses des serveurs de deuxième niveau des noms de domaine finissant en fr.

Une fois la réponse reçue, le serveur DNS du provider connaît l'adresse du serveur DNS gérant les adresses commençant par infoforall.fr.


Etape 5 : le serveur DNS utilise l'adresse du serveur gérant le domaine infoforall.fr pour lancer une requête DNS sur le sous-domaine www.

Requête DNS au serveur fd

Ce serveur fait autorité sur les adresses des serveurs répondant à un nom qui finit par infoforall.fr.

Une fois la réponse reçue, le serveur DNS connaît enfin l'adresse du serveur hébergeant www.infoforall.fr.


Etape 6 : Ouf. C'est presque fini. Il ne reste plus au serveur DNS du provider qu'à renvoyer la réponse DNS qu'il vient de recevoir au client originel.

Réponse DNS du serveur DNS

Et tout au dessus, il y a les 13 serveurs DNS racines.


Etape 7 : On retrouve le fonctionnement habituel : le client va envoyer une requête HTTP vers le serveur HTTP de www.infoforall.fr maintenant qu'il connaît son adresse !

Requête HTTP vers le serveur HTTP

On voit donc que pour une pauvre requête HTTP, nous avons provoqué un trafic important. Et encore : la réponse HTTP fournie risque de comporter des images qui sont hébergées, elles, par doc.infoforall.fr...

09° Votre navigateur connaît maintenant l'adresse du serveur correspondant à www.infoforall.fr. Cela veut-il dire qu'il connaît l'adresse de doc.infoforall.fr ?

...CORRECTION...

Et non. Ce n'est pas le même nom. Il est possible que le serveur soit le même (même nom de domaine) ou pas...

10° Votre navigateur ne connaît pas doc.infoforall.fr. Décrire ce qui va se passer de façon à ce qu'il recoive cette adresse.

...CORRECTION...

Le navigateur va provoquer l'envoi d'une requête DNS au serveur DNS par défaut.

Ce serveur DNS va alors faire une requête DNS sur un serveur racine, puis un serveur TLD gérant fr puis sur un serveur gérant infoforall.fr.

Votre navigateur va donc recevoir une seconde adresse et pouvoir télécharger les images présentes sur la page en provoquant de nouvelles requêtes HTTP.

11° Tout ce processus de requêtes DNS va-t-il encore avoir lieu lorsque vous voudrez atteindre la page suivante sur ce site ?

...CORRECTION...

Non, tant que l'entrée de ce site reste dans le cache DNS de votre navigateur, il n'aura pas besoin de refaire une demande.

5 - Serveur racine

Le but de toute cette structure assez complexe est la décentralisation : on fait tout ce qui est possible pour qu'il n'y ai pas de machine centrale unique qui pourrait provoquer la chute du réseau Internet en cas de panne.

Ainsi, on parle de mais en réalité, il n'est vraiment pas unique.

Serveurs DNS racine (root)

Il existe 13 structures indépendantes gérant les serveurs de ce type. Ces 13 structures sont gérées par 12 institutions ou sociétés différentes.

Le nom d'un serveur root est de la forme lettre.root-servers.net

Le nom de ces 13 serveurs racines, leurs adresses IP (le 28 Avril 2020) et la structure que les gèrent sont :

Collection / Table Attributs ou Descripteurs
Nom Adresses
IPv4
IPv6
Gestionnaire
A (USA) A.root-servers.net

198.41.0.4

2001:503:ba3e::2:30

Verisign
B (USA) B.root-servers.net

199.9.14.201

2001:500:200::b

University of Southern California
C (USA) C.root-servers.net

192.33.4.12

2001:500:2::C

Cogent Communications
D (USA) D.root-servers.net

199.7.91.13

2001:500:2d::d

University of Maryland
E (USA) E.root-servers.net

192.203.230.10

2001:500:a8::e

NASA
F (USA) F.root-servers.net

192.5.5.241

2001:500:2f::f

Internet Systems Consortium
G (USA) G.root-servers.net

192.112.36.4

2001:500:12::d0d

US Department of Defense
Defense Information Systems Agency
H (USA) H.root-servers.net

198.97.190.53

2001:500:1::53

US Army
U.S. Army Research Laboratory
I (Suède,UE) I.root-servers.net

192.36.148.17

2001:7fe::53

Netnod
J (USA) J.root-servers.net

192.58.128.30

2001:503:c27::2:30

Verisign
K (UE, Pays-Bas) K.root-servers.net

193.0.14.129

2001:7fd::1

RIPE NCC
L (USA) L.root-servers.net

199.7.83.42

2001:500:3::42

ICANN
M (Japon) M.root-servers.net

202.12.27.33

2001:dc3::35

WIDE Project

La coordination de ces différents organismes est assurée par l'ICANN (qui gère également le système de la racine L et supervise l'attribution du niveau TLD).

Logo ICANN
Logo ICANN (Image sans copyright)

D'un point de vue historique, la création de la structure telle qu'elle est actuellement est explicable ... si on a le temps. Une recherche sur Wikipedia par exemple peut vous en apprendre beaucoup. Les enjeux étant importants, les pressions sont bien entendu importantes également.

✎ 12° D'un point de vue géopolitique, quelle impression vous donne le tableau ci-dessus ?

✎ 13° Utiliser le lien suivant qui mène vers le site présentant les serveurs racine à travers le monde :

https://root-servers.org/

Question : Après avoir zoomé sur la France, combien trouve-t-on de serveurs racine autour

  • de Paris,
  • de Marseilles
  • de Lyon ?

Si on regarde en détail les noms des différents serveurs, on peut voir que :

Autour de Paris, on trouve des serveurs des roots A, C, D, E, F, I, J, K, L*2, M.

Les Roots disponibles autour de Paris

Autour de Lyon, on trouve des serveurs des roots D, E, L et K.

Autour de Marseilles, on trouve des serveurs des roots D, E, L et F.

✎ 14 - version Linux / Unix / MacOS° Utiliser un terminal et utiliser la commande suivante pour obtenir l'adresse IP du serveur DNS racine K.root-servers.net.

Une simple commande ping peut suffire en réalité.

rv@rv-HP2:~$ dig K.root-servers.net +short 193.0.14.129

Question : comparez l'adresse obtenue avec l'adresse obtenue sur l'image des serveurs root autour de Paris.

✎ 15 - version Windows° Utiliser un terminal et utiliser la commande suivante pour obtenir l'adresse IP du serveur DNS racine K.root-servers.net.

Une simple commande ping peut suffire en réalité.

C:\Users\moi>ping K.root-servers.net

Question : comparez l'adresse obtenue avec l'adresse obtenue sur l'image des serveurs root autour de Paris.

Cette adresse correspond à l'un des serveurs délivrant les adresses de la racine K.

16° Utiliser le lien ci-dessous (ou dans le tableau des 13 racines). Question : Quelle est la zone la mieux desservie par la structure K, gérée par RIPE NCC ? Pour rappel, RIPE NCC est également le RIR (Registre Internet régional) qui gère les adresses IP pour la zone européenne.

Vers le site de la racine K : RIPE NCC

...CORRECTION...

Il s'agit clairement de l'Europe.

La plupart des opérateurs travaillant sur le réseau Internet utilisent ainsi des synergies pour rendre leur travail plus performant. RIPE NCC peut ainsi se prévaloir d'une expertise importante sur l'Internet européen.

Plan des serveurs K sur la planète
Répartition des serveurs de la racine K sur la planète

Les noms de domaines permettent donc aux utilisateurs de ne pas se soucier des adresses IP réelles, aux sites de changer de serveurs sans perdre leurs clients (car le nom de domaine reste inchangé même si l'adresse IP réelle change) et permet à Internet d'être très stable : pour que le systême de nom de domaines s'écroule, il faudrait que tous les serveurs des 13 structures de racine soient en panne en même temps.

6 - Top Level Domain TLD

Les domaines du premier niveau (Top Level Domain) sont également très importants pour le fonctionnement global du système. Une panne de la gestion du TLD com et c'est tout une partie du commerce électronique qui s'effrondre.

Les noms de domaines de ce type sont répartis en plusieurs grandes catégories :

  • Un domaine spécial, arpa, gérée par l'IANA (qui gère les adresses IP), une branche de l'ICANN. Ces adresses permettent de localiser les serveurs servant à gérer la résolution des adresses IP en nom de domaine (l'inverse du DSN donc).
  • Des domaines géographiques (même si rien n'oblige un serveur en fr à travailler sur le marché Français).
    • France fr
    • Belgique be
    • Allemagne de
    • Italie it
    • Espagne es
    • Luxembourg lu
    • Suisse ch
    • Union Européenne ue
  • Des domaines génériques, qui donnent une indication de la nature du site (mais comme pour la géographie, ça reste indicatif) :
  • Exemples de domaines sans contrainte d'enregistrement (si ce n'est financier)

    • com pour le commerce
    • net pour les sites liés aux réseaux et/ou à la télécommunication
    • org pour les sites des organisations à but non lucratif
    • info pour les sites liés à un service d'information

    Exemples de domaines avec contrainte d'enregistrement

    • mil pour les sites militaires
    • edu pour les sites liés aux institutions éducatives reconnues
    • gov pour les sites gouvernementaux

Le site de l'IANA https://www.iana.org/domains/root/db répertorie les différents organismes qui gèrent les TLD sous délégation de l'IANA.

✎ 17° Faire une recherche sur le site précédent pour trouver les sociétés gérant les domaines fr et com. L'un des deux gère-t-il aussi des Roots ?

Comme vous le voyez, il y a un nombre très important de société participant à la gestion d'Internet et du Web.

Si on résume et complète :

  • Rappel : 12 structures gérent les serveurs DSN "Racine" qui contiennent les données pour contacter les serveurs DNS TLD (Top-Level-Domain).
  • Rappel : plusieurs sociétés gérent les serveurs DNS TLD qui permettent de contacter les serveurs DNS de deuxième niveau.
  • Nouveau : certaines sociétés nommées registraires de nom de domaine, registrars en anglais permettent de s'inscrire dans le registre des noms de domaines des serveurs DNS TLD. Ces sociétés permettent donc d'acheter un nom de domaine pour une pédiode donnée (souvent un an au moins). Certaines proposent d'utiliser leurs serveurs DNS (on parle alors d'hébergeurs de noms de domaine) pour stocker les informations sur vos noms de domaines. D'autres vous demandent de fournir l'adresse IP de votre propre serveur DNS de second niveau.
  • Nouveau : certaines sociétés nommées hébergeurs de sites Web vous proposent de louer de leur louer des machines-serveurs sur lequels vous pouver alors placer vos propres programmes-serveurs, notamment des serveurs HTTP pour créer un site Web.
  • Nouveau : certaines sociétés nommées FAI, fournisseurs d'accés à Internet, permettent elles de fournir un accès au réseau Internet en passant par leur réseau propre.
  • Nouveau : certaines sociétés nommées opérateurs réseaux travaillent elles à la réalisation et la maintenance d'un réseau physique de façon à y faire passer des commuications. Nous en reparlerons lors de la dernière activité.

A titre d'exemple, donnons quelques noms de sociétés françaises travaillant dans ces domaines.

  • OVH est une société faisant officer d'hébergeur Web, DNS et registrars. Vous pouvez donc acheter chez eux un pack : ils hébergent à la fois votre site Web et gèrent votre DNS. Elle gère également la téléphonie IP ou des solutions de type Cloud dont nous parlerons un peu dans la dernière activité.
  • Alwaysdata est une société de ce type également : Hébergeur Web, DNS et registrats. Infoforall.fr, le site Web et le nom de domaine sont ainsi gérée pour l'instant par cette société par exemple.
  • Orange ou Free sont des FAI. Elles travaillent également dans la téléphonie et les télécommunications en tant qu'opérateurs réseaux.
  • RIPE NCC est un RIR (Regional Internet Registry) : elle gère la distribution des adresses IP sur la zone Europe. Elle s'occupe également du serveur root K et du DNS. Or, RIPE NCC est en réalité une organisation de droit privée dont les membres sont ... les FAI et opérateurs réseaux de la zone Europe !

Comme vous pouvez le voir, c'est un peu fouilli dans la mesure où les sociétés ont souvent plus d'un rôle et ont de nombreuses interactions avec les autres.

La dernière activité parlera un peu plus justement du réseau en lui-même. Pour l'instant, nous avons vu qu'Internet est un ensemble de programmes plutôt indépendants du support sur lequel il tourne. IP, TCP et DSN ne sont en fin de compte que des programmes.

Mais bon, les paquets IP doivent bien passer à travers des machines. Il n'y a pas un fil unique entre le client et le serveur. Ce sera le thème de la dernière activité Internet. Nous verrons par où "passe" Internet...

7 - FAQ

Les adresses www.infoforall.fr et doc.infoforall.fr par exemple pointent-elles sur la même adresse ?

Les trois cas de figure possibles :

Deux réseaux différents : les deux serveurs HTTP sont situés sur des ordinateurs qui sont sur deux réseaux différents. Ils n'ont pas la même adresse.

Cas 1 : deux serveurs sur deux réseaux différents

Même réseau mais deux machines : les deux serveurs HTTP sont situés sur des ordinateurs différents mais du même réseau. Du point de vue de l'extérieur, ils ont ou pas la même adresse. C'est le propriétaire du réseau qui gère les choses comme il veut.

Cas 2 : deux serveurs sur un réseau

Même machine : les deux serveurs HTTP sont situés sur la même machine physique. Du point de vue de l'extérieur, ils ont surement la même adresse, mais ce n'est pas certain. C'est le propriétaire du réseau qui gère les choses comme il veut.

Cas 3 : deux serveurs sur une machine

Voilà donc pour les gros protocoles d'Internet.

TCP pour la fiabilité des communications.

IP pour le transport des paquets IP.

DNS pour l'utilisation de noms de domaine traduit en adresse IP.

La fois prochaine, une activité bien moins théorique mais une étude sur l'évolution du réseau et ses grandes structures (cables sous-marins, réseaux haut-débit) ...

Activité publiée le 03 05 2020
Dernière modification : 03 05 2020
Auteur : ows. h.