Rappels S2
Le protocole
Serveur Client Serveur (non sélectionné) (sélectionné) V Début V | _____________/|\_____________ | |/ DHCPDISCOVER | DHCPDISCOVER \| | | | Détermine | Détermine une config. | la config. |\ | ____________/| | \_________ | /DHCPOFFER | | DHCPOFFER\ |/ | | \ | | | Collecte les réponses | | \| | | Selectionne une config. | | _____________/|\_____________ | |/ DHCPREQUEST | DHCPREQUEST \| | | | | | Enregistre | | la config. | | _____________/| | |/ DHCPACK | | Configuration terminée | | | | . . . . . . | | | | Déconnexion | | |\_____________ | | | DHCPRELEASE \| | | | | | clos le bail v FIN v
Le service et serveur DHCP ont les rôles de :
- Louer une adresse IP aux matériels qui n'ont pas d'adresse IP
- Confier une adresse IP statique pour les matéreils qui ont une réservation
Les données fournies par le DHCP sont :
- [toujours] une adresse IP et son masque dans une plage définie dans la config du serveur.
- [toujours] une adresse de passerelle : le routeur de sortie du réseau.
- [toujours] un bail de location : la durée d'autorisation d'utilisation de l'adresse.
- [souvent] des adresses de DNS
- un nom de domaine
- un nom de machine dans le domaine (en cas de réservation)
- d'autres options ?
Le protocole DHCP fonctionne sur les ports 67 et 68. Il n'est pas routable car il utilise des trames en boradcast MAC.
Le protocole DHCP fonctionne comme suit :
- DHCPDISCOVER : (broadcast) Le PC recherche un serveur DHCP dans le réseau connecté.
- DHCPOFFER : (broadcast) Les serveurs répondent au client avec une offre de configuration (IP, masque, etc...).
- DHCPREQUEST : (broadcast) Le PC demande aux serveurs la confirmation des paramètres reçus d'un serveur et décline implicitement les autres offres.
Généralement, c'est le plus rapide qui est choisi. Le plus rapide est souvent le plus proche en termes de sauts entre les switchs. - DHCPACK : (unicast) le serveur envoie un accusé de réception au PC. Il approuve les paramètres du client et confirme les paramètres.
- DHCPRELEASE : Le client informe le serveur que l'IP est libérée avant la fin du bail.
- DHCPINFORM : Le client effectue une demande d'information, sur la config actuelle du réseau, au serveur.
Durant la procédure, le serveur ou le client peuvent refuser la demande ou l'offre.
Si la demande n'est pas approuvée après dhcpRequest, le serveur envoie un DHCPNAK : refus du serveur au client demandeur (/ex. l'adresse demandée est déjà allouée depuis qu'elle a été proposée).
Si le client, après DHCPACK, trouve que l'adresse ne lui convient pas ou qu'elle est invalide selon lui (/ex. l'IP est une adresse de réseau), il envoie un refus DHCPDECLINE.
Au milieu du bail, le client effectue une nouvelle demande dhcpREQUEST pour prolonger le bail.
le serveur peut accepter avec un dhcpACK ou refuser par un dhcpNACK.
Sans réponse du serveur, le client refait sa demande au bout de 87% du temps et sinon, il perd son adresse à l'échéance du bail.
Conditions particulières
Réservations d'adresses
Il est possible de réserver une adresse IP particulière à un matériel spécifique en fonction de son adresse MAC. Cela est utilisé surtout pour les serveurs.
Recoupement d'étendues
Il est possible de configurer plusieurs serveurs avec la même étendue. Ils se partageront alors la distribution d'adresses.
À noter que si les étendues se recoupent ou se supperposent, cela ne soulève pas de problème. Les serveurs effectuent un ping de vérification que l'adresse soit libre avant de la proposer.
Répartir la charge avec DHCP
Répartition entre les serveurs DHCP
Lors de la réponse des serveurs (DHCPOFFER), le client choisi généralement le premier qui répond : le plus rapide ou le plus proche en termes de sauts.
Cela induit que deux cleints utiliseront chacun son serveur en fonction de la "proximité" de celui-ci.
On a donc une forme de répartition de charge entre les serveurs.
Répartition entre les services proposés
Cette répartition entre les serveurs DHCP peut être mise à profit pour effectuer une répartition de charge supplémentaire entre :
- les étendues différentes
- les routeurs et passerelle avec une option différente entre les deux serveurs (option routers)
- les serveurs DNS avec l'inversion des serveurs DNS principal/secondaire dans l'option domain-name-servers
Voir les exemples plus loin
Configuration de isc-dhcp-server (Linux)
Le fichier de configuration type d'un serveur isc-dhcp-server est dans le dossier /etc/isc-dhcp-server/dhcpd.conf
Partie commune
Configuration globale par défaut
icimax-lease-time 240; default-lease-time 240; deny unknown-clients; option domain-name "momdomaine.com"; option domain-name-servers hote1.momdomaine.com, hote2.momdomaine.com, 192.168.1.250, 192.168.1.251; option routers 192.168.1.254; # passerelle par défaut pour la config
Exemple d'étendue d'adresses
Configuration particulière de l'étendue : intervalle d'adresses et paramètres de la plage.
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.20; range 192.168.1.110 192.168.1.120; option broadcast-address 192.168.1.255; option routers 192.168.1.253; # on peut en mettre plusieurs }
Exemple de réservations d'adresse
Réservations individuelle
Donner une adresse fixe à un hôte sur la base de son adresse MAC. Ajout d'autres paramètres spécifiques
host hote5 { hardware ethernet 08:00:00:a2:5f:34; fixed-address 192.168.1.215; server-name "bootp.momdomaine.com"; }
Réservations de groupe
Un groupe permet de définir des paramètres communs aux hôtes du groupe
group { # définir la passerelle du groupe d'hôtes option routers 192.168.1.253; # donner un nom de domaine à un hôte host hote3 { hardware ethernet 08:00:00:11:d2:3d; option host-name pc_num3; } # donner une adresse fixe à un hôte host hote4 { hardware ethernet 08:00:00:cc:a0:b1; fixed-address 192.168.1.104; } }