Installer un résolveur DNS local

Critères requis :

Le DNS ou Domaine Name System permet de faire la translation entre un nom de domaine (par exemple : Online.net) et une adresse IP (par exemple : 62.210.16.2).

En effet, il est beaucoup plus simple pour nous de retenir Online.net que 62.210.16.2.

Cependant, nos ordinateurs / serveurs ne savent pas quoi faire avec Online.net.
Il faut donc un système qui permet de transformer cela en adresse IP, ici 62.210.16.2, afin que l'on puisse accéder au service désiré.

Nous allons donc voir comment installer Unbound, un logiciel permettant de résoudre des domaines, sur votre serveur, afin de vous permettre de résoudre des domaines.

Online.net propose deux résolveurs DNS sur son réseau : 62.210.16.6 & 62.210.16.7.
Cependant, il est recommandé d'utiliser son propre résolveur.

Installation & Configuration de Unbound

Sous Debian 8 & Ubuntu 16.04

Nous commençons par l'installation du logiciel :

sudo apt-get install unbound

Une fois installé, le logiciel devrait directement être fonctionnel.

Si votre interface public est configurée en static, il vous faudra par la suite éditer /etc/resolv.conf comme suit :

nameserver 127.0.0.1
nameserver 62.210.16.6
nameserver 62.210.16.7

Cela permettra d'utiliser le serveur local (127.0.0.1) en priorité, et de se rabattre sur les résolveurs d'Online.net en cas de besoin.

Si votre interface public est configurée en DHCP, il vous faudra alors éditer /etc/dhcp/dhclient.conf en ajoutant/dé-commentant la ligne suivante :

prepend domain-name-servers 127.0.0.1;

En effet, dans ce cas, il vous spécifier directement le DNS dans la configuration DHCP, puisqu'ils sont habituellement fournis par l'auto-configuration en DHCP, et que seul les résolveurs d'Online.net seront alors pris en compte.

Sous CentOS 7

Nous commençons par l'installation du logiciel :

sudo yum install unbound

Ici, nous devrons également éditer /etc/unbound/unbound.conf au niveau de la ligne suivante :

do-not-query-localhost: no

Pour nous permettre d'aller faire des requêtes en localhost.

Une fois la ligne modifiée/ajoutée, relancez le service : service unbound restart

Maintenant, il faudra modifier /etc/sysconfig/network-scripts/ifcfg-eth0 en ajoutant les lignes suivantes :

DNS1=127.0.0.1
DNS2=62.210.16.6
DNS3=62.210.16.7

Et enfin, redémarrez le réseau : systemctl restart network.service

Une fois tout cela fait, vous devriez utiliser par défaut votre résolveur local, puis, les résolveurs d'Online.net au besoin.

Tester le résolveur

Une fois le tout configuré, vous pouvez vérifier que cela fonctionne correctement avec la commande dig :

dig google.fr

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> google.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59447
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.fr.			IN	A

;; ANSWER SECTION:
google.fr.		300	IN	A	216.58.211.99

;; Query time: 6 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: ven. juil. 15 14:27:27 CEST 2016
;; MSG SIZE  rcvd: 54

On peut voir la ligne suivante : ;; SERVER: 127.0.0.1#53(127.0.0.1)

On voit bien que c'est notre serveur local qui a été interrogé, et qui a répondu.