Dans ce tutoriel, nous avons mis en place notre propre serveur DHCP sur Ubuntu. Le protocole DHCP (Dynamic Host Configuration Protocol) est un service réseau permettant d’attribuer automatiquement des adresses IP aux clients d’un réseau. Il suit une architecture serveur-client où le client demande à un serveur DHCP d’obtenir une adresse IP. La plupart des routeurs ont un serveur DHCP intégré, mais nous pouvons également utiliser notre propre serveur DHCP.
Table des Matières
- Comment fonctionne DHCP ?
- Méthodes d’allocation pour DHCP
- Étapes pour configurer le serveur DHCP sur Ubuntu
- 1. Installer le serveur DHCP
- 2. Configurez le serveur DHPC
- Sauvegarde du fichier de configuration d’origine
- Créer et éditer le nouveau fichier de configuration
- Attribution d’adresses IP aléatoires à partir d’un pool
- Attribution d’une adresse IP statique à un client
- 3. Lier le serveur DHCP à une interface
- 4. Redémarrez le serveur DHCP
- 5. Vérifiez l’état du serveur DHCP
- Dépannage
- Conclusion
Comment fonctionne DHCP ?
Lorsque l’ordinateur démarre, il n’a pas d’adresse IP (en supposant qu’il n’a pas d’adressage IP statique configuré, ce que la plupart des machines n’ont pas). Il envoie une diffusion (sur l’adresse MAC avec tous les F) appelée Découverte DHCP. Les serveurs DHCP sont conçus pour répondre à de telles émissions.
Ils envoient ensuite le trafic unicast connu sous le nom d’offre DHCP au client demandeur. Cette Offre DHCP contient généralement l’adresse IP attribuée, l’adresse IP de la Passerelle par défaut et l’adresse IP du serveur DNS.
Le client à la réception de l’Offre envoie une Requête DHCP au Serveur DHCP en reconnaissant qu’il a accepté les informations qui lui sont données par le serveur.
Les serveurs DHCP conservent un enregistrement des adresses IP attribuées pour éviter une double attribution ou des collisions d’adresses IP.
Étant donné que les serveurs DHCP répondent à la diffusion, ils doivent être présents sur le réseau local et il ne doit pas y avoir plus d’un serveur DHCP sur un réseau local.
Méthodes d’allocation pour DHCP
Voici les deux méthodes d’allocation pour un serveur DHCP:
- Manuel: Dans cette méthode, l’adresse IP est donnée sur la base de l’adresse MAC. Cela garantit qu’une machine particulière obtient une adresse IP fixe car son adresse IP est ensuite liée à son adresse MAC. Le serveur DHCP envoie une configuration constante au client en fonction de son adresse MAC dans ce type d’allocation.
- Automatique : Dans cette méthode, les adresses IP sont attribuées automatiquement par le serveur DHCP selon le principe du premier arrivé, premier servi à partir d’un pool d’adresses. Il peut être divisé en deux catégories en fonction du temps de location – Le temps pendant lequel une adresse IP est attribuée à un client.
- Temps de location fixe : Lorsqu’un client DHCP n’est plus sur le réseau pendant une période spécifiée, la configuration est expirée et renvoyée au pool d’adresses pour une utilisation par d’autres clients DHCP. Le client doit renégocier pour conserver l’adresse IP précédente.
- Temps de location infini : Cela a pour effet d’attribuer en permanence une adresse IP à un client.
Étapes pour configurer le serveur DHCP sur Ubuntu
Maintenant, nous allons voir comment configurer un serveur DHCP sur Ubuntu.
1. Installer le serveur DHCP
Vous pouvez installer le serveur DHCP à l’aide de la commande apt comme suit:
sudo apt install isc-dhcp-server
Remarque : Vous pouvez installer un serveur DHCP même sur une édition de bureau plutôt que sur l’édition serveur d’Ubuntu. Voir cette réponse StackOverflow pour savoir comment les éditions de bureau et de serveur sont différentes / similaires.
2. Configurez le serveur DHPC
Le fichier de configuration principal du serveur DHCP ISC est /etc/dhcp/dhcpd.conf
.
Sauvegarde du fichier de configuration d’origine
C’est toujours une bonne idée de sauvegarder les fichiers de configuration d’origine. En cas de problème, la configuration d’origine peut facilement être restaurée. Vous pouvez utiliser la commande cp ou la commande mv pour créer une sauvegarde.
sudo mv /etc/dhcp/dhcpd.conf{,.backup}#Expands to sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
La commande ci-dessus crée un fichier dhcpd.conf.backup
à l’aide de la fonction d’extension {}
de bash.
Créer et éditer le nouveau fichier de configuration
Vous pouvez utiliser l’éditeur de votre choix. Je vais utiliser l’éditeur nano:
sudo nano /etc/dhcp/dhcpd.conf
Les options du fichier de configuration dépendent de la complexité du réseau.
Attribution d’adresses IP aléatoires à partir d’un pool
La chose la plus courante faite par un serveur DHCP est d’attribuer des adresses de manière aléatoire. Les paramètres pour la même chose seraient les suivants:
# a simple /etc/dhcp/dhcpd.confdefault-lease-time 600;max-lease-time 7200;authoritative;subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2;#option domain-name "mydomain.example";}
Selon cette configuration:
- La durée de location par défaut pour un client est de 10 minutes (600 secondes) et la durée de location maximale est de 2 heures (7200 secondes).
- Ce serveur DHCP est le serveur officiel du réseau local. (indiqué par
authoritative
). - Le serveur transmettra l’adresse IP de la plage 192.168.1.100 à 192.168.1.200.
- Le serveur » conseillera » également au client d’utiliser 192.168.1.254 comme passerelle par défaut et 192.168.1.1 et 192.168.1.2 comme serveurs DNS.
Vous pouvez également inclure un nom de domaine.
Attribution d’une adresse IP statique à un client
Pour garantir qu’un client particulier obtiendra toujours la même adresse IP, le serveur DHCP aura besoin de l’adresse MAC de ce client. Ce serait le mode d’allocation manuelle dont il a été question plus tôt dans cet article.
Pour obtenir l’adresse MAC d’un client, nous pouvons utiliser la commande ip sur la machine cliente:
ip a
( Vous devrez sélectionner l’adresse MAC de l’interface à partir de laquelle vous prévoyez de vous connecter au réseau. J’ai choisi le Sans fil.)
Maintenant que nous avons l’adresse MAC, nous pouvons la mettre dans le fichier de configuration:
host archmachine {hardware ethernet e0:91:53:31:af:ab;fixed-address 192.168.1.20;}
Cela réservera l’adresse IP 192.168.1.20 au client avec l’adresse MAC e0:91:53:31:af:ab
.
Enfin, le fichier de configuration ressemble à ceci:
Vous pouvez omettre la partie Configuration IP statique si vous souhaitez attribuer automatiquement des adresses.
3. Lier le serveur DHCP à une interface
Le serveur DHCP peut avoir de nombreuses interfaces. Vous devez définir l’interface qu’il doit écouter. Vous pouvez afficher les interfaces sur le serveur en utilisant ip a
tout comme le client.
L’interface avec laquelle se lier est définie dans le fichier /etc/default/isc-dhcp-server
. Ouvrez-le en utilisant l’éditeur de votre choix. L’interface pour mon serveur est eth0
. Cela peut être différent pour votre serveur. Modifier le fichier en tant que:
INTERFACESv4="eth0"
4. Redémarrez le serveur DHCP
Maintenant que des modifications sont apportées à la configuration, nous devons redémarrer le service pour activer ces modifications. Pour ce faire, nous utiliserons la commande systemctl
:
sudo systemctl restart isc-dhcp-server.service
5. Vérifiez l’état du serveur DHCP
Cela peut à nouveau être fait à l’aide de la commande systemctl
:
sudo systemctl status isc-dhcp-server.service
Un état actif indique que le serveur DHCP a correctement capté la configuration et est prêt à distribuer des adresses IP.
Dépannage
Le serveur DHCP écrit ses journaux dans le Syslog. Si vous constatez que l’état du service est inactif, vous devez consulter le fichier /var/log/syslog
. À partir de là, vous pouvez rechercher le problème spécifique mentionné dans le Syslog sur Internet.
Conclusion
Dans cet article, nous avons appris le DHCP et comment installer un serveur DHCP sur une machine Ubuntu. Avoir un serveur DHCP automatise l’attribution des adresses IP, ce qui est bien mieux que la configuration manuelle de chaque client.