Dynamic Host Configuration Protocol (DHCP)

-> Voir la configuration DHCP de Rennes

Généralités

Le serveur DHCP est hébergé sur la VM saymyname

Le serveur DHCP utilisé est isc-dhcp

Utilisation

Pour relancer le service lors d'une modification (mise à jour du ldap ou de la configuration dhcp) le plus simple est d'utiliser le lien qui se trouve sur le site admin

Configuration

-> La configuration se trouve : https://git.resel.fr/confs/dhcp-brest

Le fichier de conf dhcpd.conf est généré en créant un fichier contenant d'abord le fichier /etc/dhcp/header.conf qui contient la conf préliminaire du dhcp. Puis le script python ajoute la description statique de chacun des machines inscrites, son ip et son adresse mac.

Configuration préliminaire du DHCP

Détaillons le fichier header que vous pouvez trouver dans sa dernière version à : https://git.resel.fr/confs/dhcp-brest/blob/master/header.conf

Avant d'ajouter toutes les IP des machines au DHCP, il faut configurer les options par défaut :

authoritative;
one-lease-per-client on;
always-broadcast  on;
ping-check  on; 
log-facility  local 7;

option netbios-node-type 2;
option netbios-name-servers 172.22.199.1;
option netbios-dd-server 172.22.199.1;      
option ntp-servers 172.22.199.1;      
option pop-server 172.22.42.105;  
option nntp-server 172.22.42.105;  
option www-server 172.22.42.80; 
option irc-server 172.22.199.31; 
next-server 172.22.42.3;

À noter que le authoritative permet de dire au DHCP de refuser toute demande illégale d'un client DHCP.

Ensuite, on configure le PXE :

filename "pxelinux.0";

if substring (option vendor-class-identifier, 0, 17) = "NetBSD:i386:libsa" 
{
    if filename = "boot.cfg" 
    {
        filename "tftp:bsd/netbsd-boot.cfg";
    } else if filename = "netbsd" {
        filename "tftp:bsd/netbsd-INSTALL.gz";
    }
}

Voila la partie intéressante :

option domain-name "resel.fr"; 

shared-network "resel-995" {                                                                                                                                              

    # Subnet inscription 
    subnet 172.22.224.0 netmask 255.255.254.0 {
        authoritative;
        range 172.22.224.3 172.22.225.250;
        default-lease-time 120;
        max-lease-time 300;
        option domain-name-servers 172.22.225.253;
        option routers 172.22.225.254;
        option broadcast-address 172.22.225.255;
        option subnet-mask 255.255.254.0;
    }
}

shared-network "resel-999" {

    # Subnet inscription-999 (inscription over ethernet) 
    subnet 172.22.226.0 netmask 255.255.254.0 {
        authoritative;
        range 172.22.226.3 172.22.227.250;
        default-lease-time 120;
        max-lease-time 300;
        option domain-name-servers 172.22.227.253;
        option routers 172.22.227.254;
        option broadcast-address 172.22.227.255;
        option subnet-mask 255.255.254.0;
    }
    # Subnet utilisateurs  
    subnet 172.22.192.0 netmask 255.255.224.0 {
        option domain-name-servers 172.22.199.229, 172.22.42.1, 172.23.42.229;
        option routers 172.22.199.1;
        option subnet-mask 255.255.224.0;
        #range 172.22.200.000 172.22.223.254; 
    }

    group {
        use-host-decl-names off;
        option domain-name-servers 172.22.199.229, 172.22.199.11;
        option routers 172.22.199.1;
        option broadcast-address 172.22.223.255;
        default-lease-time 86400;
        min-lease-time 86400;

Configuration du daemon

Par ailleurs, le fichier /etc/default/isc-dhcp-server contient la configuration du lancement du daemon. La ligne intéressante est celle précisant les interfaces :

DHCPDARGS = "eth1 eth3" 

Génération et redémarrage

Pour redémarrer le DHCP, de préférence il faut utiliser l'interface admin : section relance DHCP et DNS cliquer sur le bouton DHCP. Cela va lancer une connexion ssh sur saymyname avec le compte reloader dont la seule action va être de relancer le DHCP.

Pour regénérer le DHCP, le script /srv/reloader/scripts/dhcp/ldap2dhcp.py va questionner le ldap et récupérer toutes les ips et macs de machines inscrites, puis il va générer un host dans la conf du dhcp suivant la syntaxe

host <son nom>
{
    fixed-address <son ip>;
    hardware ethernet <sa mac>;
    option host-name <son hostname>;
}

Ressources utiles

Articles liés

TODO (pour le rédacteur)

  • Ajouter quelques ressources de plus