TP DHCP Le protocole DHCP (pour Dynamic Host Configuration Protocol) a été présenté pour la première fois en octobre 1993, et est défini par la RFC 1531, modifiée et complétée par les RFC 1534, RFC 2131 et RFC 2132. Son rôle est de permettre à un poste sur un réseau local (filaire ou WiFi) d'obtenir d'un serveur DHCP différents paramètres de configuration réseau, nécessaires pour avoir accès au réseau : - adresse IP ; - masque de sous-réseau ; - adresse IP de la passerelle par défaut ; - adresse IP d'un serveur DNS - etc Toutes ces informations ont une durée limitée (bail). Le protocole DHCP est très souvent mis en œuvre par les administrateurs de parc de stations car il évite de devoir configurer chaque machine du réseau individuellement et offre l'énorme avantage de centraliser la configuration des stations sur une unique machine : le serveur DHCP. Le principal inconvénient de DHCP est qu'en cas de panne du serveur DHCP, plus aucune station n'accède au réseau. Contexte de travail Vous disposez d un serveur Linux Debian, ainsi que des clients Windows (XP / 7) et Linux Debian. L objectif est de configurer le serveur Linux pour l attribution automatique d adresses IP ; Le serveur est connecté à 2 sous réseaux et à Internet (voir ci-dessous). il sert de passerelle pour que les postes clients accèdent à l extérieur (Internet). Internet Serveur Linux Poste Windows Poste Windows Poste Linux Poste Linux BTS-SIO TP_DHCP.doc 1/5
Travail à faire : 1. Dans Virtual Box, menu Fichier\Paramètres\Réseau, créez deux nouveaux réseaux, - Le premier réseau aura la plage 10.0.1.x / 24 - Le second aura la plage 10.0.2.x / 24 2. La machine serveur Debian doit avoir 3 cartes réseau : - La première reliée au réseau du lycée (connexion pont, pour avoir accès à Internet) ; - La seconde reliée au sous-réseau 10.0.1.x ( «réseau privé hôte» ); - La troisième reliée au sous-réseau 10.0.2.x ( «réseau privé hôte» ); 3. Chargez votre machine Debian, ou bien le modèle fourni par le professeur. Vérifiez votre configuration IP : commande ifconfig De combien d interfaces dispose votre serveur? Les paramètres vous semblent-ils cohérents? Quelle est (ou sont) l'adresse de votre machine? Quelle est l'adresse de votre passerelle? Pouvez-vous accéder à Internet? 4. Configurez l'adresse IP des 2 interfaces reliées aux sous réseaux. Le serveur doit avoir une adresse statique sur chaque sous réseau, puisque c'est lui qui va distribuer les adresses aux clients DHCP Exemple (à adapter à votre configuration) : ifconfig eth1 192.168.1.1 Attention, pour rendre permanent cette configuration il convient de suivre les consignes en annexe 1. Attribuez une adresse IP à chaque interface (les adresses pour le serveur devraient être 10.0.1.254/24 et 10.0.2.254/24) 5. Installez le serveur DHCP Pour installer isc-dhcp3-server : apt-get install isc-dhcp-server 6. Créez le fichier d'inscription /var/lib/dhcp/dhcpd.leases s'il n'existe pas encore. Ce fichier doit être créé, à défaut le serveur DHCP ne pourra pas démarrer. Il suffit de créer un fichier vide. Pour cela, utilisez nano en tant que root : nano /var/lib/dhcp/dhcpd.leases 7. Pour activer le service : /etc/init.d/isc-dhcp-server start (ou mieux service isc-dhcp-server start) Pour arrêter le service : /etc/init.d/isc-dhcp-server stop (ou mieux service isc-dhcp-server stop) Pour afficher le fichier journal (utile en cas d'erreur au démarrage), tapez cat /var/log/syslog 8. Configuration : Avec l éditeur cat, vérifier l'interface déclarée dans : /etc/default/isc-dhcp-server Avec l éditeur nano modifier le fichier /etc/dhcp/dhcpd.conf, cela permet de définir les paramètres de configuration du serveur DHCP (plage d'adresses, paramètres distribués ) Vous trouverez en annexe 2 un exemple de configuration ; à vous de l adapter. Remarques : - dans un premier temps vous ne créerez aucune réservation d adresses ; - la durée du bail devrait être limitée à 30 secondes (pour pouvoir faire des tests plus aisément). 9. Test de la configuration sur les postes clients XP Placez vos clients XP/7 dans le réseau 10.0.1.x Lancez l invite de commande, sur le poste client XP, libérez puis renouvelez l'adresse en utilisant les commandes : BTS-SIO TP_DHCP.doc 2/5
tapez : ipconfig /release (pour libérer l'adresse) tapez : ipconfig /renew (pour la renouveler) Tapez la commande ipconfig /all et notez la configuration des postes. 10. Modification : Modifiez la plage d'adresses du serveur DHCP. Redémarrez le service. Renouvelez les adresses des stations XP. Obtenez-vous le résultat escompté? 11. Ajouter une réservation de bail client Réserver une adresse IP à une machine spécifique c'est associer une adresse MAC à une adresse IP. Notez l adresse MAC d un poste XP client DHCP. Modifiez la configuration du serveur DHCP pour attribuer une adresse fixe au premier poste client XP. Qu'avez-vous ajouté dans le fichier de configuration du serveur? Relancez le service «serveur DHCP» (notez la commande utilisée) Forcez le renouvellement des adresses IP des clients XP et vérifiez. 12. Gestion du 2e réseau Modifiez (si nécessaire) le fichier /etc/default/isc-dhcp-server afin que le serveur «écoute» les deux interfaces Ajoutez (si nécessaire) le 2e réseau dans /etc/dhcp/dhcpd.conf Redémarrez le service DHCP Placez vos clients linux dans le réseau 2, et vérifiez qu'ils reçoivent bien les adresses prévues. Vérifiez que le sous réseau 1 est toujours opérationnel. 13. Pour les étudiants option SISR (et pour les autres s ils sont très forts) : Etudiez la possibilité d'atteindre la passerelle du réseau pour permettre aux stations, par translation d'adresse au niveau du serveur Linux (NAT/PAT), d'accéder à Internet. Annexe 1 : configuration des interfaces réseau. Pour appliquer une configuration à une interface, on utilise la commande ifconfig, avec des arguments correspondants à cette configuration. Par exemple, pour utiliser l'adresse IPv4 192.168.0.1 et le masque de sous-réseau 255.255.255.0 sur l'interface eth0, en tant que root, tapez : # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 Inconvénient : cette méthode est volatile (oubliée à l extinction de la machine). Pour enregistrer la configuration réseau, on édite le fichier «/etc/network/interfaces» Exemple minimaliste auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp Explication : Les deux premières lignes existent toujours ; elles concernent l interface de bouclage (ne rien changer). Les deux suivantes concernent la première interface filaire Ethernet (eth0) La directive «auto <nom_interface>» active l interface <nom_interface> lors du démarrage La directive «iface <nom_interface> inet dhcp» permet d obtenir une adresse IP automatiquement (nécessite un serveur DHCP pour configurer l interface <nom_interface>). BTS-SIO TP_DHCP.doc 3/5
Exemple élaboré auto lo eth0 allow-hotplug eth1 iface lo inet loopback iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 172.16.0.1 iface eth0 inet6 static address 2001:db8::6726 netmask 32 gateway 2001:db8::1 dns-nameservers 2001:db8::12 iface eth1 inet dhcp La directive allow-hotplug active l interface dès que l interface physique est connectée au réseau. La directive «iface <nom_interface> inet static» impose une adresse IP statique à l interface <nom_interface> Les directives suivantes contiennent respectivement : Address l'adresse IP attribuée à l'interface ; Netmask pour une configuration IPv4, le masque de sous-réseau ; pour une configuration IPv6, la longueur du préfixe correspondant au sous-réseau ; Gateway l'adresse IP de la passerelle ; dns-nameservers les adresses IP de vos serveurs DNS. La directive dns-nameservers ne peut être utilisée qu'après avoir installé le paquet resolvconf, qui n'est pas nécessairement préinstallé avec Debian. Si le paquet resolvconf n est pas installé, vous devrez faire vous-même la configuration associée au DNS en éditant le fichier «/etc/resolv.conf» comme suit : nameserver 172.16.0.1 domain example.com Attention Les adresses IP utilisées dans les exemples ci-dessus ne sont pas destinées à être recopiées littéralement. Vous devrez adapter les adresses IP à la configuration réelle de votre réseau. Le paquet ifupdown : syntaxe de commande simplifiée Chaque fois que l on modifie le fichier «/etc/network/interfaces», il est nécessaire de redémarrer le service réseau. Remarque : vous trouverez des tutoriels qui vous proposent d utiliser la commande «service networking restart» ou «/etc/init.d/networking restart», cette commande est obsolète, en effet elle ne réussit pas toujours à réactiver toutes les interfaces. Le paquet ifupdown contient 2 commandes : ifup et ifdown. Elles offrent une configuration de réseau de haut niveau à l aide du fichier de configuration «/etc/network/interfaces». BTS-SIO TP_DHCP.doc 4/5
Liste des commandes de base de configuration du réseau avec ifupdown commande action ifup eth0 active l interface réseau eth0 en appliquant la directive «iface eth0» ifdown eth0 désactive l interface réseau eth0 Avertissement Ne pas utiliser les outils de configuration de bas niveau tels que ifconfig ni les commandes ip pour configurer une interface se trouvant dans l état actif («up»). Annexe 2 : Exemple de configuration du fichier dhcpd.conf # vous n'avez pas de DNS dynamique sur le réseau ddns-update-style none; # ici il s'agit du réseau 192.168.1.0 subnet 192.168.1.0 netmask 255.255.255.0 { #La plage d'adresse disponible pour les clients range 192.168.1.10 192.168.1.20; # Les clients auront cette adresse comme passerelle par défaut option routers 192.168.1.254; # Ici c'est le serveur de noms, on peut en mettre plusieurs option domain-name-servers 192.168.1.1; # Enfin on leur donne le nom du domaine option domain-name "turgot-paris.info"; # Et l'adresse utilisée pour la diffusion option broadcast-address 192.168.1.255; # Le bail à une durée de 86400 s par défaut, soit 24 h # On peut configurer les clients pour qu'ils puissent demander # une durée de bail spécifique default-lease-time 86400; # On le laisse avec un maximum de 7 jours max-lease-time 604800; #Ici on désire réserver des adresses à des machines group { #use-host-decl-names indique que toutes les machines dans l'instruction «group» # auront comme nom, celui déclaré dans l'instruction host. use-host-decl-names true ; # ici définir les machines host m1 { hardware ethernet 00:80:23:a8:a7:24; fixed-address 192.168.1.125; } # End m1 host m2 { hardware ethernet a0:81:24:a8:e8:3b; fixed-address 192.168.1.126; } # End m2 } # End Group } # End dhcp.conf BTS-SIO TP_DHCP.doc 5/5