我正在将面向公众的互联网网站迁移到具有一组新 IP 地址的新服务器场。我的网站设置了多个指向主网站名称的别名。其中一些别名由内部 IT 部门管理,其他由外部 ISP 管理。
所以我想知道是否有办法使用主站点名称或 IP 地址对 DNS 进行查找以获取别名到该站点的所有站点的列表?
我是一个 DNS 新手,所以如果我的 DNS 术语有误,请原谅我。
答案1
有一种方法可以做到这一点,但它不可靠并且需要服务提供商来管理数据库。
其中一个例子是 域名工具
基本上,有权访问大量网络流量的人会记录域名解析并将其聚合到可搜索的数据库中。这只适用于可路由的 IP 地址,因此如果您尝试在大型内部网络上执行此操作,像这样的工具将无法帮助您。
请注意,这是不是相当于反向 DNS 查询。反向 DNS 查询是 RFC 认可的功能,有许多工具可以执行这些查找。在向其他网络人员传达您的意图时,请记住这一点。
答案2
不,这不可能。如果我知道你的 IP,我可以轻松地在我的区域中添加一条指向你 IP 地址的 A 记录,而你根本不知道我这样做了。
我猜想您可以做的是启用服务器上的日志记录以获取人们用于连接的主机名。如果这不是一个选项,您可能需要在 Web 服务器前面临时设置一个透明代理来记录所有请求。如今,大多数浏览器都会将用于连接的名称作为 HTTP 请求的一部分发送。这就是允许基于名称的虚拟托管工作的原因。或者您甚至可以运行网络捕获并仅抓取对服务器的请求。
答案3
您可能可以联系提供商,要求与工程师交谈,并向他们解释情况。他们可能会通过提取他们的记录或配置供您查看来帮助您。
答案4
是的,如果您有内部 IT 部门以及托管您的 DNS 的外部 ISP 的合作,您可以这样做。
我认为您描述的场景中区域文件如下所示:
foo.com 的企业 IT
internalwww A 55.32.10.7
internalwww A 55.32.10.8
internalwww2 CNAME internalwww
othersitename CNAME internalwww
外部 ISP bar.com
externalwww CNAME internalwww.foo.com.
externalwww2 CNAME internalwww.foo.com.
differentsite A 55.32.10.7
您的 Web Farm 由服务器 55.32.10.7、55.32.10.8 组成。您即将迁移到新的 Web Farm,并且要确保内部主机和外部主机都已更新。
如果我对你的场景理解正确,那么你需要做的是对 foo.com 和 bar.com 进行区域传输。可以使用以下命令完成此操作:
dig @internaldnsserver.foo.com. axfr
dig @externaldnsserver.bar.com. axfr
不过,您需要他们配置他们的 DNS 服务器,以允许传输到您发出这些请求的客户端。一旦您有了这些区域文件,您将需要使用 grep 几次来追踪适当的主机:
IE
egrep -i 55.32.10.7 externalzonefile internalzonefile
egrep -i internalwww externalzonefile internalzonefile
ETC...
或者,您可以向这些服务器的 DNS 管理员提供您感兴趣的查询,他们可以为您运行这些查询,而不必担心提供完整的区域传输,因为对于管理和安全目的来说,这可能是一个有问题的服务请求。