Smart-proxy-dns
| Fiche express | |
|---|---|
| Type | Module smart proxy Foreman |
| Rôle | Création/suppression dynamique d'enregistrements DNS pilotée par Foreman |
| Backend | BIND (via clé TSIG et nsupdate) |
| Voir aussi | Smart proxies · Smart-proxy-dhcp · Smart-proxy-tftp |
Le module DNS d'un smart proxy Foreman permet à Foreman de créer et supprimer dynamiquement des enregistrements DNS (A, PTR...) lors du provisioning d'hôtes. Il s'appuie sur un serveur DNS BIND préconfiguré pour accepter les mises à jour dynamiques (dynamic DNS / nsupdate), authentifiées par une clé TSIG.
Prérequis
Un serveur DNS BIND doit être disponible et autoriser les mises à jour dynamiques via une clé de signature (TSIG). Le smart proxy ne fait qu'exécuter des requêtes nsupdate signées avec cette clé.
Configuration du smart proxy
vi /etc/foreman-proxy/settings.yml
:dns: true :dns_key: /home/proxy/keys/Kdns-update-key.+157+00000.private :dns_server: dns1.example.com
Génération de la clé TSIG
ddns-confgen -k foreman -a hmac-md5
vi /etc/rndc.key
key "foreman" {
algorithm hmac-md5;
secret "REMPLACER_PAR_LA_CLE_GENEREE";
};
Configuration BIND (named.conf)
vi /etc/named.conf
options {
directory "/var/named";
// Redirige vers le résolveur amont ce que ce serveur ne peut résoudre
forwarders { 192.168.0.1; };
statistics-file "/var/named/data/named_stats.txt";
dump-file "/var/named/data/cache_dump.db";
};
controls { inet 127.0.0.1 allow { localhost; } keys { foreman; }; };
include "/etc/rndc.key";
# ----------------------------------
# Zone directe
# ----------------------------------
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { key "foreman"; };
};
# ----------------------------------
# Zone inverse
# ----------------------------------
zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.in-addr-arpa.zone";
allow-update { key "foreman"; };
};
logging {
category update { update_log; };
channel update_log {
file "/var/named/logs/dns-update.log" versions 2 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
};
(à vérifier selon la version de BIND — la syntaxe logging peut nécessiter des ajustements)
Fichiers de zone
Zone directe
vi /var/named/example.com.zone
$ORIGIN example.com.
$TTL 86400
@ IN SOA ns1.example.com. hostmaster.example.com. (
2026072501 ; serial (yyyymmddNN)
3H ; refresh
15M ; retry
1W ; expiry
1D ; minimum
)
IN NS ns1.example.com.
localhost IN A 127.0.0.1
; Enregistrements A gérés dynamiquement par le smart proxy
host1 IN A 192.168.0.10
host2 IN A 192.168.0.11
Zone inverse
vi /var/named/0.168.192.in-addr-arpa.zone
$TTL 2d
$ORIGIN 0.168.192.IN-ADDR.ARPA.
@ IN SOA ns1.example.com. hostmaster.example.com. (
10 ; serial
86400 ; refresh
7200 ; retry
3600000 ; expire
86400 ; minimum
)
IN NS ns1.example.com.
10 IN PTR host1.example.com.
Autorisation des mises à jour dynamiques
Dans l'instruction zone de chaque zone à mettre à jour dynamiquement, une clause update-policy accorde le droit d'update à la clé TSIG :
update-policy {
grant foreman zonesub ANY;
};
Test manuel d'une mise à jour signée par la clé :
nsupdate -k /etc/rndc.key
Voir aussi
- Smart proxies — présentation générale des smart proxies Foreman
- Smart-proxy-dhcp — module DHCP du smart proxy
- Smart-proxy-tftp — module TFTP du smart proxy
- Foreman — plateforme pilotant ces modules