Split-horizon DNS is a deployment method that returns different DNS answers for the same domain name based on the source of the query, typically serving private addresses to internal clients and public addresses to external clients. Organizations use this technique to allow employees and customers to access services by the same name while keeping internal infrastructure hidden from public reconnaissance and avoiding inefficient routing of internal traffic out to the internet and back. The primary operational risk involves views drifting out of sync when internal and external zones are maintained separately, requiring automation and change control to prevent users from receiving incorrect addresses or experiencing service failures.
How split-horizon DNS works
A split-horizon deployment keeps two sets of answers for one domain and selects between them when a query arrives. It can be built with separate servers or with a single server that supports views.
- Define the views: The administrator creates an internal version and an external version of the zone. The internal version holds private addresses and internal-only hosts, while the external version holds only public records.
- Match the client: When a query arrives, the server examines its source, most often the client IP address, and matches it against access rules for each view. Some servers can also match on the destination address or a signing key.
- Answer from the matching view: The server responds using only the records in the selected view. An internal client asking for a service name might receive a private address, while an outside client asking for the same name receives a public address.
- Resolve unmatched queries: Queries that match no internal rule fall into the external view or a default view, so unknown sources never see internal data.
Separate servers achieve the same result by placing internal resolvers on the private network and public authoritative servers on the internet. Internal and external zone data must be kept in sync by hand or by automation, because the steps above do not do this.
Common split-horizon DNS issues
Access rules based on client address can put VPN clients, guest Wi-Fi or cloud workloads into the wrong view. Users see private addresses they cannot reach, or public addresses that route out and back in.
Devices configured with a public resolver, or browsers using encrypted DNS to a third party, skip the internal servers. Internal names fail to resolve or return the public address.
Internal and external endpoints behind one name may present different certificates. Clients see trust errors when the internal address serves a certificate that does not cover the shared name.
A shared caching resolver or forwarder in front of both views can store an answer from one view and serve it to the other audience. Symptoms are intermittent wrong addresses that clear when the cache expires.