SRT 2 DHCP
Dynamic Host Configuration Protocol ● Protocole Réseau servant à assurer la configuration automatique des paramètres IP d'une station ● Adresse IP, masque de sous-réseau principalement ● Passerelle par défaut, serveurs DNS, etc. ● Basiquement, configuration statique : chaque machine configurée à la main – Trop lourd sur grands réseaux ● Première fois défini en 1993, RFCs 1531, 1534, 2131, 2132
Avantages de DHCP ● Traitement d'un grand nombre de machines plus rapidement ● Modification de paramètres centralisée sur serveur DHCP – Repercutée sur les machines ● Gestion plus souple des adresses IP ● Possibilité d'avoir plus de machines que d'adresses IP – dans l'environnement FAI : tous les clients ne sont pas connectés en même temps – en statique, une adresse par machine – DHCP peut affecter une adresse statique à la même machine tout le temps
Fonctionnement du protocole ● Client : envoi paquet DHCP DISCOVER pour demande d'adresse – sur port UDP 67 en diffusion, contient adresse MAC du client ● Serveur : réponse DHCP OFFER propose une adresse – sur port UDP 68 du client, identifié par son adresse MAC – du serveur proposés au client – client prend première réponse reçue ● Client : renvoi DHCP REQUEST en diffusion – serveur proposée – confirme au serveur l'acceptation de – informe autres serveurs du rejet de leur proposition
Fonctionnement du protocole (suite) ● Serveur : renvoi DHCP ACK – assigne + masque – durée du bail – paramètres T1 et T2 définissant comportement du client en fin de bail – éventuellement : ● adresse IP de la passerelle par défaut ● adresses IP des serveurs DNS ● adresses IP des serveurs NBNS (WINS) ● des dizaines d'autres options
Renouvellement du bail octroyée pour une durée limitée transmise au client – Bail ou Lease time ● Options T1 et T2 définissent comportement du client en vue de la fin du bail – T1 : après combien de temps le client demande renouvellement du bail (en général, moitié de la durée du bail) – T2 : une fois T1 écoulé, après combien de temps le client s'adresse à d'autres serveurs ● si le serveur n'a pas répondu, par exemple parce-qu'il est HS. ● Si toujours rien à la fin du bail, le client n'a pas d'adresse IP
Relais DHCP ● Client et serveur sont sur même réseau IP, car paquet en diffusion ● Possibilité d'avoir le serveur sur réseau différent, grâce à un relais DHCP ● Machine intermédiaire, écoute sur réseau du client les requêtes ● Relaie au serveur dont il connaît l'adresse IP statique ● Programme dhcrelay
BOOTP : Bootstrap Protocol ● Bootstrap : amorce ● Protocole permettant à une machine d'obtenir + un système d'exploitation à charger en mémoire ● 1) Détermination d'adresses et sélection du fichier de démarrage par BOOTP ● 2) Transfert du fichier de démarrage, typiquement par TFTP, SFTP ou encore FTP ● RFC 951 ● Les serveurs DHCP supportent généralement BOOTP ● Auparavant nécessité d'une disquette de démarrage contenant BOOTP ● Maintenant, inclus dans certains BIOS
Preboot Execution Environment ● Prononcez pixie ● Tout comme BOOTP, PXE permet à une station de travail de démarrer depuis le réseau en récupérant un système d'exploitation qui se trouve sur un serveur ● Souvent inclus dans les BIOS ● Différence principale avec BOOTP : le protocole PXE n'inclut pas la demande d'adresse IP. PXE doit travailler avec DHCP pour obtenir une adresse IP. ● Un serveur PXE travaille donc avec un serveur DHCP – Peuvent être sur 2 machines différentes ou sur la même machine
PXE ● Le boot par PXE s'effectue en plusieurs étapes : ● Recherche d'une adresse IP sur un serveur DHCP ainsi que du fichier à booter ● Téléchargement du fichier à booter sur un serveur Trivial FTP. ● Exécution du fichier à booter. ● La taille du fichier à booter ne permet pas de booter directement un noyau Linux, par exemple, mais il faut que le logiciel à booter le télécharge et l'exécute lui même.
DHCP sous Linux ● Principalement le très célèbre dhcpd fourni par l'Internet Systems Consortium ● Configuration dans... /etc/dhcpd.conf ● Comportement du serveur : Parameters ● Configuration du réseau : Declarations ● Declaration de portée globale ou locale ● Divisé en 2 parties : – Parameters and declarations globales – Declarations locales ● Base de donnée de bails : /var/lib/dhcp/dhcpd.leases
dhcpd.conf FICHIER TYPE dhcpd.conf parametres globaux netmask subnet_mask { } host hostname { } shared-network nom { netmask subnet_mask { } netmask subnet_mask2 { } host hostname { }
dhcpd.conf group { # parametres communs à l'ensemble des déclarations contenues dans le group host hostname {} } group { # parametres communs à l'ensemble des déclarations contenues dans le group host hostname {} netmask subnet_mask {} } group { #parametres communs à l'ensemble des déclarations contenues dans le group host hostname {} netmask subnet_mask {} shared-network nom { netmask subnet_mask {} netmask subnet_mask2 {} host hostname {} }
dhcpd.conf subnet {} définit un reseau IP avec adresses dynamiques si on a plusieurs réseaux IP sur une interface (plusieurs subnets {} ), on va les mettre dans un shared-network {} on peut également avoir des mapping statiques avec host {] pour affecter une adresse IP particuliere a un host group { } permet simplement de réunion dans une même section, différentes sections avec des parametres en commun.
dhcpd.conf exemple # Paramètres par défaut hérités par les déclarations default-lease-time 600; max-lease-time 7200; option subnet-mask ; option broadcast-address ; option routers ; option domain-name-servers , ; option domain-name "example.com"; subnet netmask { range ; }
dhcpd.conf ● default-lease-time time; ● spécifie la durée en secondes de la concession attribuée à un client qui n’a pas demandé une durée spécifique. ● max-lease-time time; ● spécifie la durée maximale en secondes de la concession attribuée à un client qui a demandé une durée spécifique. ● Certains serveurs nécessiteront le paramètre – ddns-update-style interim; – qui définit le type de mise à jour DNS des machines (...) – apparement deprecated dans les nouvelles versions
dhcpd.conf exemple Affectation DHCP statique host apex { # n'importe quel nom ici... option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address ; } Définir une déclaration host {} nécessite une déclaration subnet... {} pour le même réseau
Fichier de démarrage ● Options de démarrage appelées par le script de démarrage service /etc/init.d/dhcpd : ● /etc/sysconfig/dhcpd ● # Command line options here ● DHCPDARGS=eth0 # définit le démarrage du serveur seulement sur l'interface eth0 ● L'interface doit être up pour que le serveur se lance ● Un tour dans /var/log/messages indispensable pour vérifier le bon démarrage du serveur dhcpd ● /var/lib/dhcp/dhcpd.leases pour voir les baux affectés
Client DHCP ● Postes Windows ou Unix / Linux ● Sur postes linux, le client se nomme dhclient ● Est lancé au démarrage de l'interface si configurée en dhcp ● Ubuntu / Debian /etc/network/interfaces – auto eth0 – iface eth0 inet dhcp ● Red Hat / Mandriva /etc/sysconfig/network-script/ifcfg-eth* – DEVICE=eth0 – BOOTPROTO=dhcp ● On peut lancer le client dhclient à la main