Créer simplement un serveur DNS sur son nas QNAP

plutôt que d'aller taper directement les adresses ip pour accéder à mon serveur, nas et diverses imprimantes, je me suis décidé à installer un serveur DNS : Bind

J'ai donc choisis de l'installer sur le NAS, un QNAP Turbo NAS TS-410.

Dans le cas de QNAP, Bind s'installe aisément via Optware, une sorte de géstionnaire de package integré à l'OS (pour plus d'info : Install_Optware_IPKG)

Mon réseau est : 192.168.0.0/24.
L'adresse de ma gateway/dhcp/... : 192.168.0.1
L'adresse de mon NAS : 192.168.0.2
L'adresse du serveur : 192.168.0.3

Connectez-vous en SSH sur le NAS et rendez-vous dans /opt/etc/named/
créer un fichier du nom de named.conf qui contiendra tout les paramètres de Bind.
Il faut aussi générer une clé pour rndc :
/opt/sbin/rndc-confgen -a
(elle sera automatiquement mise dans le bon dossier)

Pour ma part, j'ai aussi crée un dossier zone qui contiendra tout les fichiers de conf de mes diverses zones.

Éditez le fichier named.conf crée juste avant et insérez-y les paramètres suivants :
### OPTIONS ### 

options {
        auth-nxdomain no;    # Conforme à la RFC1035
        forwarders { 8.8.8.8; }; # Forward sur les DNS de Google si il ne trouve pas
        listen-on port 53 { 127.0.0.1; 192.168.0.2; }; # ou 192.168.0.2 est l'adresse de votre interface "externe".
        listen-on-v6 { none; };
        allow-recursion { 127.0.0.1; 192.168.0.0/24; };
        allow-transfer { 127.0.0.1; };
        notify no;
};

### ZONE ###
zone "domaine.com" IN { # Remplacez domaine.com par le domaine qu'on souhaite
        type master;
        file "zone/db.domaine.com"; # Pareil
};

zone "0.168.192.in-addr.arpa" {
        type master;
        file "zone/db.0.168.192";
};
Pour les zones, j'ai crée deux zones pour un seul domaine :
 - La zone de recherche directe
 - La zone de recherche inversée

Ainsi, avec la première. On pourra atteindre une IP en spécifiant un nom voulu :
ping  serveur.domaine.com
PING serveur.domaine.com (192.168.0.3) 56(84) bytes of data.
Avec la deuxième, c'est l'inverse qui se produit (d'ou son nom, m'voyez) :
nslookup 192.168.0.3

(...) 

3.0.168.192.in-addr.arpa        name = serveur.domaine.com.
Donc pour chaque zone, il faut lui spécifier un nom de fichier qui contiendra plein d'infos et de configs...
Par convention, je les nommes db.<hostname/ip>.

Attention à bien noter que les 3 derniers octers des adresses ip s'écrivent à l'envers. 192.168.0.3 -> 3.0.168.192
Créez ensuite les deux fichiers de zones : db.0.168.192 et db.serveur.domaine.com de mon côté.
Insérez ceci dans votre db.serveur.com :
$TTL 1D
domaine.com.         IN SOA  serveur    root.serveur.domaine.com. (
                2007111301      ; serial
                1D              ; refresh
                1H              ; retry
                1D              ; expire
                1D )            ; minimum

                IN NS           serveur
                IN MX           10 serveur
; domain to IP mappings
nas     IN A            192.168.0.3
et dans db.0.168.192 :
$TTL 1D
0.168.192.in-addr.arpa. IN SOA  domaine.com.         root.serveur.domaine.com. (
                2007111301      ; serial
                1D              ; refresh
                1H              ; retry
                1D              ; expire
                1D )            ; minimum


                IN NS   serveur.domaine.com.

; IP to domain mappings
1               IN PTR  serveur.domaine.com.            
Okay, les configs sont normalement terminées (je n'ai pas envie de m'attarder sur les détails techniques de ces configs, pour plus d'info : Installation d'un serveur DNS).

si vous voulez vérifier que tout est ok avant de le starter, lancer la commande suivante : 
/opt/sbin/named-checkconf /opt/etc/named.conf
Ils vous retournera les erreurs si il y en a. ne reste plus qu'à lancer le service Bind (oui, vous noterez le nom wtf) :
/opt/etc/init.d/S09named start
à ce stade, votre serveur DNS est actif et fonctionnel (sinon ben relisez plus haut). Néanmoins, le routeur push toujours sa propre adresse DNS. Sur mon routeur, j'ai pu remedier à ce problème en désactivant l'options suivante :
Cette option pushait automatiquement l'addresse du routeur en tant qu'adresse DNS. En la désactivant, il envoie l'adresse mentionnée dans la config réseau :


Reste plus qu'à réinitialiser le routeur et relancer le réseau sur les machines clientes, ainsi elles obtiendront les nouveaux paramètres DHCP :
domain mydomain
nameserver 192.168.0.2
nameserver 8.8.8.8
Enfin, plus qu'à tester :
ping  serveur.domaine.com
Pour le côté théorique, ça ressemble à ça (en version pas mal simplifiée) :


  1. Le client branche se connecte au réseau et signale au routeur qu'il est connecté. 
  2. celui-ci lui adresse une adresse IP, et lui passe aussi ce qui nous intéresse : l'adresse DNS si on l'a spécifiée dans la config
  3. une fois qu'il connait l'adresse du DNS et qu'il aimerait atteindre le serveur, il envoie une requête en broadcast pour savoir à qui appartient le hostname serveur.domaine.com
  4. le DNS lui répond en lui indiquant où est ce qu'il doit s'adresser pour l'atteindre.
  5. Enfin, le client peut communiquer avec le serveur via son nom DNS : serveur.domaine.com
du coup j'ai un peu devié du sujet. mwerf.

Aucun commentaire:

Enregistrer un commentaire