Dynamic Host Configuration Protocol (IP v4), les fondamentaux

DHCP (Dynamic Host Configuration Protocol) est un protocole standard d’attribution dynamique et automatique des adresses sur un réseau IP.

Il s’appuie sur le protocole BootP et permet d’une façon générale d’administrer à distance toute la configuration IP des machines du réseau. En conséquence, le protocole DHCP offre un énorme avantage.

Autrement, qu’est-ce que le BootP ? Bootstrap Protocol est un protocole qui permet à un client d’interroger un serveur pour identifier son adresse IP. Cette question réponse est basée sur l’adresse matérielle (adresse MAC).

Trois types de serveurs Windows peuvent être autorisés comme serveur DHCP au sein d’un environnement Microsoft Windows Active Directory : serveur contrôleur de domaine, serveur membre ou serveur autonome. Au-delà de l’aspect Microsoft, la plupart des système d’exploitation offre cette fonctionnalité DHCP.

Sur le plan linguistique, un bail donne des baux au pluriel.

 

Obtention d’un bail DHCP

 

La demande émane du client, ainsi elle est initiée par le client DHCP. Les étapes sont comme suit :

  • Client : demande de bail en diffusant le message DHCPDISCOVER à l’aide d’une version limitée du protocole TCP/IP au cours du démarrage,
  • Serveur : réponse, disposant d’une adresse IP valide, par le message DHCPOFFER
  • Client : si celui-ci reçoit une offre d’adresse IP, il diffuse le message DHCPREQUEST. Autrement, il renvoie le message DHCPDISCOVER au bout de 2 secondes, 4, 8 et 16 ; après quoi il utilise d’une manière aléatoire une adresse IP comprise entre 169.254.0.1/16 et 169.254.255.254/16. Cela décrit ce qu’est un APIPA (Automatic Private Internet Protocol Addressing), un service réseau utilisé par Windows permettant de s’attribuer automatiquement une adresse IP sans l’aide d’un serveur DHCP (adressage réseau : 169.254.0.0/16).
  • Serveur : le serveur qui a émis, proposé et accepté l’offre accuse réception en diffusant le message DHCPACK (composé du bail et des informations de configuration).

 

Renouvellement d’un bail DHCP

 

Il est également initié par le client DHCP, la séquence est comme ceci :

  • Client : un client DHCP essaie de renouveler automatiquement son bail à la moitié (50%) de sa durée. Il renouvelle alors le message DHCPREQUEST au serveur fournisseur du bail.
  • Serveur : ce dernier est censé lui retourner le DHCPACK
  • Client : si le serveur DHCP ne répond pas, le client renouvelle sa demande de renouvellement de bail à 75% de sa durée, puis à 87,5%, puis plus rien du tout.
  • Serveur : une demande de renouvellement de bail non valide (déplacement d’une machine sur un autre segment réseau, doublon) aboutit à un message DHCPNAK qui astreint le client à obtenir une nouvelle adresse IP.
  • Client : il est possible de demander manuellement le renouvellement d’un bail IP par la commande ipconfig /renew (un message DHCPRENEW sera adressé au serveur) ou de demander manuellement la résiliation de celui-ci par la commande ipconfig/ release (un message DHCPRELEASE sera adressé au serveur).

 

Etendues, options et multidiffusion

 

Il est possible de regrouper à l’aide de l’étendue globale plusieurs étendues DHCP. Cela facilite par exemple la gestion en permettant de ne pas avoir à supprimer ou créer des étendues existantes.

Les options DHCP, ou les informations de configurations additionnelles, peuvent être placées sur le serveur DHCP ou les étendues DHCP.

La création des adresses de multidiffusion est généralement pour permettre à des clients dits MADCAP (Multicast Address Dynamic Client Allocation Protocol) à obtenir des adresses IP via un système DHCP (DCP plus exactement dans le cas présent). Ces clients sont situés au-delà d’un routeur, lui aussi comprenant le MADCAP.

La plage d’adresses de multidiffusion utilise une classe d’adresses supplémentaire ; la classe D, qui comprend les adresses IP dans la plage 224.0.0.0 à 239.255.255.255. Les adresses de cette classe ne sont utilisées que pour la multidiffusion et non pour les étendues DHCP normales.

 

DHCP et réseaux routés

 

Les possibilités de déployer du DHCP au sein d’un réseau routé complexe sont multiples:

  1. Inclure un serveur DHCP dans chaque sous-réseau,
  2. Configurer un seul DHCP comprenant toutes les étendues et configurer le(s) routeur(s) selon la RFC 1542 afin de laisser passer les trames relatives à l’adressage dynamique pour la multidiffusion,
  3. Configurer un seul DHCP comprenant toutes les étendues et configurer un agent de relais DHCP. En fin de compte, cette dernière possibilité est la plus classe et la plus souple.

 

Il est possible naturellement de mettre une forme de redondance autour de cette fonctionnalité DHCP.

 

Qu’est-ce qu’une adresse IPv4 ?

 

Une adresse IP v4 est composée de 4 octets (1 octet allant de 0 à 255 en décimal, ou de 00000000 à 11111111 en binaire). Une adresse IP v4 seule ne suffit pas à différencier deux réseaux. Il faut ainsi mettre un masque de sous-réseau qui est aussi composé de 4 octets.

D’une manière globale, sans vouloir faire dans l’épicerie fine, nous pouvons retenir les éléments suivants concernant les masques réseaux pour les trois classes principales :

  • 1 réseau de classe A  (/8) : 10.0.0.0
  • 16 réseaux de classe B (/16) : 172.16.0.0 à 172.31.0.0
  • 256 réseaux de classe C (/24) : 192.168.0.0 à 192.168.255.0

 

Pour de plus amples détails, vous pouvez consulter la RFC 1918. Le respect de cette norme n’est pas une évidence pour tout le monde, bref c’est hallucinant. Je ne comptabilise plus les situation où le LAN et WAN sont adressés avec des plan d’adressage IP publiques. En un mot, cela fout la grouille !

 

Calculs réseaux

 

Il est relativement facile de calculer l’adresse réseau d’une adresse IP lorsque le masque réseau est associé à la classe (A, B et/ou C soit 255.0.0.0, 255.255.0.0 et 255.255.255.0).

Cependant dans le cadre où le masque réseau n’est pas classique (A, B ou C), des calculs avancés sont nécessaires.

Pour obtenir l’adresse réseau d’une adresse IP, il suffit d’effectuer l’opération logique ET (fonction AND) entre l’adresse IP et le masque réseau.

Une étape intermédiaire, le passage en base 2, peut parfois être nécessaire afin de trouver une certaine forme de facilité en calcul mental, par exemple au cours d’un contrôle de connaissance durant lequel nous sommes privés de calculatrice scientifique.

Il faut reconnaître que ce passage par la base 2 (en binaire) facilite les calculs mentaux compte tenu de la petitesse et de l’efficacité de la table de vérité avec des uns et zéros.

Exemple :
Si on veut retrouver l’adresse réseau de l’adresse IP 192.168.1.200/26 (192.168.1.200/255.255.255.192), alors on commence par écrire nos adresses en binaire puis on effectue l’opération logique AND par groupe d’octets. Le résultat obtenu nous indiquera l’adresse réseau sous forme binaire.
192 AND 255 = 192
168 AND 255 = 168
001 AND 255 = 001
200 AND 192 = 192

Si notre adresse réseau est donc 192.168.1.192/26, alors cela signifie que le premier hôte aura l’adresse IP 192.168.1.193 avec un masque valorisé à 255.255.255.192

 

Rappel des quelques opérations logiques

 

La conversion (décimal /binaire) peut être établie comme suit :

1      = 0000 0001 = 2 ^ 0
2      = 0000 0010 = 2 ^ 1
4      = 0000 0100 = 2 ^ 2
8      = 0000 1000 = 2 ^ 3
16    = 0001 0000 = 2 ^ 4
32    = 0010 0000 = 2 ^ 5
64    = 0100 0000 = 2 ^ 6
128  = 1000 0000 = 2 ^ 7

Le bit à droite est couramment appelé bit de poids faible, tandis que le bit le plus à gauche est quant à lui appelé bit de poids fort (low-order bit and high-order bit en anglais). Pour une codification sur 8 bits, nous comptons finalement de 0 à 7 et cela de droite à gauche.
1100 0000 = (2 ^ 7 ) + (2 ^ 6) = 128 + 64 = 192. Concrètement, ceci illustre notre quatrième octet du masque réseau précédent.

Table de vérité, en binaire, de la fonction (opérateur logique) ET ou AND :

0 AND 0 = 0
0 AND 1 = 0
1 AND 1 = 1
1 AND 0 = 0

 

Subnetting et Surnetting

 

Ce sont deux méthodes qui consistent à travailler sur le masque d’une adresse IP, clairement dans le but d’agrandir ou de réduire le nombre de machines adressables ou encore le nombre de sous-réseaux.

Lorsqu’on a besoin de faire du subnetting ou du surnetting, on commence toujours par se poser les bonnes questions en matière de sous-réseaux : de toute évidence en nombre de clients IP.

Il existe une fonction mathématique pour calculer le nombre de bits à réserver sur le masque :
Calcul de nombre de machines : (2 ^ n) – 2 >= N
Calcul de nombre de sous-réseaux : (2 ^ n) >= N
Où n représente le nombre de bit réservés et N le nombre de machines par sous-réseau.

Exemple :
Nous disposons d’une plage d’IP de 192.168.0.0 à 192.168.9.0 avec un masque de 255.255.255.0 et nous avons besoin de créer des réseaux (sous-réseaux en l’occurence) contenant 300 machines chacun.
(2 ^ n) – 2 >= 300
donc n = 9, car 2 ^ 9 – 2 >= 510 ce qui est supérieur à 300.
2 ^ 8 étant inférieur et 2 ^ 10 étant trop grand … et cætera.
Il faut à présent calculer le nouveau masque de sous-réseau à partir de n (n est égal à 9)
L’adresse du masque de sous-réseau s’écrira, en binaire :
1111 1111.1111 1111.1111 1110.0000 0000 (les neuf premiers bits sont à zéro – n’oublions pas que nous comptons de droite à gauche) ce qui donne en décimal 255.255.254.0 soit /23 (les vingt-trois derniers bits sont à un).
Le pas étant égal à 2. A partir de là, on peut calculer l’adresse, la plage et le broadcast du premier sous-réseau.

Premier réseau :
Adresse : 192.168.0.0 /23
Plage : 192.168.0.1/23 à 192.168.1.254/23
Broadcast : 192.168.1.255 /23

Et ainsi de suite jusqu’a épuisement de nos plages.
2ème réseau : 192.168.2.0/23
3ème réseau : 192.168.4.0/23

 

Conclusion

 

Planifier sa configuration DHCP nécessite une bonne connaissance de son réseau global.

Il est évident que ces réseaux calculés ne seront fonctionnels que si les machines qui y sont hébergées peuvent communiquer. Il revient au routeur d’assurer ces communications multidirectionnelles en fonction du nombre de réseaux.

Le routeur devient ainsi le matériel actif de communication des réseaux informatiques dont le rôle est de déterminer le prochain nœud du réseau auquel un paquet de données doit être acheminé. Ce calcul est une fonction de l’adresse IP et du masque réseau.

Cet acheminement dont il est question doit toujours se faire le plus rapidement possible et empruntant le chemin le plus court.

Cela étant dit, un commutateur (switch) et un pare-feu (firewall) peuvent aussi router des paquets réseaux. Ce sont tous trois des matériels dotés d’intelligence. De tout évidence, il est  recommandé de ne pas cumuler les rôles sur un seul composant, c’est une règle stratégique de base.

Le moins que nous puissions dire est qu’un plan d’adressage IP ne doit pas se faire au gré du hasard, une bonne vision architecturale est nécessaire.

Share This