有没有办法使用DiG或nslookup来确定服务器是否设置为主或从? 如果服务器是从服务器,请返回主服务器的IP地址?
据我所知,答案是否定的 – 当然没有标准的方法,因为有十亿个不同的DNS服务器变种。 一个select是有一个“masterdns.mydomain.com”的logging,保证包含主机的IP地址(甚至不暴露它,不需要) – 那么你所需要做的就是比较IP DNS服务器到它为主人提供的IP,并且你全都设置好了。 这也是不完美的,因为别名/多归属/任何地狱(你不能保证它是一个不同的服务器),但..
..你似乎暗示你自己设置所有这些,在这种情况下,你应该只有masterdns.mydomain.comlogging。
不,没有办法。 DNS协议没有提供从外部学习主从关系的任何信息。
而且,这个区别经常在今天消失。 许多域只有主人,在一个共同的数据库上同步。
你可以使用启发式方法(参见Maas的build议或者使用增加的序列号,增加的第一个名字服务器将是主数据库),但是它们显然是不可靠的。
首先,从技术上讲,DNS服务器不一定是专有的主机或从机。 这可以在域名的基础上有所不同。 它可能是一些领域的主人,而另一些则是奴隶。
如果域名的DNS区域configuration正确 – 那么您可以请求区域的SOAlogging(其中包含主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)
您现在可以对主服务器名称(来自SOAlogging – 在本例中为“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