Chapitre 8 : Les protocoles liés à l'IP
Le protocole ICMP
Le protocole ICMP (Internet Control Message Protocol) permet de véhiculer des messages de contrôle du réseau et d’erreur, il est aussi utilisé par l’administrateur pour tester le bon fonctionnement du réseau. Différents types de messages sont disponibles grâce à l’ICMP gérer principalement par deux champs, le champ type et le champ code. Le ping est l’un d’entre eux, utilisant le type 8 dans l’en-tête ICMP.
La commande ping
La commande la plus utilisée par les administrateurs réseaux est la commande ping
. Cette commande est utilisable sur différents systèmes d’exploitation et permet de tester si un hôte est accessible par l’émetteur et si la machine est capable de répondre. Cette commande permet de débugger et de détecter des problèmes de routage et/ou de configuration. La commande ping
envoie un message ICMP de type 8 code 0, le destinataire renvoie un message ICMP de type 0 code 0.
Cette commande peut retourner des messages d’erreurs, en voici quelques uns :
- Network Unreachable (ou “Impossible de joindre l’hôte de destination”) : la requête n’est pas envoyée, ce message désigne une erreur pour envoyer la requête. Par exemple, quand le réseau n’est pas accessible grâce à la table de routage ou quand la résolution de l’adresse MAC a échoué (voir le protocole ARP) ;
- Destination Host Unreachable (ou “Délai d’attente de la demande dépassé”) : la requête a été envoyé mais l’hôte ne la reçoit pas ou n’est pas en mesure de répondre. Ce message est renvoyé lorsqu’il y a une erreur de routage.
Une autre commande utilisée dans les réseaux est traceroute
qui permet de lister les routeurs traversés pour joindre un hôte.
Le protocole ARP
ARP (Address Resolution Protocol) est un protocole de niveau 3, qui permet à une machine de retrouver l’adresse physique du destinataire grâce à son IP. Dans l’Ethernet, l’adresse physique est en fait l’adresse MAC.
Avec l’Ethernet, le protocole ARP enverra une requête en broadcast, c’est-à-dire que toutes les machines du même réseau recevront la demande. Si l’adresse IP demandée dans la requête correspond à l’IP de la machine alors la machine reverra un message contenant son adresse MAC. Le défaut de cette technique est la performance du processus, pour éviter de redemander la même adresse MAC plusieurs fois, on a intégré au processus un cache. Un cache permet de stocker des informations en vu d’y accéder plus rapidement, on utilisera la RAM ou sur le disque dur à cet effet.
Enfin, il est possible de mener des attaques à l’aide de l’ARP, appelées ARP spoofing qui permet à l’attaquant d’associer une mauvaise adresse MAC à une adresse IP dans le cache ARP. Le pirate pourra, par exemple, répondre plus vite à la requête que la véritable machine.
Le DHCP
Le Dynamic Host Configuration Protocol est un protocole de niveau 3 permettant d’envoyer des informations de configuration automatiquement aux machines dans un réseau. En effet, le DHCP est capable d’envoyer :
- l’adresse IP d’une machine : celle-ci peut-être choisie aléatoirement par le serveur DHCP ou fixée par l’administrateur réseau ;
- la passerelle par défaut ;
- les serveurs DNS.
Les DNS
Fonctionnement
Les serveurs DNS permettent de traduire un nom textuel, appelé nom de domaine, comme example.fr
en une adresse IPv4 ou IPv6.
Ces noms fonctionnent de manière hiérarchique, ainsi le nom test.example.fr
se décompose en trois parties suivant les points : fr
puis example
et test
. Le TLD (Top Level Domain) est le premier nom fr
qui est géré par les serveurs de l’AFNIC. Chaque partie du nom de domaine est géré par un serveur DNS particulier. Les premiers serveurs DNS, appelés serveurs racines qui contiennent l’adresse de chaque serveur de TLD. Ensuite, chaque domaine de second niveau (example
) sont enregistrés sur les serveurs de TLD. Ensuite, le serveur DNS gérant le domaine de second niveau pourra contenir des champs comme test
.
Note : il est possible d’ajouter un serveur DNS pouvant gérer users.example.fr
, le principe est toujours le même.
Pour déterminer une l’IP correspondant à un nom de domaine, on utilisera un serveur DNS récursif. Le serveur DNS récursif fera donc les demandes dans l’ordre :
- Il demandera au serveur racine l’adresse IP du serveur DNS gérant le
.fr
; - Il demandera au serveur DNS gérant le
.fr
quel est le serveur DNS gérantlightcode.fr
; - Il demandera l’adresse IP de
lightcode.fr
ou d’une autre adresse tel queftp.lightcode.fr
par exemple.
Les types d’entrées
Une configuration d’un domaine s’appelle une zone. Dans cette zone, il est possible de mettre plusieurs champs, voici un exemple :
Nom | Type | Valeur |
---|---|---|
@ |
A | 192.168.1.56 |
test |
CNAME | lightcode.fr |
ftp |
A | 192.168.1.54 |
@ |
MX | 192.168.1.55 |
ipv6 |
AAAA | 2001:db8::25 |
newzone |
NS | 192.168.1.59 |
Vous pouvez voir sur l’exemple qu’il existe plusieurs types, en voici quelques uns des plus utilisés :
- A : champs correspondant à une IPv4 ;
- CNAME : alias, permet d’associer un nom à un autre nom ;
- MX : utilisé pour les mails ;
- AAAA : champs correspondant à une IPv6 ;
- NS : c’est le type qui permet de gérer une autre sous-zone. Dans les serveurs racines, il y a une entrée NS pour le
fr
pointant vers l’adresse IP du serveur DNS gérant tous les.fr
et ainsi de suite jusqu’à la destination finale.
Le @
désigne tous le domaine, pour cet exemple, il désigne example.fr
.
Un relais DNS est une machine permettant de transmettre les requêtes DNS à un serveur DNS récursif.
Redondance
Il est possible de redonder une zone DNS en la répliquant sur plusieurs serveurs. Comme cela, en cas de panne, un autre serveur pourra gérer la zone. La synchronisation des deux serveurs DNS peut se faire suivant un rapport maître/esclave. En effet, un serveur dit “esclave” se synchronisera avec le serveur “maître”. La synchronisation en se fait que dans un seul sens.
Protocoles de niveau application
D’autres protocoles développés avec Internet : HTTP, FTP, SMTP, POP, IMAP. Ces protocoles sont utilisés par les utilisateurs finaux.
Le Web avec le HTTP
Le protocole HTTP (HyperText Transfert Protocol) permet de demander une page Web à un serveur et permet au serveur d’envoyer la page au client. Les pages Web sont quant à elles écrites en HTML (ou xHTML). Le protocole HTTP est d’abord constitué d’un en-tête, contenant diverses informations sur la page et ensuite de données comme la page Web en question. Le port couramment utilisé est le port 80 avec le protocole de transport TCP.
Il existe aussi la variante HTTPS (HyperText Transfert Protocol Secure socket) qui permet un transport des pages sécurisées à l’aide du protocole SSL. Le port utilisé est alors 443.
Les mails avec SMTP, POP et l’IMAP
Le protocole SMTP est un protocole utilisant le port TCP 25 permettant aux serveurs de s’échanger les mails. Il est souvent soumis à des règles de filtrage de la part des FAI car une machine infectée d’un virus pourra générer du spam. De même, si le serveur est loué par le spammeur directement. Pour contourner cette limitation, il faut relayer les mails vers un serveur SMTP fournit par son FAI ou tout autre serveur SMTP non-soumis à ces règles. Sur beaucoup de serveur SMTP il faut s’authentifier pour envoyer des mails, de même pour en recevoir.
Les protocoles pour lire les mails sont l’IMAP (en version 4 actuellement) et le POP (en version 3 actuellement). Ces protocoles permettent de connecter les utilisateurs pour lire leurs mails.
Le transfert de fichier avec FTP
Le protocole FTP permet de transférer des fichiers entre un client et un serveur de façon sécurisé, grâce au protocole TCP. Pour se connecter au serveur, on utilisera le port 21, pour que le serveur envoie les données, une plage de port a été définit, même s’il est possible de la changer. FTPS est la version sécurisée du protocole FTP, il utilise pour cela le protocole SSL.