DHCPd sous Linux
Paul Makeev,
[email protected] --- Adaptation francaise Eric
Vinck,
[email protected]
v1.2, 24 June 1997
11.. IInnttrroodduuccttiioonn
DHCP signifie _D_y_n_a_m_i_c _H_o_s_t _C_o_n_f_i_g_u_r_a_t_i_o_n _P_r_o_t_o_c_o_l _(_P_r_o_t_o_c_o_l_e _d_e
_c_o_n_f_i_g_u_r_a_t_i_o_n _d_y_n_a_m_i_q_u_e _d_e _m_a_c_h_i_n_e_s_). Ce protocole permet a une
machine cliente d'obtenir des parametres de configuration reseau
aupres d'un serveur (qui, oh surprise !, fait pour cela tourner un
demon DHCPd). DHCP beneficie d'une compatibilite ascendante avec
BOOTP. Pour plus d'informations voir la RFC 2131 (anciennement RFC
1531 - Cf la section
Ce document traite du serveur DHCP pour Linux : le demon DHCPd. Il
existe un client DHCP pour Linux (le demon DHCPcd) que nous ne
decrivons pas ici mais qui peut etre trouve aux adresses suivantes :
Site primaire: ftp.kobe-u.ac.jp /pub/PC-UNIX/Linux/network/dhcp 32kB
dhcpcd-0.65.tar.gz Miroir: sunsite.unc.edu
/pub/Linux/system/network/daemons 32kB dhcpcd-0.65.tar.gz
Je vous invite par ailleurs a consulter le mini-howto sur DHCPcd.
22.. LLee sseerrvveeuurr DDHHCCPPdd ppoouurr LLiinnuuxx
Il existe plusieurs serveurs DHCP disponibles pour les OS U*X-like (a
la Unix), aussi bien payants que dans le domaine public. J'ai pu
experimenter avec succes celui de Paul Vixie/ISC. J'utilise
actuellement la version 5.0.14 aupres avoir utilise la Beta-5.0.9. Ce
ne sont pas des versions specifiques a Linux mais elles compilent
facilement et fonctionnent (pas si facilement !). Vous pouvez en
obtenir les dernieres version aux adresses suivantes :
http://www.isc.org/dhcp/dhcp-beta.html (pas souvent mise a jour
toutefois)
ou, la derniere version a l'heure actuelle :
ftp://ftp.isc.org/isc/dhcp/DHCPD-BETA-5.16.tar.gz
Il n'y a plus de distributions de DHCP a ftp.vix.com. Elles sont
desormais a ftp.isc.org.
NB!!! LISEZ ATTENTIVEMENT le fichier README avant de compiler et
d'installer DHCPd. Il contient des informations specifiques pour
Linux.
33.. CCoonnffiigguurraattiioonn dduu nnooyyaauu
L'option MULTICAST doit etre activee dans le noyau; evidemment, les
fonctions TCP/IP doivent etre elles aussi activees :-)
44.. CCoonnffiigguurraattiioonn
ifconfig -a doit donner les renseignements suivants :
______________________________________________________________________
dhcps:~$ ifconfig -a
eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62
inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2875542 errors:0 dropped:0 overruns:0
TX packets:218647 errors:0 dropped:0 overruns:0
Interrupt:11 Base address:0x210
______________________________________________________________________
Si la mention 'MULTICAST' n'apparait pas, vous devez re-configurer le
noyau avec l'option MULTICAST (et rebooter evidemment). C'est la seule
manipulation necessaire pour mettre en place le 'multicasting'.
nestat -rn doit avoir cette tete la :
______________________________________________________________________
dhcps:~$ netstat -rn
Kernel routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 101 eth0
______________________________________________________________________
c'est a dire que vous avez un routage 'multicast' via votre carte
Ethernet.
55.. PPrroobblleemmeess aavveecc llee mmuullttiiccaassttiinngg
Si la commande route add -host 255.255.255.255 eth0 repond
255.255.255.255: Unknown host, essayez d'ajouter dans le fichier
/etc/hosts la machine bidon ayant pour adresse IP 255.255.255.255 et
lancez la commande route add -host bidon eth0. Ca devrait marcher.
Sinon, essayez avec des utilitaires reseaux plus recents et/ou faites
la mise a jour du noyau.
66.. CCoonnffiigguurraattiioonn ddee DDHHCCPPdd
Lisez les docs fournies avec le package, qui sont trop complexes pour
etre detaillees ici.
77.. PPeeuutt--oonn llaanncceerr DDHHCCPP ssuurr uunnee mmaacchhiinnee aavveecc pplluussiieeuurrss ccaarrtteess EEtthheerrnneett
??
D'apres la liste de distribution dhcp (Cf la section 'ressources sur
Internet' a la fin de ce document), c'est possible avec le dernier
noyau (2.0.31 a ce jour) et la derniere version de DHCPd (5.0.15 a ce
jour). D'apres la liste de distribution dhcp-server, Linux 2.0.31 a du
code SO_BINDTODEVICE qui lui permet de distinguer les interfaces
physiques, si bien que la derniere version de DHCPd devrait fontionner
avec 2 interfaces Ethernet a la fois sous Linux. Cette possibiliteest
toutefois en phase de developpement beta. Je ne l'ai pas verifiee mais
je compte le faire pour la prochaine version de ce Howto.
MERCI de ne pas me demander les sources du noyau 2.0.31. C'est un pre-
patch non officiel a l'heure ou j'ecris ces lignes.
88.. DDNNSS ddyynnaammiiqquuee
Une integration des serveurs DNS et DHCP peut permettre de realiser un
"DNS dynamique". Vous pouvez vous referer aux RFCs 2136 et 2137.
Certains serveurs DHCP et DNS peuvent avoir des mecanismes specifiques
pour mettre a jour les informations du DNS. BIND v.8 (aussi developpe
par ISC) permet des mises a jour dynamiques. J'espere que DHCPD et
BIND seront integres prochainement.
J'ai ecrit un programme en Python, qui automatise l'ajout d'une
machine aux tables DHCP et DNS. Si vous voulez plus d'informations sur
ce sujet, ecrivez-moi a
[email protected]. Il n'est pas conforme aux
RFCs, mais il fait le sale boulot a votre place.
99.. RReessssoouurrcceess ssuurr IInntteerrnneett
+o
http://www.isc.org/dhcp.html
C'est la page web du DHCP de l'ISC. Vous pouvez y trouver beaucoup
d'informations. C'est d'ailleurs mon site prefere.
+o
http://www.isc.org/bind.html.
Informations sur BIND v.8.
+o
http://www-leland.stanford.edu/%7Ellurch/win95netbugs/faq-c.html
Une aide tres complete pour DHCPd sous Windaube-95
+o
http://www.bucknell.edu/~droms/dhcp/index.html
Un tres bon FAQ sur DHCP, beaucoup de liens (par Ralph Droms).
+o
http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html
Un bon FAQ sur DHCP en general. Beaucoup d'infos, une liste de
ressources (par John Wobus).
Les listes de distribution :
+o
[email protected] - liste sur le DHCPd de ISC/Vixie.
+o
[email protected] - liste sur le DHCPd de Bucknell.