DHCP-4.3.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é.

Ce paquet est connu pour se construire correctement sur une plateforme LFS-7.9.

Informations sur le paquet

  • Téléchargement (HTTP) :

  • Téléchargement (FTP) : ftp://ftp.isc.org/isc/dhcp/4.3.3-P1/dhcp-4.3.3-P1.tar.gz

  • Somme de contrôle MD5 du téléchargement : 60f330a69566c52d841ddaab9d7a2662

  • Taille du téléchargement : 8.8 Mio

  • Estimation de l'espace disque requis : 212 Mio

  • Estimation du temps de construction : 0.5 SBU

Téléchargements supplémentaires

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

Configuration du noyau

Vous devez avoir le support de Packet Socket :

[*] Networking support --->          [CONFIG_NET]
      Networking options --->
        <*> Packet socket            [CONFIG_PACKET]

Si vous n'avez pas le support IPv6 :

[*] Networking support --->          [CONFIG_NET]
      Networking Options --->
        <*> The IPv6 Protocol --->   [CONFIG_IPV6]

compilé en dur, puis vous devez utiliser le correctif « missing_ipv6 ».

Installation de ISC DHCP

[Note]

Note

Ce paquet ne supporte pas la compilation parallèle.

Si vous n'avez pas compilé en dur dans le noyau le support d'IPV6, appliquez le correctif missing_patch :

patch -Np1 -i ../dhcp-4.3.3-P1-missing_ipv6-1.patch
[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 lançant les commandes suivantes :

patch -Np1 -i ../dhcp-4.3.3-P1-client_script-1.patch &&
CFLAGS="-D_PATH_DHCLIENT_SCRIPT='\"/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

Pour tester les résultats, lancez : make check

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

make -C client install         &&
mv -v /usr/sbin/dhclient /sbin &&
install -v -m755 client/scripts/linux /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                   &&
mv -v /usr/sbin/dhclient /sbin &&
install -v -m755 client/scripts/linux /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 :

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 interfaces client DHCP en lançant 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 lançant 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-20150924 :

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 enble / 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 lançant 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-20150924 :

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, libdst.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 2016-03-05 19:48:34 +0100