DNS is the most trusted system in your Azure environment that almost nobody consciously designs for.
It’s set up early, it works quietly, and once it’s stable it fades into the background. Years later, entire environments still depend on decisions made when the first virtual network (VNet) was deployed often by people who’ve long since moved on.
That longevity is the problem.
This post isn’t about DNS outages or misconfiguration. It’s about how centralised DNS becomes a hidden security dependency, shaping trust and failure domains long after your network design is considered “done”.
The Mental Model
Common assumption:
DNS is infrastructure plumbing. Centralise it, keep it simple, and it will fade into the background.
Why this misleads:
Centralised DNS does reduce ambiguity. That’s why it’s the right operational choice in most Azure estates.
But reducing ambiguity has a side‑effect:
it creates a single source of assumed correctness.
Once DNS is trusted implicitly:
- Applications stop questioning where they connect
- Network controls assume names map to the “right” thing
- Engineers stop revisiting name ownership and intent
DNS doesn’t just resolve names, it defines who you trust by default.
How It Really Works
Azure treats DNS as an ambient dependency.
Most workloads and platform services:
- Resolve names before meaningful network or application validation
- Cache DNS results well beyond the moment of resolution
- Assume resolver responses are stable and authoritative
- Treat successful resolution as proof of legitimacy
Crucially, DNS resolution happens outside most of your explicit security controls. NSGs (Network Security Groups), UDRs (User‑Defined Routes), and firewalls all act after a name has already been trusted.
Once a name exists, what it points to later becomes a powerful and often invisible control surface.
Real‑World Impact
Centralised DNS: Operationally Correct, Security‑Sensitive
Let’s be clear: centralised DNS is usually the least‑bad option.
It provides:
- A single control plane
- Clearer support boundaries
- Faster troubleshooting
- Reduced cognitive load during incidents
The risk isn’t centralisation.
The risk is that everything now implicitly trusts that central authority indefinitely.
One stale record, one reused name, or one compromised resolution path can silently redirect traffic without a single firewall rule changing.
Centralisation doesn’t create fragility.
It compresses trust into one place.
Decentralised DNS: Complexity as False Safety
Decentralised DNS often looks safer on paper:
- Smaller blast radius
- Local ownership
- Fewer global dependencies
In practice, it introduces a different and often worse failure mode:
- Ambiguous ownership
- Inconsistent naming semantics
- Environment‑specific behaviour
- Debugging paralysis (“where is this even defined?”)
Decentralisation doesn’t remove risk.
It hides it behind complexity and entropy.
DNS Failures Rarely Look Like Outages
Most DNS‑related failures don’t stop systems outright.
They show up as:
- Traffic flowing somewhere “unexpected”
- Intermittent connectivity issues
- Security controls apparently being bypassed
- Engineers adding records to “fix” symptoms
These are trust failures, not availability failures.
How This Changes What You Design and Operate
This should change how you think about network trust, not how you configure DNS.
In real environments:
- DNS zones outlive VNets, subnets, and teams
- Names persist long after their original intent is gone
- Centralisation amplifies the consequences of assumption
- DNS becomes a de facto security boundary whether acknowledged or not
If DNS is the single source of truth, then its assumed correctness deserves the same scrutiny as firewall policy or identity trust.
Implementation Examples
This series avoids configuration guidance, but visibility matters.
Most engineers are less certain about DNS trust than they think.
Inspect What a VM Actually Trusts
| |
This tells you:
- Whether DNS is inherited or explicitly defined
- Which resolver IPs the workload actually trusts
- Whether that trust was intentional or accidental
Observation is the first step to challenging assumptions.
The Hidden Dependency Pattern
The network path never changes.
Only the meaning of the name does.
Gotchas & Edge Cases
- DNS caching masks failures until TTL expiry
- Name reuse couples systems across time, not architecture
- Platform services may resolve names differently to your expectations
- Engineers often fix DNS symptoms instead of revisiting trust
Most dangerous DNS failures are quiet.
Best Practices (Without Configuration)
- Treat DNS zones as long‑lived security assets
- Assign explicit ownership for every namespace
- Review DNS records with the same discipline as firewall rules
- Assume DNS failures will be subtle, not catastrophic
- Design services to validate what they connect to, not just where
This is posture, not syntax.