Etude de cas: DHCP

Etude de cas: DHCP


Source: Jim Kurose, Keith Ross: Computer networking: A Top-Down Approach

Dans ce TP, nous allons jeter un coup d’œil rapide au protocole DHCP. Rappelons que le DHCP est largement utilisé dans les réseaux locaux câblés et sans fil des entreprises, des universités et des particuliers pour attribuer dynamiquement des adresses IP aux hôtes, ainsi que pour configurer d’autres informations relatives au réseau.

1 Utilisation de DHCP pour configurer une interface réseau

Dans cette section, nous forçons notre ordinateur à reconfigurer l’une de ses interfaces réseau à l’aide de DHCP. La manière pour ce faire dépend du système d’exploitation utilisé.

Si vous travaillez sous Windows

  1. Ouvrez une fenêtre de PowerShell et entrez la commande suivante :
ipconfig /release

Cette commande permet à votre PC d’abandonner son adresse IP.

  1. Démarrez la capture Wireshark.

  2. Dans PowerShell, entrez la commande suivante :

ipconfig /renew

Le protocole DHCP demandera et recevra alors une adresse IP et d’autres informations d’un serveur DHCP.

  1. Après avoir attendu quelques secondes, arrêtez la capture Wireshark.

Si vous travaillez sous macOS

  1. Démarrez la capture Wireshark.

  2. Dans les paramètres réseau sélectionnez “Avancé” puis “Renouveler le bail dhcp”. Le protocole DHCP demandera et recevra une adresse IP et d’autres informations du serveur DHCP.

  3. Après avoir attendu quelques secondes, arrêtez la capture Wireshark.

Si vous travaillez sous Linux

  1. Dans une fenêtre de terminal, entrez les commandes suivantes :
sudo ip addr flush en0 
sudo dhclient -r 

Cette commande supprimera l’adresse IP existante de l’interface et libérera tous les baux d’adresses DHCP existants. en0 (dans cet exemple) est l’interface sur laquelle vous souhaitez capturer des paquets à l’aide de Wireshark. Vous pouvez facilement trouver la liste des noms d’interface dans Wireshark en choisissant Capture -> Options.

  1. Démarrez Wireshark, en capturant des paquets dans l’interface que vous avez déconfigurée à l’étape 1.

  2. Dans la fenêtre de terminal, entrez la commande suivante :

sudo dhclient en0

où, comme ci-dessus, en0 est l’interface sur laquelle vous capturez actuellement des paquets. Le protocole DHCP demandera et recevra alors une adresse IP et d’autres informations du serveur DHCP.

  1. Après avoir attendu quelques secondes, arrêtez la capture Wireshark.

Après avoir arrêté la capture Wireshark à l’étape 4, vous devriez jeter un coup d’œil dans votre fenêtre Wireshark pour vous assurer que vous avez bien capturé les paquets que nous recherchons.
Entrez dhcp dans le champ du filtre d’affichage pour n’afficher que les paquets DHCP.

2 Questions sur DHCP

Commençons par examiner le message DHCP Discover.
Localisez le datagramme IP contenant le premier message Discover dans votre trace.

Exercise

Exercise 2.1 Ce message DHCP Discover est-il envoyé en utilisant UDP ou TCP comme protocole de transport sous-jacent ?

Exercise

Exercise 2.2 Quelle est l’adresse IP source utilisée dans le datagramme IP contenant le message Discover ? Cette adresse a-t-elle quelque chose de particulier ? Expliquez pourquoi.

Exercise

Exercise 2.3 Quelle est l’adresse IP de destination utilisée dans le datagramme contenant le message Discover ? Cette adresse a-t-elle quelque chose de particulier ? Expliquez.

Exercise

Exercise 2.4 Quelle est la valeur du champ ID de transaction de ce message DHCP Discover ?

Exercise

Exercise 2.5 Examinez maintenant le champ des options du message DHCP Discover. Quelles sont les informations (en plus d’une adresse IP) que le client suggère ou demande de recevoir du serveur DHCP dans le cadre de cette transaction DHCP ?

Pour connaître la signification des options, vous pouvez consulter cette page.

Examinons maintenant le message DHCP Offer.
Localisez dans votre trace le datagramme IP contenant le message DHCP Offer qui a été envoyé par un serveur DHCP en réponse au message DHCP Discover que vous avez étudié dans les questions précédentes.

Exercise

Exercise 2.6 Comment savez-vous que ce message Offer est envoyé en réponse au message DHCP Discover que vous avez étudié dans les questions précédentes ?

Exercise

Exercise 2.7 Quelle est l’adresse IP source utilisée dans le datagramme IP contenant le message Offer ? Cette adresse a-t-elle quelque chose de particulier ? Expliquez.

Exercise

Exercise 2.8 Quelle est l’adresse IP de destination utilisée dans le datagramme contenant le message d’offre ? Cette adresse présente-t-elle des particularités ? Expliquez.

Regardez attentivement votre trace. La réponse à cette question peut différer de ce que vous avez vu en cours.
Si vous voulez vraiment approfondir cette question, consultez la RFC 2131, page 24.

Exercise

Exercise 2.9 Examinez maintenant le champ des options dans le message d’offre DHCP. Quelles sont les informations que le serveur DHCP fournit au client DHCP dans le message d’offre DHCP ?

Il semblerait qu’une fois le message d’offre DHCP reçu, le client dispose de toutes les informations dont il a besoin pour continuer.
Cependant, le client peut avoir reçu des offres de plusieurs serveurs DHCP et une deuxième phase est donc nécessaire, avec deux autres messages obligatoires - le message DHCP Request du client au serveur et le message DHCP ACK du serveur au client. Mais au moins, le client sait qu’il existe au moins un serveur DHCP !

Examinons le message DHCP Request, en nous rappelant que, bien que nous ayons déjà vu un message Discover dans notre trace, ce n’est pas toujours le cas lorsqu’un message DHCP Request est envoyé.

Localisez le datagramme IP contenant le premier message DHCP Request dans votre trace, et répondez aux questions suivantes.

Exercise

Exercise 2.10 Quel est le numéro de port source UDP dans le datagramme IP contenant le premier message DHCP Request de votre trace ?
Quel est le numéro de port de destination UDP utilisé ?

Exercise

Exercise 2.11 Quelle est l’adresse IP source dans le datagramme IP contenant ce message de requête ? Cette adresse a-t-elle quelque chose de particulier ? Expliquez.

Exercise

Exercise 2.12 Quelle est l’adresse IP de destination utilisée dans le datagramme contenant ce message ? Cette adresse présente-t-elle des particularités ? Expliquez.

Exercise

Exercise 2.13 Quelle est la valeur du champ ID de transaction de ce message DHCP Request ? Correspond-elle aux ID de transaction des messages Discover et Offer précédents ?

Exercise

Exercise 2.14 Examinez maintenant le champ des options dans le message DHCP Discover et regardez attentivement la “Parameter Request List”. La RFC 2131, page 24 indique que le client peut informer le serveur des paramètres de configuration qui l’intéressent en incluant l’option “parameter request list”. La partie données de cette option énumère explicitement les options demandées. Quelles différences voyez-vous entre les entrées de l’option “parameter request list” dans ce message Request et la même option de liste dans le message Discover précédent ?

Identifiez le datagramme IP contenant le premier message DHCP ACK et répondez aux questions suivantes.

Exercise

Exercise 2.15 Quelle est l’adresse IP source du datagramme IP contenant ce message ACK ? Cette adresse a-t-elle quelque chose de particulier ? Expliquez.

Exercise

Exercise 2.16 Quelle est l’adresse IP de destination utilisée dans le datagramme contenant ce message ACK. Cette adresse a-t-elle quelque chose de particulier ? Expliquez.

Exercise

Exercise 2.17 Quel est le nom de la proprieté du message DHCP ACK qui contient l’adresse IP assignée au client ?

Exercise

Exercise 2.18 Pour combien de temps (le “bail”) le serveur DHPC a-t-il attribué cette adresse IP au client ?

Exercise

Exercise 2.19 Quelle est l’adresse IP (renvoyée par le serveur DHCP au client DHCP dans ce message DHCP ACK) de la passerelle par défaut ?