HomeLab: AdGuard: Encryption setting — Is it even Necessary?
To secure the DNS resolution, DoT ( DNS over TLS ) or DoH ( DNS over HTTPS ) can be used. In AdGuard, is Encryption setting necessary to set to secure the DNS requests?

Intro
I’ve worked a series of tasks on AdGuard like below.
- Setup AdGuard on Flatcar Container Linux
- Add Local DNS entry into AdGuard ( DNS Rewrite vs. Customer Filtering Rules )
- Setup AdGuard with UDM SE
The next task was securing DNS resolution by using DoT ( DNS over TLS ) and DoH ( DNS over HTTPS ).
While researching about those DoT and DoH, I got to the “Encryption setting” view in AdGuard. And it made me confused.
This post was the result of the research to resolve the confusion.
Brief Overview: DoT and DoH
Before I talk about the “Encryption setting”, let me talk about what DoT and DoH try to do in the high level overview.
( There is a very good post that explains about DoT and DoH — https://www.cloudflare.com/learning/dns/dns-over-tls/ )
In short, DoT and DoH encrypt plaintext DNS traffic in order to prevent malicious parties, advertisers, ISPs, and others from being able to interpret the data.
If DNS queries are not private, then it becomes easier for governments to censor the Internet and for attackers to stalk users’ online behavior.


Who is You? Who is DNS Resolver?
So, now I know the DoT and DoH help encrypt plaintext DNS traffic between me and the DNS Resolver to secure the traffic.
Let’s take a look little more details. Who is You( or me) and Who is DNS Resolver in the diagram above?
Typically, my computer is the client ( You or Me ) who needs IP of the Domain Name. And, Cloudflare DNS, Google DNS, or other DNS services are the DNS Resolver.
Ok, so what?
Hang on.. I’m NOT done yet.
With the context where there is an AdGuard, who is the DNS Resolver?
The AdGuard is the DNS Resolver.
OK(?)…
High Level: DNS Resolution with AdGuard
With AdGuard, the high level of DNS Resolution is like below.
The AdGuard is the first DNS Resolver ( also having DNS cache ). If the AdGuard doesn’t know the requested Domain Name ( because it doesn’t exist in the the DNS cache ), then the AdGuard will ask to the configured upstream DNS in the AdGuard about the requested Domain Name.
- Client asks “apple.com”
- AdGuard checks if the domain name is in AdGuard DNS cache.
- If exists, then AdGuards returns the DNS answer.
- If not exists, then AdGuard asks the upstream DNS resolvers.
FYI, the DNS request from the AdGuard to the upstream DNS is “Recursive DNS”.
It’s important to understand this high level view and the terminologies.

Is Encryption setting necessary?
It depends where the AdGuard is running.
First, I need to explain what “Encryption setting” is for.
The “Encryption setting” is to encrypt the traffic between my computer and the AdGuard.

So, Again, Is it necessary to set Encryption setting?
Yes, if the AdGuard has to be reached through Public Network ( e.g. Internet ). When the DNS request goes through Public Network, DNS requests have better be protected from the third parties.

What if AdGuard is in Private Network? ( like HomeLab )
If AdGuard is running in Private Network, then it is not really necessary to encrypt the DNS request traffic.
So, NO. it’s not necessary. ( but, if you want, you can do it. )
NEXT
In the next post, I’m talking about how to secure DNS requests to Upstream DNS servers in AdGuard.
If you know already, you can skip it. If you are not sure about it, why don’t you take a look?
