Copyright © 2004 Dean Wilson
Copyright © 2004 Joëlle Cornavin
Copyright © 2004 Encolpe Degoute
Article paru dans le n°98 de la Gazette Linux de janvier 2004.
Traduction française par Joëlle Cornavin
<jcornavi CHEZ club TIRET internet POINT fr>
.
Relecture de la traduction française par Encolpe Degoute
<encolpe POINT degoute CHEZ free POINT fr>
.
Article publié sous Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.
DHCP signifie Dynamic Host Configuration Protocol (protocole de configuration dynamique des adresses d'hôtes). Son rôle consiste à affecter des paramètres réseau à partir d'un serveur. En d'autres termes, au lieu d'avoir à configurer les paramètres liés à la manière dont votre ordinateur communique avec un réseau, cette opération s'effectue automatiquement.
L'affectation dynamique d'une adresse IP est l'élément fondamental, mais il y en a beaucoup d'autres comme le masque réseau, le nom d'hôte, le nom de domaine, la passerelle et les serveurs de noms. En outre, elle peut fournir d'autres informations, comme un serveur d'horloge.
De nombreuses personnes sont contre le DHCP parce qu'elles ne le voient que comme un moyen dont un FAI (fournisseur d'accès internet) vous offre une adresse IP qui change. Ceci complique bien sûr l'annonce d'un serveur. Par ailleurs, DHCP peut vous épargner une bonne partie du travail de configuration permanente au sein de votre entreprise ou de votre organisation.
Outre les serveurs DHCP fournis par les FAI, on les trouve fréquemment dans des routeurs bon marché. Netgear®, Linksys® et autres fabricants proposent ces systèmes avec des ports LAN multiples, une interface sans fil 802.11b, ou les deux. Le Netgear RP114® est un exemple du LAN avec câble seulement, ainsi que le Linksys WAP11® de type 802.11b. Ce n'est qu'un choix parmi tant d'autres. Le routeur devient le système que reconnaît le FAI et tous vos ordinateurs réels se cachent derrière ce périphérique.
Se cache ? En effet. Ce qui est perceptible aux yeux de l'Internet public est le routeur. Le LAN a des adresses IP privées et utilise la NAT (Network Address Translation, traduction d'adresses réseau) pour gérer les connexions depuis les systèmes internes vers l'Internet. Bien qu'elle ne soit pas véritablement un pare-feu, la NAT offre un niveau minimal de protection.
La plupart des routeurs de cette classe vous permettent :
De cloner l'adresse MAC (matérielle) d'un de vos ordinateurs. Ce comportement vous permet de laisser le FAI penser qu'il dialogue avec un système informatique que vous avez préalablement identifié plutôt qu'un routeur auquel de multiples machines sont éventuellement connectées.
De gérer des adresses IP statiques. Cela signifie que vous pourriez choisir une adresse réseau locale (192.168.1.x, par exemple) et affecter des adresses spécifiques dans cette plage.
D'affecter dynamiquement des adresses IP d'une plage spécifiée. Par exemple, le routeur pourra être configuré pour offrir le DHCP pour 20 adresses différentes, par exemple 192.168.1.100 à 192.168.1.119.
Ce sont les bases du DHCP pour les débutants. Si tout ce que vous faites est d'essayer de décider entre l'utilisation du DHCP ou une adresse IP statique, ces informations peuvent suffire. Par ailleurs, vous pourriez décider de lancer un serveur DHCP sur un système Linux. Dans ce cas, il y a d'autres possibilités.
dhcpd, de l'ISC (Internet Software Consortium), est le serveur DHCP le plus communément installé sur les systèmes Linux. Lorsqu'il est démarré, il prend ses directives dans un fichier de configuration que l'on trouve généralement dans /etc/dhcpd.conf. Voici un exemple de fichier de configuration :
# Sample configuration file for ISC dhcpd # 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; # if you do not use dynamical DNS updates: # # this statement is needed by dhcpd-3 needs at least this statement. # you have to delete it for dhcpd-2, because it does not know it. # # if you want to use dynamical DNS updates, you should first read # read /usr/share/doc/packages/dhcp-server/DDNS-howto.txt ddns-update-style none; ddns-updates off; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; # 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; } # A slightly different configuration for an internal subnet. subnet 10.5.5.0 netmask 255.255.255.224 { range 10.5.5.26 10.5.5.30; option domain-name-servers ns1.internal.example.org; option domain-name "internal.example.org"; option routers 10.5.5.1; option broadcast-address 10.5.5.31; default-lease-time 600; max-lease-time 7200; } # Hosts which require special configuration options can be listed in # host statements. If no address is specified, the address will be # allocated dynamically (if possible), but the host-specific information # will still come from the host declaration. host passacaglia { hardware ethernet 0:0:c0:5d:bd:95; filename "vmunix.passacaglia"; server-name "toccata.fugue.com"; } # Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. host fantasia { hardware ethernet 08:00:07:26:c0:a5; fixed-address fantasia.fugue.com; } |
La page de man associée à ce fichier, dhcpd.conf(5) est très complète et je ne vais pas essayer de reproduire toutes ces informations ici. Vous l'afficherez en saisissant simplement man dhcp.conf. Elle fait plus de 25 pages, mais si vous voulez l'imprimer pour l'étudier hors-connexion, les commandes suivantes devraient suffire :
cd /usr/share/man/man5 zcat dhcpd.conf.5.gz | groff -man | lpr |
Le fichier est divisé en deux types d'instructions. Les instructions de paramétrage indiquent comment faire quelque chose si dhcpd doit le faire. Les instructions de déclaration décrivent le réseau. Ainsi, les paramètres établissent les choses dont peuvent dépendre les déclarations. Dans l'exemple ci-dessus, default-lease-time est un exemple de paramètre. Le bloc commençant par l'hôte { est une déclaration. Les instructions optionnelles apparaissant en dehors de tout bloc sont des paramètres globaux qui sont globaux en termes de portée. Ceux qui sont dans les déclarations ont une portée locale.
J'espère que cette introduction vous aidera à travailler avec DHCP. Être un client DHCP est très facile. Côté serveur, ce n'est pas véritablement compliqué non plus. Une fois que avez décidé de ce que vous ferez faire à votre serveur DHCP, traduire ces informations en ce qui est nécessaire dans /etc/dhcpd.conf ne présente aucune difficulté.
Dean Wilson est administrateur système dans une entreprise où le patron (qui n'a aucune idée de ce que fait Dean) dit simplement « Faites que cela fonctionne ».