Hello,
I installed unbound according to the manual without any issues.
But now I don't want to address any root server located in Russia(or Belarus).
I checked the list of root servers and most of them are American. But using anycast.
I think I can never be sure where the root server handling my request is located.
And query one of those to load the actual current root servers into cache similar like below:
pi@ph5b:~ $ dig +norecurse +noall +answer +additional @198.41.0.4 . ns
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
. 518400 IN NS c.root-servers.net.
. 518400 IN NS d.root-servers.net.
. 518400 IN NS e.root-servers.net.
. 518400 IN NS f.root-servers.net.
. 518400 IN NS g.root-servers.net.
. 518400 IN NS h.root-servers.net.
. 518400 IN NS i.root-servers.net.
. 518400 IN NS j.root-servers.net.
. 518400 IN NS k.root-servers.net.
. 518400 IN NS l.root-servers.net.
. 518400 IN NS m.root-servers.net.
a.root-servers.net. 518400 IN A 198.41.0.4
b.root-servers.net. 518400 IN A 199.9.14.201
c.root-servers.net. 518400 IN A 192.33.4.12
d.root-servers.net. 518400 IN A 199.7.91.13
e.root-servers.net. 518400 IN A 192.203.230.10
f.root-servers.net. 518400 IN A 192.5.5.241
g.root-servers.net. 518400 IN A 192.112.36.4
h.root-servers.net. 518400 IN A 198.97.190.53
i.root-servers.net. 518400 IN A 192.36.148.17
j.root-servers.net. 518400 IN A 192.58.128.30
k.root-servers.net. 518400 IN A 193.0.14.129
l.root-servers.net. 518400 IN A 199.7.83.42
m.root-servers.net. 518400 IN A 202.12.27.33
a.root-servers.net. 518400 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 518400 IN AAAA 2001:500:200::b
c.root-servers.net. 518400 IN AAAA 2001:500:2::c
d.root-servers.net. 518400 IN AAAA 2001:500:2d::d
e.root-servers.net. 518400 IN AAAA 2001:500:a8::e
f.root-servers.net. 518400 IN AAAA 2001:500:2f::f
g.root-servers.net. 518400 IN AAAA 2001:500:12::d0d
h.root-servers.net. 518400 IN AAAA 2001:500:1::53
i.root-servers.net. 518400 IN AAAA 2001:7fe::53
j.root-servers.net. 518400 IN AAAA 2001:503:c27::2:30
k.root-servers.net. 518400 IN AAAA 2001:7fd::1
l.root-servers.net. 518400 IN AAAA 2001:500:9f::42
m.root-servers.net. 518400 IN AAAA 2001:dc3::35
Maybe you can override when creating your own A or AAAA records in unbound for those root-servers.net. entries.
But most likely DNSSEC will fail ????
pi@ph5b:~ $ man unbound.conf
[..]
do-not-query-address: <IP address>
Do not query the given IP address. Can be IP4 or IP6. Append /num
to indicate a classless delegation netblock, for example like
10.2.3.4/24 or 2001::11/64.
There are 13 root servers, but many more mirrors distributed around the world. If you want to block only those mirrors that are located in Russia, you will need to find those IP's and block them in your firewall or in unbound.
Why do you want to do this? All the root server mirrors distribute the same root zone.
The main reason actually is because of a privacy point of view.
If for instance I request to access a french website, I will request the rootserver for the .fr TLD.
which probably tells them something about the languages I can read.
And in some countries you can't know if maintainers of those servers are involved with the local government or not.
maybe you can never know.
But it would be great if it is possible to always locate a rootserver within the region from where you are browsing.
Or maybe when you live in China or something to use a rootserver which is somewhere in afrtica, so the government doesn't know visit Taiwanese websites.
It doesn't really matter which root servers you use. The DNS traffic to/from your local unbound instance (running in recursive mode) is unencrypted. All your ISP has to do is look at the DNS traffic leaving your home.
There is no way to predict which nameservers will be used by unbound.
If you are concerned with your ISP or government being able to see your DNS traffic, you can configure unbound as a forwarding server, and you can encrypt the DNS queries/replies leaving your home network.
This will require that you trust the upstream DNS server you use, and doesn't effectively hide where you are browsing from your ISP.
Once you get an IP (whether via a DNS query, typing it into your browser, or in a local hosts file, among several possibilities), you send the IP and the SNI in clear text to your ISP. They will know where you are browsing.
In my opinion, your fear of foreign root servers is unfounded. They all do the same thing - provide the TLD nameservers to clients. If any of these operators were misbehaving, they would be quickly shut off from being a root server mirror.