Domain Name System (DNS) and Dynamic DNS


Human communicates with each other by mentioning names, but machine does that by ip address. In order to bridge human and machine communication, a domain name is needed since we are better at memorizing names than numbers.

graph LR A[192.168.1.1] --> B[192.168.1.2]; B --> A; A --> C[192.168.1.3]; C --> A; B--> C; C-->B;

DNS simply resolves names to numbers, domain names to IP addresses.

flowchart LR A[Browser] --forward: Domain Name--> B[ISP/Resolver Server]; A --resolve: IP cache--> A; B --resolve: IP--> A; B --forward--> C[Root server]; C --resolve--> B; B --forward--> D[Top Level Domain TLD Server]; D --resolve--> B; B --forward--> E[Authoritative Name Server]; E --resolve--> B;

Priorities: Browser → ISP → Root Server → TLD Server → Authoritative Server

Differences between DNS forwarder and resolver

The DNS forwarder(s) tell the DNS service where to send queries if it doesn't "know" the answer (e.g. it's not authoritative or in the cache).

The DNS resolver settngs tell the Infoblox appliance where to send queries if it needs to resolve a name or perform a reverse lookup.

Differences between DNS and DDNS

It is possible to bind domain name and dynamic public ip address, but since that ip is constantly changing, browsing that domain name can sometimes turn into bad gateway. You also need to buy a domain name.

Usually, a domain name is binded to a static public ip address.

Dynamic Domain Name can solve this problem. It is free, it can map to a dynamic ip address, it does not mind the ip will change.

References


  1. No-IP: Free Dynamic DNS - Managed DNS
  2. Duck DNS: free dynamic DNS hosted on AWS
  3. www.dtdns.org - Free Dynamic DNS
  4. what is the different between DNS forwarder and DNS Resolver ?
  5. Install PowerDNS and PowerDNS-Admin on Ubuntu 20.04|18.04 & Debian 10|9
  6. How to setup a DNS server with PowerDNS | Raspberry Pi