Le DHCP sous LiNuX

Voici comment monter un petit serveur DHCP sous Linux.

Alors attention !! petit mais fiable !! ;)

1 – Le principe du DHCP

 

Au démarrage la station envoie un message de diffusion : dhcp discover.
La totalité des serveur dhcp reçoive cette demande et offre une configuration : dhcp offer

La station choisit le 1er qui a répondu et toujours par un message de diffusion :  pour que les autres serveurs sachent qu’ils n’ont pas été retenu : dhcp request

Le serveur qui a été choisi répond par un message de diffusion, la station n’ayant pas encore d’adresse : dhcp ack

dialogue dhcp

 

Voici les différents type de paquet DHCP existant :

  • DHCPDISCOVER => pour localiser les serveurs DHCP disponibles
  • DHCPOFFER => réponse du serveur à un paquet DHCPDISCOVER, qui contient les premiers paramètres
  • DHCPREQUEST => requête diverse du client pour par exemple prolonger son bail
  • DHCPACK => réponse du serveur qui contient des paramètres et l’adresse IP du client
  • DHCPNAK => réponse du serveur pour signaler au le client que son bail est échu ou si le client annonce une mauvaise configuration réseau
  • DHCPDECLINE => le client annonce au serveur que l’adresse est déjà utilisée
  • DHCPRELEASE => le client libère son adresse IP
  • DHCPINFORM => le client demande des paramètres locaux, il a déjà son adresse IP

Un serveur à 3 manières d’allouer une adresse :

  • manuel : l’admin associe donc une IP avec une adresse mac
  • automatique : le serveur fournit une adresse a partir d’un ensemble d’adresse réservé à cette effet (manuel)
  • dynamique : contrairement à automatique le serveur fournit l’adresse à partir d’un ensemble réservé mais la possession de l’adresse est limité dans le temps.

Le DHCP permet d’obtenir l’adresse IP, le masque de sous réseau, la passerelle, la configuration DNS, l’adresse du serveur WINS, etc…

2 – Installation d’un server DHCP

 

Le paquet a installer s’appel dhcp3-server et le démon se nomme DHCPD.

Il est exécuté au démarrage du serveur linux (en tant que service) et permet de fournir la configuration réseau à un hôte.

a° – Pour debian via apt-get power inside ;)

 

srvdeb:# apt-get install dhcp3-server
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
dhcp3-client dhcp3-common
Paquets suggérés :
resolvconf avahi-autoipd
Les NOUVEAUX paquets suivants seront installés :
dhcp3-server
Les paquets suivants seront mis à jour :
dhcp3-client dhcp3-common
2 mis à jour, 1 nouvellement installés, 0 à enlever et 61 non mis à jour.
Il est nécessaire de prendre 307ko/792ko dans les archives.
Après dépaquetage, 750ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? o
Réception de : 1 http://ftp2.de.debian.org lenny/main dhcp3-server 3.0.6-1 [307kB]
307ko réceptionnés en 0s (384ko/s)
Lecture des fichiers de modifications (« changelog »)... Terminé

Préconfiguration des paquets...
(Lecture de la base de données... 138995 fichiers et répertoires déjà installés.)
Préparation du remplacement de dhcp3-client 3.0.5-3 (en utilisant .../dhcp3-client_3.0.6-1_i386.deb) ...
Dépaquetage de la mise à jour de dhcp3-client ...
Préparation du remplacement de dhcp3-common 3.0.5-3 (en utilisant .../dhcp3-common_3.0.6-1_i386.deb) ...
Dépaquetage de la mise à jour de dhcp3-common ...
Sélection du paquet dhcp3-server précédemment désélectionné.
Dépaquetage de dhcp3-server (à partir de .../dhcp3-server_3.0.6-1_i386.deb) ...
Paramétrage de dhcp3-common (3.0.6-1) ...
Paramétrage de dhcp3-client (3.0.6-1) ...

Paramétrage de dhcp3-server (3.0.6-1) ...
Generating /etc/default/dhcp3-server...
Starting DHCP server: dhcpd3 failed to start - check syslog for diagnostics.
invoke-rc.d: initscript dhcp3-server, action "start" failed.

 

Le fichier de configuration se trouvera à ce moment là dans /etc/dhcp3/dhcpd.conf et le demon pourra être lancé via le script d’init :

/etc/init.d/dhcpd start

b° – Par les sources

 

Assurer vous d’avoir gcc, g++, etc pour pouvoir compiler !

Normalement tout doit être déjà installé ou pas…sait-on jamais

Donc on se place dans le répertoire /usr/local/src puis on récupère l’archive, on la décompresse et on l’installe :

srvdeb:~# cd /usr/local/src
srvdeb:~# wget ftp://ftp.isc.org/isc/dhcp/dhcp-3.0.2.tar.gz
srvdeb:~# cd dhcp-3.0.2
srvdeb:~# ./configure && make && make install

Si tout c’est bien passé, sans aucune erreur à la compilation, le paquet doit être installé.

Il suffit ensuite de copier le fichier dhcpd.conf dans /etc :

cp server/dhcpd.conf /etc

 

Puis de passer à ça configuration… :)

3 – Configuration d’un server DHCP

 

Le demon dhcpd gère plusieurs fichiers de configuration.

Le fichier de configuration principale est /etc/dhcp3/dhcpd.conf

Pour chaque sous-réseaux, il précise les adresse disponibles, la durée du bail et les options DHCP, etc

a ° – Principe

Nous avons ici un réseau sur la plage 192.168.1.0/24.
C’est à dire que les adresses IP vont de 192.168.1.1 à 192.168.1.254.

  • L’ip 192.168.1.0 est appelé adresse de réseau
  • L’ip 192.168.1.255 est appelé adresse de broadcast
  • La passerelle par defaut ici sera la 192.168.1.254
  • Le serveur DNS sera le 192.168.1.253 et 81.200.33.199

Nous avons également une petite DMZ située dans le réseau 192.168.0.0/24 mais qui ne sera pas géré par notre serveur DHCP.

Il faudra toute fois le déclarer afin que le serveur DHCP est une idée de la topologie du réseau.

b° – Les fichiers de configuration

 

Voici donc un exemple de fichier de configuration basique que je vais détailler ici avec des commentaires :

#-----------------------------------------------------------
# Debut conf
#-----------------------------------------------------------

#---------------
# Conf globale
#---------------

# Notre serveur DHCP fait autorité
authoritative;
# Afin d'avoir un niveau de log détaillé
log-facility local7;

# Conf MAJ Dynamique
# Cette option sert pour mettre à jour automatiquement le serveur DNS.
# Pour une configuration basique, nous ne nous en servirons pas.
# Les options possibles sont :
# none : désactivé
# interim : acitve la mise à jour dynamique du DNS
ddns-update-style none;

# Déclaration des sous-reseaux.
# Tout les sous-réseaux doivent être déclaré
# même s'il n'utilise pas le DHCP
# ca aide le serveur DHCP a s'y retrouver topologiquement

subnet 192.168.0.0 netmask 255.255.255.0 {
}

#--------------------------------------
# Conf du dhcp pour le réseau concerné
#--------------------------------------

# Puis on déclare le réseaux qui se verra attribuer les adresses IP
subnet 192.168.1.0 netmask 255.255.255.0 {
# La plage d'adresse IP pouvant être attribué par le serveur
range 192.168.1.100 192.168.1.199 ;
# La passerelle par defaut
option routers 192.168.1.254;
# L'adresse de broadcast
option broadcast-address 192.168.0.255;
# L'adresse des serveur de nom de domaine
option domain-name-servers 192.168.0.253,81.200.33.199;
# Le domaine du réseau (équivalent du Workgroup)
option domain-name "freenux.fr";
# La durée du bail par defaut pour l'adresse IP assigné (en seconde)
default-lease-time 86400;
# La durée du bail maximum
max-lease-time 604800;
# adresse du serveur de nom NETBIOS
option netbios-name-servers 192.168.0.250;
}

#-----------------------------------------------------------
# Fin de conf
#-----------------------------------------------------------
-------------------------------------------------------------

 

Pour spécifier l’interface qui fournit le dhcp : /etc/default/dhcp3-server

 

 INTERFACES="192.168.1.1"

 

Pour attribuer une adresse IP fixe à une station, on se servira de son adresse mac. Voici ce qu’il faut ajouter dans le fichier de configuration :

host cdulux {
hardware ethernet 00:14:22:36:ce:93;
fixed-address 192.168.1.55;
}

 


Article lu 2221 fois

2 comments

  1. karin dit :

    slt tous le monde aider moi d’istaller et configurer dhcp sous mandriva
    merci

Laisser un commentaire