Bonjour la liste,

je viens aujourd'hui avec un problème qui me prend la tête depuis un moment.

J'ai une infrastructure DNS qui gére des zones internes (ici example.com) avec un résolveur Unbound (10.1.0.3) et un serveur faisant autorité Knot (10.1.0.2).

Knot est configuré pour servir une zone interne avec le module geoip en mode "subnet" contenant ces données :

example.com:
  - net: 10.1.1.0/24
    A: 10.1.1.1
  - net: 10.1.2.0/24
    A: 10.1.2.1

Et en fallback le fichier de zone de example.com contient ceci :

;; Zone dump (Knot DNS 2.8.5)
example.com. 3600 SOA ns.example.com. admin.example.com. 2020060303 43200 900 1209600 60
example.com.            3600    NS      ns.example.com.
ns.example.com.         3600    A       10.1.0.2
example.com.            3600    A       127.0.0.1


Du côté de Unbound, j'ai activé EDNS Client-Subnet pour cette zone :

server:
# Disable DNSSEC validation for internal domains
domain-insecure: "example.com"
# EDNS-client-subnet
module-config: "subnetcache validator iterator"
client-subnet-zone: "example.com"
# Stub-zones
stub-zone:
        name: "example.com"
        stub-addr: 10.1.0.2


Avec ce genre de configuration quand j'interroge depuis un subnet renseigné dans le module geoip ça marche bien :

$ dig @10.1.0.3 example.com +subnet=10.1.1.0/24 +short
10.1.1.1
$ dig @10.1.0.3 example.com +subnet=10.1.2.0/24 +short
10.1.2.1

Par contre si je demande depuis un subnet qui n'est pas dans ma configuration geoip :

$ dig @10.1.0.3 example.com +subnet=10.1.3.0/24 +short
127.0.0.1
$ dig @10.1.0.3 example.com +subnet=10.1.1.0/24 +short
127.0.0.1
$ dig @10.1.0.3 example.com +subnet=10.1.2.0/24 +short
127.0.0.1

il me sert la réponse du fichier de zone ce qui est normal pour la première requête hors configuration geoip, mais le résolveur met cette réponse en cache et la sert à toute autre demande concernant ce domaine sans du coup tenir compte du subnet. Mon cache se trouve comme empoisonné par cette réponse par défaut.

J'ai tenté plusieurs choses : dire à Unbound de ne pas faire de cache pour cette stub-zone (stub-no-cache), essayer en forward-zone plutôt que stub-zone, etc mais rien n'y fait.

Du coup je me demande si quelqu'un ici connait ce cas et pourrait savoir ce que j'ai pu mal configurer.

--
Codimp


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à