Unbound par nœud (127.0.0.1) : stub-zone vers PowerDNS (interne) + récursion Internet (ou forward). Alternative dynamique au plancher /etc/hosts. Bascule resolv.conf protégée (apply+confirm) ET validée avant (Unbound doit résoudre interne + Internet, sinon pas de bascule → nœud jamais coupé). Sûr par défaut (apply=false). Prouvé sur data-sql-01 : dig @127.0.0.1 keycloak/id-sso-01 → PowerDNS, deb.debian.org → récursion, apt OK. Rollout flotte = opt-in par nœud. Note : OPNsense embarque Unbound → l'Unbound réseau pourra vivre sur l'appliance de bordure (nœud public, Étape B) ; ce rôle reste complémentaire. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
24 lines
1.2 KiB
YAML
24 lines
1.2 KiB
YAML
---
|
|
# Résolveur local Unbound par nœud : cache + récursion (ou forward), avec une
|
|
# stub-zone vers l'autoritatif interne (PowerDNS). Rend la résolution dynamique
|
|
# (au lieu du plancher /etc/hosts statique) sans casser Internet. La bascule de
|
|
# /etc/resolv.conf est PROTÉGÉE (apply + confirm), comme client_dns.
|
|
client_unbound_paquets:
|
|
- unbound
|
|
- bind9-dnsutils # dig, pour valider avant de basculer le resolver
|
|
client_unbound_service: "unbound"
|
|
client_unbound_ecoute: "127.0.0.1"
|
|
|
|
# Zone interne autoritative (PowerDNS) — résolue via une stub-zone.
|
|
client_unbound_zone_interne: "{{ domaine_interne }}"
|
|
# IP du serveur autoritatif interne. Dérivée du groupe serveur_powerdns.
|
|
client_unbound_dns_autoritatif: "{{ hostvars[groups['serveur_powerdns'][0]].ansible_host | default('') if groups.get('serveur_powerdns') else '' }}"
|
|
|
|
# Transitaires pour '.' (Internet). Vide => Unbound recurse lui-même (racine + DNSSEC).
|
|
# À renseigner si la récursion sortante est bloquée (forward vers l'upstream réseau).
|
|
client_unbound_transitaires: []
|
|
|
|
# Bascule de /etc/resolv.conf vers 127.0.0.1 : les DEUX requis (garde-fou anti-coupure).
|
|
client_unbound_apply: false
|
|
client_unbound_confirm: false
|
|
client_unbound_resolv_conf: "/etc/resolv.conf"
|