Installons :
# apt-get install dhcp3-server
Ajoutons l'interface qu'on va ecouter pour repondre au requete dhcp
# vi /etc/default/dhcp
Et avoir par exemple:
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES="eth0"
Adaptons la configuration du dhcpd:
# vi /etc/dhcp3/dhcpd.conf
Et par exemple:
option domain-name "microsoft.com"; option domain-name-servers 10.20.0.6, 212.27.33.1, 212.27.33.3;
option subnet-mask 255.255.255.0; default-lease-time 86400; max-lease-time 172800;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.50;
default-lease-time 600; max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 212.27.39.2,212.27.32.5;
option domain-name "microsoft.com";
}
Et si on veut qu'une IP soit fixe pour une MAC:
host kubulap {
hardware ethernet 00:0b:cd:a7:0b:0c;
fixed-address 192.168.0.200;
default-lease-time 600; max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 212.27.39.2,212.27.32.5;
}
Relancer dhcpd:
# /etc/init.d/dhcpd3 restart
Voir ce qui ce passe:
# tail -f /var/log/syslog
La base des IP liberes et utilisé est dans: /var/lib/dhcp3/dhcpd.leases
Pour savoir l'etat des attributions, il faut regarder dans le fichier “dhcpd.leases”…
Scripte en Perl pour aider a la lecture: http://dhcpstatus.sourceforge.net/
Suivre la procedure d'installation et puis:
$ dhcpstatus
Lien: http://www.linux-france.org/prj/edu/archinet/systeme/ch29s03.html
Le but: servir du dhcp a un reseau dont on ne peut recevoir la couche 2 … enfin, les adresses MAC.
Etat du reseau:
Reseau "underworld.local" <==> eth1 :: PC/Routeur :: eth0 <==> le grand reseau local <==> server-dhcp 10.22.0.0/24 10.22.0.1 | 192.168.0.53 192.168.0.2 gateway:10.22.0.1 | gateway: 192.168.0.254
Evidement, le “PC/Routeur” contient quelques regles IPTABLES pour permettre au reseau “underworld.local” de voyager sur le Net: ca ne sera pas le sujet ici.
# aptitude update # aptitude install dhcp3-relay
L'installation est interactive, et au final, on peut avoir comme config:
# cat /etc/default/dhcp3-relay | grep -v "^#" | grep -v "^\s*$" SERVERS="192.168.0.2" INTERFACES="eth0 eth1" OPTIONS=""
On peut aussi demarrer le “dhcp-relay” a partir du shell:
# dhcrelay3 -d -i eth1 -i eth0 192.168.0.2
Sur le “veritable” serveur dhcp, un client n'aura toujours pas d'IP puisque les logs disent:
... dhcpd: DHCPDISCOVER from aa:bb:cc:dd:ee:ff via 10.22.0.1: unknown network segment
Normal.
Declarons le segment (exemple):
subnet 10.22.0.0 netmask 255.255.255.0 {
server-identifier 10.22.0.1;
option domain-name-servers 192.168.0.2, 212.27.40.240, 212.27.40.241;
option routers 10.22.0.1;
option broadcast-address 10.22.0.255;
option domain-name "underworld.local";
range 10.22.0.128 10.22.0.254;
default-lease-time 10800;
max-lease-time 43200;
}
Ajoutons la route:
# route add -net 10.22.0.1 netmask 255.255.255.255 gw 192.168.0.53
Où “192.168.0.53” a la machine qui fait relay.
Sur le client final:
# dhclient
Et voila.
J'en vois au moins 1, et un beau:
J'aurai souhaité que le “dhcp-relay” n'ecoute qu'une interface pour ses clients, et recherche les reponses du “dhcp-server” sur une autre…
Ce n'est pas possible !!!!
Le “dhcp-relay” doit ecouter toutes les interfaces pour fonctionner, et donc, il va aussi repondre a des clients qui sont sur un autre reseau !!! Arg!
Utiliser “dhcp-helper”
“dhcp3-relay” etant mal conçu, j'essaye “dhcp-helper”.
(Aprés avoir virer “dhcp3-relay”)
# aptitude update # aptitude install dhcp-helper
Et puis editer le fichier /etc/default/dhcp-helper afin d'avoir:
#DHCPHELPER_OPTS="-b eth0" DHCPHELPER_OPTS="-s 192.168.0.2 -i eth1"
Et ca marche !