home       inleiding       sysadmin       services       links       bash       werk       nothing      

DNS op ubuntu notas 2020

  1. software heet bind9

  2. installatie
    $ sudo apt install bind9
  3. test de service
    $ netstat -vatn
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
    tcp        0      0 172.20.0.51:59118       91.189.88.142:80        TIME_WAIT  
    tcp        0    280 172.20.0.51:22          172.20.0.81:57846       ESTABLISHED
    tcp6       0      0 :::22                   :::*                    LISTEN   

    nee de service draait niet, want ik zie geen poort 53
     
    ik vraag de status op:

    $ sudo systemctl status bind9
    ● bind9.service - BIND Domain Name Server
    Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: en
    Drop-In: /run/systemd/generator/bind9.service.d
           └─50-insserv.conf-$named.conf
    Active: inactive (dead)
     Docs: man:named(8)

    inderdaad NEEN: inactive -- dead
     

  4. we starten de service ...
     
    $ sudo systemctl start bind9
     
    en checken opnieuw de status
    $ sudo systemctl status bind9
    ● bind9.service - BIND Domain Name Server
    Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: en
    Drop-In: /run/systemd/generator/bind9.service.d
           └─50-insserv.conf-$named.conf
    Active: active (running) since Mon 2020-05-25 10:55:50 CEST; 2s ago

    die draait nu wel: Active:active
     
    en we testen met netstat ... zoeken naar poort 53 ...

    $ netstat -vatn
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 172.20.0.51:53          0.0.0.0:*               LISTEN     
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN     
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
    tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN     
    tcp        0      0 172.20.0.51:33870       192.228.79.201:53       TIME_WAIT  
    tcp        0      0 172.20.0.51:52454       192.228.79.201:53       TIME_WAIT  
    tcp        0      0 172.20.0.51:53822       199.7.83.42:53          TIME_WAIT  
    tcp        0     36 172.20.0.51:22          172.20.0.81:57846       ESTABLISHED
    tcp6       0      0 :::53                   :::*                    LISTEN     
    tcp6       0      0 :::22                   :::*                    LISTEN     
    tcp6       0      0 ::1:953                 :::*                    LISTEN  

     

  5. structuur config files in /etc/bind
     
    We vinden de volgende bestanden in /etc/bind
    $ ls /etc/bind
    bind.keys  db.empty    named.conf.default-zones  zones.rfc1918
    db.0       db.local    named.conf.local
    db.127     db.root     named.conf.options
    db.255     named.conf  rndc.key

    named.conf is het hoofd configuratiebestand met als inhoud:

    include "/etc/bind/named.conf.options";
    include "/etc/bind/named.conf.local";
    include "/etc/bind/named.conf.default-zones";

     
    dit hoofd configuratiebestand laadt dus 3 include-files ...
    deze include-bestanden worden elk een onderdeel van de volledige config (zie apache2 config ubuntu)
     
    regels die beginnen met een dubbele slash // zijn commentaar
     

  6. named.conf.options
     
    de named.conf.options file is de eigenlijke config van de dns-service (die bind9 heet).
     
    inhoud: (zonder commentaar)
    $ grep -v "//" named.conf.options 
    options {
    directory "/var/cache/bind";
    dnssec-validation auto;
    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
    };
    • hij heeft een werkdirectory /var/cache/bind
    • hij werkt met dns-sec (zie wiki)
    • "If auth-nxdomain is 'yes' allows the server to answer authoritatively (the AA bit is set) when returning NXDOMAIN (domain does not exist)"
    • hij werkt ook op ipv6
       
  7. named.conf.default-zones:
     
    De zogenaamde Automatic empty zones (including RFC 1918 prefixes), zie ook https://kb.isc.org/docs/aa-00800
     
    db.0 bevat niets // db.255 bevat niets // db.empty bevat ook niets
    db.root bevat de root-servers van het internet
    db.127 verwijst naar localhost adressen (127.0.0.1)
    db.local verwijst explicit naar localhost naam
     
    NS staat voor nameserver
    A staat voor ipv4 record
    AAAA staat voor ipv6 record
     
  8. named.conf.local
     
    deze include bevat je eigenlijke domeinen ...
    die zijn nu leeg ....
    maar zouden er zo kunnen uitzien ...
     
    ik zet er iets in ...
    $ sudo vim named.conf.local
    //
    // Do any local configuration here
    //
    // Consider adding the 1918 zones here, if they are not used in your
    // organization
    //include "/etc/bind/zones.rfc1918";
     
    zone "domein01.binnen" {
    type master;
    notify no;
    file "/etc/bind/domein1.binnen.zone";
    };

    zet er jouw eigen domein in (http://linux800.be/services/DNS-2018/dns-1)
    maak dan je domein file (cursus)
     
    $ cat domein1.binnen.zone

    $TTL 3D
    @       IN      SOA     domein01.binnen  root.domein01.binnen (
                    2020052501      ; serial
                    8H              ; refresh
                    2H              ; retry
                    4W              ; expire
                    1D )            ; minimum
    ;
            NS      DNS1
            NS      DNS2
    ;           MX      10 mail
    ;          
    apache          A       172.20.0.202
    openvpn         A       172.20.0.200
    DNS1            A       172.20.0.51
    DNS2            A       172.20.0.52
    samba           A       172.20.0.201
    owncloud        CNAME   apache
    pc1             A       172.20.0.81
    pc-jan          CNAME   pc1

     

  9. herstart bind9
     
    Na aanpassen van named.conf.local of een domein file moet je de service bind9 herstarten, daarna de syslog bekijken ...
     
    less /var/log/syslog en scroll naar het einde ...
     
    en zoek all zones loaded
     
    May 25 11:31:03 ubu165-DNS1 named[13753]: all zones loaded
     
    test dan vanaf je client
     
    $ ping pc1.domein01.binnen
    PING pc1.domein01.binnen (172.20.0.81) 56(84) bytes of data.
    64 bytes from pc1-binnen (172.20.0.81): icmp_seq=1 ttl=64 time=0.012 ms
    64 bytes from pc1-binnen (172.20.0.81): icmp_seq=2 ttl=64 time=0.027 ms
    64 bytes from pc1-binnen (172.20.0.81): icmp_seq=3 ttl=64 time=0.021 ms