Lecture content
A presentation about the Domain Name System
Resources
- Recording VT19 (Youtube)
 
Articles
- https://internetstiftelsen.se/docs/hakan_lindberg_allt_over_ip_kap_7.pdf
- Shorted text about DNS and name servers. A good read (In Swedish)
 
 - http://www.zytrax.com/books/dns/
- Could be used as a reference book
 
 
Demos
Domain registration and nslookup
- Register a domain name
- Manage the domain name
 - Add some records
 - Change name servers
 - Domain Transfer
 
 - nslookup
- The basics
 - Change server
 - Specify resource type
 - Debug
 - Query types
 - recurse
 - norecurse
 
 
Public Name Servers
Master and Slave
- Make sure to configure and enable ufw firewall
 - Setup security groups in the lab cloud that allow DNS communication for the nameservers with DNS clients, and UDP communication between the nameservers
 - Check that the nameservers exchange zone files successfully: update the serial number of the zone files on the master -> restart bind on master -> check the logs. If the files were exchanged correctly, you should see something along the lines of "updated X zone files, downloaded Y bits..." in the logs of the slave
 - Use the floating IPs in the zone files and in /etc/bind/named.conf.local, using local IPs does not seem to be working properly
 
Master Name Server
- Create a machine
 - Check the name and local lookup
- Local lookup 
sudo nano /etc/hosts127.0.0.1 localhost 192.168.20.53 ns1.devopslab.xyz ns1 - Computer name 
sudo nano /etc/hostname - Reload config for computer name 
sudo hostname -F /etc/hostname 
 - Local lookup 
 - Install bind
sudo apt-get update sudo apt-get install bind9 bind9utils bind9-doc - 
Configuring the Options File
- 
sudo nano /etc/bind/named.conf.optionsoptions { directory "/var/cache/bind"; recursion no; allow-transfer { none; }; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; - Add 
OPTIONS="-4"to /etc/default/bind9 
 - 
 - 
Configure the Zone
sudo nano /etc/bind/named.conf.localzone "devopslab.xyz" { type master; file "/etc/bind/zones/db.devopslab.xyz"; allow-transfer { 192.168.20.54; }; }; zone "174.47.194.in-addr.arpa" { type master; file "/etc/bind/zones/db.194.47.174"; allow-transfer { 192.168.20.54; }; };- Create zone files
sudo mkdir /etc/bind/zones sudo cp /etc/bind/db.local /etc/bind/zones/db.devopslab.xyz sudo cp /etc/bind/db.127 /etc/bind/zones/db.194.47.174 - 
Edit forward lookup zone file
sudo nano /etc/bind/zones/db.devopslab.xyz$TTL 604800 @ IN SOA ns1.devopslab.xyz. admin.devopslab.xyz. ( 5 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Name servers devopslab.xyz. IN NS ns1.devopslab.xyz. devopslab.xyz. IN NS ns2.devopslab.xyz. ; A records for name servers ns1 IN A 194.47.174.124 ns2 IN A 194.47.174.125 ; Other A records @ IN A 194.47.174.110 www IN A 194.47.174.110 - Edit reverse lookup zone file 
sudo nano /etc/bind/zones/db.194.47.174$TTL 604800 @ IN SOA devopslab.xyz. admin.devopslab.xyz. ( 5 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Name servers IN NS ns1.devopslab.xyz. IN NS ns2.devopslab.xyz. ; PTR records 124 IN PTR ns1.devopslab.xyz. 125 IN PTR ns2.devopslab.xyz. 110 IN PTR www.devopslab.xyz. 
 - Testing the Files and Restarting the Service
- Test config syntax 
sudo named-checkconf - Check config 
sudo named-checkzone devopslab.xyz /etc/bind/zones/db.devopslab.xyz - Check reverse config 
sudo named-checkzone 174.47.194.in-addr.arpa /etc/bind/zones/db.194.47.174 sudo service bind9 restart- Check the logs 
sudo tail -f /var/log/syslog 
 - Test config syntax 
 
Secondary/Slave Name Server
- Create a machine
 - Check the name and local lookup
- Local lookup 
sudo nano /etc/hosts127.0.0.1 localhost 192.168.20.54 ns2.devopslab.xyz ns2 - Computer name 
sudo nano /etc/hostname - Reload config for computer name 
sudo hostname -F /etc/hostname 
 - Local lookup 
 - Install bind
sudo apt-get update sudo apt-get install bind9 bind9utils bind9-doc - 
Configuring the Options File
- 
sudo nano /etc/bind/named.conf.optionsoptions { directory "/var/cache/bind"; recursion no; allow-transfer { none; }; allow-notify { <floating ip address of the slave> ; } ; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; - Configure the forward lookup zone 
sudo nano /etc/bind/named.conf.localzone "devopslab.xyz" { type slave; file "/db.devopslab.xyz"; masters { 192.168.20.53; 192.168.20.54; }; }; - Configure the reverse lookup zone 
sudo nano /etc/bind/named.conf.localzone "174.47.194.in-addr.arpa" { type slave; file "/db.194.47.174"; masters { 192.168.20.53; 192.168.20.54; }; }; 
 - 
 - Testing the Files and Restarting the Service
- Test config syntax 
sudo named-checkconf - Restart bind 
sudo service bind9 restart - Check the logs 
sudo tail -f /var/log/syslog 
 - Test config syntax 
 
