ExplainerDNS filtering limits
DNS filtering fail open vs fail closed: what happens when the filter is down
You will be able to decide how your guest and staff WiFi should behave when the DNS filter stops answering, and check whether your network really fails closed. You will know where the fallback hides in DHCP, forwarders and devices, and how to test redundancy before an outage tests it for you.
DNS filtering fail open vs fail closed is the choice of what a network does when its filtering resolver stops answering. Fail open falls back to an unfiltered resolver, so browsing continues without protection. Fail closed sends queries nowhere else, in line with NIST SP 800-53 control SC-24 (fail in known state), so nothing resolves unfiltered.
What is DNS filtering fail open vs fail closed?
DNS filtering sits at the first step of every connection. A cell phone asks a resolver to turn a domain name into an IP address before it opens any session (RFC 1035). A protective DNS resolver checks that name against threat intelligence and your content policy. It then returns the real address, a block page address or a refusal.
This placement is the reason DNS filtering works. The check happens before a single packet reaches the destination. It can stop a phishing link or a malware callback that a firewall would see only as allowed traffic on port 443. CISA and the NSA run protective DNS services on the same principle.
The placement is also the weak point. If every lookup depends on the filtering resolver, you need a plan for when it cannot be reached. There are only two plans.
- Fail open. The network or device sends the query to another resolver that applies no policy. Browsing carries on, but protection, logging and content rules stop until the filter returns.
- Fail closed. No unfiltered path exists. New lookups wait for a filtering resolver to answer, and nothing resolves without a policy decision.
The choice is a trade between availability and assurance. Fail open favors the visitor who wants a page to load now. Fail closed favors your security team, safeguarding lead and auditor, who need to show the network was filtered every minute of the year.
NIST SP 800-53 Rev. 5 frames the same idea in two controls. SC-24 is "fail in known state" and SC-7(18) is "fail secure" (NIST SP 800-53 Rev. 5).
How does filter failure behavior work at the resolver?
Your configuration decides filter failure behavior, not the filter itself. Three places set it: DHCP, any local DNS forwarder, and the device.
The DHCP DNS fields
DHCP is the protocol that hands each device its IP address and network settings when it joins. Most guest and staff networks use it to give every device two or more DNS server addresses. If all of them point to filtering resolvers, the design fails closed. If the second points to an ISP or public resolver, the design fails open, whatever the filtering vendor promises.
Flow diagram showing a guest device query timing out at the filtering resolver, falling back to an unfiltered secondary resolver and connecting to a domain with no policy check.
Connections
- Guest device to Filtering resolver (1. Query on port 53)
- Filtering resolver to Guest device (2. Timeout, no reply)
- Guest device to Unfiltered fallback resolver (3. Retry to secondary)
- Unfiltered fallback resolver to Answer with no policy check (4. Resolves any domain)
- Answer with no policy check to Connection opens (5. Device connects)
The local forwarder
Many firewalls and gateways run a DNS forwarder. Devices query the gateway, and the gateway forwards to upstream resolvers. Here the fallback lives in the forwarder's upstream list. A forwarder that lists a public resolver below the filter fails open, even if DHCP looks clean.
The device's own behavior
Resolver selection varies by operating system. Some devices treat the second server as a strict standby. Others query it whenever the first is slow, or send queries to both. On a fail open design, unfiltered answers can therefore leak out while the filter is perfectly healthy.
What fail closed looks like
In a fail closed design, every DNS address a device or forwarder can use points to a filtering resolver with the same policy. If one stops answering, the device retries against the next. The lookup fails only when every filtering resolver is unreachable. The device then gets a timeout or SERVFAIL, the standard DNS "server failure" response, instead of an unfiltered answer.
Flow diagram showing a device retrying a second filtering resolver after the first fails, the policy allowing or blocking the domain, and a dashed path where all resolvers fail and no connection opens.
Connections
- Device to Filtering resolver 1 (1. Query)
- Device to Filtering resolver 2 (2. Retry to next filter)
- Filtering resolver 2 to Policy check (3. Apply network policy)
- Policy check to Clean answer (4a. Domain allowed)
- Policy check to Block response (4b. Threat or blocked category)
- Device to No answer (If all filters fail)
Done properly, fail closed is not fragile. The resilience comes from redundant filtering resolvers, not from an unfiltered escape hatch.
Fail open, fail closed, fail secure: which terms get confused?
Four neighboring terms turn up in vendor documents, audit findings and change tickets. They describe different things, and mixing them leads to the wrong design.
| Term | What it describes | During a filter outage | Risk it carries |
|---|---|---|---|
| Fail open | Queries fall back to an unfiltered resolver when the filter is unreachable | Browsing continues, unfiltered | Threats and blocked categories resolve with no policy and often no log |
| Fail closed | Only filtering resolvers are configured, with no unfiltered fallback | New lookups fail until a filtering resolver answers | Availability depends on filter redundancy |
| Fail secure (NIST SC-7(18)) | Control-framework term: a boundary device must not enter an insecure state on failure | Same practical outcome as fail closed | Auditors may ask you to evidence it |
| Serve-stale (RFC 8767) | A resolver answers from expired cache when upstream servers are unreachable | Recently visited domains keep resolving | Answers reflect the last decision, not a fresh policy check |
| Default deny | Policy for domains the filter has not yet categorized | Not a failure mode; applies while the filter is healthy | Over-blocking if set too tight |
| Bypass | A device ignores the network resolver via hard-coded DNS, DoH or DoT | Unaffected, because it is unfiltered all the time | Needs egress controls, not a failure setting |
Fail closed is not default deny
Default deny is a policy choice about uncategorized domains. It runs while the filter is healthy. Fail closed is about what happens when the filter is absent. You can run fail closed with a permissive policy, or fail open with a strict one.
Serve-stale sits between the two
RFC 8767 lets a resolver answer from expired cache when it cannot reach upstream servers. That keeps popular names working during short outages. It replays the last decision, so a domain that turned malicious since then is not caught.
Bypass is not failure
A device using DNS over HTTPS (DoH, RFC 8484) or DNS over TLS (DoT, RFC 7858) to a public resolver never touches your filter. Fail closed settings do nothing about it. You handle bypass with egress rules.
Where do you meet a DNS filtering outage in practice?
A DNS filtering outage matters only when the internet link is up but the filter is unreachable. If the whole uplink drops, both modes look the same. In practice, the gap opens through ordinary operational events:
- a firewall change that blocks outbound port 53 to the filter's addresses;
- a local forwarder that crashes or stops forwarding upstream;
- a routing change on a branch WAN that sends DNS the wrong way;
- a contractor editing a DHCP scope and adding a public resolver "for resilience";
- an incident at the filtering provider itself.
Each of these looks harmless on a fail closed network. Each one silently removes protection on a fail open network.
Hospitality guest networks
Hotels and restaurant groups apply content policy to keep guest WiFi suitable for families and safe from malware. A fail open guest network drops that policy without telling anyone. For large hospitality operators, a policy lapse on public WiFi carries brand risk as well as security risk.
Healthcare
Shield blocks around 241,000 threats a week at St George's Healthcare NHS Trust. By our arithmetic, that averages about 1,400 an hour. A one-hour fail open window would let those lookups resolve unchecked, across patient, visitor, and staff devices.
Transportation hubs
Airports carry thousands of passenger devices on public networks, many of them unmanaged. In a terminal, a fail open gap means an unfiltered public network at peak volume.
Staff and corporate networks
Staff networks raise the stakes on availability. Business apps must keep working, so fail closed needs genuine redundancy behind it. Internal names usually resolve on internal DNS servers, which then forward external queries to the filter. Make sure that forwarding tier has no unfiltered upstream either.
What are the limits and edge cases of fail closed DNS?
Fail closed is the right default for most guest and staff WiFi. It still has limits, and you should know them before you design around it.
Fail closed with one resolver is an outage plan
If the network lists a single filtering address, fail closed means every outage of that address takes DNS down. Redundancy across multiple filtering resolvers is what makes fail closed workable. Ask your provider how many resolver addresses you can configure and test each one.
Cache keeps some names alive
Every DNS answer carries a TTL (time to live), the number of seconds a device or resolver may cache it. During a short outage, cached names keep working and new names fail. Visitors notice this as "some sites work, others don't", which can mislead your helpdesk.
Captive portals need DNS before login
A captive portal is the splash page a guest sees before getting online. The device must resolve the portal and any walled garden domains before it authenticates. If the pre-login network uses an unfiltered resolver, the portal becomes the gap. If it fails closed with no redundancy, guests cannot log in at all.
A failure looks different from a block
A blocked domain should return a block page or a clear refusal. A failed lookup returns a timeout or SERVFAIL. RFC 8914 Extended DNS Errors adds codes that tell them apart, such as Blocked (15) and Filtered (17) versus No Reachable Authority (22). Brief your help desk on both, so they can tell a policy block from an outage.
DNS cannot see past the name
Fail closed guarantees a policy decision on every lookup, not total coverage. Connections to raw IP addresses skip DNS entirely. Connections already open before the outage carry on. DNS also sees only the domain, never the path, which is explained in why DNS filtering cannot see full URLs.
For where these limits fit in a wider stack, see is DNS filtering enough? and the DNS filtering limits overview.
How does fail closed DNS relate to Purple Shield?
Purple Shield is protective DNS and content filtering for every network. Shield fails closed, so an outage never leaves a network unfiltered. Every lookup gets a policy decision or no answer, never an unchecked one.
You can run Shield standalone on any WiFi network or alongside Purple Access. You set a policy per network and per VLAN (virtual LAN, a logically separate network on shared hardware). Guest, staff, and back-office networks at one venue can each carry different rules. Shield needs no new hardware and sits as a cloud overlay on Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, and Fortinet.
- ~241,000threats blocked a weekSt George's Healthcare NHS Trust
- 80,000+live venuesPurple data
- 90countriesPurple data
DNSFilter and Cisco Umbrella also filter at DNS resolution, so the placement argument applies to all three. The question to ask each vendor is where the fallback lives. Ask how their roaming agents behave when resolvers are unreachable, and how many filtering addresses you can configure. Then check that your own DHCP and forwarder settings do not reintroduce an unfiltered path.
Shield runs across Purple's footprint of 80,000+ venues in 90 countries. Read how Shield works for deployment detail. The enterprise WiFi security guide shows where DNS filtering sits alongside identity and segmentation.
This concept bites in the change window, not the brochure. The firewall rule, the DHCP edit or the "resilient" public secondary decides whether your network stays filtered. Audit those three settings this quarter. Next, read DNS over TLS and filtering: what port 853 changes, because a fail closed resolver only protects devices that actually use it.
Key terms
- Protective DNS
- A recursive resolver that checks each queried domain against threat intelligence and content policy before answering, returning the real address, a block page address or a refusal. It acts on the name lookup defined in RFC 1035, before any session opens. The CISA Protective DNS service for the public sector operates on this principle. It is the control whose failure mode this decision governs.
- Fail open
- A design in which DNS queries fall back to a resolver that applies no policy when the filtering resolver is unreachable. Resolution continues, but threat blocking, content rules and logging stop. You usually meet it as a public or ISP resolver in the DHCP secondary field or a forwarder upstream list. It often arrives by accident during a change.
- Fail closed
- A design in which every DNS address a device or forwarder can use points to a filtering resolver with the same policy. A lookup fails with a timeout or SERVFAIL only when every filtering resolver is unreachable. This is the right default for most guest and staff WiFi, provided redundant filtering resolvers stand behind it.
- Fail secure (NIST SC-7(18))
- NIST SP 800-53 Rev. 5 boundary protection enhancement SC-7(18), which requires a boundary device to avoid entering an insecure state when it fails. Auditors may ask you to evidence it. Fail closed DNS filtering gives the same practical outcome.
- Fail in known state (NIST SC-24)
- NIST SP 800-53 Rev. 5 control SC-24, which requires systems to fail in a defined, known state rather than an unpredictable one. No regulation names fail closed DNS, but this control is the framework language you cite when justifying it to auditors or compliance leads.
- Serve-stale
- RFC 8767 behavior that lets a resolver answer from expired cache when it cannot reach upstream servers, keeping recently resolved names working. It softens short outages, but it replays the last decision, so a domain that turned malicious since then is not caught.
- SERVFAIL
- The server failure response code in the DNS message format defined in RFC 1035, returned when a resolver cannot complete a lookup. On a fail closed network it is what a device receives when every filtering resolver is down. Your helpdesk must tell it apart from a block.
- Extended DNS Errors
- RFC 8914 codes that add detail to DNS responses, including Blocked (15), Filtered (17) and No Reachable Authority (22). They let support staff and tools separate a policy block from an outage when diagnosing reports of sites not loading.
- TTL (time to live)
- The field in each DNS resource record, defined in RFC 1035, giving the number of seconds a device or resolver may cache the answer. During a short outage cached names keep working and new names fail. Visitors report this as some sites working and others not.
- DNS forwarder
- A DNS service on a firewall, gateway or internal server that receives device queries and forwards them to a configured list of upstream resolvers. The fallback lives in its upstream list. A public resolver there fails open even if DHCP is clean, including the tier behind internal DNS on staff networks.
- DoH and DoT
- DNS over HTTPS, specified in RFC 8484, and DNS over TLS, specified in RFC 7858. Both encrypt DNS to a chosen resolver and can route around the network resolver. These are bypass, not failure. Fail closed settings do nothing about them, so you control them with egress rules.
- Captive portal
- The splash page a guest sees before getting online. The device must resolve the portal and walled garden domains before it authenticates. An unfiltered pre-login resolver makes the portal the gap. A fail closed portal network with no redundancy stops guests logging in.
- Default deny
- A filtering policy for domains the filter has not yet categorized. It applies while the filter is healthy and is not a failure mode. It is often confused with fail closed. You can run fail closed with a permissive policy or fail open with a strict one.
Worked examples
A contractor adds a public resolver to a guest network's DHCP scope as secondary DNS for resilience. The filtering resolver stays primary. Is the network still protected?
No. A public resolver in the secondary field turns the design fail open. Some operating systems query that second server whenever the first is slow, so unfiltered lookups can leak daily, not only during outages. To confirm, block outbound DNS to the filtering resolvers from a single test VLAN. If sites still load and the filter logs nothing, the network fails open. Replace the public address with a second filtering resolver that carries the same policy. Then check forwarder upstream lists and hard-coded device settings for the same flaw. Finally, block one filtering resolver at a time to prove the redundancy works.
You are moving guest and staff networks from DNSFilter or Cisco Umbrella to Purple Shield. How do you avoid a gap in filtering during the cut-over?
Cut over one network or VLAN at a time. Start by pointing a test VLAN's DHCP DNS at Shield, then confirm that blocks and logs appear as expected. Move live networks in a change window once the test passes. Remove the old resolver addresses completely rather than leaving them as secondary DNS. A leftover secondary reintroduces an unfiltered or inconsistent path. Check roaming agents on staff devices too, because their fallback settings sit outside your DHCP scope. This approach keeps every lookup under a policy decision throughout the move. It also leaves Shield's fail closed behavior intact once the old vendor is gone.
Frequently asked questions
Does fail closed DNS mean an outage takes my WiFi offline?
No, not when the filter runs on redundant resolvers. Fail closed only stops new lookups when every filtering resolver is unreachable at once. Devices retry against the next filtering address first. Cached answers keep recently visited sites resolving during short interruptions. Design the redundancy before you go live, then test it by blocking one resolver at a time from a test VLAN.
Will Shield work with the access points and firewalls I already own?
Yes. Shield filters at DNS resolution, so it needs no new hardware and runs standalone on any WiFi network. Purple works with Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme and Fortinet. You point DNS for each network or VLAN at Shield, remove any unfiltered fallback and apply a policy per network. The product page covers the steps.
How is Shield priced?
Purple quotes Shield for your estate rather than publishing a list price in this guide. Shield is a security add-on you can run standalone on any WiFi network or alongside Purple Access. The quote therefore reflects your networks and venues, not new hardware. Ask for a quote with your venue count, your network and VLAN count, and whether you already run Purple.
How do I move from DNSFilter or Cisco Umbrella without a gap in filtering?
Cut over one network or VLAN at a time. Point a test VLAN's DHCP DNS at Shield, confirm blocks and logs, then move live networks in a change window. Remove the old resolver addresses completely rather than leaving them as secondary DNS. Check roaming agents on staff devices too, because their fallback settings sit outside your DHCP scope.
Does any regulation require fail closed DNS filtering?
No regulation names fail closed DNS, but control frameworks expect security controls to fail in a known, secure state. NIST SP 800-53 Rev. 5 control SC-24 covers failing in a known state. SC-7(18) covers boundary protection that fails secure. Fail closed filtering gives you evidence that policy applied every minute, which helps when auditors or compliance leads ask.
How do I test my current filter failure behavior?
Block outbound DNS to your filtering resolvers from a single test VLAN and watch what a device does. If websites still load and the filter logs nothing, the network fails open. Check the DHCP DNS fields, forwarder upstream lists, and any hard-coded device settings. Repeat with one filtering resolver blocked at a time to confirm the redundancy works.
Is DNS filtering enough on its own, or do I need a secure web gateway?
DNS filtering covers threat protection and content policy for most guest and venue networks, but not full URL inspection or data loss prevention. It sees domain names, not paths or file contents. If you need those controls, add a secure web gateway on managed devices. See [DNS filtering vs secure web gateway](guide:dns-filtering-vs-secure-web-gateway) for where the line sits.
