Назад | Перейти на главную страницу

Определите, является ли DNS-сервер главным или подчиненным с помощью DiG

Есть ли способ использовать DiG или nslookup, чтобы определить, установлен ли сервер в качестве главного или подчиненного? А если сервер подчиненный, вернуть IP-адрес Мастера?

Нет, нет. Протокол DNS не дает ничего, чтобы узнать отношения ведущий / ведомый извне.

Кроме того, сегодня это различие часто исчезает. Многие домены имеют только мастера, синхронизированные по общей базе данных.

Вы можете использовать эвристику (см. Предложения Мааса или используйте увеличение серийных номеров, первый увеличиваемый сервер имен будет главным), но они явно ненадежны.

Во-первых, технически 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.

Насколько я знаю, ответ - нет - конечно, не стандартным способом, поскольку существует миллиард различных вариантов DNS-серверов. Один из вариантов - иметь запись masterdns.mydomain.com, гарантированно содержащую IP-адрес мастера (даже не раскрывайте его, нет необходимости) - тогда все, что вам нужно сделать, это сравнить IP-адрес DNS-сервер к IP-адресу, который он дает вам для мастера, и все готово. Это также несовершенно из-за псевдонимов / множественной адресации / чего-то еще (вы не можете гарантировать, что это другой сервер), но ...

.. похоже, вы подразумеваете, что настраиваете все это сами, и в этом случае вам нужно просто иметь запись masterdns.mydomain.com.