C’est quoi le DHCP
Le DHCP est un peu ce que serait la prĂ©fecture Ă l’immatriculation des vĂ©hicules. On s’arrĂȘte lĂ sur l’analogie foireuse mais l’idĂ©e principale est tout de mĂȘme lĂ .
Je résume le pricinpe en trois points (qui dit mieux ?) :
- Une machine se connecte sur le réseau, elle envoie une demande auprÚs du serveur DHCP
- Le serveur regarde dans son stock s’il peut fournir une adresse IP Ă cette machine.
- Si oui, il renvoie le paramétrage complet (adresse IP, masque de sous réseau, passerelle, DNS) avec un bail à notre machine.
C’est ce principe qui est utilisĂ© par exemple quand vous voulez vous connecter depuis un MacDonald en mangeant un BigMachun tout dĂ©goulinant sur votre clavier. Comme quoi les geeks ne sont pas les seuls Ă avoir ce genre de dĂ©sagrĂ©ment.
Installation
Avant tout bonne chose, faire une petite mise Ă jour :
apt-get update
apt-get upgrade
Installer le paquet dhcp3-server
apt-get install dhcp3-server
apt://dhcp3-server
Configuration
VĂ©rifier que l’interface d’Ă©coute est bien configurĂ©e avec une adresse IP fixe :
gedit /etc/network/interfaces &
Résultat :
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.2.255
network 192.168.0.0
gateway 192.168.0.254
eth0 servira pour le service DHCP. Il faudra l’inscrire dans le fichier /etc/default/dhcp3-server :
INTERFACES="eth0"
Maintenant on passe au moteur, /etc/dhcp3/dhcpd.conf
gedit /etc/dhcp3/dhcpd.conf &
- »HOLA !!! V’la la merde…y trop de lignes, putain j’vais rien caguer Ă ta merde qui imatricule ma carte rĂ©seau. »
Bon, pas de panique, y pas vraiment de réglages à faire pour obtenir un DHCP digne de ce nom. Alors voyons comment se présente ce fichier (sources depuis http://doc.ubuntu-fr.org/dhcp3-server) :
##### Option générale par défaut #####
### RĂSEAU ###
## Nom du serveur DHCP
## Donner le nom de votre machine avec votre domaine ex : srv.home.lan
server-name "srv.home.lan";
## Mode autoritaire (autoritaire)
authoritative;
## Masque de sous-réseau
## Laisser 255.255.255.0 pour les réseaux 192.x.x.x
option subnet-mask 255.255.255.0;
### DOMAINE ###
## Nom du domaine
## Mettre votre domaine ex : home.lan
option domain-name "home.lan";
## Adresse IP du serveur DNS
## a remplacer par l ip de votre serveur dns ou par celle de votre fai
option domain-name-servers 208.67.222.222;
## 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.0.*
subnet 192.168.0.0 netmask 255.255.255.0 {
# Si vous voulez spécifier un domaine différent de celui par défaut :
option domain-name "home.lan";
## Adresse de diffusion
option broadcast-address 192.168.0.255;
## routeur par défaut
option routers 192.168.0.254;
## Plage d'attribution d'adresse
## Ici débute la distribution des adresse à partir de 192.168.0.6, 192.168.0.1 à 192.168.0.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.0.6 192.168.0.20;
## 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;
}
#### Configuration des hÎtes avec IP fixée ####
# hÎte « FTP »
host machine1 {
# adresse mac de la carte réseau !
# !!! Ă REMPLACER PAR CELLE DE LA MACHINE !!!
hardware ethernet 00:01:02:03:04:05;
# adresse attribué
fixed-address 192.168.0.20;
### 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.0.10;
}
# hÎte « WEB »
#host web {
# !!! Ă REMPLACER PAR CELLE DE LA MACHINE !!!
# hardware ethernet 00:01:02:aa:bb:cc;
# fixed-address 192.168.0.3;
#}
# hÎte « mail »
#host mail {
# !!! Ă REMPLACER PAR CELLE DE LA MACHINE !!!
# hardware ethernet 00:01:02:a1:b1:c1;
# fixed-address 192.168.0.4;
#}
Redémarrer votre serveur :
/etc/init.d/dhcp3-server restart