9.9 KiB
Tutoriel : Migration ISC DHCP vers Kea DHCP sur OPNsense
Pourquoi migrer ?
ISC DHCP est End-of-Life (fin de vie) et ne recoit plus de mises a jour ni de correctifs de securite. OPNsense recommande fortement la migration vers Kea (ou Dnsmasq).
Kea apporte :
- Une API REST complete (CRUD sur les reservations, baux, subnets)
- La haute disponibilite (HA) native
- Un support actif et des mises a jour regulieres
- Une meilleure integration avec IPWatch (gestion des reservations via API)
Important
: ISC DHCP n'a PAS d'API pour gerer les mappages statiques. Kea expose des endpoints complets (
add_reservation,del_reservation, etc.) C'est la raison principale pour laquelle IPWatch necessite Kea.
Pre-requis
- OPNsense version 24.x ou superieure (Kea est inclus depuis la v24)
- Acces administrateur a l'interface web OPNsense
- Sauvegarder la configuration actuelle avant toute modification
- Lister les mappages statiques actuels (pour verification post-migration)
- Prevoir une fenetre de maintenance (courte coupure DHCP possible)
Etape 1 : Inventaire de la configuration ISC actuelle
Avant de toucher a quoi que ce soit, noter la configuration actuelle :
- Aller dans Services > ISC DHCPv4 > [Interface LAN]
- Noter :
- Plage DHCP : IP debut et IP fin du pool dynamique
- Serveurs DNS distribues
- Passerelle (gateway) distribuee
- Domaine distribue
- Duree du bail (lease time)
- Aller dans l'onglet Static Mappings (en bas de la page)
- Lister tous les mappages statiques :
- Prendre une capture d'ecran ou noter : MAC | IP | Hostname | Description
- Ce sont les reservations a migrer vers Kea
Astuce : Si tu as beaucoup de mappages, exporte la config complete dans System > Configuration > Backups > Download (fichier
config.xml). Ce fichier contient tous les static mappings dans les noeuds<staticmap>.
Etape 2 : Configurer Kea DHCP (sans l'activer)
On prepare Kea AVANT de desactiver ISC. Ainsi la bascule sera quasi-instantanee.
2.1 Creer les Subnets
- Aller dans Services > Kea DHCP > DHCPv4 > Subnets
- Cliquer + pour ajouter un subnet
- Remplir :
- Subnet :
10.0.0.0/22(ton reseau, adapter selon ta config) - Pools : definir la plage dynamique, ex:
10.0.1.100 - 10.0.1.254- ⚠️ Les reservations statiques doivent etre EN DEHORS de cette plage
- Routers :
10.0.0.1(passerelle) - DNS Servers :
10.0.0.1(ou tes serveurs DNS) - Domain Name : ton domaine local (ex:
local) - Valid Lifetime : duree du bail en secondes (ex:
86400pour 24h)
- Subnet :
- Sauvegarder (ne pas encore activer le service)
Note
: Si tu as plusieurs VLANs/sous-reseaux, creer un subnet par VLAN.
2.2 Activer le Control Agent (recommande)
- Aller dans Services > Kea DHCP > Control Agent
- Cocher Enabled
- Bind address :
127.0.0.1 - Bind port :
8000 - Sauvegarder
Le Control Agent expose l'API REST locale de Kea, utile pour le monitoring et la HA.
Etape 3 : Migrer les mappages statiques
Option A : Migration manuelle (peu de mappages, < 10)
Pour chaque mappage statique ISC :
- Aller dans Services > Kea DHCP > DHCPv4 > Reservations
- Cliquer + pour ajouter
- Remplir :
- Subnet : selectionner le subnet cree a l'etape 2
- IP address : l'IP fixe (ex:
10.0.0.5) - MAC address : l'adresse MAC du client (ex:
AA:BB:CC:DD:EE:FF) - Hostname : le nom d'hote (ex:
debian-vm5) - Description :
Migration depuis ISC DHCP(ou description originale)
- Sauvegarder
- Repeter pour chaque mappage
Option B : Migration automatique avec l'outil communautaire (beaucoup de mappages)
Un outil gratuit existe : Migration Tool
Etapes :
-
Exporter la config OPNsense :
- Aller dans System > Configuration > Backups
- Cliquer Download configuration
- Tu obtiens un fichier
config.xml
-
Telecharger l'outil Migration :
# Sur Linux : wget https://github.com/EasyG0ing1/Migration/releases/latest/download/migrate-linux chmod +x migrate-linux -
Executer la migration :
# Placer config.xml dans le meme dossier ./migrate-linux- L'outil lit les
<staticmap>de ISC DHCP dans le config.xml - Il les convertit en reservations Kea
- Il genere un fichier
new_config.xml
- L'outil lit les
-
Importer dans OPNsense :
- Aller dans System > Configuration > Backups
- Cliquer Restore configuration et selectionner
new_config.xml - ⚠️ Decocher "Reboot after restore" !
- Cliquer Restore
-
Verifier les reservations dans Services > Kea DHCP > DHCPv4 > Reservations
Option C : Migration via OPNsense 25.7+ (si disponible)
A partir de la version 25.7, OPNsense propose des options d'export integrees pour faciliter la transition des baux statiques. Verifier dans :
- Services > ISC DHCPv4 → bouton Export (si present)
Etape 4 : Basculer d'ISC vers Kea
C'est l'etape critique. Les deux services ne peuvent PAS tourner en meme temps sur la meme interface.
4.1 Desactiver ISC DHCP
- Aller dans Services > ISC DHCPv4 > [Chaque interface]
- Decocher "Enable DHCP server on [interface]"
- Sauvegarder
- Repeter pour chaque interface configuree
4.2 Activer Kea DHCP
- Aller dans Services > Kea DHCP > DHCPv4 > Settings
- Cocher Enabled
- Selectionner les Interfaces (ex: LAN, VLAN10, etc.)
- Cocher Firewall rules (ajoute automatiquement les regles necessaires)
- Cliquer Save
- Cliquer Apply pour demarrer le service
Temps d'arret : Quelques secondes entre la desactivation d'ISC et l'activation de Kea. Les clients existants conservent leur bail actuel, donc pas de coupure immediate.
Etape 5 : Verification post-migration
5.1 Verifier le service
- Aller dans Services > Kea DHCP > DHCPv4 > Settings
- Le badge doit afficher "Running" (vert)
- Verifier aussi dans System > Diagnostics > Services que
kea-dhcp4est actif
5.2 Verifier les reservations
- Services > Kea DHCP > DHCPv4 > Reservations
- Comparer avec ta liste de l'etape 1 : toutes les IPs/MAC sont presentes ?
5.3 Tester l'attribution DHCP
- Sur un client, renouveler le bail :
- Linux :
sudo dhclient -r && sudo dhclient - Windows :
ipconfig /release && ipconfig /renew - Mac : Preferences Systeme > Reseau > Renouveler le bail DHCP
- Linux :
- Verifier que le client recoit la bonne IP (surtout pour les reservations statiques)
5.4 Verifier les logs
- Services > Kea DHCP > Log File
- Chercher les messages d'attribution (DHCPACK) et d'erreur
- Pas de warnings = migration reussie
5.5 Verifier la resolution DNS
Si tu utilises Unbound avec registrations DHCP :
- ⚠️ Kea ne synchronise PAS automatiquement les noms dynamiques avec Unbound
- Seules les reservations statiques sont synchronisees
- Pour les clients dynamiques, il faut creer des host overrides manuellement (ou via IPWatch !)
Etape 6 : Nettoyage
- Verifier pendant 24-48h que tout fonctionne (renouvellement des baux)
- Ne pas supprimer ISC DHCP tout de suite (garder en backup)
- Une fois satisfait, tu peux desinstaller le plugin ISC si souhaite
Etape 7 : Configurer l'API pour IPWatch
Maintenant que Kea est actif, IPWatch peut utiliser l'API complete :
7.1 Creer une cle API OPNsense (si pas deja fait)
- System > Access > Users
- Creer un utilisateur dedie (ex:
ipwatch_api) ou utiliser l'existant - Dans l'onglet API Keys, cliquer + pour generer une paire key/secret
- Sauvegarder le key et le secret
7.2 Tester la connexion API
# Tester depuis la machine IPWatch :
curl -k -u "KEY:SECRET" https://10.0.0.1/api/core/service/search
# Verifier que kea-dhcp4 apparait dans les services :
curl -k -u "KEY:SECRET" https://10.0.0.1/api/kea/dhcpv4/search_reservation
7.3 Configurer dans IPWatch
Ajouter dans config.yaml :
opnsense:
enabled: true
host: "10.0.0.1"
api_key: "ta_cle_api"
api_secret: "ton_secret_api"
verify_ssl: false # si certificat auto-signe
sync_interval: 300 # secondes entre chaque synchro
Resume des endpoints Kea disponibles apres migration
| Action | Endpoint | Methode |
|---|---|---|
| Lister reservations | /api/kea/dhcpv4/search_reservation |
GET/POST |
| Detail reservation | /api/kea/dhcpv4/get_reservation/{uuid} |
GET |
| Ajouter reservation | /api/kea/dhcpv4/add_reservation |
POST |
| Modifier reservation | /api/kea/dhcpv4/set_reservation/{uuid} |
POST |
| Supprimer reservation | /api/kea/dhcpv4/del_reservation/{uuid} |
POST |
Champs : subnet, ip_address, hw_address, hostname, description
Depannage
| Probleme | Solution |
|---|---|
| Kea ne demarre pas | Verifier les logs dans Services > Kea DHCP > Log File |
| Client ne recoit pas d'IP | Verifier que l'interface est selectionnee dans Settings |
| Reservation ne fonctionne pas | Verifier que l'IP est hors du pool dynamique |
| Conflit d'IP | Deux clients avec le meme MAC ? Verifier les doublons |
| API ne repond pas | Verifier le Control Agent (port 8000) et la cle API |
| DNS ne resout plus les noms | Creer des host overrides Unbound pour les clients dynamiques |