我如何知道我的 ISP 是否正在重定向我的 DNS 查询?

我如何知道我的 ISP 是否正在重定向我的 DNS 查询?

我尝试使用一些 DNS 服务,例如 OpenDNS,但无论我做什么,DNS 查询都不会返回预期的结果。通过观察防火墙上的数据包流量,我可以看到查询发送到预期的 DNS 服务器地址并返回响应,但结果并不如预期,例如,OpenDNS 测试页面总是失败,即使请求似乎发送到他们的服务器。

我怀疑我的 ISP 正在拦截 DNS 查询并将其发送到他们自己的服务器。有没有办法验证这一点?我可能还遗漏了什么?我正在使用 Sprint 的 3G 无线服务。

答案1

打电话问问他们?

OpenDNS 论坛上的话题(2010 年 2 月):

我今天与 Sprint 进行了交谈。

以下是和我通电话的那个人告诉我的。

“是的,sprint 正在将 DNS 重定向到端口 53”(显然,我们在 opendns 知道这一点)“是的,即使对于静态帐户也是如此”

根据链接,您的 Sprint 设备可能有一个固件升级,允许使用 OpenDNSSprint 的 PDF在同一条消息中。

答案2

有多种方法可以检查您的 ISP 是否使用透明 DNS 代理。这取决于您的 ISP 如何实施它。我的 ISP 将所有端口 53 请求重定向到他们自己的递归 DNS 服务器(但他们不会在 NXDOMAIN 上投放广告。也许他们使用它来记录或防止 DNS 隧道)。我将提到一些常规检测方法。

  1. 最简单的方法是使用NetalyzrAndroid 应用程序或名称台Google 的 Windows 软件。如果您的 ISP 正在使用 DNS 代理,它们会通知您。您无需任何技术知识。

namebench 截图

  1. 对权威名称服务器执行 DNS 查找,并检查答复是否具有权威性。在此示例中,我将使用dig。您也可以使用nslookup。如果答复具有权威性,dig 将aa在答复中显示标志。现在,a.ns.facebook.com 是 fb.me 的权威 NS。如果您的 ISP 拦截并重定向请求,您将不会收到权威答复。

    dig @a.ns.facebook.com fb.me(左边不拦截DNS)

挖掘权威 NS

  1. 指定一个没有 DNS 服务器运行的 IP 地址,作为执行dig或时的 DNS 服务器nslookup。如果您的 ISP 拦截您的请求,您仍会收到回复。否则您将收到Time Out。(右侧的 ISP 拦截并重定向请求)

挖错服务器了

  1. 在随机 IP 地址上使用 nmap。如果您的 ISP 重定向所有端口 53 请求,您将始终看到端口 53 处于打开状态。

  2. 更改您的计算机网络设置并使用 Google 公共 DNS 或 OpenDNS 或 Cloudflare DNS IP(一次使用一种提供商类型)。然后转到DNS 泄漏测试网站并注意是否出现任何不同的提供商。

绕过这个 ISP 拦截并不难。你需要使用DNScrypt/DNS over TLS 或使用任何在非标准端口(例如:5353 或 443)上运行的 DNS 服务器。在第二种方法中,您必须使用路由器或计算机防火墙将传出的 DNS 查询重定向到这些端口。详细讨论这些方法超出了本文的范围。

答案3

尝试对一些你认为会发送到不同提供商(如 OpenDNS 和 Google)的 DNS 请求进行计时。如果它们相同,则它们必须由 ISP 接收并提供(逻辑错误,但有可能)。可以这样做的一种方法是使用名称台,通常用于为您的连接选择最佳的 DNS 服务器。

相关内容