Description

Le DNS est un système permettant la traduction de nom de domaine en addresse IP. Il permet aux utilisateurs des services du ResEl, depuis l'intérieur ou l'extérieur, d'accéder à ces services par un simple nom de domaine.

Au ResEl, il existe plusieurs serveurs DNS qui permettent une gestion des DNS sur les différents campus, et depuis l'extérieur.

Mise en place

Le système de DNS au ResEl est composée de 3 machines :

  • Saymyname : master, à Brest
  • Zahia : slave, à Brest
  • Loupiac : slave, à Rennese ; master à Rennes sur les zones d'inscription

Le serveur DNS est bind9.

La configuration et le fonctionnement des DNS est finement gérée par l'intégration continue via GitLab. La modification de configuration via le dépôt est testée puis déployé en production sur les machines. Voir les sections suivantes pour plus de détails.

Utilisation

Côté utilisateur

Sur la plupart des OS, la configuration du serveur DNS se fait automatiquement sur celui du ResEl dès la connexion au réseau s'il est en interne. Il reçoit les IPs des DNS résolvant sur le sous-réseau dans lequel il est via l'annonce DHCP.

S'il est à l'extérieur, c'est le DNS de son F.A.I. qui redirigera alors vers le DNS du ResEl en cas de résolution du domaine resel.fr.

Sous linux, on peut vérifier quel DNS est configuré en lisant le fichier /etc/resolv.conf.

On peut tester la résolution d'un nom de domaine via dig <ndd>.
On peut tester la résolution inverse d'une ip via nslookup <ip>

Côté admin

Pour ajouter, ou modifier une entrée des DNS, le plus simple est d'utiliser le système d'HostAlias, qui permet une configuration dynamique du DNS.

Configuration dynamique par le LDAP

Deuxième étape : laisser Ansible faire son taff Il suffit d'ajouter à l'entrée LDAP de la machine un champ HostAlias qui contient le sous domaine devant être résolu en CNAME vers la machine. On valide la modification via l'action "Màj des DNS" sur le site admin.

Par exemple, ajouter le champ HostAlias à wiki sur l'entrée LDAP de smeagol puis màj, va dynamiquement rajouter une entrée wiki CNAME smeagol dans toute les zones où la machine possède une IP.

Configuration statique

La configuration statique se fait en modifiant directement le fichier de configuration du DNS sur les zones voulues, puis en poussant la modification sur le dépôt Gitlab.

L'intégration continue va automatiquement déclencher les tests, puis déployer en production le code.

Reload la configuration quand il n'y a plus de site admin

Connectez vous en ssh sur saymyname, rendez vous dans le dossier /srv/reloader et lancer le script reloader.sh

 ssh saymyname
 cd /srv/reloader/
 ./realoader.sh

Configuration

TODO

Tests

La configuration des DNS est l'un des nombreux domaine où le ResEl excelle en utilisant des technologies de pointes. Un environnement de tests permet un développement test-driven, l'intégration continue fait la jonction avec la configuration en prodution des DNS. Des tests en production permettent la mise à jour dynamiquement de la configuration, assorti à divers mécanismes de monitorage.

Tests en développement

Tests en production

Intégration Continue

Lien utiles

Ressources externes

Articles liés

TODO (Rédacteur)

  • Fonctionnement concret (master, slave, ...)
  • Différentes zones (explication que ça correspond aux vlans)
  • Fonctionnement depuis l'extérieur
  • Détailler le CI, les procédures
  • Détailler l'env de tests
  • Détailler la conf