115 lines
2.9 KiB
Markdown
115 lines
2.9 KiB
Markdown
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
||
|
||
|
||
## Failover DHCP master/master
|
||
|
||
Ce mode permet à deux serveurs DHCP de fonctionner simultanément sur un même LAN.
|
||
|
||
Les leases dynamiques sont alors partagés entre les 2 serveurs et synchronisés via un échange réseau entre les serveurs. En cas de panne de l'un deux, l'autre prend alors à sa charge l'ensemble des leases.
|
||
|
||
Pour cela, il est nécessaire d'ajouter une section "failover" sur chacun des serveurs. Exemple :
|
||
|
||
Master :
|
||
|
||
~~~
|
||
failover peer "dhcp-failover" {
|
||
primary;
|
||
address 192.0.2.1;
|
||
peer address 192.0.2.2;
|
||
port 647;
|
||
peer port 647;
|
||
max-response-delay 30;
|
||
max-unacked-updates 10;
|
||
load balance max seconds 3;
|
||
split 128;
|
||
mclt 1800;
|
||
}
|
||
~~~
|
||
|
||
Slave :
|
||
|
||
~~~
|
||
failover peer "dhcp-failover" {
|
||
secondary;
|
||
address 192.0.2.2;
|
||
peer address 192.0.2.1;
|
||
port 647;
|
||
peer port 647;
|
||
max-response-delay 30;
|
||
max-unacked-updates 10;
|
||
load balance max seconds 3;
|
||
}
|
||
~~~
|
||
|
||
Il est également nécessaire d'englober la directive "range" et les sections "host" dans une section "pool", et l'on déclarera celle-ci en mode failover. Exemple :
|
||
|
||
~~~
|
||
subnet 192.0.2.0 netmask 255.255.0.0 {
|
||
option routers 192.2.0.254;
|
||
|
||
pool {
|
||
failover peer "dhcp-failover";
|
||
range 192.0.2.100 192.0.2.200;
|
||
|
||
host host1 {
|
||
hardware ethernet 08:00:1f:82:7a:72;
|
||
fixed-address 192.0.2.4
|
||
}
|
||
|
||
[...]
|
||
}
|
||
~~~
|
||
|
||
## Leases, adresses IP et adresses MAC
|
||
|
||
Les leases sont les distributions d'IP aux clients.
|
||
|
||
Le serveur DHCP les stocke dans `/var/db/dhcpd.leases`.
|
||
|
||
|
||
### Lister et compter les IP attribuées par DHCPD
|
||
|
||
~~~
|
||
awk -F" " '/lease/{print$2}' /var/db/dhcpd.leases | sort -V | uniq
|
||
awk -F" " '/lease/{print$2}' /var/db/dhcpd.leases | sort -V | uniq | wc -l
|
||
~~~
|
||
|
||
|
||
### Lister les adresses MAC par nombre de leases
|
||
|
||
~~~
|
||
grep hardware /var/db/dhcpd.leases | sort | uniq -c | sort -hr
|
||
~~~
|
||
|
||
Attention, le nombre de leases n'est pas égal au nombre d'IPs attribuées !
|
||
|
||
|
||
## Divers
|
||
|
||
### Redémarrage sous OpenBSD
|
||
|
||
Un SIGHUP ne semble pas fonctionner pour appliquer les changements de la configuration.
|
||
|
||
Il est donc conseillé de l'arrêter et de le relancer.
|
||
|
||
~~~
|
||
ps aux | grep dhcpd
|
||
kill -15 PID_DU_PROCESSUS
|
||
~~~
|
||
|
||
Puis relancer le processus comme il était lancé, exemple :
|
||
|
||
~~~
|
||
/usr/sbin/dhcpd bnx0
|
||
~~~
|
||
|
||
|
||
## FAQ
|
||
|
||
### Abandonned leases
|
||
|
||
Si le serveur DHCP n'arrive plus à attribuer d'adresses IP et log `no free leases on subnet`, il se peut que le liste des baux DHCP attribués par le serveur (`/var/db/dhcpd.leases`) soit plein d'IP `abandonned`.
|
||
|
||
Cela signifie que le serveur considère cette IP comme déjà utilisée et ne l'attribuera, pas à moins qu'il soit à court d'IP disponibles, auquel cas il revérifiera quand même que l'IP n'est pas toujours utilisée, ce qui pourrait tout de même empêcher son attribution.
|
||
|