home       inleiding       sysadmin       services       links       bash       werk       nothing      

DNS hands on (basics)

  1. virtueel netwerk setup
     
    We beginnen met de instelling van een virtueel network.
    In deze hands on starten we met 3 machines.
     
    We gebruiken 3 ubuntu 20.4 servers, allemaal met een static IPv4 address binnen in een NAT-netwerk, en een linux mint in dhcp van hetzelfde nat-netwerk (172.16.0.0/16) onder virtualbox.
    dns-oef-net3

     
    client:
    hostname: lxmint-dhcp (aan te passen in /etc/hostname en /etc/hosts)
    ip-address: dhcp-adres van vbox nat-netwerk -- > 172.16.0.5/16
     
    Server1:
    hostname: apache (aan te passen in /etc/hostname en /etc/hosts)
    ip-address: 172.16.10.80/16
     
    Server2:
    hostname: ns1 (aan te passen in /etc/hostname en /etc/hosts)
    ip-address: 172.16.10.1/16
     
    later:
    Server3:
    hostname: ns2 (aan te passen in /etc/hostname en /etc/hosts)
    ip-address: 172.16.10.2/16
     
    We creeren een NAT-network in virtualbox:
     
    Klik in het hoofdmenu van virtualbox op File, preferences en ga naar network:

    vbox-pref-network

    klik nu op het groene pictogram rechtsboven het vorige venster, en geef settings in:
    Zet de dhcp service van vbox natnetwerk aktief

    nat-net-details

     
    Zet tenslotte de netwerkkaart van je virtuele machines in dit NAT-netwerk:

    netw-settings

     
    De default gateway van de machines wordt 172.16.0.1 ...
     
    Start eerst de client in DHCP en kijk of je een correcte ip-configuratie krijgt van vbox, inclusief default gateway. Die Default Gateway (172.16.0.1 kun je starks statisch instellen op ns1, ns2 en web)
     
    De DNS wordt eerst een bereikbare DNS, zoals 10.28.100.10 of 8.8.8.8, maar later passen we die op de client aan naar onze DNS (172.16.10.1)
     
    Zet nu alle machines en het netwerk op.
     
     
    Op de 'client' machine heb je firefox.
    Op de 'apache' machine installeer je apache2, pas de default site aan naar iets herkenbaar en test op 'client'
     
    Op de DNS installeer je bind9.
     

  2. bind9 configuratie
     
    Ik voeg een domein toe op de dns server:
    user@dns1:~$ sudo vim /etc/bind/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.crazy" {
        type master;
        notify no;
        file "/etc/bind/domein01.crazy.zone";
    };

     
    Vervolgens voeg ik een zone file toe:
    $ sudo vim /etc/bind/domein01.crazy.zone

    $TTL 3D
    @       IN      SOA     domein01.crazy  root.domein01.crazy (
                        2016090801      ; serial
                        8H              ; refresh
                        2H              ; retry
                        4W              ; expire
                        1D )            ; minimum
    ;
                NS      ns1
                NS      ns2
                MX      10 mail
    ;
    apache          A       172.16.10.100
    ns1             A       172.16.10.1
    ns2             A       172.16.10.2
    mail            A       172.16.10.25
    www             CNAME   apache
    client          A       172.16.255.10
    lynx            CNAME   client

     
    Ik herstart de service:
    $ sudo service bind9 restart

    * Stopping domain name service... bind9              
    waiting for pid 1404 to die                                                             [ OK ]
    * Starting domain name service... bind9                                              [ OK ] 

     
    ik kijk of de Pid inderdaad is veranderd ...
    $ ps -A | grep named
    1476 ? 00:00:00 named
     
    ik controlleer de syslog:
    $ tail /var/log/syslog

    13:38:58 dns1 named[1476]: automatic empty zone: A.E.F.IP6.ARPA
    Sep  8 13:38:58 dns1 named[1476]: automatic empty zone: B.E.F.IP6.ARPA
    Sep  8 13:38:58 dns1 named[1476]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
    Sep  8 13:38:58 dns1 named[1476]: command channel listening on 127.0.0.1#953
    Sep  8 13:38:58 dns1 named[1476]: command channel listening on ::1#953
    Sep  8 13:38:58 dns1 named[1476]: managed-keys-zone: loaded serial 3
    Sep  8 13:38:58 dns1 named[1476]: zone 0.in-addr.arpa/IN: loaded serial 1
    Sep  8 13:38:58 dns1 named[1476]: zone localhost/IN: loaded serial 2
    Sep  8 13:38:58 dns1 named[1476]: zone 127.in-addr.arpa/IN: loaded serial 1
    Sep  8 13:38:58 dns1 named[1476]: zone 255.in-addr.arpa/IN: loaded serial 1
    Sep  8 13:38:58 dns1 named[1476]: zone domein01.crazy/IN: NS 'ns1.domein01.crazy.domein01.crazy' has no address records (A or AAAA)
    Sep  8 13:38:58 dns1 named[1476]: zone domein01.crazy/IN: NS 'ns2.domein01.crazy.domein01.crazy' has no address records (A or AAAA)
    Sep  8 13:38:58 dns1 named[1476]: zone domein01.crazy/IN: not loaded due to errors.
    Sep  8 13:38:58 dns1 named[1476]: all zones loaded
    Sep  8 13:38:58 dns1 named[1476]: running

     
    Dit is niet goed:
    Sep 8 13:38:58 dns1 named[1476]: zone domein01.crazy/IN: not loaded due to errors.
     
    Ik bekijk de zone file opnieuw en merk dat de eindpunt "."vergeten is op verschillende plaatsen, en pas dit aan:

    $TTL 3D
    @       IN      SOA     domein01.crazy. root.domein01.crazy. (
                        2016090801      ; serial
                        8H              ; refresh
                        2H              ; retry
                        4W              ; expire
                        1D )            ; minimum
    ;
                NS      ns1
                NS      ns2
                MX      10 mail
    ;
    apache          A       172.16.10.100
    ns1             A       172.16.10.1
    ns2             A       172.16.10.2
    mail            A       172.16.10.25
    www             CNAME   apache
    client          A       172.16.255.10
    lynx            CNAME   client

     
    Ik herstart opnieuw en controlleer:
    $ sudo service bind9 restart

         * Stopping domain name service... bind9
         waiting for pid 1476 to die   [ OK ]
         * Starting domain name service... bind9  [ OK ]

     
    test de Pid ...
    $ ps -A | grep named
    1530 ? 00:00:00 named
     
    kijk naar de syslog ...
    $ tail /var/log/syslog

    Sep  8 13:45:49 dns1 named[1530]: command channel listening on 127.0.0.1#953
    Sep  8 13:45:49 dns1 named[1530]: command channel listening on ::1#953
    Sep  8 13:45:49 dns1 named[1530]: managed-keys-zone: loaded serial 3
    Sep  8 13:45:49 dns1 named[1530]: zone 0.in-addr.arpa/IN: loaded serial 1
    Sep  8 13:45:49 dns1 named[1530]: zone 127.in-addr.arpa/IN: loaded serial 1
    Sep  8 13:45:49 dns1 named[1530]: zone domein01.crazy/IN: loaded serial 2016090801
    Sep  8 13:45:49 dns1 named[1530]: zone 255.in-addr.arpa/IN: loaded serial 1
    Sep  8 13:45:49 dns1 named[1530]: zone localhost/IN: loaded serial 2
    Sep  8 13:45:49 dns1 named[1530]: all zones loaded
    Sep  8 13:45:49 dns1 named[1530]: running

     
    Dit ziet er beter uit ....
     
    Ik test de DNS nu met dig ...
    $ dig @localhost apache.domein01.crazy

    ; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> @localhost apache.domein01.crazy
    ; (2 servers found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14177
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;apache.domein01.crazy.     IN  A
    ;; ANSWER SECTION:
    apache.domein01.crazy.  259200  IN  A   172.16.10.100
    ;; AUTHORITY SECTION:
    domein01.crazy.     259200  IN  NS  ns2.domein01.crazy.
    domein01.crazy.     259200  IN  NS  ns1.domein01.crazy.
    ;; ADDITIONAL SECTION:
    ns1.domein01.crazy. 259200  IN  A   172.16.10.1
    ns2.domein01.crazy. 259200  IN  A   172.16.10.2
    ;; Query time: 6 msec
    ;; SERVER: ::1#53(::1)
    ;; WHEN: Thu Sep 08 13:48:12 CEST 2016
    ;; MSG SIZE  rcvd: 134

     
    Ik wijzig de DNS settings van de test client:
    $ sudo vim /etc/network/interfaces

    # The primary network interface
    auto eth0
    iface eth0 inet static
    address 172.16.255.10
    netmask 16
    gateway 172.16.0.1
    dns-nameservers 172.16.10.1 10.28.100.20

     
    CLIENT HERSTARTEN om de nieuwe DNS-settings te activeren ...
     
    Test nu met ping naar de apache server:
    $ ping apache.domein01.crazy

    PING apache.domein01.crazy (172.16.10.100) 56(84) bytes of data.
    64 bytes from 172.16.10.100: icmp_seq=1 ttl=64 time=0.794 ms
    64 bytes from 172.16.10.100: icmp_seq=2 ttl=64 time=1.40 ms

    ... en tenslotte met lynx naar de website ...
     

  3. oefening
     
    Schrijf een script dat vanuit DNS2 (172.16.10.2) EEn keer per uur alle zone files kopieert van DNS1 naar DNS2. Hoe doe je zoiets via scp?