DNS 解析器是否知道正在使用的应用层协议?

DNS 解析器是否知道正在使用的应用层协议?

我的 iPad 的 3G 连接经常被劫持,每次我第一次浏览互联网时都会显示我的提供商的欢迎页面。我注意到这种情况只发生在使用 HTTP 时,使用 HTTPS 或任何其他协议的页面都可以毫无问题地检索。

起初我怀疑我的提供商只是嗅探我的请求以确定它是否是 HTTP,如果是,它会向我的 iPad 发送自定义 HTTP 响应,将其重定向到那个烦人的页面。但我无法验证这一点,因为没有办法更改 3G 连接的 DNS 解析器或检查 HTTP 响应标头。

今天我做了进一步调查,看到一些用户在论坛上讨论这个问题。其中一位坚持认为提供商确实劫持了 HTTP 请求,因为这种情况只有在使用该协议时才会发生,而另一位则说事实并非如此,提供商实际上只是在操纵 DNS 响应。另一位用户确认,当他更改 DNS 设置时,页面不再显示。

这引发了我的一个疑问。DNS 解析器是否知道我正在使用什么协议?
还有其他原因会导致这种情况发生吗?或者我在论坛上读到的内容实际上是错误的?

答案1

DNS 解析器是否知道我正在使用什么协议?

不,但它可以猜测。我的意思是,www. 的起始 URL 很可能是一个 Web 服务器。

但这是完全没有必要的。提供商只需重写 http 请求,就像它们通过所谓的透明代理一样。然后他们就会获得目标 IP 和所请求域名的名称。

答案2

DNS 不知道应用程序如何使用它发送的查询。它也不该知道,也不能知道。这是臭名昭著的“站点查找器”黑客攻击如此糟糕的主要原因之一,而基于 DNS 的“帮助页面”通常都存在问题。

例如,对于 flame.org,我可以使用:ssh、mail、web、ftp、finger 或 jabber。DNS 所做的只是返回名称到地址(或其他类型的数据)的映射。如果我决定尝试仅重定向 http 请求,则失败。

相关内容