DNS
Name resolution roles, common record types, iterative and recursive queries, and basic verification of client and device DNS.
How resolution works
DNS resolves names to addresses (and more) — hierarchical, distributed, cached. A client asks a recursive resolver which walks root → TLD → authoritative servers (iterative queries) and returns the answer. UDP 53 for normal queries; TCP 53 for zone transfers and oversized responses.
Roles to keep straight: the stub resolver on the client asks; the recursive resolver (usually the ISP/enterprise server) hunts the answer down; authoritative servers own zones; root and TLD servers only refer you onward. Caching at every level is bounded by each record's TTL.
- Client asks
- www.example.org
- Stub → recursive resolver: 'give me the answer'.
- Resolver → root: referral to .org TLD servers.
- Resolver → .org TLD: referral to example.org's authoritative NS.
- Resolver → authoritative NS: the A record → cached and returned to the client.
The client sees one query/answer; the resolver did the walking.
Record types
Common DNS record types
| Type | Purpose |
|---|---|
| A | Name → IPv4 address |
| AAAA | Name → IPv6 address |
| CNAME | Name → another name (alias) |
| MX | Mail exchangers for a domain |
| PTR | IP → name (reverse lookup) |
| NS | Authoritative name servers for a zone |
| TXT | Arbitrary text (verification, SPF, etc.) |
Configuration and verification
Let the router resolve names — Privileged EXEC → Global configuration
Cisco IOS / IOS XE
configure terminal ip name-server 192.168.10.53 ip domain-name example.test ip domain lookup end
show hosts ping router1.example.test
- Name lookups succeed and cache in
show hosts. - Typos at the CLI trigger a lookup attempt when domain lookup is on — disable it on lab gear to avoid the delay.
Changes device configuration.
Server: 192.168.10.53Which resolver answered — verify it's the one you configured.Address: 192.168.10.53#53Non-authoritative answer:Came from a resolver, not the zone owner — could be cached or freshly resolved recursively.Name: example.comAddress: 93.184.216.34The A record returned.Common mistakes
- Treating 'NXDOMAIN' as a network failure — it is a valid DNS answer: the name does not exist.
- Forgetting TCP/53 — large responses and transfers use TCP; opening only UDP breaks them.
- Blaming DNS when the resolver itself is unreachable — test the resolver IP first.
- Confusing recursive vs iterative — resolvers do recursive work for clients and iterative work among servers.
Observation: All name lookups time out on one subnet; other subnets are fine.
- Clients' DNS server address wrong/missing on this scope
- ACL between this subnet and the resolver
- Resolver down for everyone (ruled out — others work)
| Check | Indicates |
|---|---|
ipconfig /all (or OS equivalent) DNS field | Confirms the assigned resolver for this subnet. |
| Ping the resolver IP from the subnet | Reachability vs DNS-service failure split. |
nslookup host <server-ip> explicitly | Bypasses the configured server to isolate the path. |
Correction: Fix the DHCP-delivered DNS option or the ACL.
Lookups succeed against the configured resolver.
Sources
- Cisco CCNA 200-301 v1.1 Exam Topics (official PDF) — reviewed 2026-11-02
- RFC 1034 — Domain Names — Concepts and Facilities — reviewed 2026-11-02
- RFC 1035 — Domain Names — Implementation and Specification — reviewed 2026-11-02
Targets CCNA 200-301 v1.1 objectives. Supplemental blocks are labeled beyond exam scope.