Guide d'administration système : services IP

Chapitre 12 Service DHCP Oracle Solaris (présentation)

Ce chapitre vous propose de découvrir le protocole DHCP (Dynamic Host Configuration Protocol) et les concepts à la base de ce protocole. Il décrit également les avantages que présente le protocole DHCP pour votre réseau.

Le présent chapitre contient les informations suivantes :

À propos du protocole DHCP

Le protocole DHCP permet de procéder automatiquement à la configuration des systèmes hôtes d'un réseau TCP/IP au moment de leur initialisation. Le protocole DHCP utilise un mécanisme client/serveur. Les serveurs stockent et gèrent les informations de configuration des clients et les fournissent à leur demande. Ces informations comprennent l'adresse IP du client ainsi que des données sur les services réseau accessibles au client.

DHCP est l'évolution d'un protocole précédent, BOOTP, conçu pour l'initialisation des systèmes sur un réseau TCP/IP. Il utilise le même format que le protocole BOOTP pour les messages échangés entre le client et le serveur. À la différence des messages BOOTP, les messages DHCP peuvent contenir des données de configuration du réseau pour le client.

L'un des avantages majeurs du protocole DHCP est sa capacité à gérer les affectations d'adresses IP au moyen de baux. L'intérêt des baux est de pouvoir récupérer les adresses IP lorsqu'elles ne sont plus utilisées afin de les attribuer à d'autres clients. Cela permet à un site DHCP d'utiliser un pool d'adresses IP plus petit que celui qui serait nécessaire si tous les clients possédaient une adresse IP permanente.

Avantage du service DHCP Oracle Solaris

Le service DHCP vous fait gagner un temps précieux en prenant à sa charge un certain nombre de tâches liées à la configuration d'un réseau TCP/IP et à l'administration quotidienne de ce réseau. Le service DHCP Oracle Solaris fonctionne uniquement avec le protocole IPv4.

Le service DHCP Oracle Solaris offre les avantages suivants :

Mode de fonctionnement du protocole DHCP

Vous devez commencer par installer et configurer le serveur DHCP. Lors de la phase de configuration, il est nécessaire de fournir un certain nombre d'informations au sujet du réseau avec lequel les clients vont communiquer. Une fois ces précisions apportées, les clients auront la possibilité de demander et de recevoir des informations spécifiques au réseau.

Le schéma ci-après montre comment s'enchaînent les différents événements liés au service DHCP. Les nombres figurant dans les cercles correspondent aux étapes numérotées de la description suivant le schéma.

Figure 12–1 Séquence des événements pour le service DHCP

Le schéma illustre la séquence de communications entre un client et un serveur DHCP. La description après le schéma explique chacune des communications.

Le schéma précédent présente les étapes suivantes :

  1. Le client identifie un serveur DHCP en diffusant un message de détection à l'adresse de diffusion limitée (255.255.255.255) sur le sous-réseau local. Si un routeur est présent et configuré pour agir comme un agent de relais BOOTP, la requête est transmise à d'autres serveurs DHCP sur d'autres sous-réseaux. Le message de diffusion du client comprend son identifiant unique (ID) qui, lors de l'implémentation DHCP Oracle Solaris, est dérivé de l'adresse MAC (Media Access Control) du client. Sur un réseau Ethernet, l'adresse MAC est identique à l'adresse Ethernet.

    Les serveurs DHCP qui reçoivent le message de détection sont capables d'identifier le réseau du client en effectuant l'analyse suivante :

    • Sur quelle interface réseau la requête est-elle parvenue ? Le serveur peut en déduire que le client appartient au réseau auquel l'interface est connectée ou que le client utilise un agent de relais BOOTP relié à ce réseau.

    • La requête contient-elle l'adresse IP d'un agent de relais BOOTP ? Lorsqu'une requête transite par un agent de relais, celui-ci insère son adresse dans l'en-tête de la requête. Lorsque le serveur détecte une adresse d'un agent de relais, il sait que la portion réseau de l'adresse désigne l'adresse réseau du client dans la mesure où l'agent de relais doit obligatoirement être connecté au réseau du client.

    • Le réseau du client comporte-t-il des sous-réseaux ? Le serveur consulte la table netmasks pour identifier le masque de sous-réseau utilisé sur le réseau désigné par l'adresse de l'agent de relais ou par l'adresse de l'interface réseau ayant reçu la requête. Dès que le serveur connaît cette information, il peut déterminer la portion de l'adresse réseau correspondant à la portion de l'hôte, puis sélectionner une adresse IP qui convient pour le client. Pour plus d'informations au sujet des netmasks, reportez-vous à la page de manuel netmasks(4).

  2. Une fois que les serveurs DHCP ont réussi à identifier le réseau du client, ils sélectionnent une adresse IP appropriée et s'assurent qu'elle est libre. Ils répondent ensuite au client en diffusant un message d'offre. Ce message contient l'adresse IP sélectionnée et des informations au sujet des services pouvant être configurés pour le client. Chaque serveur réserve provisoirement l'adresse IP proposée jusqu'à ce que le client choisisse ou non d'accepter l'adresse IP en question.

  3. Le client sélectionne la meilleure offre en fonction du nombre et du type de services proposés. Il diffuse alors une requête indiquant l'adresse IP du serveur ayant fait la meilleure offre. Tous les serveurs DHCP ayant répondu savent ainsi que le client a fait son choix. Les serveurs non sélectionnés peuvent dès lors annuler la réservation des adresses IP proposées.

  4. Le serveur sélectionné alloue l'adresse IP au client et stocke cette information dans le magasin de données DHCP. Il adresse également un accusé de réception (message ACK) au client. L'accusé de réception contient les paramètres de configuration du réseau pour le client. Le client se sert de l'utilitaire ping pour tester l'adresse IP et s'assurer qu'elle n'est utilisée par aucun autre système. Il continue ensuite la procédure d'initialisation afin de se connecter au réseau.

  5. Le client contrôle la durée du bail. Au bout d'un certain temps, il envoie un nouveau message au serveur sélectionné pour lui demander d'augmenter la durée du bail.

  6. Le serveur DHCP recevant la requête prolonge le bail à condition que le bail soit conforme à la stratégie de location définie par l'administrateur. Si le serveur ne répond pas dans les 20 secondes, le client diffuse une requête de sorte que l'un des autres serveurs DHCP prolonge son bail.

  7. Lorsque le client n'a plus besoin de l'adresse IP, il prévient le serveur que l'adresse IP a été libérée. Cette notification peut survenir lors d'un arrêt méthodique ou être effectuée de façon manuelle.

Serveur DHCP Oracle Solaris

Le serveur DHCP Oracle Solaris s'exécute comme un démon de Oracle Solaris sur un système hôte. Il remplit deux fonctions de base :

Vous pouvez également configurer le serveur DHCP Oracle Solaris pour exécuter les fonctions suivantes :

Administration du serveur DHCP

En tant que superutilisateur, vous avez la possibilité de démarrer, arrêter et configurer le serveur DHCP à l'aide du gestionnaire DHCP ou des utilitaires de ligne de commande décrits à la section Utilitaires de ligne de commande DHCP. En règle générale, le serveur DHCP est configuré pour démarrer automatiquement lors de l'initialisation du système et pour s'interrompre lors de l'arrêt du système. Il n'est pas utile de démarrer et d'arrêter le serveur de façon manuelle dans des conditions normales d'utilisation.

Magasin de données DHCP

Toutes les données utilisées par le serveur DHCP Oracle Solaris sont conservées dans un magasin de données. Le magasin de données peut être constitué indifféremment de fichiers de texte brut, de tables NIS+ ou de fichiers au format binaire. Lors de la configuration du service DHCP, vous êtes invité à choisir le type de magasin de données à utiliser. La section Sélection du magasin de données DHCP décrit les différences entre chaque type de magasin de données. Il est possible de convertir un magasin de données et de passer ainsi d'un format à un autre au moyen du gestionnaire DHCP ou de la commande dhcpconfig.

Vous pouvez également transférer le contenu du magasin de données d'un serveur DHCP vers un autre magasin de données. Il existe des utilitaires d'importation et d'exportation qui fonctionnent parfaitement avec les magasins de données, même lorsque les serveurs utilisent des formats différents. Le gestionnaire DHCP ou la commande dhcpconfig permettent d'exporter et d'importer l'intégralité d'un magasin de données ou uniquement les données qui vous intéressent.


Remarque –

Vous êtes libre de stocker les données DHCP dans la base de données ou le format de fichier de votre choix à condition de développer votre propre module de code pour fournir une interface entre le service DHCP Oracle Solaris (serveur et outils de gestion) et la base de données. Pour plus d'informations, reportez-vous au guide Solaris DHCP Service Developer’s Guide (en anglais).


Un magasin de données DHCP Oracle Solaris contient deux types de table. Vous pouvez consulter et gérer le contenu de ces tables à l'aide du gestionnaire DHCP ou des utilitaires de ligne de commande. Il s'agit des types suivants :

Table dhcptab

La table dhcptab contient toutes les informations que les clients peuvent recueillir à partir du serveur DHCP. Le serveur DHCP analyse le contenu de la table dhcptab à chaque démarrage. Le nom de fichier de la table dhcptab varie en fonction du magasin de données utilisé. La table dhcptab créée par le magasin de données NIS+ SUNWnisplus est appelée, par exemple, SUNWnisplus1_dhcptab.

Le protocole DHCP définit les informations standard qu'il est possible de communiquer aux clients. Il s'agit en l'occurrence des paramètres, des symboles ou des options. Les options sont représentées dans le protocole DHCP par des codes numériques et des libellés de texte, mais sans valeurs. Le tableau suivant présente les options standard les plus fréquemment employées.

Tableau 12–1 Exemples d'options standard DHCP

Code 

Libellé 

Description 

Subnet

Adresse IP du masque de sous-réseau 

Router

Adresse IP du routeur 

DNSserv

Adresse IP du serveur DNS 

12 

Hostname

Chaîne de texte correspondant au nom d'hôte client 

15 

DNSdmain

Nom du domaine DNS 

Des valeurs sont automatiquement attribuées à certaines options lorsque vous fournissez les informations demandées lors de la configuration du serveur. Rien ne vous empêche par la suite d'assigner, de façon explicite, les valeurs voulues à d'autres options. Les options et leurs valeurs sont transmises au client à titre de données de configuration. Par exemple, le couple option/valeur DNSdmain=Georgia.Peach.COM définit le nom de domaine DNS du client comme suit : Georgia.Peach.COM.

Les options peuvent être regroupées avec d'autres options au sein de conteneurs appelés macros de manière à communiquer plus facilement les informations au client. Certaines macros sont générées automatiquement lors de la phase de configuration du serveur et contiennent des options associées à des valeurs. Il est possible, en outre, d'imbriquer des macros dans d'autres macros.

Le format de la table dhcptab est décrit dans la page de manuel dhcptab(4) Dans le gestionnaire DHCP, toutes les informations présentées dans les onglets Options et Macros proviennent de la table dhcptab. Pour plus d'informations à propos des options, reportez-vous à la section À propos des options DHCP Pour plus d'informations au sujet des macros, reportez-vous à la section À propos des macros DHCP.

N'oubliez pas que la table dhcptab ne peut, en aucun cas, être éditée manuellement. Vous devez vous servir de la commande dhtadm ou du gestionnaire DHCP pour créer, supprimer ou modifier des options et des macros.

Tables de réseau DHCP

Une table de réseau DHCP permet de faire la correspondance entre les identificateurs de clients, les adresses IP et les paramètres de configuration associés à chaque adresse. Le format des tables de réseau est décrit dans la page de manuel dhcp_network(4) Dans le gestionnaire DHCP, toutes les informations présentées dans l'onglet relatif aux adresses proviennent des tables de réseau.

Gestionnaire DHCP

Le gestionnaire DHCP est un outil basé sur une interface graphique (IG) prévu pour réaliser toutes les tâches administratives relatives au service DHCP. Il sert aussi bien à gérer le serveur que les données exploitées par le serveur. Vous devez être superutilisateur pour exécuter le gestionnaire DHCP.

Le gestionnaire DHCP offre les possibilités suivantes :

Le gestionnaire DHCP permet de gérer les adresses IP, les macros de configuration du réseau et les options de configuration du réseau des façons suivantes :

Le gestionnaire DHCP permet de gérer les magasins de données DHCP des façons suivantes :

Le gestionnaire DHCP propose une aide en ligne complète pour toutes les procédures réalisables avec cet outil. Pour plus d'informations, reportez-vous à la section À propos du gestionnaire DHCP.

Utilitaires de ligne de commande DHCP

Toutes les opérations de gestion DHCP peuvent être effectuées à l'aide des utilitaires de ligne de commande. Pour exécuter ces utilitaires, vous devez vous connecter en tant que superutilisateur ou en tant qu'utilisateur doté du profil de gestion DHCP. Voir la section Configuration de l'accès utilisateur aux commandes DHCP.

Le tableau suivant présente les différents utilitaires disponibles et l'intérêt de chacun d'entre-eux.

Tableau 12–2 Utilitaires de ligne de commande DHCP

Commande 

Description et intérêt 

Liens aux pages de manuel 

in.dhcpd

Démon du service DHCP. Les arguments de la ligne de commande permettent de configurer plusieurs options d'exécution.

in.dhcpd(1M)

dhcpconfig

Sert à configurer et à annuler la configuration d'un serveur DHCP. Cet utilitaire permet de réaliser la plupart des fonctions du gestionnaire DHCP à partir de la ligne de commande. Il est particulièrement utile pour créer des scripts destinés aux sites souhaitant automatiser certaines fonctions de configuration. dhcpconfig collecte des informations à partir des fichiers de topologie de réseau du système serveur dans le but de réunir les données qui conviennent pour la configuration initiale.

dhcpconfig(1M)

dhtadm

Sert à ajouter, supprimer et modifier des options et des macros de configuration pour les clients DHCP. Cet utilitaire permet d'éditer la table dhcptab de façon indirecte pour s'assurer que le format est correct. Vous ne devez, en aucun cas, éditer directement le contenu de la table dhcptab.

dhtadm(1M)

pntadm

Sert à gérer les tables de réseau DHCP. Cet utilitaire est idéal pour :

  • Ajouter et supprimer des adresses IP et des réseaux sous le contrôle DHCP

  • Modifier la configuration du réseau pour les adresses IP spécifiées

  • Afficher des informations au sujet des adresses IP et des réseaux sous le contrôle DHCP

pntadm(1M)

Contrôle d'accès des commandes DHCP basé sur les rôles

Le niveau de sécurité des commandes dhcpconfig, dhtadm et pntadm est défini par les paramètres de contrôle d'accès basé sur les rôles (paramètres RBAC). Par défaut, seul un superutilisateur est habilité à exécuter les commandes. Si vous avez l'intention d'exécuter les commandes sous un autre nom d'utilisateur, vous devez allouer le nom d'utilisateur au profil de gestion DHCP comme indiqué à la section Configuration de l'accès utilisateur aux commandes DHCP.

Configuration du serveur DHCP

Vous devez configurer le serveur DHCP Oracle Solaris la première fois que vous lancez le gestionnaire DHCP sur le système destiné au serveur DHCP.

Les boîtes de dialogue de configuration du serveur du gestionnaire DHCP vous invitent à spécifier toutes les informations nécessaires pour activer et exécuter le serveur DHCP sur un réseau. Certaines valeurs par défaut sont obtenues à partir des fichiers système existants. Si vous n'avez pas configuré le système pour le réseau, aucune valeur par défaut n'est définie. Le gestionnaire DHCP vous demande de préciser les informations suivantes :

Vous pouvez également configurer le serveur DHCP à l'aide de la commande dhcpconfig. Cet utilitaire rassemble automatiquement les informations nécessaires à partir des fichiers système existants en guise de configuration initiale. Il faut donc s'assurer que les fichiers en question sont à jour avant d'exécuter la commande dhcpconfig. Pour plus d'informations au sujet des fichiers utilisés par dhcpconfig pour obtenir les données de configuration, reportez-vous à la page de manuel dhcpconfig(1M).

Allocation des adresses IP

Le serveur DHCP Oracle Solaris prend en charge les modes d'allocation d'adresses IP suivants :

Données de configuration du réseau

C'est vous qui déterminez la nature des informations communiquées aux clients DHCP. Lors de la configuration du serveur DHCP, vous fournissez des renseignements essentiels au sujet du réseau. Rien ne vous empêche par la suite d'ajouter toute autre information que vous jugez utile de transmettre aux clients.

Le serveur DHCP stocke les données de configuration du réseau dans la table dhcptab , par couple option/valeur et sous forme de macros. Les options constituent des mots-clés pour les informations de réseau que vous désirez fournir aux clients. Les valeurs attribuées aux options sont transmises aux clients dans des messages DHCP. L'adresse du serveur NIS est communiquée, par exemple, au moyen d'une option appelée NISservs. L'option NISservs possède une valeur équivalente à une liste d'adresses IP, allouée par le serveur DHCP. Les macros sont un moyen pratique de regrouper toutes les options que vous avez l'intention de fournir aux clients en une seule opération. Vous pouvez faire appel au gestionnaire DHCP pour créer des macros et assigner des valeurs aux options. Si vous préférez effectuer ces opérations à partir de la ligne de commande, exécutez l'utilitaire de gestion des tables de configuration DHCP (dhtadm).

À propos des options DHCP

Dans un service DHCP &ProductBase, une option désigne un élément d'informations du réseau à transmettre à un client. Dans le jargon DHCP, les symboles ou les balises sont également appelés des options. Une option est définie par un code numérique et un libellé de texte. Elle reçoit une valeur en cas d'utilisation dans le service DHCP.

Le protocole DHCP définit un grand nombre d'options standard pour les données de réseau fréquemment utilisées : Subnet, Router, Broadcst, NIS+dom, Hostname et LeaseTim pour n'en citer que quelques-unes. Vous trouverez la liste complète des options standard sur la page de manuel dhcp_inittab(4). Vous ne pouvez, en aucun cas, modifier les mots-clés des options standard. Il est possible, en revanche, d'attribuer des valeurs aux options se rapportant à votre réseau lorsque vous décidez de les inclure dans des macros.

Vous avez le droit, en outre, de définir de nouvelles options pour les données non représentées par les options standard. Les options que vous créez doivent être classées dans l'une des trois catégories suivantes :

Le Chapitre 15Administration de DHCP (tâches) fournit les procédures de création, de modification et de suppression d'options DHCP.

À propos des macros DHCP

Dans un service DHCP &ProductBase, une macro représente un ensemble d'options de configuration du réseau auxquelles vous avez assigné des valeurs. L'intérêt des macros est de regrouper les options à transmettre à des clients spécifiques ou à certains types de client. Une macro destinée à tous les clients d'un sous-réseau donné pourrait contenir, par exemple, les couples option/valeur correspondant au masque de sous-réseau, à l'adresse IP du routeur, à l'adresse de diffusion, au domaine NIS+ et à la durée du bail.

Traitement des macros par le serveur DHCP

Lorsque le serveur DHCP traite une macro, il place les options et les valeurs de réseau définies dans la macro à l'intérieur d'un message DHCP adressé au client. Le serveur exécute automatiquement certaines macros pour les clients d'un certain type.

Pour pouvoir être traitée automatiquement, la macro doit respecter les conventions de dénomination propres aux catégories présentées dans le tableau suivant.

Tableau 12–3 Catégories de macros DHCP autorisant un traitement automatique

Catégorie de macros 

Description 

Classe de client 

Le nom de la macro correspond à une classe de client désignée par le type de machine client et/ou le système d'exploitation. Si un serveur dispose, par exemple, d'une macro appelée SUNW.Sun-Blade-100, tout client dont l'implémentation matérielle est SUNW,Sun-Blade-100 reçoit automatiquement les valeurs figurant dans la macro SUNW.Sun-Blade-100.

Adresse réseau 

Le nom de la macro correspond à une adresse IP de réseau gérée par DHCP. Si un serveur dispose, par exemple, d'une macro appelée 10.53.224.0, tout client connecté au réseau 10.53.224.0 reçoit automatiquement les valeurs figurant dans la macro 10.53.224.0.

ID client 

Le nom de la macro correspond à un identificateur unique pour le client. Il est généralement dérivé d'une adresse Ethernet ou MAC. Si un serveur dispose, par exemple, d'une macro appelée 08002011DF32, le client possédant l'ID de client 08002011DF32 (dérivé de l'adresse Ethernet 8:0:20:11:DF:32 ) reçoit automatiquement les valeurs figurant dans la macro nommée 08002011DF32 .

Une macro portant un nom n'appartenant à aucune des catégories indiquées dans le Tableau 12–3 peut être traitée uniquement si l'une des conditions suivantes est vérifiée :


Remarque –

Lorsque vous configurez un serveur, une macro dont le nom correspond au nom du serveur est créée par défaut. Cette macro de serveur ne s'exécute pas automatiquement, quel que soit le client auquel elle s'applique, dans la mesure où elle ne possède aucun des types de nom autorisant un traitement automatique. Lorsque vous définissez par la suite de nouvelles adresses IP sur le serveur, celles-ci sont mappées dans le but d'utiliser la macro de serveur par défaut.


Ordre de traitement des macros

    Lorsqu'un client DHCP demande des services DHCP, le serveur DHCP identifie les macros répondant à la requête du client. Il traite les macros, en se servant des catégories de macros pour déterminer leur ordre d'exécution. Il s'occupe d'abord de la catégorie la plus générale et traite la catégorie la plus spécifique en dernier. Les macros sont traitées dans l'ordre suivant :

  1. Macros de la classe de client – Catégorie la plus générale

  2. Macros d'adresse réseau – Plus spécifiques que les macros de la classe de client

  3. Macros mappées aux adresses IP – Plus spécifiques que les macros d'adresse réseau

  4. Macros d'ID de client – Catégorie la plus spécifique, se rapportant à un seul client

Une macro imbriquée dans une autre macro est traitée pendant l'exécution de cette dernière.

Si la même option figure dans plusieurs macros, la valeur de cette option dans la macro correspondant à la catégorie la plus spécifique est prise en compte, car c'est elle qui est traitée en dernier. Si une macro d'adresse réseau contient, par exemple, la valeur 24 heures pour l'option de durée de bail et qu'une macro d'ID de client indique une durée de bail équivalente à 8 heures, le client reçoit la valeur 8 heures.

Limite de taille pour les macros DHCP

La somme totale des valeurs attribuées à l'ensemble des options dans une macro ne doit pas dépasser 255 octets, y compris les codes d'option et les informations de longueur. Cette limite est dictée par le protocole DHCP.

Les macros qui sont les plus concernées par cette limite sont celles utilisées pour transmettre des chemins aux fichiers des serveurs d'installation Oracle Solaris. En règle générale, vous devez fournir le minimum d'informations nécessaires concernant le fournisseur. Pour les options nécessitant des chemins d'accès, vous devez utiliser des noms courts. Si vous créez des liens symboliques vers des chemins d'accès longs, vous pouvez communiquer les noms de liens les plus courts.

Client DHCP Oracle Solaris

Le terme « client » est parfois employé pour faire référence à une machine physique jouant le rôle de client sur le réseau. Or, le client DHCP décrit dans ce document est une entité logicielle. Le client DHCP Oracle Solaris est un démon (dhcpagent) s'exécutant dans Oracle Solaris, sur un système configuré pour recevoir sa configuration réseau d'un serveur DHCP. Les clients DHCP d'autres fournisseurs peuvent également utiliser les services du serveur DHCP Oracle Solaris. Cependant, ce document traite uniquement du client DHCP Oracle Solaris.

Pour plus d'informations sur le client DHCP Oracle Solaris, reportez-vous au Chapitre 16Configuration et administration du client DHCP.