User Tools

Site Tools


clubs:cloud_club:cloud_club_dns
Home | clubs :: cloud club :: python_club :: 3D-Printing | projects :: Proxmox | Kubernetes | scripting | utilities | games

About the Club

Cloud Club Topics - Domain Name Servers ( DNS )

Name servers

  1. Creating servers is great and memorizing IP addresses on a small network is OK. But, names are a lot easier to remember than IP address, especially on a large netowrk ( eg. the internet ).
  2. The original way to name servers is to use a file ( /etc/hosts )

Hands-On naming servers

  1. Edit the /etc/hosts file on your server(s). It should look like the following
    27.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
  2. Add the following content at the bottom - ( replace the webserver IPs and names + the LB IP and name )
    <webserver_1_IP>  <webserver_1_name>.cloudclub.edu
    <webserver_2_IP>  <webserver_2_name>.cloudclub.edu
    <LB_IP>           <LB_name>.cloudclub.edu
  3. View the websites with curl
    curl http://<webserver_1_name>.cloudclub.edu/
    curl http://<webserver_2_name>.cloudclub.edu/
    curl http://<LB_name>.cloudclub.edu/

Understanding DNS

  1. DNS is the Domain Name System
    1. Examples of DNS software:
Name Supported OS
Bind 9 Linux, Windows Server 2012+, Windows 10+
DNSmasq Linux, Mac

Hands-on installing a DNS server

  1. Create a Rocky Linux server ( if you don't already have one )
    1. Assign an IP address from your range
    2. Install bind9 ( dns server software )
      sudo dnf install bind bind-utils -y
      sudo systemctl enable --now bind

Hands-on configure a DNS server

  1. Edit the config file ( /etc/named.conf )
    1. Configure main options
        options {
                  listen-on port 53 { any; };
                  listen-on-v6 port 53 { any; };
                  directory       "/var/named";
                  ...
                  allow-query { any; };
              };
    2. Define you domain
      zone "cloudclub.edu" {
              type master;
              file "/var/named/cloudclub.edu.db";
             };
  2. Create the directory if it doesn't already exist ( it does on our server )
    sudo mkdir -p /var/named
  3. Create the zone file ( /var/named/cloudclub.edu.db )
    $ttl 38400
    cloudclub.edu.     IN      SOA     dns.cloudclub.edu. admin.cloudclub.edu. (
                            1611368586
                            10800
                            3600
                            604800
                            38400 )
    cloudclub.edu.          IN      NS      dns.cloudclub.edu.
    dns.cloudclub.edu.      IN      A       192.168.1.11
    repo.cloudclub.edu.     IN      A       192.168.1.11
  4. Enable/start bind service
    sudo sytemctl enable --now named
  5. Check your configuration doesn't have errors
    sudo named-checkconf /etc/named.conf
  6. Check that you get a result from a basic query of your domain
    sudo dig @localhost cloudclub.edu
  7. Open the DNS port/service in the firewall
    sudo firewall-cmd --permanent --add-service=dns
    sudo firewall-cmd --reload
  8. Test query your DNS server for one of the addresses you added
    dig @192.168.1.11 repo.cloudclub.edu
    
    
    ; <<>> DiG 9.16.23-RH <<>> repo.cloudclub.edu
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 394
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ; COOKIE: 81331712b590bb610100000068085e3f33d592afa55f8a0c (good)
    ;; QUESTION SECTION:
    ;repo.cloudclub.edu.		IN	A
    
    ;; ANSWER SECTION:
    repo.cloudclub.edu.	38400	IN	A	192.168.1.11
    
    ;; Query time: 2 msec
    ;; SERVER: 192.168.1.11#53(192.168.1.11)
    ;; WHEN: Tue Apr 22 20:27:59 PDT 2025
    ;; MSG SIZE  rcvd: 91
    
  9. Request the short result with only the answer
    dig +short @192.168.1.11 repo.cloudclub.edu
    
    192.168.1.11
    
clubs/cloud_club/cloud_club_dns.txt · Last modified: by 127.0.0.1