PROJET AUTOBLOG


Shaarli - Les discussions de Shaarli

Archivé

Site original : Shaarli - Les discussions de Shaarli du 23/07/2013

⇐ retour index

Unbound documentation [ mettre en place simplement un DNS menteur]

jeudi 25 juin 2015 à 12:55

On a un cluster Storm/Kafka/Zk. Entre eux, les membres du clusters doivent se parler via un réseau privé adressé en RFC1918. Mais, des machines externes au cluster doivent orchestrer le travail sur le cluster (typiquement le storm-supervisor est en dehors de ce cluster) ou bien pousser/recupérer des données dans les kafka.

Les machines du cluster sont enregistrées dans la zone DNS publique X.cluster.compagny.example (mais cluster.compagny.exemple n'est pas une zone). Le plus simple consiste donc à installer un unbound qui mentira lorsqu'il est interrogé pour X.cluster.compagny.example et qui transférera les autres requêtes à un servuer DNS récursif déjà existant. L'adresse de ce unbound sera mis dans le /etc/resolv.conf des membres du cluster. En revanche, il ne sera pas utilisé par les machines externes.

Ainsi les machines du cluster qui interrogent le Unbound obtiendront une IP privée pour un nom X.cluster.compagny.exemple, obtiendront une réponse non falsifiée pour tous les autres noms et les autres machines n'utilisant pas ce Unbound pour résoudre les noms obtiendront une IP publique pour un nom X.cluster.compagny.exemple

Et hop, le bout de conf' Unbound kiVaBien :
server:
   # On écoute sur lo v4
   interface: 127.0.0.1

   # On écoute sur l'if publique v4
   interface: 192.0.2.1

   # On autorise l'intégralité de l'espace adressage IPv4 car trop de ranges
   # à autoriser sinon :( Netfilter veille donc on n'a pas un récursif ouvert !
   access-control: 0.0.0.0/0 allow


   # The following line will configure unbound to perform cryptographic
   # DNSSEC validation using the root trust anchor.
   auto-trust-anchor-file: "/var/lib/unbound/root.key"


   ## On ment pour X.cluster.compagny.exemple
   # Si X.cluster.compagny.exemple. n'existe pas dans fichier, Unbound tentera
   # de résoure via récursif (cf ci-dessous). Utile pour les oublis lors
   # du déploiement de nouveaux membres du cluster
   local-zone: "cluster.compagny.exemple." transparent

   # Les mensonges pour X.cluster.compagny.exemple.
   local-data: "1.cluster.compagny.exemple.  IN  A 172.16.0.1"
   local-data: "2.cluster.compagny.exemple.  IN  A 172.16.0.2"
   local-data: "3.cluster.compagny.exemple.  IN  A 172.16.0.3"
   local-data: "4.cluster.compagny.exemple.  IN  A 172.16.0.4"
   local-data: "5.cluster.compagny.exemple.  IN  A 172.16.0.5"
[...]

   ## On forward toutes les autres requêtes à un récursif
   # (mutualisation de cache). Normalement interne mais
   # ici c'est juste un exemple
   forward-zone:
       name: .
       forward-addr: 89.234.141.66


Sur un membre du cluster :
$ dig +short 2.cluster.compagny.exemple
172.16.0.2

Sur une machine externe au cluster :
$ dig +short 2.cluster.compagny.exemple
192.0.2.12
(Permalink)