Physical Address
Metro Manila, Philippines
Physical Address
Metro Manila, Philippines
When a user visits a website, opens an app, or streams a video, one of the first systems involved is DNS.
DNS means Domain Name System. It converts names like example.com into IP addresses that computers can connect to. This sounds simple, but DNS can do more than name resolution. When designed carefully, DNS can also influence where users are sent.
That is the basic idea behind DNS steering.
DNS steering is the practice of using authoritative DNS answers to influence traffic direction. Instead of always returning the same IP address to every requester, an authoritative DNS system can return different answers based on policy, location, network, health status, or other signals.
A user usually does not connect to an authoritative DNS server directly.
Most DNS lookups involve these parts:
For example, when a user opens:
www.example.com
The user device asks its recursive resolver:
What is the IP address of www.example.com?
The recursive resolver then finds the authoritative DNS server for that domain and asks it for the answer.
The authoritative DNS server may return:
www.example.com. 300 IN A 203.0.113.10
This means:
Use IP address 203.0.113.10 for www.example.com.
Cache this answer for 300 seconds.
The number 300 is the TTL.
TTL means Time To Live. It tells resolvers how long they may cache the DNS answer.
DNS behavior is defined by long-standing DNS standards, including RFC 1034 and RFC 1035.
Sources:
https://www.rfc-editor.org/rfc/rfc1034
https://www.rfc-editor.org/rfc/rfc1035
DNS steering happens at the authoritative DNS layer.
The authoritative DNS server does not only answer:
What is the IP address of this name?
It can also apply logic before answering:
Who is asking?
Where is the requester likely located?
Which network is the requester using?
Which service endpoint is healthy?
Which routing policy applies?
What answer is safest right now?
Based on those checks, the DNS answer can change.
Example:
Requester from the Philippines:
www.example.com. 60 IN A 203.0.113.10
Requester from Singapore:
www.example.com. 60 IN A 198.51.100.20
Requester from another region:
www.example.com. 60 IN A 192.0.2.30
The domain name is the same.
The DNS answer changes based on policy.
That is DNS steering.
Imagine a company has three service locations:
Manila endpoint: 203.0.113.10
Singapore endpoint: 198.51.100.20
Tokyo endpoint: 192.0.2.30
A user in the Philippines opens:
video.example.com
The DNS steering system may answer with the Manila endpoint.
A user in Singapore opens the same domain.
The DNS steering system may answer with the Singapore endpoint.
A user in Japan opens the same domain.
The DNS steering system may answer with the Tokyo endpoint.
The goal is simple:
Return the most suitable answer for the requester.
The most suitable answer is not always the nearest one. It may depend on health, capacity, network path, contract rules, cost, or business policy.
This is one of the most important ideas in DNS steering.
DNS steering does not fully control user traffic.
It influences traffic by returning a DNS answer.
After that, several things can happen:
Because of this, DNS steering is best understood as a decision system that gives a recommended destination through DNS.
It is not the same as a network load balancer.
It does not sit directly in the packet path.
It does not see every HTTP request.
It does not control every connection after resolution.
This limitation is not a weakness. It is part of how DNS works.
Good DNS steering design respects this limitation.
A DNS steering system can use different signals when choosing an answer.
Common signals include:
This is the IP address seen by the authoritative DNS server.
In many cases, this is the recursive resolver IP, not the real user IP.
The system may map the requester IP to a country, region, or city using GeoIP data.
This can help send users to a nearby endpoint.
ASN means Autonomous System Number.
An ASN identifies a network operator, such as an ISP, cloud provider, or large enterprise network.
For example, one policy may prefer one endpoint for ISP A and another endpoint for ISP B.
The system may know whether an endpoint is healthy or unhealthy.
If an endpoint is down, DNS steering can avoid returning it.
A policy defines what answer should be returned under certain conditions.
For example:
If requester country is PH, return Manila endpoint.
If Manila endpoint is unhealthy, return Singapore endpoint.
If no rule matches, return global default endpoint.
EDNS Client Subnet, or ECS, allows some recursive resolvers to send part of the client network to authoritative DNS.
This can improve requester classification.
It also creates privacy, caching, and operational concerns.
ECS is defined in RFC 7871.
Source:
https://www.rfc-editor.org/rfc/rfc7871
TTL is very important in DNS steering.
A low TTL allows changes to take effect faster.
A high TTL reduces DNS query volume and improves cache efficiency.
Example:
TTL 30 seconds:
Changes may take effect faster, but DNS query volume may increase.
TTL 300 seconds:
Resolvers cache longer, but failover may be slower.
There is no perfect TTL for every system.
The right TTL depends on the use case.
For a static website, a longer TTL may be fine.
For failover-sensitive traffic, a shorter TTL may be better.
But even with a short TTL, DNS steering is not instant. Resolvers and applications may still cache answers in ways operators cannot fully control.
DNS steering is often used for failover.
Example:
Primary endpoint: 203.0.113.10
Backup endpoint: 198.51.100.20
Normal answer:
app.example.com. 60 IN A 203.0.113.10
If the primary endpoint becomes unhealthy, the authoritative DNS system may answer:
app.example.com. 60 IN A 198.51.100.20
This can help new DNS lookups reach the backup endpoint.
But existing users may still have the old answer cached until the TTL expires.
This is why DNS failover should be designed with realistic expectations.
DNS can help move traffic.
DNS cannot instantly move every active connection.
Sometimes DNS returns more than one IP address.
Example:
api.example.com. 60 IN A 203.0.113.10
api.example.com. 60 IN A 203.0.113.11
api.example.com. 60 IN A 203.0.113.12
This can distribute traffic across multiple endpoints.
However, client behavior varies.
Some clients use the first answer.
Some retry another answer if the first fails.
Some resolvers rotate answer order.
Some applications cache the result internally.
Because of this, multiple DNS answers can help, but they should not be treated as exact traffic control.
DNS steering is useful for:
It is especially useful when the same service is available in multiple locations.
DNS steering is weak for:
DNS steering should work with other systems.
It should not carry the full responsibility for traffic reliability.
A basic DNS steering decision may look like this:
Receive DNS query
|
Identify requester signal
|
Check matching policy
|
Check endpoint health
|
Select safest valid answer
|
Return DNS response with TTL
A more careful system also handles missing data:
If requester cannot be classified, use default policy.
If preferred endpoint is unhealthy, use backup endpoint.
If health data is stale, use safe fallback.
If policy is invalid, return last known safe answer.
This is where DNS steering becomes more than a simple DNS record lookup.
It becomes a policy decision system.
The main design principle is this:
DNS steering should return the safest useful answer using the signals available at query time.
That sentence matters.
Safest means the answer should avoid known bad endpoints.
Useful means the answer should still help the user reach the service.
Signals available means the system should not assume perfect information.
At query time means the decision must be fast.
Authoritative DNS systems must answer quickly. A slow DNS answer creates a poor user experience before the website, app, or video stream even starts.
Assume this policy:
Users from ISP A in the Philippines should use Manila.
Users from ISP B in the Philippines should use Singapore.
All other users should use the global endpoint.
If any preferred endpoint is unhealthy, use the backup endpoint.
A DNS steering system may evaluate a query like this:
Domain requested: video.example.com
Requester ASN: ISP A
Requester country: PH
Manila endpoint health: healthy
Policy match: ISP A Philippines
Answer: Manila endpoint
Response:
video.example.com. 60 IN A 203.0.113.10
Another query:
Domain requested: video.example.com
Requester ASN: ISP A
Requester country: PH
Manila endpoint health: unhealthy
Policy match: ISP A Philippines
Answer: backup endpoint
Response:
video.example.com. 60 IN A 198.51.100.20
Same domain.
Different condition.
Different answer.
That is DNS steering in action.
Modern services often run across many places:
Cloud regions
Data centers
CDN nodes
Streaming edges
API clusters
Backup origins
Hybrid infrastructure
Users also come from many networks:
Home broadband
Mobile networks
Corporate networks
Public DNS resolvers
VPNs
Cloud networks
A single static DNS answer may not be enough.
DNS steering gives operators a way to make smarter authoritative DNS decisions.
It helps connect users to better service endpoints while keeping the domain name simple.
DNS steering uses authoritative DNS answers to influence where users connect.
It can use signals such as requester IP, country, ASN, health status, policy rules, and sometimes EDNS Client Subnet.
DNS steering is useful, but it is not full traffic control.
Caching, recursive resolvers, TTL, VPNs, and client behavior all affect the final result.
Good DNS steering design does not assume perfect information.
It returns the safest useful answer based on the signals available at query time.
In the next article, we will discuss the difference between the control plane and the data plane of DNS steering, and why separating them matters in production systems.