mis*_*yes 2 networking dns domain
假设我有一个域名,例如myproxy.com
. 然后我有很多网站,比如kitty.myproxy.com
,wow.myproxy.com
我想为域名配置一个权威的DNS服务器。
我希望,如果用户想要访问这些网站,当浏览器发送 DNS 查询时,该 DNS 查询最终会到达权威的 DNS 服务器。这样,权威机构就可以获得进行DNS查询的主机的IP。
我的期望是:这些网站的所有 DNS 查询都必须发送到权威 DNS 服务器,这样我才能知道进行 DNS 查询的所有主机。有可能吗?
恐怕其他一些 DNS 服务器会缓存 DNS 记录,因此这些 DNS 服务器会回答 DNS 查询,然后这些查询不会转发到权威的 DNS 服务器。有没有可能防止这种情况?
注意:我正在做研究工作。我的目标是做一个代理。有许多 Web 服务器在代理上注册。只有代理知道这些 Web 服务器的 IP。当浏览器想要访问这些 Web 服务器之一时,它可以从 DNS 查询中获取代理的 IP。然后它连接到代理。我希望代理可以在TCP SYN到来时准确知道这个浏览器想要访问哪个Web服务器(在HTTP请求之前,实际上,通过解析HTTP请求,代理可以知道浏览器想要访问哪个Web服务器) . 因此,如果 Web 浏览器执行 DNS 查询并且代理知道该查询,则代理可以缓存 Web 服务器和浏览器主机 IP 之间的映射。当 TCP SYN 到来时,代理立即检查映射并了解浏览器实际想要访问的 Web 服务器。谢谢!
你想达到什么目的?我的猜测是您正在尝试做某事,并且当它不起作用时,您认为“监视 DNS 是答案”。
如果您希望在每个 DNS 请求中看到来自客户端 IP 的命中,那将永远不会发生。DNS 是分层的,并且客户端被配置为访问本地 DNS 服务器,然后最终会访问您的 DNS 服务器。
如果您希望在每个 DNS 请求中看到一个请求(来自某人),您可以尝试将 TTL 调整为较小的值,例如一秒。然后你会在某个地方看到某人的打击。这可能不是 100% - 这取决于每个人是否尊重您的 TTL,这不是给定的。
更新
如果我没看错,您正在尝试将 DNS 请求与未来的 HTTP 请求相关联。这将由于多种原因而失败。
缓存。DNS - IP 映射非常容易缓存,因此它们被大量缓存。即使设置 TTL 也无济于事,因为无论设置如何,一些 ISP 都会忽略 TTL 并缓存一小时/一天左右。浏览器也有自己的 DNS 缓存。有太多的级别供您控制。
多个用户 - 一个 IP 地址。在 NAT(和运营商级 NAT即将到来)和每台机器的普通多个用户之间,您不能再将 IP 映射到浏览器(您真的不可能)。即使每个用户有多个浏览器或多个选项卡也可能使这个系统失效。
人们可能出于其他原因使用 DNS。如果有人只是在一个域上执行 nslookup,然后又访问了另一个域(IP 在缓存中),该怎么办?你会转发错误的网站。
多个出口点。虽然现在不太常见,但 ISP 将请求代理出去曾经很常见,有时单个订户可能会在出口点(您将其视为他们的 IP)上轮换,即使在单个会话中也是如此。AOL 过去经常这样做,随着它们的流行度下降,我看到其他工具(移动 Opera)也使用代理。
DNS 转发不会以这种方式工作。如果有人试图在您的站点中查找主机名,绝大多数情况下他们会询问 google 的 8.8.8.8 服务器或他们的 ISP 的递归 DNS 服务器。在任何一种情况下,查询您的 DNS 服务器以获取主机名的 IP 地址都不会与稍后查看的 Web 浏览器的源 IP 地址相同。
简而言之,你不能从这里到达那里。IP 地址不是(以前也不是)用户的唯一 1-1 标识符。你会破坏 HTTP。您一直在查看 HTTP 流并进行解析。确保您的代理支持 Keep-Alive,这样会减少一些影响。
归档时间: |
|
查看次数: |
9280 次 |
最近记录: |