Installation de ISC Kea DHCP Server
INstallez ISC Kea DHCP Server en
exécutant les commandes suivantes :
./configure --prefix=/usr \
--sysconfdir=/etc \
--docdir=/usr/share/doc/kea-2.4.0 \
--localstatedir=/var \
--enable-shell \
--with-openssl \
--disable-static &&
make
Pour tester les résultats lancez : make check.
Pour installer la suite ISC Kea DHCP
Server, lancez les commandes suivantes en tant
qu'utilisateur root
:
make -j1 install
Explication des commandes
--with-pgsql
ou --with-mysql
: ISC Kea peut stocker les baux en base de
données. Cela peut être pratique dans de grands environnements qui
exécutent une grappe de serveurs DHCP. Le moteur memfile (qui est un fichier CSV stocké
localement) est toujours disponible.
--enable-generate-docs
: si la
documentation doit être reconstruite, ajoutez cette option.
Plusieurs dépendances doivent être installées pour générer la
documentation.
make -j1 install
: ISC
recommande de n'utiliser aucune forme de parallélisme ou de serveur
de tâches pour l'installation.
Configuration du serveur DHCP Key d'ISC
La prise en charge d'IPv4, IPv6 et DDNS a été divisée en différents
serveurs qui tournent indépendamment les uns des autres. Chacun a
son propre fichier de configuration. Des fichiers de configuration
supplémentaires proviennent de l'agent keactrl qui est utilisé pour
contrôler les serveurs de manière conviviale.
Consultez le manuel de référence de
l'administrateur de Kea pour des informations détaillées sur la
configuration de ISC Kea. C'est un
système très complet. La configuration que nous montrons ici est le
strict minimum pour lancer un serveur DHCP mais elle inclut déjà
une configuration pour DDNS (Dynamic DNS). Cette installation peut
fonctionner pour de petits réseaux avec peu de clients et peu de
traffic. Pour les plus grosses installations avec des milliers de
clients, vous pouvez configurer ISC
Kea pour utiliser des bases de données (mariadb ou
postgresql) pour stocker les baux et construire une grappe avec
plusieurs nœuds. Il peut être intégré à ISC Stork, un tableau
de bord pour la gestion d'ISC Kea.
Si vous voulez démarrer le serveur DHCP au démarrage, installez
l'unité kea-dhcpd.service
incluse dans le paquet
blfs-systemd-units-20230816 :
make install-kea-dhcpd
Fichiers de
configuration
/etc/kea/keactrl.conf
, /etc/kea/kea-ctrl-agent.conf
, /etc/kea/kea-dhcp4.conf
, /etc/kea/kea-dhcp6.conf
et /etc/kea/kea-dhcp-ddns.conf
Configuration du
contrôleur de Kea
keactrl est utilisé
pour contrôler les serveurs indépendants (IPv4, IPv6, DDNS). Son
fichier de configuration /etc/kea/keactrl.conf
est installé par défaut
et contient plusieurs paramètres de chemins qui sont définis par
configure à la
construction. Il contient également des paramètres pour spécifier
les serveurs à démarrer.
-
Agent de contrôle
L'agent de contrôle est un démon qui permet la
(re)configuration du service Kea DHCP via une API REST.
Indiquez ctrl_agent=yes
pour
démarrer l'agent de contrôle (le service qui fournit l'API
REST), indiquez ctrl_agent=no
si vous n'en avez pas besoin.
-
Serveur DHCP IPv4
Ce démon gère les requêtes pour les adresses IPv4. Indiquez
dhcp4=yes
pour le démarrer,
indiquez dhcp4=no
si vous ne
voulez pas de service DHCP pour l'IPv4.
-
Serveur DHCP IPv6
Ce démon gère les requêtes pour les adresses IPv6. Indiquez
dhcp6=yes
pour le démarrer,
indiquez dhcp6=no
si vous ne
voulez pas de service DHCP pour l'IPv6.
-
DNS dynamique
Ce démon est utilisé pour mettre à jour un serveur DNS de
manière dynamique lorsque Kea assigne une adresse IP à un
périphérique. Indiquez dhcp_ddns=yes
pour l'activer, indiquez
dhcp_ddns=o
si vous ne voulez
pas de DNS dynamique.
Le service Netconf n'est pas installé car il nécessite des
dépendances qui ne sont pas couvertes dans le livre BLFS actuel.
Avec la commande suivante, Kea sera configuré pour démarrer le
service dhcp pour l'IPv4 et la mise à jour dynamique du DNS,
tandis que l'agent de contrôle et le service dhcp pour IPv6
restent éteints. Modifiez la commande pour qu'elle corresponde à
vos besoins et exécutez-la en tant qu'utilisateur root
:
sed -e "s/^dhcp4=.*/dhcp4=yes/" \
-e "s/^dhcp6=.*/dhcp6=no/" \
-e "s/^dhcp_ddns=.*/dhcp_ddns=yes/" \
-e "s/^ctrl_agent=.*/ctrl_agent=no/" \
-i /etc/kea/keactrl.conf
Configuration de l'agent de contrôle
La configuration fournie peut être utilisée sans changement mais
dans BLFS les objets comme les sockets sont stockés dans
/run
plutôt que dans /tmp
.
cat > /etc/kea/kea-ctrl-agent.conf << "EOF"
// Begin /etc/kea/kea-ctrl-agent.conf
{
// This is a basic configuration for the Kea Control Agent.
// RESTful interface to be available at http://127.0.0.1:8000/
"Control-agent": {
"http-host": "127.0.0.1",
"http-port": 8000,
"control-sockets": {
"dhcp4": {
"socket-type": "unix",
"socket-name": "/run/kea4-ctrl-socket"
},
"dhcp6": {
"socket-type": "unix",
"socket-name": "/run/kea6-ctrl-socket"
},
"d2": {
"socket-type": "unix",
"socket-name": "/run/kea-ddns-ctrl-socket"
}
},
"loggers": [
{
"name": "kea-ctrl-agent",
"output_options": [
{
"output": "/var/log/kea-ctrl-agent.log"
"pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
}
],
"severity": "INFO",
"debuglevel": 0
}
]
}
}
// End /etc/kea/kea-ctrl-agent.conf
EOF
Configuration du serveur DHCP IPv4
Un fichier de configuration d'exemple est créé dans etc/kea/kea-dhcp4.conf
. Ajustez le fichier à
vos besoin ou remplacez-le en utilisant l'exemple suivant en tant
qu'utilisateur root
:
cat > /etc/kea/kea-dhcp4.conf << "EOF"
// Begin /etc/kea/kea-dhcp4.conf
{
"Dhcp4": {
// Add names of your network interfaces to listen on.
"interfaces-config": {
"interfaces": [ "eth0", "eth2" ]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea4-ctrl-socket"
},
"lease-database": {
"type": "memfile",
"lfc-interval": 3600
},
"expired-leases-processing": {
"reclaim-timer-wait-time": 10,
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"unwarned-reclaim-cycles": 5
},
"renew-timer": 900,
"rebind-timer": 1800,
"valid-lifetime": 3600,
// Enable DDNS - Kea will dynamically update the DNS
"ddns-send-updates" : true,
"ddns-qualifying-suffix": "your.domain.tld",
"dhcp-ddns" : {
"enable-updates": true
},
"subnet4": [
{
"subnet": "192.168.56.0/24",
"pools": [ { "pool": "192.168.56.16 - 192.168.56.254" } ],
"option-data": [
{
"name": "domain-name",
"data": "your.domain.tld"
},
{
"name": "domain-name-servers",
"data": "192.168.56.2, 192.168.3.7"
},
{
"name": "domain-search",
"data": "your.domain.tld"
},
{
"name": "routers",
"data": "192.168.56.2"
}
]
}
],
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"output": "/var/log/kea-dhcp4.log",
"pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
}
],
"severity": "INFO",
"debuglevel": 0
}
]
}
}
// End /etc/kea/kea-dhcp4.conf
EOF
La configuration pour l'IPv6 est similaire à la configuration
pour l'IPv4. Le fichier de configuration est /etc/kea/kea-dhcp6.conf
.
Configuration du DNS dynamique
Si un serveur BIND-9.18.18 est lancé, ISC Kea peut mettre à jour le DNS lorsqu'il
donne une adresse IP à un client. Un fichier de configuration
d'exemple est créé dans /etc/kea/kea-dhcp-ddns.conf
. Ajustez le fichier
pour qu'il corresponde à vos besoins ou remplacez-le en utilisant
l'exemple suivant en tant qu'utilisateur root
:
cat > /etc/kea/kea-dhcp-ddns.conf << "EOF"
// Begin /etc/kea/kea-dhcp-ddns.conf
{
"DhcpDdns": {
"ip-address": "127.0.0.1",
"port": 53001,
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea-ddns-ctrl-socket"
},
"tsig-keys": [
{
"name" : "rndc-key",
"algorithm" : "hmac-sha256",
"secret" : "1FU5hD7faYaajQCjSdA54JkTPQxbbPrRnzOKqHcD9cM="
}
],
"forward-ddns" : {
"ddns-domains" : [
{
"name" : "your.domain.tld.",
"key-name": "rndc-key",
"dns-servers" : [
{
"ip-address" : "127.0.0.1",
"port" : 53
}
]
}
]
},
"reverse-ddns" : {
"ddns-domains" : [
{
"name" : "56.168.192.in-addr.arpa.",
"key-name": "rndc-key",
"dns-servers" : [
{
"ip-address" : "127.0.0.1",
"port" : 53
}
]
}
]
},
"loggers": [
{
"name": "kea-dhcp-ddns",
"output_options": [
{
"output": "/var/log/kea-ddns.log",
"pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
}
],
"severity": "INFO",
"debuglevel": 0
}
]
}
}
// End /etc/kea/kea-dhcp-ddns.conf
EOF
Note
La valeur de secret
n'est qu'un
exemple. Générez la clé pour votre installation en exécutant la
commande rndc-confgen
-a ou la commande tsig-keygen qui sont toutes
deux fournies par BIND-9.18.18.
Dans cette configuration d'exemple nous supposons que le
serveur DNS tourne sur la même machine que Kea (accessible via
127.0.0.1
) et que cette machine a
l'adresse IP 192.168.56.2
.