15/11/2024

Le DHCP, côté client, sous CentOS

Le DHCP côté client comment ça se passe ? Les choses côté client sont assez simples à gérer. Il suffit juste de déclarer l’équipement client à utiliser une adresse distribuée via un serveur DHCP, en le mentionnant dans le fichier de configuration d’interface ifcfg-ethx (ou ifcfg-ensx sur une distribution CentOS7).

ATTENTION : il faut s’assurer que l’option de distribution du réseau est bien active dans le fichier /etc/sysconfig/network :

NETWORKING=yes

Après quoi, on peut éditer le fichier de configuration de l’interface réseau et placer l’option suivante :

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

Il est également possible de mentionner certaines autres options permettant de récupérer un nom de machine et de préciser l’utilisation faite de cette interface réseau :

  • DHCP_HOSTNAME : à utiliser uniquement si l’on souhaite autoriser le serveur DHCP à fournir un nom d’hôte avant de distribuer une adresse IP. Le serveur DHCP de Red Hat ne supporte pas cette option.
  • PEERDNS : permet de préciser si l’on souhaite modifier le fichier /etc/resolv.conf avec les informations du serveur. Dans le cas où l’on a mentionné l’utilisation d’un serveur DHCP, la réponse par défaut est ‘yes’.
  • USERCTL : permet de préciser si les utilisateurs non-root peuvent (valeur à ‘yes’) ou non (valeur à ‘no’),  gérer cette interface.
  • SRCADDR : adresse par laquelle les paquets peuvent sortir du serveur.

Depuis la distribution Centos7 on peut restreindre les requêtes d’un serveur DHCP ou de l’ensemble d’un brin réseau. Il suffit d’éditer le fichier /etc/dhcp/dhclient.conf en ajoutant une section liée à l’interface réseau depuis laquelle la machine cliente travaille :

interface "eth0" {
      reject 192.168.2.0/24 ;
}

On doit alors redémarrer le service réseau en tant que super-utilisateur root :

# systemctl restart network.service

IMPORTANT : dans les versions antérieures Centos6.x, chaque interface dispose de son propre fichier dhclient affilié à une interface spécifique. Il n’est donc plus utile de créer un bloc d’interface. On peut juste mentionner la ligne de rejet au sein du fichier /etc/dhcp/dhclient-eth0.conf:

reject 192.168.2.1 ;

Dans ce cas, il faut aussi redémarrer le service réseau. Mais, en utilisant l’ancienne méthode liée au service :

# service network restart

Lorsque le fichier dhclient.conf est correctement configuré, la commande dhclient peut également servir à identifier un serveur DHCP sur le réseau, et permettre de traiter la requête du client afin de récupérer une nouvelle adresse IP :

# dhclient

Toute nouvelle attribution fera l’objet d’un enregistrement systématique dans le fichier dhclient.leases. Ainsi, en dépit des redémarrages, il sera toujours possible de retrouver trace de la concession d’adresse effectuée. Ce fichier sert de base de données des concessions réalisées et est stocké dans le répertoire /var/state/dhcp. Le script de configuration, côté client, utilisé pour configurer l’interface réseau, s’appelle /sbin/dhclient-script.

Afin de tester l’attribution d’une nouvelle adresse IP à un client correctement configuré, il suffit alors d’arrêter et redémarrer l’interface réseau sur laquelle on souhaite disposer d’une nouvelle adresse IP :

# ifdown eth0
# ifup eth0

Il ne reste plus alors qu’à lister les propriétés de l’interface en question :

# ifconfig eth0

REMARQUE : pour une distribution CentOS7, les requêtes sur les interfaces réseau actives, peuvent aussi être interrogées ip addr suivante :

# ip addr show | grep ens

Le résultat obtenu devrait alors ressembler à la capture ci-dessous :

Lorsque l’on souhaite effacer la description d’un bail courant, depuis un client, on peut le faire également avec la commande dhclient :

# dhclient –r

On peut bien évidemment supprimer également la base de données /var/lib/dhcp, se trouvant sur le serveur DHCP, qui est supposée contenir la base de données d’attribution client. Ce fichier ne doit surtout pas être modifié manuellement, car il contient les différentes informations d’attribution DHCP, pour toutes les adresses IP, récemment concédées.

Sur le client, dans le répertoire /var/lib/dhclient, on trouve généralement les fichiers de baux propre à chaque interface configurée :

author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Le DHCP, côté client, sous CentOS

  • Lorsque je saisi la commande sudo dhclient enp0s10, voilà ci dessous ce que jai comme réponse. et l interface reste sans adresse ip.

    [openstack@openstack ~]$ sudo dhclient enp0s10
    [sudo] password for openstack:
    dhclient(4454) is already running – exiting.

    This version of ISC DHCP is based on the release available
    on http://ftp.isc.org. Features have been added and other changes
    have been made to the base software release in order to make
    it work better with this distribution.

    Please report for this software via the CentOS Bugs Database:
    http://bugs.centos.org/

    exiting.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.