Démon BSD

Documentation NetBSD :

Mini-guide DHCP

Présentation de DHCP

Mise en place du client DHCP

Mise en place du serveur DHCP


Présentation de DHCP


Introduction et but (haut)

Ce document décrit comment mettre en place clients et serveurs DHCP pour le système d'exploitation NetBSD.

Qu'est-ce que DHCP ? (haut)

DHCP sont les initiales de Dynamic Host Configuration Protocol, c'est à dire protocole de configuration automatique. Il permet d'établir dynamiquement les paramètres réseau d'un ordinateur. L'idée est la suivante : lorsqu'un ordinateur s'allume, il ne possède aucune adresse IP. Il lance alors un appel à tout serveur DHCP du réseau. Un échange se met en place pendant lequel le serveur lui attribue une adresse IP et lui donne certains paramètres clé (comme les adresses des serveurs de noms, par exemple).

Qui a besoin d'utiliser DHCP ? (haut)

De nombreux fournisseurs d'accès internet (FAI) demandent que leurs clients utilisent DHCP pour pouvoir leur fournir une adresse IP dynamique et pour contrôler les divers paramètres du réseau. Ou bien, un ordinateur portable peut se connecter à plusieurs réseaux, au bureau et à la maison, par exemple. DHCP est alors l'idéal pour éviter d'avoir à reconfigurer manuellement le portable suivant le réseau utilisé. Dans ce cas, il faut un serveur DHCP au bureau, un autre à la maison et un client sur le portable.

Sources d'informations détaillées (haut)

Pour plus d'informations sur le DHCP en général, référez-vous au RFC 1541 «Request for Comments document for the Dynamic Host Configuration Protocol (DHCP)». Il existe aussi une FAQ DHCP très claire, en anglais.

Mise en place du client DHCP


Cette section décrit la mise en place d'un client DHCP sous NetBSD. Elle concerne à la fois NetBSD 1.3 et 1.4.

Configurer DHCP (haut)

La configuration du client DHCP se trouve dans le fichier /etc/dhclient.conf. Créez-le s'il n'existe pas encore. Rappelez-vous d'utiliser vos propres données, en particulier en ce qui concerne les noms d'ordinateurs et les interfaces ethernet. Consultez dhclient.conf(5) et dhcp-options(5) pour plus de détails. Voici un /etc/dhclient.conf tout à fait courant :
Send host-name "mon-nom.mon.domaine";               <=== Mettez le nom de
                                                           votre ordinateur.
send dhcp-client-identifier "mon-ident";            <=== Mettez l'identifiant
                                                           de votre ordinateur
                                             (généralement identique à mon-nom).
request subnet-mask, broadcast-address, routers,
    domain-name-servers;

timeout 30;
retry 60;
select-timeout 5;

script "/etc/dhclient-script";

lease {
  interface "sn0";                               <=== Mettez votre interface.
  option host-name "mon-nom.mon.domaine";           <=== Mettez le nom de
                                                         votre ordinateur.
  option subnet-mask 255.255.255.0;
  option domain-name "mon.domaine";                <=== Mettez le nom de
                                                           votre domaine.
  option domain-name-servers 127.0.0.1;
  renew 2 2000/1/12 00:00:01;
  rebind 2 2000/1/12 00:00:01;
  expire 2 2000/1/12 00:00:01;
}

Mise à jour de dhclient-script (NetBSD-1.3 uniquement) (haut)

Si vous avez plus d'une carte réseau sur votre machine, vous devrez modifier le script /etc/dhclient-script afin d'éviter de générer des fichiers log trop importants. L'idée est de faire quitter dhclient-script sans rien faire lorsqu'il est appelé sur une carte réseau sur laquelle ne tourne pas DHCP. Notez que ce bug a été corrigé à partir de NetBSD 1.4. Par exemple, ma machine possède deux cartes réseau. Je lance DHCP sur la carte ae1 mais pas sur ae0. J'ajoute donc les lignes suivantes, dans /etc/dhclient-script, immédiatement après la ligne #!/bin/sh initiale.
  # ne pas lancer DHCP pour ae0 
  if [ $interface = "ae0" ]; then
    exit 0
  fi

Activer DHCP (haut)

NetBSD-1.3 et précédents

Dans /etc/netstart.local, ajoutez la ligne «dhclient interfaceinterface est le nom de votre interface réseau, comme ae1 ou sn0 avec NetBSD/mac68k ou bien ep0 avec NetBSD/i386. Vous pouvez connaitre ce nom en consultant les messages de démarrage à l'aide de la commande dmesg. Le logiciel client DHCP sera lancé automatiquement à chaque démarrage.

NetBSD-1.4

Dans /etc/rc.conf, modifiez la ligne «dhclient» afin de lire «dhclient=YES». Ajoutez la liste des interfaces réseau à configurer par DHCP à la ligne «dhclient_flags». Par exemple, «dhclient_flags="ae1"». Au prochain démarrage, votre machine se configurera automatiquement comme un client DHCP. Pour activer DHCP sans redémarrer, lancez la commande «dhclient interface» où interface est l'interface réseau que vous cherchez à configurer.

Comment empêcher dhclient de détruire mon /etc/resolv.conf ? (haut)

D'une manière générale, dhclient ré-écrit votre /etc/resolv.conf avec les informations qu'il a reçues du serveur DHCP. Pour les rares occasions où cette action n'est pas souhaitée, elle peut être enpèchée en plaçant le «crochet» approprié dans /etc/dhclient-enter-hooks :
    #cat /etc/dhclient-enter-hooks
    make_resolv_conf() {
        echo "Ne rien faire ˆ resolv.conf"
    }
Consultez la page de manuel de dhclient-script(8) pour plus d'informations.

Mise en place du serveur DHCP


Cette section montre comment mettre en place un serveur DHCP avec la famille de NetBSD 1.4. Notez que vous n'avez pas besoin de serveur DHCP tant que vous ne voulez pas d'assignation automatique d'adresses IP sur votre réseau local. Pour plus de détails, consultez dhcpd(8), dhcpd.conf(5) et dhcp-options(5).

Configurer DHCPD (haut)

La configuration du serveur DHCP se trouve dans le fichier /etc/dhcpd.conf. Créez-le s'il n'existe pas. Rappelez-vous d'utiliser vos propres données, comme le nom de votre ordinateur et de l'interface réseau. Voici, plus loin, un /etc/dhcpd.conf tout à fait courant. Il prend l'exemple de 7 adresses IP disponibles pour des clients DHCP. Elles vont de 192.168.0.2 à 192.168.0.8. Le serveur DHCP indiquera au client son adresse IP, le marsque réseau, les routeurs, les serveurs de noms et le domaine à utiliser.
# Paramètres globaux de DHCPD
allow unknown-clients;

# paramètres du sous-réseau 192.168.0.0/24.
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.8;                <=== Plages d'adresses IP à assigner.
default-lease-time 604800;                    <=== Durée de bail par défaut. C'est le temps assigné si le client n'en demande pas.
max-lease-time 604800;                        <=== Durée de bail maximum.
option subnet-mask 255.255.255.0;             <=== Masque sous-réseau donné aux clients.
option domain-name-servers 1.2.3.4, 1.2.3.5;  <=== Liste des adresses IP des serveurs de noms.
option domain-name "votre.nom.de.domaine";
option routers 192.168.0.1;                   <=== Liste des routeurs que le client doit utiliser.
}

Activer DHCPD (haut)

NetBSD-1.4

Dans /etc/rc.conf, modifiez la ligne «dhcpd» afin de lire «dhcpd=YES». Ajoutez à la ligne «dhcpd_flags» la liste des interfaces réseau sur lesquelles DHCPD doit répondre. Par exemple, «dhcpd_flags="-q ae1"».

Créez un fichier dhcpd.leases (haut)

dhcpd nécessite que le fichier /var/db/dhcpd.leases soit présent. Créez-le en tapant «touch /var/db/dhcpd.leases».

Retour à la Documentation NetBSD : Réseau
Accueil
Accueil Documentation

(Nous contacter) $NetBSD: dhcp.html,v 1.13 2006/06/22 15:49:10 jschauma Exp $
Copyright © 1998-2003 par la Fondation NetBSD, Inc. TOUS DROITS RÉSERVÉS.