DNS
De student(e)
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
DNS (Domain Name System) is een systeem dat domeinnamen omzet naar IP-adressen.
TLD: Top Level Domain, bijvoorbeeld .com.
DNS Stappen
Je computer zoekt in zijn eigen DNS-cache voor het IP-adres.
Als het IP-adres niet in de cache staat vraagt de computer het aan de DNS-server.
Deze server is een recursieve DNS-server.
Als de DNS-server het IP-adres niet heeft, vraagt hij het aan de root nameserver.
De root nameserver verwijst de DNS-server naar de TLD nameserver (Top Level Domain).
Een root nameserver checkt het TLD en verwijst de DNS-server naar de TLD nameserver.
De TLD nameserver verwijst de DNS-server naar de authoritative DNS-server.
De authoritative nameserver geeft het IP-adres terug aan de DNS-server.
De authoritative nameserver is de server die de domeinnaam beheert.
De DNS-server geeft het IP-adres terug aan de computer.
Installatie & Configuratie
Installeer de DNS-server:
$ sudo dnf install bind
Start en enable de DNS-server:
$ sudo systemctl start named
$ sudo systemctl enable named
Open de configuratie:
$ sudo nano /etc/named.conf
Pas de configuratie aan:
options {
listen-on port 53 { 127.0.0.1; 10.10.10.1; };
# ^ De IP-adressen en poort waarop de DNS-server luistert
allow-query { localhost; 10.10.10.0/24; };
# ^ De IP-adressen die DNS mogen gebruiken
allow-recursion { localhost; 10.10.10.0/24; };
# ^ Staat recursieve queries toe voor deze IP-adressen
forwarders { 8.8.8.8; 8.8.4.4; };
# ^ De DNS-servers die deze gebruikt als het niet lukt
...
Controleer de syntax:
Als er geen errors zijn, is het goed.
$ sudo named-checkconf
Herstart de DNS-server:
$ sudo systemctl restart named
DNS-zone
Pas de configuratie aan:
$ sudo nano /etc/named.conf
...
zone "mic.lan" {
# ^ De naam van de zone
type master;
# ^ Betekent dat dit de primaire DNS-server is
file "/etc/named/mic.lan.db";
# ^ Het bestand met de zone-informatie
allow-query { any; };
# ^ Wie mag de zone-informatie opvragen
allow-transfer { none; };
# ^ Wie mag de zone-informatie overdragen
};
$ sudo nano /etc/named/mic.lan.db
$TTL 8h
@ IN SOA ns1.mic.lan. administrator.mic.lan. (
2025042401 ;
1d ;
3h ;
3d ;
3h ) ;
IN NS ns1.mic.lan.
IN MX 10 mail.mic.lan.
www IN A 10.10.10.30
ns1 IN A 10.10.10.1
mail IN A 10.10.10.40
webserverMIC IN A 10.10.10.1
Start of Authority. Bevat een aantal records.
Mailadres van de beheerder van de zone. De eerste "." wordt gezien als "@".
De datum van de laatste wijziging in het formaat YYYYMMDDNN. (Waar "N" het aantal aanpassingen is)
Als vernieuwing faalt, tijd voor opnieuw te proberen.
Tijd wanneer de 2de server de 1ste server stopt met gebruiken als die niet bereikbaar is.
Hoe lang mislukte lookups worden bijgehouden in de cache.
"Name Server", de nameserver die verantwoordelijk is voor het domein.
De mailserver. Hoe lager het nummer achter "MX", hoe hoger de prioriteit.
Koppelt domeinnaam aan IPv4-adres.
Koppelt domeinnaam aan IPv6-adres.
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Zet de juiste permissies op de zone-bestanden:
$ sudo chown root:named /etc/named/mic.lan.db
$ sudo chmod 640 /etc/named/mic.lan.db
Check de syntax:
$ sudo named-checkzone mic.lan /etc/named/mic.lan.db
Herstart de DNS-server:
$ sudo systemctl restart named
Reverse DNS
Pas de configuratie aan:
$ sudo nano /etc/named.conf
zone "10.10.10.in-addr.arpa" {
type master;
file "/var/named/10.10.10.in-addr.arpa.zone";
allow-query { any; };
allow-transfer { none; };
};
Maak het zone-bestand aan:
$ sudo nano /var/named/10.10.10.in-addr.arpa.zone
$TTL 8h
@ IN SOA ns1.mic.lan. administrator.mic.lan. (
2025031901 ; serienummer
1d ; vernieuwingsperiode
3h ; herhalingsperiode
3d ; vervaltijd
3h ) ; minimum TTL
IN NS ns1.mic.lan.
1 IN PTR ns1.mic.lan.
30 IN PTR www.mic.lan.
PTR: Pointer record, koppelt IP-adres aan domeinnaam. In de plaats van domeinnaam aan IP-adres.
Zet de juiste permissies op de zone-bestanden:
$ sudo chown root:named /var/named/10.10.10.in-addr.arpa.zone
$ sudo chmod 640 /var/named/10.10.10.in-addr.arpa.zone
Check de syntax:
$ sudo named-checkzone 10.10.10.in-addr.arpa /var/named/10.10.10.in-addr.arpa.zone
Herstart de DNS-server:
$ sudo systemctl restart named
Client DNS
Om je client de DNS te laten gebruiken:
$ sudo nano /etc/dhcp/dhcpd.conf
ddns-update-style none;
authoritative;
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.10 10.10.10.30;
option domain-name-servers 10.10.10.1;
option domain-name "mic.lan";
option routers 10.10.10.1;
default-lease-time 600;
max-lease-time 7200;
}
Testen
Enkele commando's:
$ dig www.mic.lan # Normale DNS lookup
$ dig +short -x 10.10.10.30 # Reverse DNS lookup
De website checken:
$ sudo systemctl start httpd
$ sudo firewall-cmd --add-service=http --zone=internal
Oefeningen
1. Zorg dat enkel clients in het 10.10.10.0/24 network DNS-query’s kunnen aanvragen.
$ sudo nano /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 10.10.10.1; };
allow-query { localhost; 10.10.10.0/24; }; # deze lijn
allow-recursion { localhost; 10.10.10.0/24; }; # en deze lijn
forwarders { 8.8.8.8; 8.8.4.4; };
...
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
2. Forward DNS-query’s naar de dns-services van google (8.8.8.8, 8.8.4.4).
$ sudo nano /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 10.10.10.1; };
allow-query { localhost; 10.10.10.0/24; };
allow-recursion { localhost; 10.10.10.0/24; };
forwarders { 8.8.8.8; 8.8.4.4; }; # deze lijn
...
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
3. Zorg dat Server[JouwInitialen] en Client[JouwInitialen] door je DNS vertaald worden naar de IP adressen van jouw Server en Client. Tip: voeg hun toe aan domein .pxl.lan (hostname)
$ sudo nano /etc/named.conf
...
zone "mic.lan" {
type master;
file "/etc/named/mic.lan.db";
allow-query { any; };
allow-transfer { none; };
};
$ sudo nano /etc/named/mic.lan.db
$TTL 8h
@ IN SOA ns1.mic.lan. administrator.mic.lan. (
2025042401 ;
1d ;
3h ;
3d ;
3h ) ;
IN NS ns1.mic.lan.
IN MX 10 mail.mic.lan.
www IN A 10.10.10.30
ns1 IN A 10.10.10.1
mail IN A 10.10.10.40
ServerMIC IN A 10.10.10.1
ClientMIC IN A 10.10.10.2
$ sudo chown root:named /etc/named/mic.lan.db
$ sudo chmod 640 /etc/named/mic.lan.db
$ sudo named-checkzone mic.lan /etc/named/mic.lan.db
$ sudo systemctl restart named
Client:
$ sudo nmcli connection modify "Wired Connection 1" ipv4.dns "10.10.10.1"
$ sudo nmcli connection modify "Wired Connection 1" ipv4.dns-search "mic.lan"
$ sudo nmcli connection up "Wired Connection 1"
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
4. Zorg dat je DHCP-server jouw nieuwe DNS server deelt.
$ sudo nano /etc/dhcp/dhcpd.conf
ddns-update-style none;
authoritative;
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.10 10.10.10.30;
option domain-name-servers 10.10.10.1;
option domain-name "mic.lan";
option routers 10.10.10.1;
default-lease-time 600;
max-lease-time 7200;
}
$ sudo systemctl restart dhcpd
Client:
$ cat /etc/resolv.conf # check of het werkt (connection eerst herstarten)
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
5. Test met dig en door te pingen naar Server[JouwInitialen] en Client[JouwInitialen] dat je DNS via DHCP werkt.
$ dig ServerMIC.mic.lan
$ dig ClientMIC.mic.lan
$ dig google.com
$ ping ServerMIC.mic.lan
$ ping ClientMIC.mic.lan
$ dig +trace google.com # toont welke dns server gebruikt wordt
Last modified: 28 April 2025