Installation DNS Autoritaire et Récursive
Nous allons installer un serveur DNS Autoritaire(dns-auth) et Récursive(dns-solve) sur les conteneurs LXD sur notre VM.
A la fin nous allons essayer de pinger un PC de notre domain(local) et un website a partir de notre VM via dns-solve.
DNS Autoritaire;
Dans cette partie nous allons installer un serveur DNS autoritaire avec NSD (Name Server Daemon) sur un conteneur LXD.
Étape 1 : Créer et Accéder au Conteneur LXD
Nous créons notre conteneur LXD et accédons-y;
lxc launch ubuntu:22.04 dns-auth
lxc exec dns-auth /bin/bash
Étape 2 : Installation de NSD
Avant d'installer NSD, assurez-vous que le système est à jour et installez le paquet NSD.
apt update && apt install -y nsd
Étape 3 : Configuration de NSD
La configuration de NSD se trouve généralement dans le répertoire /etc/nsd/. Vous devez éditer le fichier de configuration principal nsd.conf.
Ou vous pouvez ajouter un fichier de conf dans le reportoire /etc/nsd/nsd.conf.d.
cd /etc/nsd.conf.d && vim nsd.conf
On a ajouté la partie "zone";
Étape 4 : D émarrage de NSD
Pour éviter les conflits, nous désactivons le service systemd-resolved.service et démarrons le service NSD ;
systemctl stop systemd-resolved.service
systemctl disable systemd-resolved.service
systemctl start nsd
dig free.fr @127.0.0.1
ne fonctionne pas. Parce que ce n'est pas un dns recursive. En plus on doit créer le fichier "/etc/nsd/local.zone".
Étape 5 : Création de fichier local.zone
J'ai recherché "dns zone file simple" sur Google et j'ai copié à partir de ce site ;
https://www.zytrax.com/books/dns/ch6/mydomain.html
$TTL 86400 ; 24 hours could have been written as 24h or 1d
; $TTL used for all RRs without explicit TTL value
$ORIGIN example.com.
@ 1D IN SOA ns1.example.com. hostmaster.example.com. (
2002022401 ; serial
3H ; refresh
15 ; retry
1w ; expire
3h ; nxdomain ttl
)
IN NS ns1.example.com. ; in the domain
IN NS ns2.smokeyjoe.com. ; external to domain
IN MX 10 mail.another.com. ; external mail provider
; server host definitions
ns1 IN A 192.168.0.1 ;name server definition
www IN A 192.168.0.2 ;web server definition
ftp IN CNAME www.example.com. ;ftp server definition
; non server domain hosts
bill IN A 192.168.0.3
fred IN A 192.168.0.4
J'ai copié le script à partir du site que j'ai mentionné et je l'ai collé, puis modifié.
vim /etc/nsd/local.zone
"first" est un client, dns-auth est notre serveur dns-auth.
DNS Récursive;
Dans cette partie nous allons installer un serveur DNS récursive avec unbound sur un conteneur LXD.
Étape 1 : Créer et Accéder au Conteneur LXD
Nous créons notre conteneur LXD et accédons-y;
lxc launch ubuntu:22.04 dns-solve
lxc exec dns-solve /bin/bash
Étape 2 : Installation de UNBOUND
Avant d'installer unbound, assurez-vous que le système est à jour et installez le paquet UNBOUND.
apt update && apt install -y unbound
Étape 3 : Configuration de UNBOUND
Vous devez éditer le fichier de configuration /etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf.
vim /etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf
"local" est notre domaine qu'on a créé avec serveur dns-auth.
"10.196.244.155" est l'IP de notre serveur dns-auth.
Test depuis notre VM;
Pout tester; on a ajouté l'IP(10.196.244.140) de notre serveur dns-solve sur le fichier /etc/resolv.conf comme nameserver.
sudo vim /etc/resolv.conf
Finalement les deux commandes suivantes marchent.
ping first.local
ping free.fr
On a defini notre domain "local" sur l'interface de LXD.
resolvectl dns lxdbr0 10.196.244.155
resolvectl domain lxdbr0 local