WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:dns

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
wiki:services:dns [2015/07/03 15:41]
Thithib
wiki:services:dns [2017/06/21 18:42]
donk [À MiNET]
Ligne 1: Ligne 1:
  
 +====== Serveur DNS ======
 +
 +Le DNS permet la traduction de nom en adresse IP (et inversement). Par exemple bindon.fr en 192.168.81.54. C'est un service essentiel au fonctionnement de MiNET.
 +
 +Si vous voulez un peu plus de théorie c'est ici.
 +
 +===== À MiNET =====
 +
 +Minet possède deux serveurs DNS, un master (ns1.minet.net) et un en esclave sur le premier (ns2.minet.net). 
 +
 +les ip du DNS master sont:
 +
 +<code>
 +    157.159.40.55
 +    172.16.0.55
 +    192.168.14.10
 +    192.168.16.4
 +    192.168.102.55
 +    192.168.103.55 
 +</code>
 +
 +les ip du DNS esclave sont:
 +
 +<code>
 +    157.159.40.54
 +    172.16.0.54
 +    192.168.14.6
 +    192.168.16.5
 +    192.168.102.54
 +    192.168.103.54 
 +</code>
 +
 +Le serveur DNS utilisé à minet est ​BIND9.
 +
 +Nous hébergeons chez nous la zone **minet.net**. Elle sert à la fois à la vitrine pour le monde entier et les adhérents, ainsi que pour nous, à l'administration des machines. Cette dualité est gérée par des vue sur le DNS : la réponse est différente suivant qu'on interroge le serveur à partir du monde entier ou à partir d'un VLAN d'administration.
 +
 +Ainsi, par exemple, pour une machine du VLAN d'admin, le vpn1 est 192.168.102.19 alors que pour le reste du monde c'est 157.159.40.19. C'est un peu comme si il y avait deux DNS en un !
 +
 +===== Comment rajouter une entrée au DNS =====
 +
 +==== Git c'est le bien  ====
 +
 +Nous utilisons **git** pour garder un historique de notre configuration DNS. Ainsi, si vous travaillez directement sur **ns1** pensez à faire ceci une fois vos modifications faites :
 +
 +<code bash>
 +# On ajoute les modifications qu'on a faite au git...
 +git commit -am "Un message expliquant ce que vous avez fait"
 +# On les envoie sur gitlab
 +git push origin master
 +</code>
 +
 +**Et honnêtement, c'est mille fois mieux si vous le faites sur votre PC !!!** Une fois que vous avez récupéré le projet, il ne vous reste plus qu'à faire vos modifications, puis à les envoyer sur gitlab. Connectez vous ensuite sur **ns1** et récupérez les modification que vous avez faites :
 +
 +<code bash>
 +git pull origin master
 +</code>
 +
 +Si [[wiki:divers:git|git]] n'est pas votre fort ...
 +
 +====Considérations globales ====
 +
 +Dans tous les cas vous ne devez modifier que les fichiers de configurations présents sur ns1, le serveur ns2
 +est esclave de ns1 et téléchargera automatiquement les modifications.
 +
 +Syntaxe pour le numéro de série :
 +
 +Le numéro de série comprend la date de la dernière modification qui a été effectué suivi du nombre de modification qui ont été effectuées ce jour là <datedevotremodification><nombredemodificationseffectuées>
 +
 +Le numéro de série est de la forme
 +
 +<code>
 +YYYMMDDxx
 +   YYYY: année
 +   MM: mois (toujours sur 2 chiffres!)
 +   DD: jour
 +   xx: numéro de révision 01, 02, 03...
 +</code>
 +
 +Si vous mettez à jours, pensez à utiliser cette syntaxe.
 +
 +==== S'occuper de la résolution de nom ====
 +
 +Les ressources records A permettent de traduire ns1.minet.net en 157.159.40.55.
 +La zone minet possède plusieurs vues, i.e. les réponses du DNS sont fonctions de l'endroit où vous vous trouvez.
 +
 +Si vous voulez que le DNS réponde lorsque vous êtes dans le vlan 102 c'est ce fichiers qu'il faut éditer
 +
 +minet.net.db.102 : Données pour le vlan 102
 +
 +De même pour les ips d'administration du vlan de développement :
 +
 +minet.net.db.103 : Données pour le vlan 103
 +
 +De même pour les ips d'administration du wifi :
 +
 +minet.net.db.14 : Données pour le vlan 14
 +
 +Si vous voulez que le DNS réponde lorsque vous êtes soit à l'INT soit à l'extérieur c'est ces fichiers qu'il faut éditer :
 +
 +  * minet.net.db.ALL-INT-COMMON : partie commune (via un include) a ALL et INT si vous voulez que votre serveur ait un DNS public
 +  * minet.net.db.ALL : Si vous voulez que seul les gens de l'extérieur et pas de l'int ait accès (en général pas utile)
 +  * minet.net.db.INT : Si vous voulez que seul les gens de l'int et pas de l'extérieur ait accès (site du type me etc ...)
 +
 +
 +La logique veut que si vous éditer ALL-INT-COMMON vous ne devez éditer ALL et INT que pour modifier le numéro de série, ALL et INT incluent ALL-INT-COMMON.
 +
 +Où placer vos records :
 +
 +  * 1) se connecter au ns1 (ip: 192.168.102.55)
 +  * 2) aller dans le dossier /etc/bind/zones/minet/db
 +  * 3) positionnez-vous en suivant l'ordre alphabétique
 +
 +Comment faire une entrée A:
 +
 +  * 1) utiliser la syntaxe suivante en respectant l'indentation
 +  * 2) reponse                             IN      A       192.168.1.42
 +  * 3) mettre à jour le numero de série
 +  * 4) vérifier qu'il n'y a pas d'erreur grace au script /etc/bind/checkzones.sh
 +  * 5) faite un reload de bind /etc/init.d/bind9 reload
 +
 +==== S'occuper de la résolution de nom inverse ====
 +
 +La résolution de nom inverse permet de traduire une adresse comme 157.159.40.55 en ns1.minet.net.
 +les résolutions inverses sont très rarement utilisées par les êtres humains mais assez souvent par les serveurs :
 +
 +lorsque vous vous connectez en ssh, le serveur fait une résolution de nom inverse sur votre ip pour mettre dans les logs qui vous êtes vraiment.
 +L'architecture mails de MiNET utilise souvent le DNS inverse.
 +
 +Où placer vos records:
 +
 +  * 1) se connecter au ns1 (ip: 192.168.102.55)
 +  * 2) aller dans le dossier **/etc/bind/zones/minet/rev**
 +  * 3) éditer le fichier minet.net.rev.102 si vous avez des ip dans le vlan 102, 100 si vous avez des ip dans le vlan 100 etc ...
 +  * 4) éditer également le fichier minet.net.rev.public-vlan si vous avez des ip dans le vlan 2 et 3 (des adresses publiques en sommes ^^)
 +
 +Comment faire une entrée reverse DNS:
 +
 +  * 1) respecter l'ordre numérique, si votre ip est 42 placer votre entré entre 41 et 43
 +  * 2) utiliser la syntaxe suivante en respectant l'indentation
 +  * 3) 42             IN      PTR     reponse.minet.net.
 +  * 4) n'oubliez surtout pas le point ^^
 +  * 5) mettez à jour le numero de série
 +  * 6) vérifier qu'il n'y a pas d'erreur grace au script **/etc/bind/checkzones.sh**
 +  * 7) faites un reload de bind **/etc/init.d/bind9 reload**
 +
 +===== Un peu plus loin dans la conf =====
 +
 +==== Configuration des views ====
 +
 +Dans le fichier named.conf nous définissons nos **view**. Par exemple :
 +
 +<code>
 +view "all" {
 + match-clients { any; };
 +
 + include "/etc/bind/named.conf.minet.all";
 +
 + notify-source 157.159.40.55 port 53;
 +};
 +</code>
 +
 +La vue s'appelle all, s'applique par défaut, on donne le fichier qui lui correspond, ainsi que la source.
 +
 +==== Comment avoir un DNS esclave ? ====
 +
 +Tout d'abord, les fichiers dans ''/etc/bind'' doivent être édité sur les deux DNS : ns1 et ns2. La synchronisation entre maître et esclave ne porte que sur le contenu des zones.
 +
 +Dans les vues de ns2 il faut :
 +
 +  * Remplacer la ligne ''type master;'' par ''type slave;''
 +  * On lui dit qui c'est le patron : ''masters { 157.159.40.55;};'' par exemple.
 +
 +Il faut ensuite autoriser les transferts ainsi que les notifications de changement entre ns1 et ns2. Sur chacun d'entre eux :
 +
 +Dans **named.conf.options**:
 +
 +    allow-transfer { dns-minet; dns-admin-minet; dns-int; dns-xname; };
 +    allow-notify { dns-minet; dns-admin-minet; dns-int; dns-xname; };
 +
 +Les trucs entre { } sont des ACLs (groupe d'utilisateurs) définis plus haut, par exemple :
 +
 +<code>
 +acl dns-int {
 + 157.159.10.12;
 + 157.159.10.13;
 +};
 +</code>
 +
 +===== En IPv6 =====
 +
 +On ajoute dans **/etc/bind/named.conf.options** :
 +
 +<code>
 +    listen-on-v6 {
 +                2001:660:3203:422::A54;
 +    };
 +
 +</code>
 +
 +Après le listen (ipv4). Et on ajoute les ipv6 de l'INT :
 +
 +<code>
 +    acl int {
 +            157.159.0.0/16;
 +            2001:660:3203::/48;
 +    };
 +</code>
 +Pour ajouter une entrée :
 +<code>
 +    smtp                 IN AAAA 2001:660:3203:422::A18
 +</code>
wiki/services/dns.txt · Dernière modification: 2020/06/27 18:16 (modification externe)