Dans cet article, vous apprendrez à quel point il est facile et rapide d'avoir votre propre serveur DNS de résolution de la mise en cache (non lié), ainsi qu'un serveur DNS faisant autorité / maître (nsd) s'exécutant localement sur votre propre instance OpenBSD Vultr.
Pour installer OpenBSD, reportez-vous à l'article suivant: Configuration d'OpenBSD 5.5 64 bits . Assurez-vous simplement d'utiliser la nouvelle image ISO 5.6 à la place.
Alors que nsd était également disponible dans la version précédente, non lié était lié à la version 5.6. À partir de la version 5.7, BIND sera complètement supprimé du système de base (et disponible via les ports).
non lié
Pour résoudre le DNS, les gens utilisent généralement les valeurs par défaut fournies par leur distribution / fournisseur ou un service de Google (DNS public) et OpenDNS. Bien que ceux-ci soient généralement corrects, l'exécution de votre propre vous donne plus de contrôle, de meilleures performances (une fois que vous remplissez votre propre cache), une meilleure confidentialité, etc. Il est très facile d'obtenir votre propre configuration de résolution DNS sur OpenBSD.
-
Activez le service:
sudo rcctl enable unbound
-
Démarrez le service:
sudo rcctl start unbound
-
Pour le rendre actif, entrez ce qui suit /etc/resolv.conf
(et supprimez toutes les autres nameserver
entrées):
nameserver 127.0.0.1
Vous pouvez maintenant l'essayer:
dig google.com
Nous recherchons les deux lignes suivantes:
;; Query time: 35 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
Le serveur utilisé était localhost
, ce que nous voulions. Le temps de requête est de 35 secondes lors d'un démarrage à froid. Essayons la même dig
commande une fois de plus:
;; Query time: 1 msec
À ce stade, la mise en cache fonctionne et nous pouvons continuer avec le serveur nsd faisant autorité.
nsd
Contrairement à unbound, nsd est un serveur DNS faisant autorité, qui est utilisé pour desservir vos propres zones. Un serveur n'est généralement pas suffisant, vous pouvez donc faire tourner une autre instance Vultr en tant que serveur secondaire dans un autre emplacement, pour la redondance.
Étant donné que la configuration du service principal / secondaire (bien que pas difficile) est un peu hors de portée de cet article, nous allons montrer comment desservir une seule zone de domaine.
-
Éditons d'abord le /var/nsd/etc/nsd.conf
fichier. Voici un exemple complet:
server:
hide-version: yes
ip-address: 108.xx.xxx.xx
remote-control:
control-enable: yes
zone:
name: "example.com"
zonefile: "example.com.zone"
Remarque: remplacez-le 108.xx.xxx.xx
par l'adresse IP de votre instance et example.com
par votre propre domaine.
-
Les fichiers de zone vont dans le /var/nsd/zones
répertoire. Voici un petit /var/nsd/zones/example.com.zone
fichier de zone:
$ORIGIN example.com.
$TTL 86400
@ 3600 SOA a.ns.example.com. hostmaster.example.com. (
2014110502 ; serial
1800 ; refresh
7200 ; retry
1209600 ; expire
3600 ) ; negative
NS a.ns.example.com.
NS b.ns.example.com.
MX 0 mail.example.com.
a.ns A 108.xx.xxx.xx
b.ns A 108.xx.xxx.xx
mail A 108.xx.xxx.xx
-
Nous pouvons maintenant activer et démarrer le service:
sudo rcctl enable nsd
sudo rcctl start nsd
Vous devriez maintenant avoir à la fois votre propre serveur DNS de mise en cache / résolution, ainsi qu'un serveur faisant autorité.
La syntaxe de la zone BIND et les détails sur l'exécution de votre propre maître sont un peu hors de portée de ce petit guide et laissés comme exercice au lecteur. Profitez d'OpenBSD!