DNS

Quelle implémentation choisir?

Bind exclu, conception qui date, pas mal de bugs, bref pas sexy.

djbdns

Djbdns , l'alternative ? Let's give it a try.

Du neuf (2016-S2)

dbndns est un djbdns bien patché.

dq est un autre dérivé de djbdns.

cons

  • Le paquet n'est pas du logiciel "libre". Sous debian tu trouves ce soft sous contrib et non-free, d'ordinaire je n'utilise pas. bref dois je faire exception pour djb?

  • La personnalité du développeur assez controversée.

  • Pas de support IPv6.

pros

  • Il est l'auteur de qmail.

  • Le curriculum du bonhomme est assez impressionnant.

  • Je n'ai pas lu son code.

Installation

l'installation de la suite djbdns ne pose aucun problème.

$ apt-get update
$ apt-get install daemontools-installer
$ get-daemontools
$ build-daemontools
$ apt-get install ucspi-tcp-src
$ build-ucspi-tcp
$ apt-get install djbdns-installer
$ get-djbdns
$ build-djbdns

Conclusion

djbdns est temporairement en place sur baizid.org. Il y est juste parce que je ne veux pas installer bind. Je préfère systématiquement un logiciel pourri mais libre plutôt qu'un logiciel exceptionnel "non-libre". Je ne me pose même pas la question. Tout ce qui n'est pas libre est rejeté. C'est un principe. djbdns est bien la seule exception.

Que faire alors?

  1. Tester les autres implémentation "GPL".

  2. Implémenter un GNUdns et grandir la horde des "gnous".

dnscache

Le cache externe dns pour le réseaux local baizid.org

on ne peut faire tourner tinydns et dnscache sur la même adresse ip.

Donc nous allons créer un alias ip 192.168.1.5 pour le cache dns, tinydns-local tournera sur l'adresse ip 192.168.1.4.

192.168.1.5

# cat >> /etc/network/interfaces << EOF
>
> # alias for dnscache
> auto eth0:0
> iface eth0:0 inet static
>     address 192.168.1.5
>     netmask 255.255.255.0
> EOF
# /etc/init.d/networking restart
* /etc/network/options is deprecated.
Setting up IP spoofing protection...done (rp_filter).
Enabling packet forwarding...done.
Reconfiguring network interfaces...
ifup: interface lo already configured
done.
#
# ifconfig
...
eth0:0    Lien encap:Ethernet  HWaddr 00:50:FC:97:21:FB
          inet adr:192.168.1.5  Bcast:192.168.1.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interruption:11 Adresse de base:0xe400

# 

dnscache Configuration

$ dnscache-conf-fhs dnscache dnslog /etc/dnscache 192.168.1.5
$ ln -s /etc/dnscache/ /var/lib/svscan/
$ touch /etc/dnscache/root/ip/192.168.1
$ svstat /var/lib/svscan/dnscache
$ 

client configuration

# cat /etc/resolv.conf
domain baizid.org
search baizid.org
nameserver 192.168.1.5
# 

tinydns

Le serveur dns local baizid.org

Le serveur dns local tournera sur l'adresse 192.168.1.4.

configuration serveur

installer le fichier de conf du serveur.

# tinydns-conf-fhs tinydns dnslog /etc/tinydns-local 192.168.1.4
# ln -s /etc/tinydns-local/ /var/lib/svscan/
# svstat /var/lib/svscan/tinydns-local
/var/lib/svscan/tinydns-local: up (pid 4525) 3 seconds

installer le serveur zone-transfert, pas obligatoire.

# axfrdns-conf-fhs axfrdns dnslog \
> /etc/axfrdns-local \
> /etc/tinydns-local \
> 192.168.1.4
# cd /etc/axfrdns-local/
# echo "192.168.1.:allow" > tcp
# echo ":allow,AXFR=\"\"" >> tcp
# make
# ln -s /etc/axfrdns-local /var/lib/svscan/
# svstat /var/lib/svscan/axfrdns-local
/var/lib/svscan/axfrdns-local: up (pid 4796) 25 seconds
#

on publie les adresses du réseaux local.

# cd /etc/tinydns-local/root
# tcpclient 128.9.0.107 53 axfr-get . data data.tmp
# ./add-ns baizid.org 192.168.1.4
# ./add-ns 1.168.192.in-addr.arpa 192.168.1.4
# ./add-host sherpa.baizid.org 192.168.1.4
# ./add-host redsorgo.baizid.org 192.168.1.1
# ./add-host gadolinium.baizid.org 192.168.1.64
# ./add-host europium.baizid.org 192.168.1.63
# ./add-host aluminium.baizid.org 192.168.1.13
# ./add-alias www.baizid.org 192.168.1.4
# ./add-alias ftp.baizid.org 192.168.1.4
# ./add-mx mail.baizid.org 192.168.1.4
# make
/usr/bin/tinydns-data
# 

configurer le cache dns pour utiliser notre nouveau serveur.

# cd /etc/dnscache/root/servers
# cp \@ \@-no-root
# echo 192.168.1.4 > \@
#