6. Méthode

Contenu de cette section

6.1 Première étape

Quel que soit la distribution que vous utilisez, vous aurez besoin de télécharger le démon client pour Linux. Le paquetage dont vous avez besoin est appelé dhcpcd et sa version actuelle est 0.70. Le fichier de description du paquetage écrit:

Title:          dhcpcd 
Version:        0.70 
Entered-date:   05MAY97 
Description:    dhcpcd is an RFC2131 compliant DHCP client daemon. It 
                gets an IP address and other information from a 
                corresponding DHCP server, configures the network 
                interface automatically, and tries to renew the lease 
                time according to RFC2131. It works in the RFC1541 
                compliant mode when the '-r' option is specified. 
                So far it is found that dhcpcd 0.70 works fine with
                the 
                following DHCP servers: 
                  1. ISC's dhcpcd-BETA-5.15 
                  2. DHCP server on Windows NT server 3.51 
                  3. DHCP server version 1.3b by WIDE project. 
                  4. DHCP server in the SolarNet PC-Admin 1.5 package 
                  5. DHCP server used in Time Warner Cable's 
                     Internet Access Service
                  6. DHCP server used in Bell Atlantic ADSL
                See the "Changes" file if you want to know the
                difference 
                from the previous version. 
Keywords:       DHCP, client, Linux 
Author:         yoichi@fore.com (Yoichi Hariguchi) 
Maintained-by:  yoichi@fore.com (Yoichi Hariguchi) 
Primary-site:   ftp.kobe-u.ac.jp:/pub/PC-UNIX/Linux/network/dhcp
                33kB dhcpcd-0.70.tar.gz 
Alternate-site: sunsite.unc.edu:/pub/Linux/system/network/daemons 
                33kB dhcpcd-0.70.tar.gz 
Original-site:  
Platforms:       Linux 1.2.xx, 1.3.xx, 2.0.x 
Copying-policy: GPL 

Slackware

Vous pouvez télécharger la dernière copie de DHCPcd depuis n'importe quel mirroir de sunsite ou : ftp://ftp.cdrom.com/pub/linux/sunsite/system/network/daemons/ ftp://ftp.sunsite.unc.edu/pub/Linux/system/network/daemons/

ftp://ftp.lip6.fr/pub/linux/sunsite/system/daemons/ (site de référence en France)

Téléchargez la dernière version de dhcpcd.tar.gz

Décompressez-le: tar -zxvf dhcpcd-0.70.tar.gz,

déplacez-vous dans le répertoire: cd dhcpcd-0.70,

tapez: make.

Vous aurez besoin d'être root pour l'installer en tapant make install.

Cela créera le répertoire /etc/dhcpcd où DHCPcd stockera les paramètres et dhcpcd sera copié dans le répertoire /usr/sbin/. Vous pouvez passer à la deuxième étape.

RedHat

DHCPcd est inclu dans la distribution standard de RedHat sous forme RPM et vous pouvez le trouver dans le répertoire RPMS du CD-ROM contenant la distribution ou bien le télécharger depuis: ftp://tsx-11.edu/pub/linux/distributions/redhat/redhat-4.2/i386/RedHat/RPMS/ le fichier dhcpcd-0.6-2.i386.rpm

et installez-le avec

rpm -i dhcpcd-0.6-2.i386.rpm

Vous pouvez aussi compiler votre propre version en suivant les étapes de la Slackware. Lorsque vous avez fini, passez à l'étape 2.

Debian

Il y a un package pour DHCPcd à: ftp://ftp.debian.org/debian/stable/binary/net/. Vous pouvez aussi suivre les étapes de la Slackware.

Pour décompresser les paquetage tapez: dpkg -i /ou/se/trouve/votre/paquetage/dhcpcd*deb.

Après allez à l'étape 2.

6.2 Deuxième étape

L'(Les) instruction(s) suivante(s) dépend(ent) de vos besoins.

  1. Si vous avez besoin de ressources réseau occasionnellement, vous pouvez lancer dhcpcd depuis la ligne de commande (vous avez besoin d'être root pour l'exécuter) en tapant: /usr/sbin/dhcpcd. Lorsque vous avez besoin d'arréter le service, tapez: /usr/sbin/dhcpcd -k. Il ne vous manque, maintenant, que la configuration du serveur de noms (/etc/resolv.conf). Pour connaître les instructions afin de créer le fichier /etc/resolv.conf allez à l'étape 3.
  2. Si vous souhaitez (avez besoin) d'une connexion permanente, ainsi que l'exécution du démon au démarrage suivez les instructions qui suivent.

Slackware.

Pour que le système utilise DHCP au démarrage tapez: cd /etc/rc.d, mv rc.inet1 rc.inet1.old.

Cela renommera l'ancienne initilisation du réseau en rc.inet1.old. Vous avez maintenant besoin de créer le nouveau fichier rc.inet1. Il devrait ressembler à:

#!/bin/sh
#  
# rc.inet1      This shell script boots up the base INET system.
#
# Version:      @(#)/etc/rc.d/rc.inet1  1.01    05/27/93
#

HOSTNAME=`cat /etc/HOSTNAME` #This is probably not necessary but I
                             #will leave it in anyways

# Attache le peripherique loopback.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo

# SI VOUS AVEZ UNE CONNEXION ETHERNET, utilisez les lignes suivantes
# pour configurer votre interface eth0. Si vous utilisez uniquement 
# le loopback ou bien SLIP, il ne faut pas inclure les lignes
# restantes.

/usr/sbin/dhcpcd

Nommez le fichier précédant rc.inet1 et sauvegardez-le. Rebootez votre machine et allez à l'étape 3.

RedHat.

Cette information a été fournie par nothing (nothing@cc.gatech.edu) ``J'ai enlevé mon adresse ip statique ainsi que le nom de ma machine dans le fichier /etc/resolv.conf. Toutefois, j'ai laissé la ligne search ainsi que mes deux lignes nameserver (pour une raison inconnue, mon dhcpcd n'a jamais créé de /etc/dhcpcd/resolv.conf, je dois donc utiliser un /etc/resolv.comf statique).

Dans /etc/sysconfig/network j'ai supprimé les valeurs de HOSTNAME ainsi que de GATEWAY. J'ai laissé les autres entrées comme telles (NETWORKING, DOMAINNAME, GATEWAYDEV).

Dans /etc/sysconfig/network-scripts/ifcfg-eth0 j'ai supprimé les entrées IPADDR, NETMASK, NETWORK, et BROADCAST. J'ai laissé les entrées DEVICE et ONBOOT telles quelles. J'ai modifié la valeur de BOOTPROTO à BOOTPROTO=dhcp.''

Savegardez le fichier et rebootez la machine.

Debian.

Il semblerait qu'il n'y ait pas besoin de configuration pour DHCPcd car: D'après Heik Schlittermann ``Le paquetage dhcpcd installe son script de démarrage comme n'importe quel paquetage dans /etc/init.d/, ici /etc/init.d/dhcpcd, et le lie à différents répertoire /etc/rc?.d. Le contenu des différents /etc/rc?.d/ sont alors exécuté au démarrage. Si vous ne rebootez pas votre machine après l'installation, vous pouvez quand même démarrer le démon manuellement: /etc/init.d/dhcpcd start'' Allez à. l'étape 3.

6.3 Troisième étape

Cette étape devrait être la même pour toutes les distributions.

Après que votre machine ait rebooté, votre interface réseau devrait être configurée. Tapez ifconfig : et vous devriez avoir quelque chose du genre:

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
          RX packets:302 errors:0 dropped:0 overruns:0 frame:0
          TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0

eth0      Link encap:Ethernet  HWaddr 00:20:AF:EE:05:45
          inet addr:24.128.53.102  Bcast:24.128.53.255  Mask:255.255.254.0
          ^^^^^^^^^^^^^^^^^^^^^^^
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24783 errors:1 dropped:1 overruns:0 frame:1
          TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96
          Interrupt:10 Base address:0x300 

Si vous avez un numéro normal après inet addr, c'est bon. DHCPcd est un démon et continuera de s'exécuter tant que votre machine restera allumée. Toutes les trois heures il contactera le serveur DHCP et essaiera de renouveler le bail de l'adresse IP. Il placera tous les messages journaux dans le "journal système" (pour la Slackware /var/adm/syslog) si vous avez besoin de le consulter.

Une dernière chose. Vous avez besoin de spécifier vos serveurs de noms. Il y a deux manières de le faire, vous pouvez demander à votre fournisseur d'accès de vos donner les adresses de vos serveurs de noms et de les placer dans le fichier /etc/resolv.conf où bien, DHCPcd obtient la liste depuis le serveur DHCP et construira un fichier /etc/dhcpcd/resolv.conf. J'ai décidé d'utiliser les resolv.conf de DHCPcd en faisant les choses suivantes:

Si cela ne marche pas, essayez cela (proposé par nothing@cc.gatech.edu avec une retouche de Henrik Stoerner)

Cette dernière étape doit être exécutée seulement si dhcpcd ne crée pas le /etc/dhcpcd/resolv.conf. Dans le fichier /etc/sysconfig/network-scripts/ifup j'ai effectué les modifications suivantes (qui sont vraiment de petites bidouilles, mais qui marchent pour moi).

#################################
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
    echo -n "Using DHCP for ${DEVICE}... "
    /sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE}
    echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh

    if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
        ^^^^
        echo "failed."
        exit 1
################################# 
Je l'ai changé en:
################################# 
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
    echo -n "Using DHCP for ${DEVICE}... "
    /sbin/dhcpcd
    echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh

    if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
        ^^^^^^
       echo "failed."
       exit 1
#################################

Notez le ! (point d'interrogation) dans le if [ ! -f /var/run/dhcp-wait-$(DEVICE).pid ] ; Maintenant asseyez vous et contemplez <:ˆ}


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre