DHCP Dynamic Host Configuration Protocol DHCP : Dynamic Host Configuration Protocol Permet la configuration des paramètres IP d une machine: adresse IP masque de sous-réseau l adresse de la passerelle par défaut l adresse des serveurs de noms DNS Protocole de haut niveau s appuyant sur UDP Amélioration (extension) du protocole BOOTP car configuration dynamique par un serveur DHCP Utilisation pour les ordinateurs portables Utilisation si espace adressable réduit pour des postes ne fonctionnant pas tous ensemble 1
Protocole de résolution d adresses Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la connexion : univ-st-etienne.fr Description........... : Intel() PO/100 M Mobile Connection Adresse physique.........: 00-0D-5E-B8-FF-9A DHCP activé........... : Oui Configuration automatique activée.... : Oui Adresse IP............ : 161.3.50.248 Masque de sous-réseau...... : 255.255.255.0 Passerelle par défaut...... : 161.3.50.1 Serveur DHCP........... : 161.3.192.128 Serveurs DNS........... : 161.3.1.11 161.3.1.42 NetBIOS sur TCPIP........ : Désactivé Bail obtenu........... : mercredi 20 avril 2005 08:32:44 Bail expirant.......... : mercredi 20 avril 2005 16:32:44 Protocole proche de BOOTP avec 3 possibilités Configuration manuelle (comme BOOTP) Configuration automatique Attribution d une adresse unique lors de la première connexion Choix de l adresse par le serveur Configuration dynamique Attribution d une adresse variable (configuration variable) suivant la position du poste Gestion de restrictions d accès Adresse louée pour un temps déterminé (bail de 1, 4, 8 heures ) 2
Protocole en plusieurs phases (client) : Découverte du (des) serveur(s) DHCP par le client Demande d un bail initial pour une adresse IP Demande de renouvellement de bail efus d une adresse IP Libération d une adresse IP Demande d informations supplémentaires (optionnel) Par le serveur : Suppression d un bail 8 types de message sont définis DHCP_DISCOVE (client->serveur) DHCP_OFFE (serveur(s)->client) DHCP_EQUEST (client->serveur) DHCP_DECLINE (client->serveur) DHCP_ACK (serveur->client) DHCP_NACK (serveur->client) DHCP_ELEASE (client->serveur) DHCP_INFOM (client->serveur) 3
Séquencement DHCP Messages échangés lors d une première demande (avec acceptation) Demande Demande initiale (Broadcast) DISCOVE Une proposition d adresse IP est contenue dans OFFE Plusieurs serveurs peuvent répondre avec des offres différentes (ou les mêmes) Le client choisit (souvent le 1er OFFE arrivé) Il renvoie son acceptation (EQUEST) Le serveur confirme (ACK) Sinon NACK (FC : should ou recommended ) Car il a pu donné l adresse à un autre poste dans l intervalle 4
Séquencement DHCP Messages échangés lors d une demande (avec refus du serveur) Séquencement DHCP Messages échangés lors d une demande (avec refus du client) 5
Demande avec refus Même démarrage (3 premières trames) Le client teste sa nouvelle adresse (AP gratuit) Si réponse d un autre poste, il refuse (DECLINE) Cas rare... Le serveur peut tester Un ping avant d envoyer l adresse en réponse Configurable sur un serveur Séquencement DHCP Messages échangés lors d un renouvellement 6
enouvellement de bail (enew) Une demande à mi parcours (50% du temps) Adressée au serveur accepté Si pas de réponse -> rien ebind Nouvelle demande à 87,5% A tous les serveurs Si pas de réponse, à 100% le bail s arrête On recommence la procédure complète Libération d un bail Envoi en Broadcast 7
Suppression autoritaire d un bail (NACK) Changement de réseau Utilisation après la fin du bail Format de la trame : Encapsulation dans UDP Port 67 (client-> serveur) et 68 (serveur-> client) Demande (DHCP_DISCOVE) IP source = 0.0.0.0 IP destination = 255.255.255.255 AU source : AU poste client AU destination = Broadcast éponse (DHCP_OFFE) IP source : IP serveur IP destination : 255.255.255.255 AU source : AU serveur AU destination : AU demandeur 8
Utilisation d un portable itinérant Connexion sur 2 sous-réseaux différents 192.128.2.135 MyPC Serveur DHCP 192.128.3.135 MyPC Sous-réseau : 192.128.2.0 Sous-réseau : 192.128.3.0 Pour être opérationnel sur chaque sous-réseau le PC doit changer d adresse IP en fonction de son lieu de connexion Problème si le client n est pas dans le sous-réseau du serveur Adresse broadcast ne franchit pas les routeurs 192.128.2.135 MyPC Serveur DHCP 192.128.3.135 MyPC Sous-réseau : 192.128.2.0 Sous-réseau : 192.128.3.0 9
DHCP inter-réseaux : Serveur relais (ou agent relais) Un poste sur chaque sous-réseau retransmet les demandes (ce poste peut être un routeur) Ce poste possède une adresse fixe et connaît le serveur Déroulement Les trames DHCP broadcast sont interceptées envoyées en Unicast par le serveur relais vers le serveur DHCP via un routeur Niveau DHCP : format de la PDU 0 8 16 24 31 Operation code Hardware type Long. Adr Phy Hops Transaction ID (4 octets) Seconds (2 octets) Flag (2 octets) Client address (4 octets) eturn Client Address (4 octets) Address of next bootstrap server (4 octets) Adresse IP routeur (4 octets) Physical client address (16 octets) Server hostname (64 octets) Boot file name (128 octets) Options (variable : peut atteindre 312 octets) 10
Signification des champs Code Opération : demande -> 1 ; éponse -> 2 Type de réseau physique : ethernet -> 1 Longueur d adresse physique : 6 pour ethernet Sauts : 0 par le client (incrémenté par chaque relais) ID de la transaction : permet de reconnaître la réponse parmi plusieurs demandes Seconds : temps écoulé depuis le démarrage du client Adresse IP du client : S il renouvelle son bail par exemple (il connait son adresse IP) Le client connaît son adresse IP, mais il a besoin d autres informations eturn Client Address IP : valeur positionnée par le serveur DHCP Signification des autres champs Adresse IP routeur : utilisée s il y a un serveur relais Physical Client Address: adresse physique (MAC) du client Format du champ option 1 octet code + 1 octet longueur + champ variable Identification des trames de gestion DHCP dans ce champs option: code 53 ; longueur 1 1 : DHCP_DISCOVE (client->serveur) 2 : DHCP_OFFE (serveur(s)->client) 3 : DHCP_EQUEST (client->serveur) 4 : DHCP_DECLINE (client->serveur) 5 : DHCP_ACK (serveur->client) 6 : DHCP_NACK (serveur->client) 7 : DHCP_ELEASE (client->serveur) 8 : DHCP_INFOM (client->serveur) 11