For the DNS, create a separate VM, and follow the below steps. For our setup, we are using Bind9 open source project to deploy our DNS server. Also, we have created our zone: dns-adwise
Install this on the DNS server VM
Step 1: Update your system
sudo apt update
sudo apt upgrade -y
Step 2: Install Bind9
sudo apt install bind9 -y
Step 3: Configure Bind9 Edit the Bind9 configuration file using a text editor. In this example, we’ll use nano:
sudo nano /etc/bind/named.conf.options
Replace the contents of the file with the following configuration:
options {
directory "/var/cache/bind";
recursion yes;
allow-query { any; };
forwarders {
8.8.8.8;
8.8.4.4;
};
};
This configuration enables DNS recursion, allows queries from any IP address, and sets up Google’s public DNS servers (8.8.8.8 and 8.8.4.4) as forwarders.
Save and close the file (Ctrl+X, then Y, then Enter).
Step 4: Create a zone file Create a new zone file for your domain:
sudo nano /etc/bind/db.dns-adwise
Add the following content to the file:
Replace the IP for your actual DNS IP address
$TTL 604800
@ IN SOA ns1.dns-adwise. admin.dns-adwise. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.dns-adwise.
@ IN A 10.102.211.101
ns1 IN A 10.102.211.101
Make sure to replace 10.102.211.101 with your actual IP address.
Save and close the file.
Step 5: Configure Bind9 to use the zone file Edit the Bind9 configuration file again:
sudo nano /etc/bind/named.conf.local
Add the following content to the file:
zone "dns-adwise" {
type master;
file "/etc/bind/db.dns-adwise";
};
Save and close the file.
Step 6: Restart Bind9
sudo systemctl restart bind9
Step 7: Test the DNS server You can now test your DNS server by running the following command:
nslookup dns-adwise
You should see your IP address (10.102.211.101) listed in the output.
That’s it! You have successfully set up a DNS server using Bind9 on your Ubuntu 20.04 laptop with the domain name “dns-adwise.”
- Change your dns server in the resolv.conf file
sudo nano /etc/resolv.conf
as below
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
- nameserver 127.0.0.53
+ nameserver 10.102.211.101
options edns0 trust-ad
search fiu.edu
- Test that the DNS server is working
nslookup dns-adwise
You should get something similar as the output below
nslookup dns-adwise
Server: 10.102.211.101
Address: 10.102.211.101#53
Name: dns-adwise
Address: 10.102.211.101
Modify the corresponding information related to your setup, such as domain, IP address, etc