10.3. Agent de relais DHCP

L'agent de relais DHCP (dhcrelay) permet de relayer les requêtes DHCP et BOOTP d'un sous-réseau sans serveur DHCP vers un ou plusieurs serveurs DHCP sur d'autres sous-réseaux.
Lorsqu'un client DHCP demande des informations, l'agent de relais DHCP transfère la requête à la liste des serveurs DHCP spécifiés lors du démarrage de l'agent de relais DHCP. Lorsqu'un serveur DHCP renvoie une réponse, la réponse est diffusée sur le réseau ayant envoyé la requête d'origine.
L'agent de relais DHCP pour IPv4, dhcrelay, écoutes les demandes DHCPv4 et BOOTP sur toutes les interfaces, sauf si les interfaces sont spécifiées dans /etc/sysconfig/dhcrelay avec la directive INTERFACES. Voir Section 10.3.1, « Configurer dhcrelay en tant qu'agent de relais DHCPv4 et BOOTP ». L'agent de relais DHCP pour IPv6, dhcrelay6, n'a pas ce comportement par défaut et vous devez spécifier les interfaces pour écouter les requêtes DHCPv6. Voir Section 10.3.2, « Configurer dhcrelay en tant qu'agent de relais DHCPv6 ».
dhcrelay peut être exécuté en tant qu'agent de relais DHCPv4 et BOOTP (par défaut) ou en tant qu'agent de relais DHCPv6 (avec l'argument -6). Pour voir le message d'utilisation, exécutez la commande dhcrelay -h.

10.3.1. Configurer dhcrelay en tant qu'agent de relais DHCPv4 et BOOTP

Pour exécuter dhcrelay en mode DHCPv4 et BOOTP, spécifier les serveurs dans lesquels vous souhaitez envoyer les demandes. Copier et éditer le fichier dhcrelay.service en tant qu'utilisateur root :
~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/
~]# vi /etc/systemd/system/dhcrelay.service
Modifiez l'option ExecStart sous la section [Service] et ajouter une ou plusieurs adresses IPv4 de serveur à la fin de la ligne, par exemple :
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1
Si vous souhaitez également spécifier des interfaces où l'agent de relais DHCP écoute les requêtes DHCP, ajoutez-les à l'option ExecStart avec l'argument -i (sinon, il écoutera toutes les interfaces), par exemple :
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1 -i em1
. Pour les autres options, consulter la page man dhcrelay(8).
Pour activer les changements, en tant qu'utilisateur root, démarrez le service à nouveau :
~]# systemctl --system daemon-reload
~]# systemctl restart dhcrelay

10.3.2. Configurer dhcrelay en tant qu'agent de relais DHCPv6

Pour exécuter dhcrelay en mode DHCPv6, ajouter l'argument -6 et indiquer « lower interface » (interface de niveau inférieur sur laquelle les requêtes vont être reçues des clients ou en provenance d'autres agents de relais) et « upper interface » (l'interface de niveau supérieur sur laquelle des requêtes des clients et d'autres agents de relais doivent être transférées). Copier dhcrelay.service dans dhcrelay6.service et modifiez-le en tant qu'utilisateur root :
~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.service
~]# vi /etc/systemd/system/dhcrelay6.service
Modifiez l'option ExecStart sous la section [Service] Ajouter l'argument -6 et ajpouter les interfaces « lower interface » et « upper interface », par exemple :
ExecStart=/usr/sbin/dhcrelay -d --no-pid -6 -l em1 -u em2
. Pour obtenir des options supplémentaires, consulter la page man dhcrelay(8).
Pour activer les changements, en tant qu'utilisateur root, démarrez le service à nouveau :
~]# systemctl --system daemon-reload
~]# systemctl restart dhcrelay6