DNS hands on (basics)
- 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 22.04 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.
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:klik nu op het groene pictogram rechtsboven het vorige venster, en geef settings in:
Zet de dhcp service van vbox natnetwerk aktief
Zet tenslotte de netwerkkaart van je virtuele machines in dit NAT-netwerk:
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 jebind9
.
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 ...
- 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 viascp
?