Projet

Général

Profil

AtelierDNS2015 » Historique » Version 4

« Précédent - Version 4/7 (diff) - Suivant » - Version actuelle
Matthieu Herrb, 08/04/2015 10:49


Atelier DNS 2015

  • Animé par Matthieu Herrb.
  • Mardi 10 février 2015 à 19h30 au grand builder ekito 15 rue Gabriel Peri.
  • TPs le mardi 7 avril 2015 meme endroit
    • Durée: 1h30 à 2h

Slides : http://homepages.laas.fr/matthieu/talks/ttnn-dns.pdf

Sujets traités

  • Le « Domain Name System » à quoi ça sert et comment ça marche
  • Comment configurer un serveur pour gérer son propre domaine en auto-hébergement
  • Atelier pratique de l'achat d'un nom de domaine à la configuration.

Ateliers pratiques:

  • achat et gestion d'un domaine DNS chez Gandi
  • configuration d'un serveur cache (resolveur recursif) local (ou comment échapper à la main rouge :) avec bind ou unbound.
  • configuration de bind ou de NSD pour héberger son domaine si on ne fait plus confiance à Gandi (ou à un autre hébergeur).

Questions

  • Comment gérer les clés DNSSEC à partir d'une prestation de type Gandi ? (qui génère la clé de zone et comment fonctionne la délégation ?) * début de reponse: http://wiki.gandi.net/en/domains/dnssec

Exemples

Exemple de fichier named.conf (bind)

acl clients {
        localnets;
        ::1;
};

acl slaves { 
        217.70.177.40;
        91.224.149.89;
        2a01:6600:8081:5900::1;
};

options {
        version "";     // remove this to allow version queries
        listen-on    { any; };
        listen-on-v6 { any; };
};

view "recursive" {
        match-clients { clients; };
        match-recursive-only yes;
        // Standard zones
        //
        zone "." {
                type hint;
                file "etc/root.hint";
        };

        zone "localhost" {
                type master;
                file "standard/localhost";
                allow-transfer { localhost; };
        };

        zone "127.in-addr.arpa" {
                type master;
                file "standard/loopback";
                allow-transfer { localhost; };
        };

        zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
                type master;
                file "standard/loopback6.arpa";
                allow-transfer { localhost; };
        };

        // Master zones
        //
        zone "herrb.net" {
                type master;
                file "master/herrb.net";
                allow-transfer { slaves; };
        };

        zone "31.168.192.IN-ADDR.ARPA" {
                type master;
                file "master/herrb.net.rev";
                allow-transfer { slaves; };
        };
        zone "1.6.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
                type master;
                file "master/ipv6.ttn.rev";
                allow-transfer { slaves; };
        };
        zone "89/32.149.224.91.in-addr.arpa" IN {
                type master;
                file "master/tls00.rev";
                allow-transfer { slaves; };
        };
};
view "authoritative" {
        recursion no;
        additional-from-auth no;
        additional-from-cache no;

        // Master zones
        //
        zone "herrb.net" IN {
                type master;
                file "master/herrb.public.net";
                allow-transfer { slaves; };
        };

        zone "8.b.0.7.8.a.7.0.1.0.0.2.ip6.arpa" {
                type master;
                file "master/ipv6.nerim.rev";
                allow-transfer { slaves; };
        };
        zone "1.6.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
                type master;
                file "master/ipv6.ttn.rev";
                allow-transfer { slaves; };
        };
        zone "89/32.149.224.91.in-addr.arpa" IN {
                type master;
                file "master/tls00.rev";
                allow-transfer { slaves; };
        };
        zone "9.5.1.8.0.8.0.0.6.6.1.0.a.2.ip6.arpa" {
                type master;
                file "master/tls00.ipv6.rev";
                allow-transfer { slaves; };
        };
};

Exemple de fichier unbound.conf

server:
        interface: 140.93.5.46
        interface: 2001:660:6602:4::52e
        interface: 127.0.0.1
        interface: ::1
        access-control: 127.0.0.0/8 allow
        access-control: ::1 allow
        access-control: 2001:660:6602:4::/64 allow
        access-control: 192.168.1.0/8 allow
        private-domain: "laas.fr" 
        auto-trust-anchor-file: "/var/unbound/etc/autotrust/root.key" 
        local-zone: "168.192.in-addr.arpa." transparent

forward-zone:
        name: "168.192.in-addr.arpa." 
        forward-addr: 2001:660:6602:4::2
        forward-addr: 2001:660:6602:2::7
        forward-addr: 140.93.0.15
        forward-addr: 195.83.132.132

forward-zone:
        name: "2.0.6.6.0.6.6.0.1.0.0.2.ip6.arpa." 
        forward-addr: 2001:660:6602:4::2
        forward-addr: 2001:660:6602:2::7
        forward-addr: 140.93.0.15
        forward-addr: 195.83.132.132

forward-zone:
        name: "laas.fr" 
        forward-addr: 2001:660:6602:4::2
        forward-addr: 2001:660:6602:2::7
        forward-addr: 140.93.0.15
        forward-addr: 195.83.132.132
  • Injections de données locales (pour adresses privées par ex.):
server:
        ....

        local-zone: "herrb.net." typetransparent
        private-address: 192.168.31.0/24
        private-address: 172.31.31.0/24
        private-domain: herrb.net.

        local-data: "nowhere.herrb.net.         IN A 91.224.149.89" 

        local-data: "bluenote.herrb.net.        IN A 192.168.31.2" 
        local-data: "bluenote-em.herrb.net.     IN A 192.168.31.3" 
        local-data: "television.herrb.net.      IN A 192.168.31.4" 
        local-data: "southside.herrb.net.       IN A 192.168.31.5" 
        local-data: "harvest.herrb.net.         IN A 192.168.31.6" 
        local-data: "alabama.herrb.net.         IN A 192.168.31.8" 

        local-data-ptr: "192.168.31.2   bluenote.herrb.net." 
        local-data-ptr: "192.168.31.3   bluenote-em.herrb.net." 
        local-data-ptr: "192.168.31.4   television.herrb.net." 
        local-data-ptr: "192.168.31.5   southside.herrb.net." 
        local-data-ptr: "192.168.31.6   harvest.herrb.net." 
        local-data-ptr: "192.168.31.8   alabama.herrb.net." 

Exemple de fichier nsd.conf

server:
        hide-version: yes

remote-control:
        control-enable: yes

# tsig key example
key:
       name: "tsig1.example.com." 
       algorithm: hmac-sha256
       secret: "bWVrbWl0YXNkaWdvYXQ=" 

# master zone example
zone:
       name: "example.com" 
       zonefile: "example.com" 
       notify: 192.0.2.1 NOKEY
       provide-xfr: 192.0.2.1 NOKEY

# slave zone example
zone:
       name: "example.net" 
       zonefile: "example.net" 
       allow-notify: 192.0.2.2 tsig1.example.com.
       request-xfr: 192.0.2.2 tsig1.example.com.

ipv6calc

  • génération de fichier zone reverse IPv6 pour ttnn (/56):
     $ ipv6calc --in ipv6 --out revnibbles.arpa 2a01:6600:8081:6101::3f | cut -d. -f-18
     f.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0
     

    (Remplacer -f-18 par -f-20 pour une delegation de /48 ou par -f-16 pour un /64)
  • génération d'une adresse IPv6 SLAAC a partir prefixe + adresse MAC:
     $ ipv6calc --in prefix+mac --out ipv6addr 2a01:6600:8081:6101:: 00:00:24:cd:7e:50
     2a01:6600:8081:6101:200:24ff:fecd:7e50
     

Examples de zones

https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/bind-zones/revisions/master/show/wan

Fix serial number

http://www.zytrax.com/books/dns/ch9/serial.html