LE DATA BOOK INFORMATIQUE

LE DATA BOOK INFORMATIQUE

Serveur DHCP : dhcp3-server

         Serveur DHCP : dhcp3-server

Cet article a pour but de vous présenter comment installer et configurer un serveur DHCP en utilisant l'application dhcp3-server. Je supposerai que vous disposez d'un réseau local en état de marche et que vous connaissez les bases de TCP/IP (adressage, sous-réseaux, etc.).

Dans cet article, un cas concret de configuration d'un DHCP vous sera présenté, à vous de l'adapter à vos besoins.

Introduction

Sur les réseaux, toutes les machines sont identifiées (et identifiables) par une adresse IP. Ceci est nécessaire afin de les faire communiquer ensembles. Lorsque vous vous connectez sur n'importe quel réseau, y compris sur internet, il vous est donc attribué une adresse IP.

Il existe plusieurs manières de configurer ces adresses :

  • soit de manière statique, lorsque vous déterminez vous-même l'adresse IP sur la machine ;
  • soit de manière dynamique, grâce à un serveur DHCP tel que « dhcp3-server » qui va attribuer les adresses en fonction du fichier de configuration.

L'acronyme DHCP signifie Dynamic Host Configuration Protocol soit en français « Protocole de configuration dynamique des hôtes ».

Ne pas confondre fixe et statique : le serveur DHCP peut attribuer des adresses IP fixes (toujours la même) en fonction de l'adresse MAC (Media Access Control, Adresse de contrôle d'accès au média) reçue.

Il existe plusieurs classes d'adresses IP. Ici, nous utiliserons les IP dites privées de classe C.

Mode de fonctionnement sommaire

Lorsque la carte réseau est activée en mode DHCP, elle envoie sur le réseau une demande d'information (une requête DHCP). Le serveur DHCP à l'écoute sur le réseau commence alors la procédure d'identification et lui attribue une adresse en fonction de celle-ci.

Pour plus d'informations concernant le DHCP, vous pouvez consulter l'article sur Wikipedia.

Pour installer un serveur DHCP, nous allons utiliser une application bien connue des administrateurs réseaux : dhcp3-server.

Installation

Il n'y a rien de plus simple : installez le paquet dhcp3-server (en 1 clic).

Configuration

Considérons les aspects suivants :

  • Il existe 3 réseaux.
  • Le réseau internet (que nous ne configurons pas, l'interface connectée dessus obtient automatiquement son IP, par le serveur DHCP du FAI1) ; ceci dit vous pouvez adapter la configuration afin d'intégrer le serveur DHCP sur un réseau local).
  • Le réseau local 192.168.1.* réservé aux serveurs (web, FTP, messagerie, etc.).
  • Le réseau local 192.168.2.* réservé aux clients (réseau local partagé).
  • Il y a 4 autres machines sur les réseaux : 192.168.1.2 (nommée ftp), 192.168.1.3 (nommée web) et 192.168.1.4 (nommée mail) et 192.168.2.2 (nommée portable).
  • Aucune machine inconnue ne se verra attribuer une adresse IP par DHCP (voir fichier de configuration « option deny unknow client »).
  • Toutes les machines des réseaux ont la possibilité de démarrer par PXE.
  • La machine serveur DHCP est aussi le routeur/par-feu/NAT (tels que décrits dans la page « comment_configurer_son_reseau_local » mais sans le dnsmasq) connecté au modem. Il fait aussi office de serveur DNS du domaine mon_domaine.qqc (tel que décrit dans la page « bind9 »).
  • les interfaces sur lesquelles le serveur démarre doivent avoir une adresse quand le service dhcp démarre. On leurs attribuera les adresses 192.168.1.1 et 192.168.2.1. (volontairement le réseau 192.168.0.0 n'est pas utilisé : il est souvent pris par le modem/routeur de votre FAI).

La liste des adresses MAC est disponible, après HWaddr grâce à la commande :

sudo ifconfig | grep HWaddr

Voyons comment configurer le serveur DHCP3 avec ce réseau.

Configuration des interfaces du serveur DHCP

Il faut attribuer des adresses statiques aux interfaces du serveur DHCP. Pour cela, il faut éditer le fichier /etc/network/interfaces.

gksudo gedit /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# Interface de boucle locale.
auto lo
iface lo inet loopback

# Interface ETHERNET primaire.
# Ceci est l'interface connectée à Internet. L'IP est attribuée par DHCP.
auto eth0
iface eth0 inet dhcp
#name Carte Ethernet

# Interface ETHERNET secondaire.
# C'est l'interface de connexion du réseau des machines SERVEURS.
auto eth1
iface eth1 inet static
#name Carte Ethernet
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
# passerelle il faut mettre l'adresse IP de l'interface de connexion à Internet.
gateway XXX.XXX.XXX.XXX

# Interface ETHERNET tertiaire.
# C'est l'interface de connexion du réseau des machines CLIENTS.
auto eth2
iface eth2 inet static
#name Carte Ethernet
address 192.168.2.1
netmask 255.255.255.0
broadcast 192.168.2.255
network 192.168.2.0
# passerelle il faut mettre l'adresse IP de l'interface de connexion à Internet.
gateway XXX.XXX.XXX.XXX

Une fois que vous avez modifié votre fichier « /etc/network/interfaces », vous pouvez redémarrer les interfaces réseau :

sudo /etc/init.d/networking restart

Pour simplement tester une interface au lieu de toutes les redémarrer :

sudo ifdown ethX 
sudo ifup ethX

Configuration

Configuration des interfaces d'écoute

Si vous voulez que le serveur écoute sur certaines interfaces vous devez les spécifier dans /etc/default/dhcp3-server à :

INTERFACES="eth1 eth2"

Dans ce cas l'écoute se fait sur eth1 et eth2.

Configuration du serveur

Toute la configuration de DHCP3-SERVER se fait dans le fichier « /etc/dhcp3/dhcpd.conf ».

Dans ce fichier, on définit l'ensemble des options de manière globale ou par réseau. Voici une configuration détaillée :

##### Option générale par défaut #####

### RÉSEAU ###

## Nom du serveur DHCP
server-name "dns.mon_domaine.qqc";

## Mode autoritaire (autoritaire)
authoritative;

## Masque de sous-réseau
option subnet-mask 255.255.255.0;


### DOMAINE ###

## Nom du domaine
option domain-name "mon_domaine.qqc";

## Adresse IP du serveur DNS
# a remplacer par l ip de votre serveur dns ou par celle de votre fai
option domain-name-servers XXX.XXX.XXX.XXX;

## Type de mise à jour du DNS (aucune)
ddns-update-style none;


### TEMPS DE RENOUVÈLEMENT DES ADRESSES ###

## par défaut en s (1 h)
default-lease-time 3600;

## maximum (2 h)
max-lease-time 7200;


### Sécurité ###

## refus(deny)/autorise(allow) les clients inconnus (refuse client inconnu)
deny unknown-clients;

## Use this to send dhcp log messages to a different log file (you also
## have to hack syslog.conf to complete the redirection).
log-facility local7;


### PXE ###
## Permet le boot réseau pour TFTP
allow bootp;
allow booting;


##### RÉSEAUX #####
## déclaration sous réseau 192.168.1.*
subnet 192.168.1.0 netmask 255.255.255.0 {
# Si vous voulez spécifier un domaine différent de celui par défaut :
option domain-name "mon_domaine.qqc";
## Adresse de diffusion
option broadcast-address 192.168.1.255;
## routeur par défaut
option routers 192.168.1.1;
## Plage d'attribution d'adresse
# Ici débute à 1.6, 1.1 à 1.4 étant déjà prises.
# La plage ne contient qu'1 adresse ce qui empêche l'attribution sauf au client dont celle-ci est fixée.
range 192.168.1.6 192.168.1.7;
## Option pxe nom du fichier servit.
# elilo.efi pour ia64; pxelinux.0 pour x86
# À placer à la racine du serveur TFTP.
# Le fichier peut être spécifié dans la section « host », il deviendra alors prioritaire sur celui-ci
filename "pxelinux.0";
# définit le serveur qui servira le fichier « pxelinux.0 »
next-server 192.168.2.1;
# évalue si l'adresse est déjà attribuée
ping-check = 1;
}

## Déclaration sous réseau 192.168.2.*
subnet 192.168.2.0 netmask 255.255.255.0 {
option domain-name "mon_domaine.qqc";
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
range 192.168.2.2 192.168.2.3;
ping-check = 1;
filename "pxelinux.0";
next-server 192.168.2.1;
}

#### Configuration des hôtes avec IP fixée ####
# hôte « FTP »
host ftp {
# adresse mac de la carte réseau !
# !!! À REMPLACER PAR CELLE DE LA MACHINE !!!
hardware ethernet 00:0f:75:af:eb:44;
# adresse attribué
fixed-address 192.168.1.2;
### PXE ###
# fichier spécifique à une machine
# filename "debian-installer/ia64/elilo.efi";
# definit le serveur qui servira le fichier pxelinux.0
# next-server 192.168.2.1;
}
# hôte « WEB »
host web {
# !!! À REMPLACER PAR CELLE DE LA MACHINE !!!
hardware ethernet 00:02:0d:31:d1:cc;
fixed-address 192.168.1.3;
}
# hôte « mail »
host mail {
# !!! À REMPLACER PAR CELLE DE LA MACHINE !!!
hardware ethernet 00:02:55:d2:d1:cc;
fixed-address 192.168.1.4;
}
# hôte « PORTABLE »
host portable {
# !!! À REMPLACER PAR CELLE DE LA MACHINE !!!
hardware ethernet 00:0e:af:31:d1:cc;
fixed-address 192.168.2.2;
}

L'adresse MAC d'un client se trouve avec la commande ifconfig, sous l'intitule HWaddr.

Nous pouvons maintenant demander à notre serveur de prendre en compte nos modifications :

sudo /etc/init.d/dhcp3-server restart

Nous pouvons maintenant passer à la phase de vérification.

Si il y a des messages d'erreurs, regardez le fichier suivant :

tail /var/log/syslog


14/05/2010
0 Poster un commentaire