Michael Moser Asked: 2009-10-27 19:23:31 +0800 CST2009-10-27 19:23:31 +0800 CST 2009-10-27 19:23:31 +0800 CST 使用 DiG 确定 DNS 服务器是主服务器还是从服务器 772 有没有办法使用 DiG 或 nslookup 来确定服务器是设置为主服务器还是从服务器?如果服务器是从服务器,返回主服务器的 IP 地址? domain-name-system 4 个回答 Voted bortzmeyer 2009-10-28T00:51:45+08:002009-10-28T00:51:45+08:00 不,没有办法。DNS 协议没有提供任何东西来从外部学习主/从关系。 而且,这种区别今天经常消失。许多域只有主服务器,在公共数据库上同步。 您可以使用启发式方法(参见 Maas 的建议或使用增加序列号,第一个增加的名称服务器将是主服务器)但它们显然不可靠。 Jesper 2009-10-30T09:44:46+08:002009-10-30T09:44:46+08:00 首先,从技术上讲,DNS 服务器不一定是主服务器或从服务器。这可能因域而异。对于某些域,它可能是主域,而对于其他域,它可能是从域。 如果域名的 DNS 区域配置正确 - 那么您可以请求该区域的 SOA 记录,其中(除其他外)包含主 DNS 服务器(主服务器)的主机名。 例如: C:\>nslookup Default Server: UnKnown Address: 192.168.1.1 > set type=SOA > google.com. Server: UnKnown Address: 192.168.1.1 Non-authoritative answer: google.com primary name server = ns1.google.com responsible mail addr = dns-admin.google.com serial = 1396486 refresh = 7200 (2 hours) retry = 1800 (30 mins) expire = 1209600 (14 days) default TTL = 300 (5 mins) 您现在可以再次查找主服务器名称(来自 SOA 记录 - 在本例中为“ns1.google.com”),以获取主服务器的 IP 地址: C:\nslookup ns1.google.com. Server: UnKnown Address: 192.168.1.1 Non-authoritative answer: Name: ns1.google.com Address: 216.239.32.10 这种情况下的答案是 216.239.32.10 Best Answer Maas 2009-10-27T20:08:10+08:002009-10-27T20:08:10+08:00 据我所知,答案是否定的——当然没有标准方法,因为有十亿种不同的 DNS 服务器变体。一种选择是拥有一个'masterdns.mydomain.com'记录,保证包含主服务器的IP地址(甚至不要公开它,不需要)——然后你需要做的就是比较IP地址DNS 服务器到它为您提供的主服务器 IP,一切就绪。这也是不完美的,因为别名/多宿主/不管是什么鬼(你不能保证它是一个不同的服务器),但是.. ..您似乎暗示您自己设置了所有这些,在这种情况下,您应该只拥有 masterdns.mydomain.com 记录。 BasilBrush 2021-04-12T11:48:30+08:002021-04-12T11:48:30+08:00 该命令dig -t SOA your-url将在 ANSWER 部分返回授权服务器,然后如果您希望dig authoritative-server-url拥有 IP。或者您可以使用host -t SOA your-urlandhost authoritative-server-url来获得更简洁的响应。
不,没有办法。DNS 协议没有提供任何东西来从外部学习主/从关系。
而且,这种区别今天经常消失。许多域只有主服务器,在公共数据库上同步。
您可以使用启发式方法(参见 Maas 的建议或使用增加序列号,第一个增加的名称服务器将是主服务器)但它们显然不可靠。
首先,从技术上讲,DNS 服务器不一定是主服务器或从服务器。这可能因域而异。对于某些域,它可能是主域,而对于其他域,它可能是从域。
如果域名的 DNS 区域配置正确 - 那么您可以请求该区域的 SOA 记录,其中(除其他外)包含主 DNS 服务器(主服务器)的主机名。
例如:
您现在可以再次查找主服务器名称(来自 SOA 记录 - 在本例中为“ns1.google.com”),以获取主服务器的 IP 地址:
这种情况下的答案是 216.239.32.10
据我所知,答案是否定的——当然没有标准方法,因为有十亿种不同的 DNS 服务器变体。一种选择是拥有一个'masterdns.mydomain.com'记录,保证包含主服务器的IP地址(甚至不要公开它,不需要)——然后你需要做的就是比较IP地址DNS 服务器到它为您提供的主服务器 IP,一切就绪。这也是不完美的,因为别名/多宿主/不管是什么鬼(你不能保证它是一个不同的服务器),但是..
..您似乎暗示您自己设置了所有这些,在这种情况下,您应该只拥有 masterdns.mydomain.com 记录。
该命令
dig -t SOA your-url
将在 ANSWER 部分返回授权服务器,然后如果您希望dig authoritative-server-url
拥有 IP。或者您可以使用host -t SOA your-url
andhost authoritative-server-url
来获得更简洁的响应。