DNS

Schéma de base

digraph "arch" {
ranksep=2
"DNS server 1"; "DNS server 2"; "DNS server 3";
 subgraph cluster_client {
  ranksep=0
  label="Client";
  "client_resolver"[label="resolver"];
  "client_hosts"[label="/etc/hosts"];
  "client_dnsmasq"[label="dnsmasq"];
  "client_resolver" -> "client_dnsmasq"[label="first"];
  "client_resolver" -> "client_hosts"[label="second"];
 }
 subgraph cluster_hypervisor {
  ranksep=0
  label="Hypervisor";
  "hypervisor_resolver"[label="resolver"];
  "hypervisor_hosts"[label="/etc/hosts"];
  "hypervisor_dnsmasq"[label="dnsmasq"];
  "hypervisor_resolver" -> "hypervisor_dnsmasq"[label="second"];
  "hypervisor_resolver" -> "hypervisor_hosts"[label="first"];
 }
 subgraph cluster_server1 {
  ranksep=0
   label="Server 1"
  "DNS server 1"[label="named"];
 }

 subgraph cluster_server2 {
  ranksep=0
   label="Server 2"
  "DNS server 2"[label="named"];
 }

 subgraph cluster_server3 {
  ranksep=0
   label="Server 3"
  "DNS server 3"[label="named"];
 }
  "client_dnsmasq" -> "DNS server 1";
  "client_dnsmasq" -> "DNS server 2";
  "client_dnsmasq" -> "DNS server 3";
  "hypervisor_dnsmasq" -> "DNS server 1";
  "hypervisor_dnsmasq" -> "DNS server 2";
  "hypervisor_dnsmasq" -> "DNS server 3";
}

Description

Dans l’architecture convenue, tous les clients DNS ont le même principe de fonctionnement mais avec des priorités différentes en fonction de leur rôle durant le démarrage des services de management.

Le resolver des clients sera configuré pour utiliser un dnsmasq puis /etc/hosts ou l’inverse pour les hyperviseurs et les VMs servant de serveur DNS.

Les fichiers /etc/hosts seront générés via confiture (avec une limitation des entrées générées au strict minimum) et doivent être utilisés tels quels.

Les serveurs dnsmasq écouteront sur l’interface loopback uniquement et serviront de cache au /etc/hosts et pourront relayer les requêtes aux serveurs DNS du calculateur, ces dernières étant cachées également.

Ainsi, les configurations de dnsmasq seront identiques sur tous les nœuds, de même pour /etc/hosts. La seule différence résidera dans /etc/nsswitch.conf où la majorité des nœuds auront un hosts configuré en dns files et les autres (hyperviseur et serveurs DNS) en files dns.

Les serveurs DNS utiliseront named avec la configuration générée par confiture et écouteront uniquement sur une IP de service (avec une éventuelle bascule de cette IP entre les serveurs). De même, pour permettre un relai vers les serveurs du centre de calcul, ces VMs devront tourner sur des hyperviseurs avec un accès au backbone ethernet.

Si la configuration de named (configuration ou zones) a besoin de modifications (CNAME par exemple), il sera nécessaire de modifier le template de base et non les fichiers résultant de la génération.