title | subtitle | author | date |
---|---|---|---|
10. DNS met BIND |
Linux<br/>HOGENT toegepaste informatica |
Thomas Parmentier, Andy Van Maele, Bert Van Vreckem |
2024-2025 |
- DNS
- BIND op Enterprise Linux
- Configuratie
- Zonebestanden
http://www.zytrax.com/books/dns/
- We gaan verder met de opstelling met Linux Mint-, web- en db-VMs
- Github repo: "linux-2122-USERNAME/automation"
- In de les: stap voor stap, manueel
- Labo-taak: automatiseren!
-
In
vagrant-hosts.yml
:- name: srv box: bento/almalinux-9 ip: 192.168.76.254 intnet: true
-
In
provisioning/
scriptsrv.sh
toevoegen- bv. kopie van
web.sh
, toegevoegde code voor installatie LAMP verwijderen
- bv. kopie van
-
vagrant up srv
- Vertaling van hostnaam naar IP in een tekstbestand
- DNS query = opzoeking in dat tekstbestand
- Queries kunnen over het netwerk gestuurd worden
en toch blijkt...
Everything is a freaking DNS problem
Hosts-bestand: /etc/hosts
# IP-address hostname aliases
127.0.0.1 localhost localhost.localdomain
::1 localhost6 localhost6.localdomain6
172.22.255.254 router4038 gw gw.netlab.hogent.be
172.22.0.2 server4038 server4038.netlab.hogent.be
172.22.0.3 printer4038 printer4038.netlab.hogent.be
- On Windows:
c:\Windows\System32\Drivers\etc\hosts
- Ad blocker: https://someonewhocares.org/hosts/
- 12 root servers: [a-m].root-servers.net
- Verschillende instanties per root server!
- totaal: 1000+
- vb. Brussels: e, f, i, l
- Instanties v/e root server delen hun IP address!
- routers sturen trafiek naar dichtstbijzijnde instantie
- Authoritative: "bron van waarheid" voor een zone
- zonebestand
- Forwarding/caching: stuurt requests door naar andere servers
- Primary/Secondary (master/slave): voor "high availability"
- enkel primaire heeft zonebestand
- secundaire vraagt regelmatig "zone transfer"
- Authoritative-only
- Caching & authoritative niet mengen
- DNS only
- Geen andere services op die machine
Een typische AD DC overtreedt beide regels!
Stuur vraag naar de DNS-server in /etc/resolv.conf
nslookup www.hogent.be
Stuur vraag naar specifieke DNS-server
nslookup www.hogent.be 193.190.172.1
$ dig www.hogent.be
[...]
$ dig www.hogent.be @ens1.hogent.be +short
hogent.be.
193.190.173.132
$ dig -x 193.190.173.132 @ens1.hogent.be +short
net-173-node-133.hogent.be.
$ dig AAAA www.google.com +short
2a00:1450:400e:806::2004
$ dig NS hogent.be
$ dig MX hogent.be
$ dig SOA hogent.be
$ dig ANY hogent.be @ens1.hogent.be
$ dig AXFR zonetransfer.me @nsztm1.digi.ninja
- Wie is de authoritative name server voor hogent.be?
- Wie is de mail server voor hogent.be?
- Vraag de Start-of-Authority section voor hogent.be op
- Geef gelijk welk record met de opgegeven naam
- Vraag een domain transfer aan
- Implementatie van het DNS protocol
- Meest gebruikte
- De facto standaard op Unix-achtige systemen
Lees DNS for rocket scientists!
http://www.zytrax.com/books/dns/
- Package:
bind
- Configuratie:
/etc/named*
- Zonebestanden, enz:
/var/named/
/etc/named.conf
options {
listen-on port 53 { any; }; //aanpassen!
listen-on-v6 port 53 { any; }; //aanpassen!
directory "/var/named";
// ...
allow-query { any; }; //aanpassen!
recursion yes;
// ...
};
listen-on
: port number + network interfacesany;
127.0.0.0/8; 192.168.76.0/24
allow-query
: welke hosts mogen queries sturen?recursion
: recursieve queries toelaten- zou
no
moeten zijn op een authoritative name server!
- zou
Als je de service nu opstart, heb je een forwarding name server
Controleer dit!
- Draait de service?
- Op welke poort(en)?
- Firewall?
- Reageert de service op requests?
- localhost?
- vanaf de Linux Mint?
Host | Alias | IP | Functie |
---|---|---|---|
ns1 | 192.0.2.1 | Primaire DNS-server | |
ns2 | 192.0.2.2 | Secundaire DNS-server | |
web | www | 192.0.2.10 | Webserver |
smtp, imap | 192.0.2.20 | Mailserver |
Forward lookup zone voor example.com
zone "example.com" IN {
type master;
file "example.com";
notify yes;
allow-update { none; };
};
/var/named/example.com
$ORIGIN example.com.
$TTL 1W
@ IN SOA ns.example.com. hostmaster.example.com. (
21120117 1D 1H 1W 1D )
IN NS ns1
IN NS ns2
IN MX 10 mail
ns1 IN A 192.0.2.1
ns2 IN A 192.0.2.2
web IN A 192.0.2.10
www IN CNAME web
mail IN A 192.0.2.20
smtp IN CNAME mail
imap IN CNAME smtp
web IN A 192.0.2.10
www IN CNAME web
A
: hostnaam → IPAAAA
: hostnaam → IPv6PTR
: IP → hostnaamCNAME
: aliasSOA
: start of authorityNS
: authoritative name server(s)MX
: mail serverSRV
: serviceTXT
: text record- ...
@ IN SOA ns.example.com. hostmaster.example.com. (
21120117 1D 1H 1W 1D )
srv.example.com.
: primaire DNS-serverhostmaster.example.com.
: email adres v/d sysadmin21120120
: serial- LET OP secundaire servers zullen alleen update uitvoeren als serial verhoogd is
@ IN SOA ns.example.com. hostmaster.example.com. (
21120117 1D 1H 1W 1D )
1D
: waneer zal secundaire ns proberen de zone te synchroniseren1H
: tijd tussen update-pogingen1W
: wanneer zijn zonegegevens niet langer "authoritative" (enkel op secondaire)1D
: hoe lang kan een NAME ERROR resultaat gecached worden
Zie http://www.zytrax.com/books/dns/ch8/soa.html
$ORIGIN
: domeinnaam- wordt toegevoegd aan alle namen die niet eindigen op
.
@
: wordt vervangen door waarde van$ORIGIN
- wordt toegevoegd aan alle namen die niet eindigen op
$TTL
: time to live (in seconden)- hoe lang mag een record gecached worden
- Fully Qualified Domain Name (FQDN): eindigt met een punt
- Unqualified: zonder punt
$ORIGIN
toegevoegd aan het einde
- default = seconden
- M = minuten
- H = uren
- D = dagen
- W = weken
Ook combinaties, bv. 2H30M
zone "2.0.192.in-addr.arpa" IN {
type master;
file "2.0.192.in-addr.arpa";
notify yes;
allow-update { none; };
};
- Neem het IP-adres:
192.0.2.0/24
- Laat het host-deel vallen:
192.0.2
- Keer volgorde om:
2.0.192
- Voeg
in-addr.arpa.
toe
Resutaat: 2.0.192.in-addr.arpa.
/var/named/2.0.192.in-addr.arpa
$TTL 1W
$ORIGIN 2.0.192.in-addr.arpa.
@ IN SOA ns.example.com. hostmaster.example.com. (
21120117 1D 1H 1W 1D )
IN NS ns1.example.com.
IN NS ns2.example.com.
1 IN PTR ns1.example.com.
2 IN PTR ns2.example.com.
10 IN PTR web.example.com.
20 IN PTR mail.example.com.
Elke (forwarding) name server moet een lijst bijhouden van de root name servers
dig @a.root-servers.net
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
[...]
a.root-servers.net. 518400 IN A 198.41.0.4
b.root-servers.net. 518400 IN A 199.9.14.201
[...]
a.root-servers.net. 518400 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 518400 IN AAAA 2001:500:200::b
[...]
Authoritative name server voor het domein linux.lan
Host | Alias | IP |
---|---|---|
web | www | 192.168.76.4 |
db | 192.168.76.3 | |
srv | 192.168.76.254 |
- Zoek zelf op: hoe kan je "http://linux.lan" laten werken?
- Begin met forward zone, pas als die werkt de reverse
- Kan je DNS ondervragen vanaf Linux Mint?
- Controleer de logs:
journalctl -f -l -u named
- Valideer configbestanden:
- hoofdbestand:
named-checkconf
- zonebestanden:
named-checkzone ZONE FILE
- hoofdbestand:
$ sudo named-checkconf
$ sudo named-checkzone linux.lan /var/named/linux.lan
$ sudo named-checkzone 76.168.192.in-addr.arpa \
/var/named/76.168.192.in-addr.arpa
Query log aanzetten:
[vagrant@srv ~]$ sudo rndc querylog
BIND logs tonen:
[vagrant@srv ~]$ journalctl -f -u named.service
[vagrant@srv ~]$ sudo tcpdump -i eth1 -vvnnttt
[vagrant@srv ~]$ sudo tcpdump -i any -U -w - port 53 | tee /vagrant/dns.pcap | tcpdump -vv -nn -ttttt -r -
- Interactie met de Linux Mint VM
- Alle verkeer op poort 53, opslaan in dns.pcap
Bestand dns.pcap
kan je openen met Wireshark!
Werk de huidige opstelling af tot een volledig werkend LAN
- Automatiseer de installatie en configuratie van BIND
- Zorg dat ook DHCP-server geïnstalleerd en geconfigureerd wordt
- Zorg dat Linux Mint correcte IP-instellingen krijgt op intnet