doh-proxy 可以与私人 DNS 服务器一起工作吗?

doh-proxy 可以与私人 DNS 服务器一起工作吗?

我在 IP 10.10.0.10 上的专用网络内运行 DNS 服务器。DNS 服务器还将 URL 解析为网络内的专用 IP。所有 URL 的 SSL 均由 .BIZ 域的通配符证书处理。但最近 Chrome 和 Firefox 在最近的更新中开始启用 DNS-over-HTTPS。由于我们的 DNS 服务器不符合 DOH 标准,因此用户无法导航到我们的 URL,除非他们在浏览器中禁用 DOH 功能。

理想情况下,我希望我们的用户在浏览器中保持 DOH 启用,并且仍然依赖本地 DNS 服务器将 URL 解析为我们的私有 IP。为了实现这一点,我查看了doh-代理我在 IP 10.10.0.20 上启动了一个 Centos-7 VM,安装了 doh-proxy,并打开了端口 443。然后我执行了:

/usr/local/bin/doh-proxy --upstream-resolver=10.10.0.10 --certfile=/etc/pki/public/mycompany.bundle.biz.crt --keyfile=/etc/pki/private/mycompany.biz.pem

使用 netstat 我确认端口 443 正在监听。然后我修改了我的 VPN 配置,将 DNS 设置从 10.10.0.10 更改为 10.10.0.20(新的 doh-proxy 服务器)。但是,在浏览器中启用 DOH 后,我仍然无法导航到我们的 URL。

我是否误解了 doh-proxy 背后的意图?

答案1

我认为您没有误解其背后的意图doh-proxy,它似乎是常规 DNS 解析器服务器的 DoH 前端,为 DoH 客户端提供了一种查询所述解析器服务器的方法。
如果由于某种原因这种特定的实现不适合,还有其他几种这样的代理解决方案。

然而,我认为您可能误解/忽略的是,要配置 DoH,客户端需要知道 DoH 服务器的 URL(例如https://dns.quad9.net/dns-queryhttps://dns.google/dns-query等等),仅有 IP 地址对于设置 DoH 没有任何作用。

而且,让事情变得更加困难的是,DoH 目前没有适当的发现机制。(这是围绕 DoH 的诸多争议的根本原因,尤其是 Mozilla 的方法。)

此时“默认启用 DoH”的工作方式示例:

  • Firefox 设置为知道要使用的 DoH 服务器(Mozilla 代表其用户选择 DoH 服务,而不管操作系统配置)。
  • Chrome 会根据以 DNS 服务的知名 IP 地址为关键的映射表选择性地从普通 DNS 升级到 DoH,例如8.8.8.8 -> https://dns.google/dns-query(Google 维护着一个知名 DNS 服务的映射表,只有当映射表有利于查询与操作系统配置为普通 DNS 指示的相同的 DNS 服务时,才会发生 DoH 升级)。

总而言之,运行自己的 DoH 服务很容易,但让客户使用它却不一定容易。

您需要做的是以某种方式告诉客户端使用 https://dns.example.com/dns-query(如果我们假设这是您的代理的正确 URL)作为其 DoH 端点,最简单的形式可能意味着在客户端上进行手动配置(每个应用程序,至少如此)。
您当然可以找到自动配置一组已知应用程序的方法,但目前还没有建立可与 DHCP 为普通 DNS 提供地址的方法相媲美的发现方法。

相关内容