DHCP-4.4.3-P1

Introduction à ISC DHCP

Le paquet ISC DHCP contient le client et le serveur DHCP. dhclient (le client) est utile pour connecter votre ordinateur à un réseau utilisant DHCP pour attribuer des adresses réseau. dhcpd (le serveur) est utile pour affecter des adresses réseau sur votre réseau privé.

This package is known to build and work properly using an LFS 11.3 platform.

Informations sur le paquet

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/dhcp

Configuration du noyau

Vous devez avoir la prise en charge de Packet Socket. Celle d'IPv6 est facultative.

[*] Networking support --->        [CONFIG_NET]
      Networking options --->
        <*> Packet socket          [CONFIG_PACKET]
        <*> The IPv6 Protocol ---> [CONFIG_IPV6]

Installation de ISC DHCP

[Note]

Note

Ce paquet ne supporte pas la compilation parallèle.

[Note]

Note

Faite attention avec les instructions qui suivent. Les guillemets simples et doubles sont importants car les variables définies sont utilisées mot pour mot dans le code.

Installez ISC DHCP en exécutant les commandes suivantes :

( export CFLAGS="${CFLAGS:--g -O2} -Wall -fno-strict-aliasing                 \
        -D_PATH_DHCLIENT_SCRIPT='\"/usr/sbin/dhclient-script\"'     \
        -D_PATH_DHCPD_CONF='\"/etc/dhcp/dhcpd.conf\"'               \
        -D_PATH_DHCLIENT_CONF='\"/etc/dhcp/dhclient.conf\"'"        &&

./configure --prefix=/usr                                           \
            --sysconfdir=/etc/dhcp                                  \
            --localstatedir=/var                                    \
            --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases       \
            --with-srv6-lease-file=/var/lib/dhcpd/dhcpd6.leases     \
            --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
            --with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases
) &&
make -j1

Ce paquet n'a pas de suite de tests.

Si vous ne souhaitez installer que le client ISC DHCP, lancez les commandes suivantes en tant qu'utilisateur root :

make -C client install             &&
install -v -m755 client/scripts/linux /usr/sbin/dhclient-script

Passez à la section intitulée la section intitulée « Configuration du client » pour configurer le client

Si vous ne voulez installer que le serveur ISC DHCP, lancez la commande suivante en tant qu'utilisateur root :

make -C server install

Passez à la section intitulée la section intitulée « Configuration du serveur » pour configurer le serveur.

Vous pouvez aussi installer tout le paquet, incluant le client, le serveur, le relai, les bibliothèques statiques et les en-têtes de développement, en exécutant les commandes suivantes en tant qu'utilisateur root :

make install &&
install -v -m755 client/scripts/linux /usr/sbin/dhclient-script

Configuration d'ISC DHCP

Fichiers de configuration

/etc/dhcp/dhclient.conf et /etc/dhcp/dhcpd.conf

Configuration du client

Créez un /etc/dhcp/dhclient.conf de base en exécutant la commande suivante en tant qu'utilisateur root :

install -vdm755 /etc/dhcp &&
cat > /etc/dhcp/dhclient.conf << "EOF"
# Begin /etc/dhcp/dhclient.conf
#
# Basic dhclient.conf(5)

#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        netbios-name-servers, netbios-scope, interface-mtu,
        ntp-servers;
require subnet-mask, domain-name-servers;
#timeout 60;
#retry 60;
#reboot 10;
#select-timeout 5;
#initial-interval 2;

# End /etc/dhcp/dhclient.conf
EOF

Voir man 5 dhclient.conf pour des options supplémentaires.

Maintenant, créez le répertoire /var/lib/dhclient qui contiendra les baux du client DHCP en exécutant la commande suivante en tant qu'utilisateur root :

install -v -dm 755 /var/lib/dhclient

Si vous voulez configurer des interfaces réseaux au démarrage en utilisant dhclient, vous devez installer l'unité /dhclient@.service incluse dans le paquet blfs-systemd-units-20220720 en exécutant la commande suivante en tant qu'utilisateur root :

make install-dhclient
[Note]

Note

Assurez-vous que vous avez désactivé le service systemd-networkd ou que vous l'avez configuré pour ne pas gérer l'interface que vous voulez gérer avec dhclient.

Maintenant, vous pouvez tester si dhclient se comporte comme prévu en exécutant la commande suivante en tant qu'utilisateur root :

systemctl start dhclient@eth0

Pour démarrer dhclient sur une interface spécifique au démarrage, activez l'unité systemd précédemment installée en exécutant la commande suivante en tant qu'utilisateur root :

systemctl enable dhclient@eth0

Remplacez eth0 par le vrai nom de votre interface.

Configuration du serveur

Remarquez que vous n'avez du serveur DHCP que si vous voulez donner des adresses LAN sur votre réseau. Le client DHCP n'a pas besoin de serveur pour bien fonctionner.

Commencez par créer /etc/dhcp/dhcpd.conf en exécutant la commande suivante en tant qu'utilisateur root :

cat > /etc/dhcp/dhcpd.conf << "EOF"
# Begin /etc/dhcp/dhcpd.conf
#
# Example dhcpd.conf(5)

# Use this to enable / disable dynamic dns updates globally.
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

# This is a very basic subnet declaration.
subnet 10.254.239.0 netmask 255.255.255.224 {
  range 10.254.239.10 10.254.239.20;
  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}

# End /etc/dhcp/dhcpd.conf
EOF

Ajustez le fichier pour correspondre à vos besoins. Voir man 5 dhcpd.conf pour des options supplémentaires.

Créez maintenant le répertoire /var/lib/dhcpd/dhcpd.leases qui contiendra les baux du serveur DHCP en exécutant les commandes suivantes en tant qu'utilisateur root :

install -v -dm 755 /var/lib/dhcpd &&
touch /var/lib/dhcpd/dhcpd.leases

Si vous voulez démarrer le serveur DHCP au démarrage, installez l'unité dhcpd.service incluse dans le paquet blfs-systemd-units-20220720 :

make install-dhcpd

Vous devrez éditer /etc/default/dhcpd pour régler l'interface sur laquelle dhcpd répondra aux requêtes DHCP.

Contenu

Programmes installés: dhclient, dhclient-script, dhcpd, dhcrelay et omshell
Bibliothèques installées: libdhcpctl.a et libomapi.a
Répertoires installés: /etc/dhcp, /usr/include/dhcpctl, /usr/include/isc-dhcp, /usr/include/omapip, /var/lib/dhclient et /var/lib/dhcpd

Descriptions courtes

dhclient

est l'implémentation du client DHCP

dhclient-script

est utilisé par dhclient pour (re)configurer les interfaces. Il peut faire des modifications supplémentaires en appelant un dhclient-{entry,exit}-hooks personnalisé

dhcpd

implémente les requêtes Dynamic Host Configuration Protocol (DHCP, protocole de configuration d'hôte dynamique) et Internet Bootstrap Protocol (BOOTP) pour les adresses réseaux

dhcrelay

offre un moyen d'accepter des requêtes DHCP et BOOTP sur un sous-réseau sans serveur DHCP et les relayer vers le serveur DHCP d'un autre sous-réseau

omshell

fournit une façon interactive de se connecter, de chercher et éventuellement de modifier, l'état du serveur ISC DHCP via OMAPI Object Management API (l'API de gestion des objets)