10.2. Configuration d'un serveur DHCP
DHCP
. Installez le package en tant qu'utilisateur root
:
~]# yum install dhcp
/etc/dhcp/dhcpd.conf
, qui correspond tout simplement à un fichier de configuration vide. En tant qu'utilisateur root
, exécutez la commande suivante :
~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#uet
/usr/share/doc/dhcp-version;/dhcpd .conf.example
. Vous devez utiliser ce fichier pour pouvoir configurer /etc/dhcp/dhcpd.conf
, expliqué en détails ci-dessous.
DHCP
utilise également le fichier /var/lib/dhcpd/dhcpd.leases
pour stocker la base de données d'attribution client. Voir Section 10.2.2, « Base de données d'attribution » pour plus d'informations.
10.2.1. Fichier de configuration
DHCP
consiste à créer le fichier de configuration qui stocke les informations réseau des clients. Utiliser ce fichier pour déclarer des options dans les systèmes clients.
#
) correspondent à des commentaires.
- Paramètres - expliquent comment effectuer une tâche, quand l'effectuer, ou quelles options de configuration donner au client.
- Déclarations - décrit la topologie du réseau, les clients, donne des adresses aux clients, ou applique un groupe de paramètres à un groupe de déclarations.
DHCP
, alors que les paramètres eux, configurent des valeurs qui ne sont pas facultatives ou contrôlent le comportement du serveur DHCP
.
{ }
) sont considérés comme des paramètres globaux. Ceux-ci s'appliquent à toutes les sections se trouvant en dessous.
Important
DHCP
n'aura pas redémarré par la commande systemctl restart dhcpd
.
Note
DHCP
et redémarrer le service à chaque fois, en utilisant la commande omshell
, vous pouvez vous connecter, interroger ou modifier la configuration du serveur DHCP
de façon interactive. Avec omshell
, vous pourrez effectuer tous les changements quand le serveur est en cours d'exécution. Pour plus d'informations sur omshell
, voir la page man omshell
.
routers
, subnet-mask
, domain-search
, domain-name-servers
, et time-offset
sont utilisées pour les énoncés d' hôte
déclarés dessous.
DHCP
se connecte, il doit y avoir une déclaration de sous-réseau
, qui indique au démon DHCP
comment reconnaître qu'une adresse est sur ce sous-réseau. Une déclaration de sous-réseau
est exigée pour chaque sous-réseau, même si aucune adresse ne doit être allouée de façon dynamique sur ce sous-réseau.
DHCP
dans le sous-réseau, et une plage
est annoncée. Les clients reçoivent une adresse IP
incluse dans l'intervalle
indiqué.
Exemple 10.1. Déclaration de sous-réseau
subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-search "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time range 192.168.1.10 192.168.1.100; }
DHCP
qui alloue une adresse IP
à un système se trouvant dans un sous-réseau, modifier les valeurs de l'exemple de Exemple 10.2, « La paramètre « range » de plage ». Il déclare une durée d'allocation par défaut, une durée d'allocation maximale, et des valeurs de configuration de réseau pour les clients. Cet exemple alloue des adresses IP
sur les plages de valeurs
192.168.1.10
et 192.168.1.100
aux systèmes clients.
Exemple 10.2. La paramètre « range » de plage
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-search "example.com"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; }
IP
à un client sur la base d'une adresse MAC de la carte d'interface de réseau, utiliser le paramètre hardware ethernet
qui se trouve dans la déclaration de l' hôte
. Comme le montre Exemple 10.3, « Adresse IP statique utilisant DHCP », la déclaration host apex
spécifie que la carte d'interface de réseau ayant pour adresse MAC 00:A0:78:8E:9E:AA
reçoit toujours l'adresse IP
192.168.1.4
.
host-name
pour assigner un nom d'hôte au client.
Exemple 10.3. Adresse IP statique utilisant DHCP
host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; }
IP
statiques aux interfaces InfiniBand IPoIB. Cependant, comme ces interfaces n'ont pas d'adresse Ethernet de matériel normale, on doit utiliser une méthode différente pour spécifier un identificateur unique pour l'interface IPoIB. On utilise normalement l'option dhcp-client-identifier =
pour spécifier le champ dhcp-client-identificateur
de l'interface IPoIB. La construction d'hôte de serveur DHCP
ne supporte pas plus d'une entrée matériel Ethernet et une entrée de dhcp-client-identifier
par hôte. Toutefois, il peut y avoir plus d'une entrée d'adresse fixe et le serveur DHCP
répondra automatiquement avec une adresse qui est appropriée au réseau sur lequel la requête DHCP
a été reçue.
Exemple 10.4. Adresse IP statique utilisant DHCP sur interfaces multiples
P_Key
sur chaque interface physique, ainsi qu'une connexion Ethernet, la construction statique IP
peut être utilisée pour cette configuration :
Host apex.0 { option host-name “apex.example.com”; hardware ethernet 00:A0:78:8E:9E:AA; option dhcp-client-identifier=ff:00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:03:00:31:7b:11; fixed-address 172.31.0.50,172.31.2.50,172.31.1.50,172.31.3.50; } host apex.1 { option host-name “apex.example.com”; hardware ethernet 00:A0:78:8E:9E:AB; option dhcp-client-identifier=ff:00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:03:00:31:7b:12; fixed-address 172.31.0.50,172.31.2.50,172.31.1.50,172.31.3.50; }
dhcp-client-identifier
pour votre périphérique, vous pouvez normalement utiliser le préfixe ff:00:00:00:00:00:02:00:00:02:c9:00
et y ajouter les 8 derniers octets de l'interface IPoIB (qui correspond également au GUID de 8 octets du port InfiniBand du port InfinisBand sur lequel se trouve l'interface IPoIB). Sur certains contrôleurs, ce préfixe n'est pas correct. Dans un tel cas, nous conseillons d'utiliser tcpdump sur le serveur DHCP
pour capturer la demande IPoIB DHCP
entrante et collecter le dhcp-client-identifier
qui convient pour cette capture. Par exemple :
]$ tcpdump -vv -i mlx4_ib0
tcpdump: listening on mlx4_ib0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
23:42:44.131447 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request, length 300, htype 32, hlen 0, xid 0x975cb024, Flags [Broadcast] (0x8000)
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Hostname Option 12, length 10: "rdma-qe-03"
Parameter-Request Option 55, length 18:
Subnet-Mask, BR, Time-Zone, Classless-Static-Route
Domain-Name, Domain-Name-Server, Hostname, YD
YS, NTP, MTU, Option 119
Default-Gateway, Classless-Static-Route, Classless-Static-Route-Microsoft, Static-Route
Option 252, NTP
Client-ID Option 61, length 20: hardware-type 255, 00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:02:00:21:ac:c1
L'image ci-dessus montre le champ identifiant le client. Le type de matériel 255
correspond aux initiales ff:
de l'ID, le reste de l'ID est ensuite cité exactement comme il doit apparaître dans le fichier de configuration de DHCP
.
shared-network
), comme indiqué dans Exemple 10.5, « Déclaration de réseau partagé ». Les paramètres qui se trouvent dans le shared-network
, mais en dehors des déclarations de sous-réseau clos, sont considérés comme paramètres globaux. Le nom attribué au shared-network
doit être un titre descriptif pour le réseau, comme l'utilisation du titre « -test-lab » qui décrit tous les sous-réseaux dans un environnement de test.
groupe
est utilisée pour appliquer les paramètres globaux à un groupe de déclarations. Ainsi, les réseaux partagés, les sous-réseaux, et les hôtes peuvent être groupés.
Exemple 10.6. Déclaration de groupe
group { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-search "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } host raleigh { option host-name "raleigh.example.com"; hardware ethernet 00:A1:DD:74:C3:F2; fixed-address 192.168.1.6; } }
Note
root
:
~]# cp /usr/share/doc/dhcp-version_number/dhcpd.conf.example /etc/dhcp/dhcpd.conf
DHCP
.
dhcp-options(5)
.
10.2.2. Base de données d'attribution
DHCP
, le fichier /var/lib/dhcpd/dhcpd.leases
stocke la base de données de l'allocation du client DHCP
. Ne pas modifiez ce fichier. Les informations d'allocation DHCP
pour chaque adresse IP
récemment attribuée sont automatiquement stockées dans la base de donnée d'allocation. L'information comprend la durée de l'allocation, à laquelle l'adresse IP
a été assignée, les dates de début et de fin de l'allocation et l'adresse MAC de la carte d'interface réseau qui a été utilisée pour récupérer l'allocation.
dhcpd.leases
est rebaptisé dhcpd.leases~
et la base de données d'allocations temporaires est inscrite dans dhcpd.leases
.
DHCP
peut être terminé ou le système peut se bloquer après que la base de données d'allocations a été renommée dans le fichier de sauvegarde, mais avant que le nouveau fichier n'ait été écrit. Dans ce cas, le fichier dhcpd.leases
n'existe pas, mais il est nécessaire de démarrer le service. Ne créez de nouveau fichier d'allocation. Si vous le faites, toutes les anciennes allocations seront perdues, ce qui provoquera de nombreux problèmes. La meilleure solution consiste à renommer le fichier de sauvegarde dhcpd.leases~
à dhcpd.leases
, et à démarrez le démon.
10.2.3. Lancement et interruption du serveur
Important
DHCP
est démarré pour la première fois, il échoue à moins que le fichier dhcpd.leases
existe. Vous pouvez utiliser la commande touch /var/lib/dhcpd/dhcpd.leases
pour créer le fichier s'il n'existe pas. Si le même serveur exécute également BIND en tant que serveur DNS
, cette étape n'est pas nécessaire, car démarrer le service named
entraînera une recherche automatique du fichier dhcpd.leases
.
dhcpd.leases~
en dhcpd.leases
, puis démarrer le démon.
DHCP
, utiliser la commande suivante :
systemctl start dhcpd.service
DHCP
, saisir :
systemctl stop dhcpd.service
DHCP
ne démarre pas à l'amorçage. Pour obtenir des informations sur la façon de configurer le démon pour qu'il démarre automatiquement à l'amorçage, consulter le guide Red Hat Enterprise Linux 7 System Administrator's Guide.
DHCP
doit seulement écouter les requêtes DHCP
sur une des interfaces, configurez le serveur DHCP
pour écouter uniquement sur ce périphérique. Le démon DHCP
écoute uniquement sur les interfaces pour lesquelles il pourra trouver une déclaration de sous-réseau dans le fichier /etc/dhcp/dhcpd.conf
.
DHCP
pour récupérer une adresse IP
d'internet. L'autre carte de réseau peut servir de serveur DHCP
pour le réseau interne se trouvant derrière le pare-feu. En ne spécifiant que la carte réseau connectée au réseau interne, votre système sera plus sûr puisque les utilisateurs ne pourront pas se connecter au démon par le biais de l'internet.
dhcpd.service
en tant qu'utilisateur root
. Par exemple :
~]#Modifier la ligne sous la section [Service]:cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
~]#vi /etc/systemd/system/dhcpd.service
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid your_interface_name(s). Puis, en tant qu'utilisateur
root
, démarrer le service à nouveau.
~]#systemctl --system daemon-reload
~]#systemctl restart dhcpd
ExecStart=/usr/sbin/dhcpd
dans le fichier d'unité /etc/systemd/system/dhcpd.service
sous la section [Service]. Elles incluent :
-pportnum
— spécifie le numéro de port UDP sur lequeldhcpd
doit écouter. La valeur par défaut est le port 67. Le serveurDHCP
transmet les réponses aux clientsDHCP
à un numéro de port d'un numéro supérieur au numéro de port UDP spécifié. Par exemple, si le port par défaut 67 est utilisé, le serveur écoute les requêtes sur le port 67, et répond au client sur le port 68. Si un port est spécifié ici et que l'agent de relaisDHCP
est utilisé, le même port que celui sur lequel l'agent de relaisDHCP
doit écouter, devra être spécifié. Voir Section 10.3, « Agent de relais DHCP » pour plus de détails.-f
— exécute le démon en arrière plan. Utilisé uniquement pour le débogage.-d
— logue le démon de serveurDHCP
en descripteur d'erreur standard. Utilisé surtout pour le débogage. Si non spécifié, la journalisation apparaîtra sur le fichier/var/log/messages
.-cf filename
— indique l'emplacement du fichier de configuration. L'emplacement par défaut est/etc/dhcp/dhcpd.conf
.-lf filename
— indique l'emplacement du fichier de base de données d'allocations. Si un fichier de base de données d'allocation existe déjà, il est très important que le même fichier soit utilisé à chaque fois que le serveurDHCP
démarre. Il est fortement conseillé d'utiliser cette option à but de débogage sur des machines qui ne soient pas des machines de production. L'emplacement par défaut est/var/lib/dhcpd/dhcpd.leases
.-q
— ne pas afficher tout le message copyright quand vous démarrez le démon.