DNS (Domain Name System)#
DNS is the system that translates human-readable domain names (e.g., www.geoassistant.org) into IP addresses used by servers to communicate over the internet.
A simple analogy is a phone contact list. Instead of remembering numeric phone numbers, you search by name and retrieve the associated number. DNS performs the same function: it retrieves the IP address associated with a domain name. This mapping is handled by specialized machines called DNS servers.
Stub Resolver#
Each device contains a local DNS component known as a Stub Resolver. It first checks a local cache (recently resolved domains). If the requested domain is not found locally, the resolver forwards the query to a configured recursive DNS server.
Most users rely on their ISP’s DNS server, but public resolvers such as Google (8.8.8.8) are also common.
DNS Servers#
Recursive DNS servers also maintain a cache. If the IP address is not cached, they perform a recursive lookup through the DNS hierarchy until the authoritative source of the domain is reached.
Root Servers#
The first level in this hierarchy consists of the Root Servers. These servers do not know the final IP address of a domain. Instead, they know where to find the servers responsible for each Top Level Domain (TLD).
There are 13 logical root server clusters (operated by multiple organizations) distributed globally through hundreds of physical instances.
Root server distribution.#
TLD (Top Level Domain)#
Top Level Domains are the final segment of a domain name (e.g., “.com”, “.org”, “.net”). Root servers return the addresses of the TLD servers responsible for that extension.
If the requested domain ends in “.org”, the recursive DNS server is directed to the “.org” TLD servers.
SLD (Second Level Domain)#
When queried, TLD servers return the authoritative name servers for the requested Second Level Domain (e.g., “geoassistant” in “geoassistant.org”).
These authoritative servers contain the actual DNS records (A, AAAA, CNAME, etc.) that map the domain or subdomain to its final IP address.
DNS Records#
Once the authoritative name servers for a domain are reached, they return specific DNS records (a text file). These records define how a domain or subdomain behaves, including which IP address it resolves to or which service it points to.
A Record#
The A (Address) record maps a domain name to an IPv4 address.
Example: api.geoassistant.org → 203.0.113.10
This is the most common record used when pointing a domain directly to a server.
AAAA Record#
The AAAA record maps a domain name to an IPv6 address. It performs the same function as an A record, but for IPv6.
CNAME Record#
The CNAME (Canonical Name) record maps one domain name to another domain name, instead of directly to an IP address.
Example: docs.geoassistant.org → geoassistant-docs.netlify.app
The final IP resolution happens after the CNAME target is resolved.
CNAME records are commonly used when pointing to hosted services (e.g., Netlify, Fly.io, etc.).
NS Record#
The NS (Name Server) record defines which name servers are authoritative for a domain.
At the top level, NS records delegate control from root servers to TLD servers, and from TLD servers to a domain’s authoritative name servers.
MX Record#
The MX (Mail Exchange) record specifies the mail servers responsible for receiving email for a domain.
While not directly used in ProjectGeo’s web architecture, MX records are required if email services are configured.
TXT Record#
The TXT record stores arbitrary text data.
Common uses include:
Domain ownership verification
SPF (email validation)
DKIM configuration
Service validation (e.g., Cloudflare, Auth providers)
TXT records are frequently used during service integrations.
SRV Record#
The SRV (Service) record specifies the location (host and port) of specific services within a domain.
These are more common in enterprise or internal service discovery systems.