关于 DNSoverTLS 和不同设置组合的信息有很多,我一直在慢慢研究不同的组合来为我们找到正确的设置,但这导致了几个我需要帮助澄清的问题。
从开始dnsmasq
之后systemd-resolved
我们快速(阅读:经过大量工作)意识到在我们的设置中,我们需要一个支持递归这超出了这两个的范围。我们需要递归的具体原因是公共解析器无法解析 Spamhaus 等反垃圾邮件/RBL 服务的请求,因此我们需要能够直接与根服务器对话(无论如何这就是我的理解)。所以我适应了bind
。
我知道 Bind9 不支持DNSoverTLS
自身,因此用Stunnel
它来加密通信,但是从那里开始的路径让我有点困惑...
- Stunnel 是否加密其下游(客户端请求)或上游(递归/解析器)请求,或者两者?
- 我的理解是否正确?递归意味着请求直接发送到根 DNS 服务器,然后向下递归迭代,直到找到权威名称服务器并能解析请求,而不是发送到 Quad9/Cloudflare/Google/etc 等解析器?
- 根 DNS 服务器本身是否支持 DNSoverTLS 还是仅支持上述解析器服务?
我们的是独立服务器,它并不是一个开放的解析器,除了来自应用程序(例如postfix
,或通过 VPN 直接连接到服务器的客户端)的内部请求之外,它也不是权威的,它只是一个缓存 DNS 服务器。
我的目标是加密我们的上游/递归请求,我走在正确的轨道上吗?
答案1
stunnel 是否加密其下游(客户端请求)或上游(递归/解析器)请求,或者两者?
假设你正在关注本 ISC BIND 指南,则 stunnel 正在解密传入的 DoT 连接,而 BIND 不会对 stunnel 加密发出任何递归请求。
stunnel 在端口 853 上监听传入的 DoT 连接,然后将任何 DNS 请求传递到端口 53(未加密 DNS 的标准端口)上的 BIND。
来自 BIND 转发的传出请求将传递到端口 1053 上的 stunnel,然后 stunnel 在端口 853 上发送最终的 DoT 连接。
该指令禁用正常的回退到标准分辨率的功能
forward only;
。
我的理解是否正确?递归意味着请求直接发送到根 DNS 服务器,然后向下递归迭代,直到找到权威名称服务器并能解析请求,而不是发送到 Quad9/Cloudflare/Google/etc 等解析器?
“递归”是指服务器尝试自行追踪任何未知域的 IP(而不是依靠其他 DNS 服务器代其执行此操作)。但您描述的是典型的过程,是的。
根 DNS 服务器本身是否支持 DNSoverTLS 还是仅支持上述解析器服务?
虽然我可能错了,但我的理解是根名称服务器不支持 DoT(因此只有配置为处理它的 DNS 服务器,就像您描述的那些)。