Afin de pouvoir com­mu­ni­quer sur des réseaux comme Internet, les systèmes par­ti­ci­pants né­ces­si­tent une adresse IP. Bien que cette dernière puisse être attribuée ma­nuel­le­ment, en pratique, la plupart des appareils ob­tien­nent aujourd’hui leur adresse de façon au­to­ma­tique. Pour ce faire, le protocole de com­mu­ni­ca­tion DHCP est utilisé. Celui-ci aide les systèmes cherchant à établir une connexion à acquérir les in­for­ma­tions né­ces­saires. À l’aube de l’in­for­ma­tique, des réseaux, etc., le Bootstrap Protocol, également connu sous le nom de BOOTP, assumait encore la fonction de ges­tion­naire d’adresses.

Qu’est-ce que le BOOTP (Bootstrap Protocol) ?

En septembre 1985, le Stanford Uni­ver­sity Network Group publiait dans RFC 951 la première version du Bootstrap Protocol (BOOTP). Développé en col­la­bo­ra­tion avec une équipe du fabricant de systèmes in­for­ma­tiques Sun Mi­cro­sys­tems, ce protocole de com­mu­ni­ca­tion per­met­tait pour la première fois aux terminaux et aux postes de travail sans disque dur utilisés à l’époque d’obtenir en plus de l’adresse IP des in­for­ma­tions telles que l’adresse de la pas­se­relle, l’adresse du serveur de démarrage et le registre du fichier de démarrage (né­ces­saires au char­ge­ment du système d’ex­ploi­ta­tion). Il vint remplacer le Reverse Address Re­so­lu­tion Protocol (RARP) utilisé jusqu’alors qui livrait ex­clu­si­ve­ment des adresses réseau et pouvait uni­que­ment être utilisé dans les sous-réseaux.

Le Bootstrap Protocol fait partie de la suite des pro­to­coles Internet et fonc­tionne – à l’instar de nombreux autres pro­to­coles de la pile – selon le modèle du client-serveur. La com­mu­ni­ca­tion de messages en vue de la trans­mis­sion de l’in­for­ma­tion réseau est donc effectuée entre un client BOOTP et le serveur BOOTP. Le protocole minimal et sans connexion User Datagram Protocol (UDP) (ports 67 et 68) est utilisé comme protocole pour le transport des paquets de données cor­res­pon­dants. Comparé au TCP, ce protocole UDP est non seulement moins complexe mais supporte également la té­lé­dif­fu­sion, con­trai­re­ment au protocole standard pour le transport de données. Étant donné que le client ne connaît ni sa propre adresse ni l’adresse du serveur BOOTP lors de l’éta­blis­se­ment de la connexion, cette méthode de com­mu­ni­ca­tion de messages, dans le cadre de laquelle tous les par­ti­ci­pants du réseau sont contactés, est la seule solution pour une ac­qui­si­tion au­to­ma­tique de l’adresse.

Fonc­tion­ne­ment de la com­mu­ni­ca­tion d’in­for­ma­tions réseau via BOOTP

L’at­tri­bu­tion d’une adresse via BOOTP est basée sur une com­mu­ni­ca­tion simple en deux étapes entre le client et le serveur. Dans ce cadre, la com­po­sante client est à l’ini­tia­tive de cette com­mu­ni­ca­tion. Étant donné que le client ne connaît ni sa propre adresse IP ni celle du serveur BOOTP, il envoie une requête générale (« BOO­TRE­QUEST ») à l’adresse de diffusion uni­ver­selle 255.255.255.255. Le serveur qui écoute les requêtes du port UDP 67 reçoit et traite cette requête. Dans ce cadre, sa tâche prin­ci­pale consiste à attribuer l’adresse IP adéquate à l’adresse MAC du système du client. Par té­lé­dif­fu­sion, la réponse (« BOOTREPLY ») est ensuite renvoyée avec les autres in­for­ma­tions réseau au client qui peut alors acquérir le système d’ex­ploi­ta­tion via le réseau.

Note

lorsque le client connaît déjà l’adresse du serveur BOOTP, il peut également envoyer la requête di­rec­te­ment au serveur par connexion unicast.

Voici à quoi ressemble la structure des messages envoyés par le client et le serveur lors de la com­mu­ni­ca­tion par le biais du Bootstrap Protocol :

Chaque message BOOTP commence avec le champ op de 8 bits qui définit le type d’opération ou de message. En cas de requêtes du client, la valeur de ce champ est définie sur 1 (pour BOO­TRE­QUEST) et sur 2 s’il s’agit d’une réponse du serveur (pour BOOTREPLY). Cette valeur est à chaque fois suivie de 8 bits qui ca­rac­té­ri­sent le type (« htype ») ainsi que la longueur de l’adresse ma­té­rielle (« hlen »). Le champ « hops » comporte également 8 bits et indique le nombre de stations in­ter­mé­diaires que le paquet doit traverser pour atteindre le des­ti­na­taire. En cas de requêtes du client, la valeur est toujours définie sur 0.

Le bloc suivant contient un ID de tran­sac­tion aléatoire d’une longueur de 32 bits qui est généré par le client et sera utilisé ul­té­rieu­re­ment dans la réponse du serveur afin de permettre au client de l’associer for­mel­le­ment. Le client remplit par ailleurs le champ « secs » (16 bits) qui indique les secondes écoulées depuis la tentative de démarrage du client. L’in­for­ma­tion d’in­tro­duc­tion est complétée par un autre champ de 16 bits qui reste en­tiè­re­ment vide. Les autres entrées du paquet BOOTP sont les in­for­ma­tions propres au réseau qui sont ex­pli­quées de façon détaillée dans la liste suivante :

  • Adresse IP du client (ciaddr) : le label « ciaddr » (client ip address) indique le champ de 32 bits dans lequel le client a renseigné son adresse IP s’il l’a connaît déjà. Si tel n’est pas le cas, le champ prend la valeur 0.
  • Adresse IP du client (yiaddr) : le champ « yiaddr » (your ip address) est également réservé à l’adresse IP du client. Con­trai­re­ment à la section du paquet citée pré­cé­dem­ment, ce champ de 32 bits est toutefois complété par le serveur si le client ne connaît pas son adresse IP au moment de la création de la requête de réseau.
  • Adresses IP du serveur (siaddr) : dans la séquence de 32 bits « siaddr » (server ip address), le serveur BOOTP com­mu­nique son adresse IP au client.
  • Adresse IP de la pas­se­relle (giaddr) : si une pas­se­relle/gateway (par ex. un routeur) est intégrée au processus de com­mu­ni­ca­tion, son adresse est ren­seig­née dans le champ « giaddr » (gateway ip address).
  • Adresse ma­té­rielle du client (chaddr) : l’adresse ma­té­rielle (128 bits) fait partie des champs obli­ga­toires du client dans le cadre de la com­mu­ni­ca­tion des messages du Bootstrap Protocol. Sans cet ID, également appelé adresse de l’appareil ou adresse MAC, le serveur ne peut ni attribuer la bonne adresse au client ni affecter les pa­ra­mètres réseau adéquats.
  • Nom d’hôte du serveur (sname) : en option, le serveur peut d’autre part indiquer son nom d’hôte dans la réponse BOOTP. Un champ d’une longueur de 512 bits est dis­po­nible à cet effet dans lequel il peut insérer une chaîne de caractère cor­res­pon­dante terminée par un zéro (un zéro marque la fin de la chaîne).
  • Nom du fichier de démarrage (file) : l’in­di­ca­tion d’un fichier de démarrage précis, dont le client a besoin pour démarrer le système d’ex­ploi­ta­tion sur le terminal concerné ou la station de travail, est également fa­cul­ta­tive. Ce champ prévoit également une chaîne de caractère terminée par un zéro qui re­pré­sente dans ce cas le chemin de registre complet du fichier. La séquence de ca­rac­tères peut atteindre ici une longueur de 1024 bits. Dans la requête du client, ce champ comporte soit la valeur 0 soit un nom générique.
  • In­for­ma­tions spé­ci­fiques au fabricant (vend) : la con­clu­sion po­ten­tielle du message du protocole BOOTP est cons­ti­tuée par des in­for­ma­tions spé­ci­fiques au fabricant, qui ne sont pas couvertes par le protocole. Il peut par exemple s’agir de l'in­di­ca­tion de types et de numéros de série de matériel spé­ci­fiques. Par ailleurs, ce champ d’in­for­ma­tion disposant d’une longueur de 512 bits peut être réservé pour un troisième processus Bootstrap ou de noyau.

Au total, les messages BOOTP peuvent donc avoir une longueur allant jusqu’à 2400 bits (300 octets). Le da­ta­gramme UDP/IP complet, incluant la requête ou la réponse du Protocole Bootstrap intégrée, dispose de la structure suivante :

Le BOOTP et DHCP : pourquoi le Bootstrap Protocol n’est-il plus utilisé ?

Pour les clients terminaux et les stations de travail sans disque dur, le BOOTP re­pré­sen­tait la solution idéale afin d’obtenir une adresse IP per­son­nelle dans le réseau souhaité et d’acquérir le système d’ex­ploi­ta­tion de cette façon. Le fait que l’ac­qui­si­tion de l’adresse puisse être réalisée en même temps que le processus de démarrage grâce au protocole de com­mu­ni­ca­tion était aussi simple que pratique pour les or­di­na­teurs fixes utilisés dans les réseaux de taille gérable. Le fait que l’ad­mi­nis­tra­teur doive con­fi­gu­rer ma­nuel­le­ment les tableaux d’in­for­ma­tions du réseau du serveur BOOTP était alors peu pro­blé­ma­tique.

Toutefois, alors que les réseaux sont devenus toujours plus con­sé­quents et les or­di­na­teurs toujours plus in­dé­pen­dants et plus mobiles (du fait du dé­ve­lop­pe­ment des appareils mobiles), l’absence de pos­si­bi­lité d’au­to­ma­ti­sa­tion du processus de con­fi­gu­ra­tion a été perçue né­ga­ti­ve­ment. Le souhait d’un nouveau protocole s’est fait sentir. Son suc­ces­seur fut trouvé en 1993 avec le Dynamic Host Con­fi­gu­ra­tion Protocol (DHCP) (spé­ci­fi­ca­tion finale dans le RFC 2131). Même si le DHCP se base en grande partie sur la structure du Bootstrap Protocol, il est complété par dif­fé­rentes options de con­fi­gu­ra­tion sup­plé­men­taires et offre aux clients cherchant à établir une connexion la pos­si­bi­lité d’attribuer des adresses réseau réu­ti­li­sables. D’autre part, l’at­tri­bu­tion d’in­for­ma­tions d’adresses avec DHCP est également possible pendant le fonc­tion­ne­ment du système ; aucun re­dé­mar­rage n’est né­ces­saire comme dans le cas du BOOTP.

Le BOOTP par rapport au DHCP : les prin­ci­pales dif­fé­rences :

  BOOTP DHCP
Con­fi­gu­ra­tion au­to­ma­tique L’at­tri­bu­tion d’adresses IP pré­sup­pose une con­fi­gu­ra­tion manuelle des tableaux d’adresse Supporte une at­tri­bu­tion et une ac­qui­si­tion au­to­ma­tiques des adresses IP (mais également une con­fi­gu­ra­tion manuelle)
Adresses IP tem­po­raires Im­pos­sible Possible pour une période limitée
Com­pa­ti­bi­lité avec les appareils mobiles La con­fi­gu­ra­tion IP et l’accès aux in­for­ma­tions de réseau ne sont pas possibles Supporte la mobilité des clients réseau
Taux d’erreur Taux d’erreur important du fait de la con­fi­gu­ra­tion manuelle Presque aucune erreur grâce à la con­fi­gu­ra­tion au­to­ma­tique des com­po­sants réseau
Prérequis système Aucun Nécessite un disque dur pour l’en­re­gis­tre­ment et la trans­mis­sion des in­for­ma­tions

Grâce aux dif­fé­rentes op­ti­mi­sa­tions, le DHCP s’est ra­pi­de­ment établi comme protocole standard pour la gestion des adresses IP dans les réseaux, tandis que le protocole BOOTP a aujourd’hui uni­que­ment une valeur his­to­rique. Toutefois, comme le DHCP supporte le Bootstrap Protocol, les serveurs DHCP peuvent en principe répondre à tout type de demandes provenant d’un client BOOTP.

Aller au menu principal