Smart-proxy-dhcp

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Module smart proxy Foreman
Rôle Gestion des baux DHCP (création/suppression de réservations) pilotée par Foreman
Backend ISC DHCP (via OMAPI) ou implémentation native Microsoft/libvirt
Voir aussi Smart proxies · Smart-proxy-dns · Smart-proxy-tftp

Le module DHCP d'un smart proxy Foreman permet à Foreman de créer et supprimer dynamiquement des réservations DHCP lors du provisioning d'hôtes. Le proxy communique avec le serveur ISC DHCP local via son interface OMAPI (Object Management API).

Prérequis : génération de la clé OMAPI

Le serveur DHCP doit accepter les requêtes OMAPI authentifiées par une clé HMAC :

yum install bind
dnssec-keygen -r /dev/urandom -a HMAC-MD5 -b 512 -n HOST omapi_key
cat Komapi_key.+*.private | grep ^Key | cut -d ' ' -f2-

La dernière commande affiche la clé secrète à réutiliser dans les configurations ci-dessous.

Configuration ISC DHCP

vi /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;

omapi-port 7911;
# Clé OMAPI (générée ci-dessus)
key omapi_key {
        algorithm HMAC-MD5;
        secret "REMPLACER_PAR_LA_CLE_GENEREE";
}
omapi-key omapi_key;

subnet 192.168.0.0 netmask 255.255.255.0 {
  option routers            192.168.0.254;
  option subnet-mask        255.255.255.0;

  option domain-name           "example.com";
  option domain-name-servers   192.168.0.1, 8.8.8.8;
  option log-servers           syslog;
  option ntp-servers           ntp;

  range dynamic-bootp 192.168.0.10 192.168.0.25;
  default-lease-time 21600;
  max-lease-time 43200;
}

Configuration du smart proxy

vi /etc/foreman-proxy/settings.d/dhcp.yml
# Active la gestion DHCP
:enabled: true
# Fournisseurs valides :
#   - isc         (ISC DHCP)
#   - native_ms   (implémentation native Microsoft)
#   - virsh       (implémentation simplifiée pour libvirt)
:dhcp_vendor: isc
# dhcp_subnets restreint les sous-réseaux interrogés (utile surtout pour native_ms)
#:dhcp_subnets: [192.168.0.0/255.255.255.128]

# Chemins pour une distribution RedHat/CentOS (ISC)
:dhcp_config: /etc/dhcp/dhcpd.conf
:dhcp_leases: /var/lib/dhcpd/dhcpd.leases
# Chemins équivalents sous Ubuntu/Debian (à adapter) :
#:dhcp_config: /etc/dhcp/dhcpd.conf
#:dhcp_leases: /var/lib/dhcp/dhcpd.leases

:dhcp_key_name: omapi_key
:dhcp_key_secret: REMPLACER_PAR_LA_CLE_GENEREE
:dhcp_omapi_port: 7911

Cas particulier : interfaces virtuelles

Sur certains hyperviseurs, l'interface réseau par défaut (ex. venet0) n'est pas correctement détectée par dhcpd ; il faut alors forcer explicitement l'interface d'écoute :

cat /etc/sysconfig/dhcpd
DHCPDARGS="eth1"

Application et démarrage

systemctl restart dhcpd
systemctl enable dhcpd
systemctl restart foreman-proxy

Voir aussi