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
- Cours ResEl sur les DNS
- Article Wikipedia sur les DNS
- Tutoriel debian sur bind9
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