Développer un site web en PHP, montrant la fonctionnalité des DNS


Projet tutoré réalisé par : SIRIGU Benjamin, ayant pour professeur responsable : Mr VEDEL Franck.


Qu'est-ce qu'un DNS ?

Un dns est un serveur qui s'implémente au sein d'un réseau informatique, et qui permet d'associer le nom d'un équipement du réseau avec une adresse IP, au sein d'un domaine qu'il gère.
Par exemple, si on considère le DNS du domaine .fr, un ordinateur ou un sous domaine du domaine .fr peut-être : votre_ordinateur.fr

Attention : Les DNS peuvent avoir dans leur base de données des informations sur d'autres DNS(type NS), des serveurs de mail(type MX), obtenir un nom à partir d'une adresse IP(type PTR)..., par défaut ce sont des questions de type A (Nom -> adresse IP)

Un exemple dans un réseau local :



On suppose que les caches des 2 ordinateurs sont vides, l'ordinateur PC_A lance la commande : "ping PC_B" , voici ce qu'il se passe dans l'ordre :
1 - L'ordinateur PC_A demande à son DNS l'adresse IP de PC_B pour pouvoir le joindre avec son adresse IP.
2 - Le DNS lui répond : "L'adresse IP de PC_B est : 192.168.0.2"
3 - PC_A peut faire le ping sur PC_B.

Et maintenant, quelle est la relation entre les DNS et le web ?
Prenons un autre exemple, PC_A lance dans un navigateur web : http://free.fr, le schéma est le suivant



On suppose que le cache de PC_A et du DNS sont vides, comment le navigateur arrive t-il à accéder au serveur web de free.fr ?
Et bien ce sont les 8 étapes décrites sur le schéma qui permettent ceci, voici la description des étapes ci-dessous :
1 - PC_A demande à son DNS l'adresse IP de free.fr
2 - le DNS ne sait pas, et d'après sa configuration, il doit aller demander aux serveurs-ROOTS l'adresse IP de free.fr (il peut y avoir différentes configurations possible pour le DNS à cet endroit-là)
Petite parenthèse, qu'est-ce que le serveur-ROOT ? Et bien lorsque vous tapez dans votre navigateur http://free.fr, en réalité vous envoyez http://free.fr., ce dernier point est très important, car il s'agit du domaine racine, il gère les sous-domaines .fr, .com, .net ect ect ... Il éxiste actuellement 13 serveurs-ROOT.
A partir de maintenant, l'analyse de la requête s'effectuera à l'envers, en effet on va d'abord traiter dans notre exemple le domaine .fr , puis le domaine free.fr.
3 - A.ROOT-SERVERS.NET n'a pas dans sa base de données un association pour free.fr, MAIS il possède une association pour le domaine .fr ! Il renverra donc comme réponse le nom (et l'IP) du DNS du domaine .fr pour que l'emetteur de la requête intérroge ce DNS
4 - Notre DNS intérroge donc le DNS du domaine .fr, avec la même question : Quelle est l'adresse IP de free.fr ?
5 - Le DNS du domaine .fr n'a pas la réponse dans sa base de donnée, en revanche il connaît le DNS de free.fr, il renverra donc comme réponse le nom (et l'IP) du DNS qui gère free.fr 6 - Notre DNS intérroge donc le DNS du domaine free.fr, avec la même question : Quelle est l'adresse IP de free.fr ?
7 - Etant donné que l'on intérroge le DNS de free.fr, il a la réponse, et il l'envoi à notre DNS
8 - Notre DNS à eu sa réponse, il peut la transmettre à PC_A pour qu'il puisse se connecter à free.fr

Comme vous pouvez vous en doutez, tous ses échanges sont invisibles pour le client qui demande la page web, et c'est ce qui amène au travail que j'ai réalisé :
Développer un site web qui montrent ce phénomène d'échange d'information des DNS (sur le schéma de dessus, les échanges du numéro 2 à 7)

Travail réalisé

Voici comment ce compose le site web : Un formulaire pour formuler la reqûete et choisir le type de réponse que l'on souhaite avoir (A, NS, MX, PTR, CNAME), la réponse s'affiche en dessous du formulaire Voici maintenant quelques captures d'écran du site web que j'ai développé.

Ici : on reprend le même schéma que présenté plus haut pour les DNS sur Internet :


Un exemple pour une question de type MX (serveur de mail) :


Dernier exemple : Résolution inverse, Adresse IP -> Nom :


Le Code Source

Si vous souhaitez consulter le code source pour réaliser ce site web : Cliquez ici