====== CDN and GeoDNS Explained ======
A **Content Delivery Network (CDN)** is a globally distributed network of servers that delivers content from locations closer to users.
Instead of serving every visitor from a single web server, a CDN directs users to an appropriate edge server, improving performance, availability, and reliability.
Popular CDN providers include:
* Cloudflare
* Akamai
* Fastly
* Amazon CloudFront
* Google Cloud CDN
-----
===== Why Use a CDN? =====
A CDN provides several advantages:
* Faster page loading
* Reduced latency
* Lower bandwidth usage on the origin server
* Improved availability
* Protection against DDoS attacks
* Better scalability during traffic spikes
-----
===== How a CDN Works =====
Without a CDN:
User
│
▼
Origin Server
Every user connects directly to the same server.
With a CDN:
Origin Server
▲
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
CDN Node CDN Node CDN Node
(Germany) (USA) (Japan)
▲ ▲ ▲
│ │ │
German User US User Japanese User
Each user is served by the nearest or best-performing CDN node.
-----
===== CDN and DNS =====
Most CDNs use DNS to direct users to the appropriate edge server.
For example:
www.example.com
│
▼
CNAME
│
▼
example.cdnprovider.net
│
▼
203.0.113.15
Instead of returning the same IP address worldwide, the CDN's authoritative DNS server determines which edge server should serve each user.
-----
===== What is GeoDNS? =====
GeoDNS is a DNS routing technique that returns different IP addresses based on the geographic location of the DNS resolver or the user.
Example:
^ Location ^ Returned IP ^
| Europe | 203.0.113.10 |
| Asia | 203.0.113.20 |
| North America | 203.0.113.30 |
The domain name is identical, but the returned IP address depends on location.
-----
===== GeoDNS vs CDN =====
These terms are often confused.
^ GeoDNS ^ CDN ^
| DNS routing technique | Distributed content delivery system |
| Returns different IP addresses | Serves website content |
| Operates during DNS resolution | Operates after the TCP/HTTPS connection |
| Can exist without a CDN | Often uses GeoDNS |
GeoDNS is one method a CDN may use to direct traffic.
-----
===== What is Anycast? =====
Many modern CDNs use **Anycast** instead of GeoDNS.
With Anycast:
* Every edge server advertises the same IP address.
* Internet routing automatically directs users to the nearest server.
* DNS returns the same IP address worldwide.
Example:
www.example.com → 104.16.120.25
Germany
USA
Japan
Australia
▼
Same IP Address
Cloudflare is one well-known CDN that uses Anycast extensively.
-----
===== Why Different DNS Servers Return Different IP Addresses =====
Several reasons exist:
* GeoDNS routing
* CDN load balancing
* DNS propagation
* Resolver location
* Anycast optimization
Different answers do **not** necessarily indicate a DNS problem.
-----
===== Root Domain vs WWW =====
Many CDNs recommend:
www.example.com
because a standard CNAME record can point to the CDN.
Example:
www.example.com
CNAME
▼
example.cloudflare.net
The root domain
example.com
cannot traditionally have a CNAME because it must also contain records such as SOA and NS.
Many DNS providers therefore support:
* ALIAS
* ANAME
* CNAME Flattening
These behave like a CNAME while remaining compatible with DNS standards.
-----
===== CDN and DNS Check =====
Telenegar DNS Check allows you to:
* Compare answers from multiple DNS providers.
* Detect GeoDNS behavior.
* Observe CDN routing.
* Compare recursive resolvers.
* Verify authoritative DNS responses.
Different probes may receive different IP addresses when a CDN is in use.
-----
===== Common Misconceptions =====
* **Different IP addresses always indicate an error.**
* False. CDNs intentionally return different IP addresses.
* **Every CDN uses GeoDNS.**
* False. Many CDNs primarily use Anycast.
* **The browser chooses the nearest CDN server.**
* Usually not. The CDN infrastructure decides where users are routed.
-----
===== Related Topics =====
* [[networking:dns:dns|DNS Explained]]
* [[networking:dns:dns-propagation|DNS Propagation]]
* [[networking:dns:recursive-authoritative|Recursive vs Authoritative DNS]]
* [[tools:dnscheck|DNS Check]]
-----
{{tag>dns cdn geodns anycast cname alias aname}}