DHCP-4.4.2-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.1 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

Tout d'abord, corrigez un problème de construction avec GCC 10 et supérieur :

sed -i '/o.*dhcp_type/d' server/mdb.c &&
sed -r '/u.*(local|remote)_port/d'    \
    -i client/dhclient.c              \
       relay/dhcrelay.c
[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 lançant 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 lançant 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

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

dhclient <eth0>

Remplacez <eth0> par votre interface désirée. Si vous voulez une sortie plus verbeuse, ajoutez le paramètre -v à la commande ci-dessus.

Si vous voulez configurer des interfaces réseaux au démarrage en utilisant dhclient, vous devez installer le script /lib/services/dhclient inclus dans le paquet blfs-bootscripts-20210826 :

make install-service-dhclient

Ensuite, créez le fichier de configuration /etc/sysconfig/ifconfig.eth0 avec les commandes suivantes en tant qu'utilisateur root :

cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhclient"
DHCP_START=""
DHCP_STOP=""

# Set PRINTIP="yes" to have the script print
# the DHCP assigned IP address
PRINTIP="no"

# Set PRINTALL="yes" to print the DHCP assigned values for
# IP, SM, DG, and 1st NS. This requires PRINTIP="yes".
PRINTALL="no"
EOF

Ajustez le fichier pour correspondre à vos besoins.

Pour plus d'informations sur les bonnes valeurs de DHCP_START et DHCP_STOP, voir man 8 dhclient.

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 lançant 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 qui contiendra les interfaces du serveur DHCP en exécutant la commande suivante en tant qu'utilisateur root :

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

Si vous voulez démarrer le serveur DHCP au démarrage, installez le script de démarrage /etc/rc.d/init.d/dhcpd inclus dans le paquet blfs-bootscripts-20210826 :

make install-dhcpd

Vous devrez éditer /etc/sysconfig/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)

Last updated on