DHCPd sous Linux Paul Makeev, mac@RoSprint.net --- Adaptation francaise Eric Vinck, Eric.Vinck@mail.dotcom.fr 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 mac@rosprint.net. 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 dhcp-server@fugue.com - liste sur le DHCPd de ISC/Vixie. +o dhcp-v4@bucknell.edu - liste sur le DHCPd de Bucknell. .