UnveilTech

UnveilDNS Blog

← All articles

Try UnveilDNS free

Content filtering that holds up: categories, parental control, and what NIS2 expects

Posted 2026-06-09 · 8 min read · filteringcompliance

Turning on a content filter is a checkbox. Building a filtering policy that actually does what you think it does — and that you can defend to an auditor — is not. The gap between the two is where most DNS filtering deployments quietly fail: a blocklist that's silently overridden, a "blocked" service that resolves anyway, a parental filter a browser routes around.

This piece is about that gap. How DNS-level filtering works, the one ordering rule that explains almost every "why isn't this blocked?" ticket, and how the whole thing maps onto the compliance frameworks that increasingly expect it.

Why filter at the DNS layer at all

Because it's the one chokepoint every device shares. A phone, a smart TV, an IoT sensor and a laptop have nothing in common except that they all ask DNS where to find things. Block the lookup and you block the connection before a single packet reaches the destination — no per-device agent, no certificate to install, no app to manage. One resolver policy covers the whole network.

UnveilDNS stacks several kinds of filtering on that single layer:

MechanismWhat it doesExample
Category filtersBlock whole topic areasGambling, hacking, warez (40 categories)
Parental / AdultBlock adult and pornographic domainsAdult blocklist + family-filtering upstream
SafeSearchForce safe mode on search enginesGoogle, Bing, YouTube
Blocked ServicesBlock specific appsTikTok, YouTube, Facebook
Security feedsMalware / phishing blocklistsCurated threat-intelligence feeds
Personal listsYour own allow/deny domainsmyblacklist / mywhitelist

The rule that explains every conflict

Stack six filtering mechanisms and they will eventually disagree about the same domain. A domain on your personal blacklist that's also on a cloud whitelist — which wins? The answer is not "the stricter one." It's a fixed evaluation order, and knowing it is the difference between a policy that works and one that mysteriously doesn't.

Strongest first, the chain evaluates like this:

#MechanismNotes
1DNS rewritesShort-circuits everything. A rewrite match stops the chain dead.
2Allowlist filters (@@ rules)Cloud whitelist + personal whitelist. An exception here beats any block below.
3Blocklist filtersCategories, security feeds, personal blacklist.
4Blocked ServicesThe app toggles (TikTok, YouTube…).
5Parental / SafeBrowsing / SafeSearchBuilt-in enforcement.
The counter-intuitive consequence: a domain on an allowlist (level 2) cannot be blocked by adding it to your personal blacklist (level 3) — the allowlist exception always wins. The only local mechanism that overrides an allowlisted domain is a DNS rewrite (level 1), because rewrites short-circuit the chain before the allowlist is ever consulted. If a cloud-whitelisted domain has to be blocked on one site, a rewrite to a sink address is the answer — not a blacklist entry.

This isn't a quirk; it's the filter engine behaving exactly as specified. But it's invisible until it bites you, and "I blacklisted it and it still resolves" is the single most common filtering support ticket there is. Now you know why.

Parental control has two completely different failure modes

Take a concrete case we see constantly: YouTube comments suddenly hidden behind "Restricted Mode." There are two independent mechanisms that cause it, and the fix for one does nothing for the other:

The diagnosis is a two-line dig: ask the upstream directly, then ask your resolver. If the upstream already returns the restricted IP, it's mechanism one; if the upstream is clean but your resolver isn't, it's mechanism two. Filtering is full of cases like this where the symptom is identical and the cause — and cure — is not. Treating "parental control" as one switch is how you end up with a policy nobody can reason about.

Block, don't just hope: closing the bypass routes

A filter that a device can route around isn't a filter. Two bypass routes matter most:

Where compliance comes in

DNS filtering used to be a "nice to have." Under the EU's NIS 2 directive it's edging toward "expected." NIS 2 widened cybersecurity obligations to medium and large entities across 18 sectors, and its baseline asks for technical measures around access control, network security and incident handling. DNS-layer filtering and logging is a clean, low-friction way to evidence several of those:

ExpectationWhat DNS filtering provides
Block known-malicious infrastructureCurated threat-intelligence feeds at the resolver
Network monitoring & loggingPer-query logs, blocked-query stats, client attribution
Demonstrable controlsCategory policy, parental controls, exportable config
Incident detectionDGA / phishing flags, real-time blocked-query view

On the privacy side the same logging that helps you evidence controls is also personal data — client IPs and queried domains. Under GDPR that means a retention policy and a purpose you can state, not an indefinite firehose. UnveilDNS aggregates raw query tables into daily summaries and drops the granular hourly tables behind them, so you keep the trends without hoarding per-query personal data forever. For French deployments, ANSSI's hygiene guidance points the same direction: encrypt the resolver path, control egress DNS, log what matters.

The compliance framing isn't a sales gimmick. It's the same controls you'd want anyway — block the bad, see what's happening, keep the logs honest and time-bounded — with a paper trail attached.

The short version

Filtering, parental control and audit-ready logs

UnveilDNS gives you 40 categories, parental control, app blocking and exportable policy on one resolver.

Deploy UnveilDNS free