Serveur DHCP

En principe, votre serveur tient un rôle important au cœur de votre réseau ; il est donc important d’y intégrer un serveur DHCP qui vous permettra de configurer facilement tous vos postes clients et leur fournira toutes les informations nécessaires à leur bon fonctionnement.

  1. Installation du Serveur DHCP

Tout d’abord, installons le serveur DHCP :

apt-get install isc-dhcp-server

Une fois le serveur installé, configurons le.

 

  1. Configuration

Vous devez indiquez au serveur sur quelle interface il va travailler. Éditez le fichier /etc/default/isc-dhcp-server :

nano /etc/default/isc-dhcp-server

Dans notre configuration, le réseau local est raccordé à l’interface « eth1« . Nous indiquerons donc l’interface d’écoute comme étant « eth1 » :

INTERFACES="eth1"

Sauvegardez le fichier et passons à la suite.

Éditez le fichier de configuration du serveur :

nano /etc/dhcp3/dhcpd.conf

et adaptez la configuration suivante pour votre réseau :

#cette option doit être spécifiée pour un bon fonctionnement du serveur DHCP
authoritative;
#pas de mise à jour du serveur DNS  
ddns-update-style none;
#indique aux clients le domaine auquel ils appartiennent
option domain-name "example.com";
# Indique l'adresse de broadcast aux clients
option broadcast-address yyy.yyy.yyy.255;
#duree de vie du bail (en secondes)
default-lease-time 86400;
#duree maximale d'un bail
max-lease-time 86400;
# definition du reseau
subnet yyy.yyy.yyy.0 netmask 255.255.255.0 {
  #adresse du serveur DNS
  option domain-name-servers yyy.yyy.yyy.1;
  #plage DHCP
  range yyy.yyy.yyy.10 yyy.yyy.yyy.254;
  #adresse IP de la passerelle
  option routers yyy.yyy.yyy.1;
    #exemple de definition d'adresse statique
    host hostname {
      # adresse MAC du périphérique
      hardware ethernet 00:01:13:e1:d1:11;
      #adresse statique attribuée
      fixed-address yyy.yyy.yyy.17;
    }
    # second exemple
    host print_server {
      hardware ethernet 00:01:23:e2:d1:22;
      fixed-address yyy.yyy.yyy.18;
    }
}

Sauvegardez le fichier une fois adapté à votre configuration et redémarrez le daemon DHCP.

service isc-dhcp-server restart

Si tous se passe correctement, vous devriez obtenir une réponse similaire à celle-ci :

Stopping ISC DHCP server: dhcpd.
Starting ISC DHCP server: dhcpd.

Si ce n’est pas le cas, écoutez le fichier syslog pour récupérer des informations sur l’erreur et corrigez la.

tail -f /var/log/syslog

Cette commande vous affichera les 10 dernières lignes du fichier de journaux systèmes.

 

  1. Classe et pool

Avec un serveur DHCP correctement configuré, il est possible de gérer plusieurs classes d’adresse en fonction des utilisateurs se connectant.

De cette manière vous pouvez créer des groupes ou sous-réseaux au sein de votre réseau, ce qui peut se révéler intéressant pour reconnaître plus facilement les serveurs ou même les machines extérieures à votre réseau ; cela peut, entre autre, se révéler intéressant pour filtrer ou interdire certaines ressources via un firewall correctement configuré.

Voici un exemple à insérez dans le fichier  /etc/dhcp3/dhcpd.conf :

 

# Créer la classe de niveau 1 spécifique à un identifiant LAN_1*
class "lan_level_1" {
 
        match if substring (option dhcp-client-identifier,0,5) = "LAN_1";
}
 
# Créer la classe de niveau 2 spécifique à un identifiant LAN_2*
class "lan_level_2" {
        match if substring (option dhcp-client-identifier,0,5) = "LAN_2";
}
 
# Créer le réseau privé yyy.yyy.yyy.0/24
subnet yyy.yyy.yyy.0 netmask 255.255.255.0 {
        # Associer la plage [100-120] pour les machines inconnues sur le réseau
        pool {
                deny members of "lan_level_1";
                deny members of "lan_level_2";
                range yyy.yyy.yyy.100 yyy.yyy.yyy.120;
        }
        # Associer la plage [10-20] aux machines de niveau 1
        pool {
                allow members of "lan_level_1";
                deny members of "lan_level_2";
                range yyy.yyy.yyy.10 yyy.yyy.yyy.20;
        }
        # Associer la plage [2-5] aux machines de niveau 2
        pool {
                deny members of "lan_level_1";
                allow members of "lan_level_2";
                range yyy.yyy.yyy.3 yyy.yyy.yyy.5;
                }
        }
}
Comme vous avez put le voir, la reconnaissance des machines se fait via option dhcp-client-identifier, il faut donc que les machines transmettent cette information au serveur DHCP lors de la demande d’adresse IP. Pour ce faire :
  • Depuis un poste Linux :

Éditez le fichier /etc/dhcp3/dhclient.conf et insérez-y la ligne suivante :

send dhcp-client-identifier "LAN_1_PC1"
  • Depuis un poste Windows :

Exécuter la commande suivante en ligne de commande:

ipconfig /setclassid "Connexion au réseau local" LAN_1_PC1

Veillez à adapter « Connexion au réseau local » en fonction de votre configuration (ex: « Connexion au réseau local 2 »)

Dans les deux cas précédents, vous devrez faire correspondre LAN_1_PC1 en fonction de votre configuration.

 

Gawindx
Gawindx

Gawindx

Passionné de l'outil informatique dès mon plus jeune âge (j'ai commencé sur un MO5), je mets mes compétences au service de la communauté. Je "flirte" avec Linux depuis 2005 et j'ai complétement basculé dans le libre depuis plus de 3 ans.