-
-
Notifications
You must be signed in to change notification settings - Fork 365
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Plain text DNS requests to root servers on start #1138
Comments
What is your goal with unbound? |
The queries are called root priming queries [RFC8109]. This happens because unbound is asked to perform recursion, the iterative lookup of the DNS queries using authoritative servers. This is the default for unbound. It has a list of built-in root servers, but it is also possible to set the root server addresses that it uses. This should not really be disabled, root priming queries. But perhaps what you want is to run a forwarder, where unbound only sends traffic to one particular address and caches the results if possible, this is done with It is also possible to stop unbound from sending traffic to the root servers, and also stop root priming queries. This is useful for test setups, where a test set of authoritative servers is created. It is configured by setting |
unbound does not encrypt the DNS requests by default because it runs over port 53. What you mean is port 853 DNS Over TLS. To do this you have to create a forward zone and use an upstream server to which you want to encrypt. eg: forward-zone: |
@Aura67 All my DNS requests use DoT, so they are all encrypted. What I am referring to are the root servers requests or "root priming queries," as @wcawijngaards referred to, which are triggered the second Unbound starts, before my device even makes any DNS requests. All other DNS requests after that are encrypted. My forward-records.conf:
|
The problem here is that anyone listening on the wires can trick Unbound into using fake root servers, since those "root priming queries" are not encrypted. Although Unbound is set to use TLS, it seems that the |
the server settings are as I have created them so good because unbound sends its requests to Claudflare via port 853. Create a file on your Linux system with an editor like nano for example and paste this content: Server:
the port for unbound is 5335 if you use pihole or something else you just enter 127.0.0.1#5335 in pihole or if you use adguard home on linux you enter 127.0.0.1:5335 under upstream Here is the page where all configs for unbound are available: https://github.com/NLnetLabs/unbound/blob/master/doc/example.conf.in you can't encrypt your dns requests to the root server either you can only encrypt them by sending your requests to another upstream server otherwise your requests are not encrypted because the root servers don't support dns over tls. Find out what you need or what you want to do with unbound. Before I forget to mention after you have created a file with these configs you should restart your unbound with service unbound restart and if you then enter service unbound status you can see if unbound is active |
I think this should be configured by Another case which we have is when you uncomment While that query does not negatively affect privacy, it may trigger monitoring checking nobody is using unencrypted DNS on the network. |
Unbound does not make root priming queries, unless it needs to make them. The root priming happens when unbound performs recursion. In which case, what with following the delegations from the root servers to the authority servers of the zone, this is realistically needed to perform the service correctly. But if unbound is configured as a forwarder, for zone ".", then it would not send root priming queries. This in more recent unbound versions by the way, if it does not, upgrade to a newer version. In addition, Unbound also only sends root priming queries when it needs to, when a query needs to be serviced, if the server is just started it does not do so, until a query comes in that needs the data, the root priming data is needed to perform the recursion. If unbound is configured to use an encrypted transport, it would also use that for root priming queries. If the desire is to suppress packets, Unbound also makes a RFC8145 key tag query after priming the root key. That is a separate lookup that happens after a recursion, separate from root priming. The intent of the mechanism is to track the deployment of root keys in validators, useful when there is a root key rollover. This query can be suppressed with |
When unbound starts it sends DNS request to root servers, How can i disable this behavior?
The text was updated successfully, but these errors were encountered: