Debian_girl.png

[by El Fantasma - CC-BY-SA]

Une fois n'est pas coutume, j'ai voulu vous détailler la mise en plae d'un serveur DHCP et d'un relai DHCP sous une distribution GNU/Linux : Debian à travers un cas pratique. Des connaissances de base sur le réseau et sur le monde Linux sont nécessaires. Je vous conseille à ce propos le tutorial du Site du Zero : Reprenez le contrôle avec Linux !

Objectif

Le principe est donc de réaliser l’administration d’un serveur DHCP et d’un relai DHCP. Un serveur DHCP (Dynamic Host Configuration Protocol) permet d’allouer à des machines-client automatiquement une adresse IP. D’autres options peuvent être assignables d'ailleurs comme le masque, la passerelle ou le serveur DNS.

Principe du relai DHCP

Un routeur est présent pour relier le réseau A (où est situé le serveur DHCP) et le réseau B (où se trouve le client DHCP). Le client DHCP ne peut recevoir les trames du serveur car le routeur bloque les trames diffusées en broadcast.
Dans cette situation, trois solutions peuvent être envisageables :

  • Mettre un serveur DHCP dans le second réseau
  • Mettre le routeur en serveur DHCP
  • Installer un agent de relai DHCP

La dernière solution est choisie ici : la mise en place d’un relai DHCP. Ce dernier permet en effet de rediriger les requêtes des machines-clientes en unicast à travers le routeur vers le serveur DHCP.

Matériel Utilisé

Voici les différents systèmes d’exploitation et matériel dont nous avons besoin :
un routeur, un serveur DHCP et un relai DHCP sous Debian

  • un client DHCP sous Windows XP
  • 2 hubs
  • 5 câbles RJ45

Topologie

Voici la topologie utilisée durant ce projet :

topologie_relai_dhcp.png

Paramètres TCP/IP

Nous avons ainsi mis en place deux réseaux :

  • Réseau A : 192.168.1.0 /24
  • Réseau B : 172.16.10.0 /24

L’adressage IP du serveur DHCP est paramétré manuellement :

  • Adresse IP : 192.168.1.2 /24
  • Passerelle : 192.168.1.1

Le routeur possède les deux interfaces suivantes paramétrées manuellement :

  • Eth0 : 192.168.1.1 /24
  • Eth1 : 172.16.10.1 /24

Le relai DHCP possède l’adresse IP manuelle suivante :

  • Eth0 : 172.16.10.2 / 24
  • Passerelle : 172.16.10.3

Enfin, le client DHCP est paramétré en assignement d’adresse IP automatique.

Configuration du serveur DHCP

Adressage IP du serveur DHCP

Commençons par configurer manuellement l’IP du serveur DHCP :

vim /etc/network/interfaces

# Interfaces reseaux du serveur DHCP

# Boucle locale
auto lo
iface lo inet loopback

# Interface primaire (eth0)
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1

La commande « ifdown eth0 && ifup eth0 » permet de relancer l’interface réseau eth0.

Configuration du serveur DHCP

Il faut tout d’abord installer le paquet dhcp3 avec la commande suivante :

Apt-get install dhcp3-server

Ensuite, nous devons configurer le serveur. Nous utiliserons vim pour éditer le fichier de configuration DHCP :

Vim /etc/dhcp3/dhcpd.conf

#########################
# Configuration du DHCP #
#########################

#DNS
ddns-update-style none;
option domain-name "dhcp.lan";
option domain-name-servers 192.168.1.2;

#Bail DHCP
default-lease-time 3600;
max-lease-time 7200;

#log DHCP
log-facility local7;

#Etendue 1
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.15;
option routers 192.168.1.1;
allow-unknown-clients;
}

#Etendue 2
subnet 172.16.10.0 netmask 255.255.255.0 {
range 172.16.10.10 172.16.10.15;
option routers 172.16.10.1;
allow-unknown-clients;
}

Les baux sont de longue durée car nos aurons des postes fixes dans l’entreprise.

Notre serveur DHCP configuré, nous pouvons maintenant démarrer le serveur grâce à la commande suivante :

/etc/init.d/dhcp3-server start

Fonctionnement du serveur DHCP

Voici les trames échangées entre un server DHCP et un client DHCP pour l’assignation d’une adresse IP :

trames_dhcp.png

1) Le client DHCP envoie une requête DHCP DISCOVER (demande d’adresse IP) en Broadcast (255.255.255.255).
2) Le serveur DHCP propose une adresse IP via la requête DHCP OFFER
3) Le client répond avec la requête DHCP REQUEST qu’il a bien récupéré l’adresse IP pour que tout le réseau en soit informé (si présence d’autres serveurs DHCP)
4) Le serveur accuse réception avec la requête DHCP ACK

Configuration du relai DHCP

Adressage IP du relai DHCP

Comme pour le serveur DHCP, il faut tout d’abord éditer le fichier d’interfaces réseaux :

vim /etc/network/interfaces

# Interfaces reseaux du relai DHCP

# Boucle locale

auto lo
iface lo inet loopback

# Interface primaire (eth1)
auto eth1
iface eth1 inet static
address 172.16.10.2
netmask 255.255.255.0
gateway 172.16.10.1

Nous pouvons ensuite relancer les interfaces réseaux puis ensuite installer  le relai DHCP via le paquet dhcp3-relay.

Configuration du relai DHCP

Editons le fichier de configuration du relai DHCP en précisant l’adresse du serveur DHCP et l’interface réseau utilisée :

Vim /etc/default/dhcp3-relay

# Adresse du serveur DHCP
SERVERS="192.168.1.2"

# Interface utilisée par le relai DHCP
INTERFACES="eth1"

Rm : la casse doit être respectée !

Nous pouvons désormais démarrer le relai-DHCP avec la commande suivante :

/etc/init.d/dhcp3-relay start

Fonctionnement du relai DHCP

Le schéma suivant permet de comprendre l’intérêt du relai en terme de diffusion :

diffusion_relai_dhcp.gif

Configuration du routeur

Adressage IP du routeur

Configurons les deux interfaces réseaux du routeur :

vim /etc/network/interfaces

# Interfaces reseaux du routeur

#  Interface primaire (eth1)
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.1

# Interface secondaire (eth2)
auto eth2
iface eth2 inet static
address 172.16.10.1
netmask 255.255.255.0
gateway 172.16.10.1

Relançons ensuite les deux interfaces.

Configuration du routeur

Maintenant que notre routeur est configuré, il ne reste plus qu’à activer la redirection des paquets. Pour cela, éditons le fichier de configuration sysctl et décommentons la ligne permettant de rediriger les paquets en Ipv4 :

Vim /etc/sysctl.conf

net.ipv4.conf.default.forwarding=1

Nous pouvons visualiser la table de routage avec la commande « route –n ».

Table de routage IP du noyau :

Destination     Passerelle      Genmask        Indic  Metric    Ref   Use   Iface
192.168.1.0     0.0.0.0        255.255.255.0    U         0      0     0     eth1
172.16.10.0     0.0.0.0        255.255.255.0    U         0      0     0     eth2
0.0.0.0            172.16.10.1    0.0.0.0          UG        0      0     0     eth2
0.0.0.0         192.168.1.1    0.0.0.0          UG        0      0     0     eth1

Test sur le serveur DHCP

Notre client Windows XP est configuré en DHCP. La commande IPCONFIG lui attribue bien une IP via le relai DHCP :

ip_config.png

Rien de bien compliqué en somme. La console peut faire peur mais une fois cet a priori dépassé, on remarque que l'administration est assez simple à mettre en œuvre et est même accessible pour les inconditionnels de Windows Server 2003 !

Commençons par configurer manuellement l’IP du serveur DHCP

Poursuivre votre lecture sur le site