Skip to content

Part 3 : DHCP is a nice guy

1. Intro

Topologie n°3

Warning

Pour les clients, toujours libres d'utiliser VPCS ou VMs.
En revanche pour le serveur DHCP (machine dhcp.tp1.efrei) il faut une machine Rocky Linux.
N'utilisez pas directement votre VM : clonez-la, et uilisez le clone (comme ça on garde une machine clean prête à cloner pour tous les TPs).

Pour finir ce premier TP, on va mettre en place une 4ème machine : un serveur DHCP.

Note

Pour les autres, les clients, vous pouvez réutiliser des VPCS, ou des VMs, à votre guise.

Le serveur DHCP est chargé d'attribuer des IPs à des clients qui le demandent.

Ca évite, notamment, la tâche fastidieuse de saisir une IP manuellement.

Question

📒 Si besoin, pour plus de détails sur le fonctionnement de DHCP, allez lire tranquillement et posément le cours dédié.


2. Tableau d'adressage

Machine Adresse IP
node1.tp1.efrei N/A
node2.tp1.efrei N/A
node3.tp1.efrei N/A
dhcp.tp1.efrei 10.1.1.253/24
Info

Les adresses IP des trois nodes ne sont plus renseignées car le but de cette partie va être de faire en sorte qu'il puisse obtenir dynamiquement une IP disponible, qui n'est pas déjà utilisée au sein du réseau par quelqu'un d'autre, grâce au serveur DHCP.


3. Setuuuup

Donner un accès Internet à la machine dhcp.tp1.efrei

  • pour ce faire, ajoutez une carte réseau NAT à la machine dans VirtualBox, à la main
  • une fois la machine démarrée, prouvez en une commande que vous avez un accès internet
Warning

Cet ajout de carte NAT est temporaire : c'est juste pour installer le paquet nécessaire pour le serveur DHCP.
Dès que vous avez passé votre commande dnf install, IL FAUDRA enlever la carte NAT et retourner dans le setup normal.
Très vite dans les TPs, on mettra un accès internet direct à l'aide de notre topologie, en incluant des routeurs.
On cheat pour ce TP1 en passant par une carte NAT vu qu'on a pas de routeur :)

🌞 Installer un serveur DHCP

  • à réaliser sur dhcp.tp1.efrei

    • je n'aime pas ré-écrire la roue, et préfère pour vous renvoyer vers des ressources dispos en ligne quand elles sont suffisantes
    • installez un serveur DHCP dnsmasq ou kea
    • pour des setups simplistes, les tutos/articles de server-world.info sont souvent straightforward
  • le serveur DHCP doit démarrer automatiquement quand la machine s'allume

  • votre serveur DHCP doit attribuer des IP entre 10.1.1.10 et 10.1.1.50
  • toutes les commandes nécessaires dans le compte-rendu please
Info

Ne tapez les commandes que si vous comprenez à quoi elles servent. Sinon t'es juste un robot stupide.
Chaque ligne ajoutée ou modifiée dans un fichier de conf doit être comprise. Sinon t'es juste un robot stupide.

N'oubliez pas d'enlever la carte NAT et remettre dans le setup initial une fois que vous avez passé votre commande dnf install.


4. Proof or you're lying

🌞 Récupérer une IP automatiquement depuis les 3 nodes

  • là encore, montrez toutes les commandes réalisées
  • et le contenu des fichiers que vous éditez, si vous en éditez
  • prouver que votre changement d'IP est effectif, en une commande
Note

Vous devriez récupérer une adresse IP dans la plage configurée : entre 10.1.1.10 et 10.1.1.50.

Wireshark !

  • capture d'un échange DHCP
  • l'échange est constitué de 4 messages, échangés entre le client et le serveur DHCP (DORA)

📁 p3_dhcp.pcap

  • contient l'échange DORA entre un client et votre serveur DHCP
  • ne contient que 4 trames donc

DORA

5. DHCP lease

Un bail DHCP ou "DHCP lease" en anglais.

➜ Quand un serveur DHCP termine un échange DORA avec un client, il enregistre les infos au sujet de ce client dans un fichier.

On appelle ces infos un "bail DHCP".

Par exemple il contient l'adresse MAC du client qui a demandé une adresse IP, à quelle heure, une période de validité, ou encore l'adresse IP qui a été proposée à ce client.

🌞 Bail DHCP

  • le serveur DHCP a créé un bail DHCP quand il a proposé une adresse au client
  • genre il a enregistré dans un fichier toutes les infos concernant ce client
  • bah trouvez et montrez moi ce fichier !

🌞 Use grep

  • avec un ptit | grep bien placé, mettez en évidence les infos concernant spécifiquement notre client
Example

Ici, je vous conseille un grep de la première ligne qui concerne le client, et utiliser l'option -A de grep.
-A comme After permet d'indiquer qu'on souhaite aussi récupérer N lignes après les lignes que grep a repéré.
Un example nul, mais simple et parlant :

# Un grep simple
 cat /etc/passwd | grep root
root:x:0:0::/root:/usr/bin/bash

# Et si on veut aussi récupérer les 3 lignes qui suivent, on ajoute -A 3
 cat /etc/passwd | grep root -A 3
root:x:0:0::/root:/usr/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin
mail:x:8:12::/var/spool/mail:/usr/bin/nologin


Toujours en vie ? Go sur la dernière partie alors : real haxor