Determina se o servidor DNS é mestre ou escravo com DiG

3

Existe uma maneira de usar DiG ou nslookup para determinar se um servidor está configurado como Mestre ou Escravo? E se um servidor é escravo, retorne o endereço IP do Mestre?

    
por Michael Moser 27.10.2009 / 04:23

3 respostas

0

Até onde eu sei, a resposta é não - certamente não há uma maneira padrão, já que há um bilhão de variantes diferentes de servidores DNS. Uma opção seria ter um registro 'masterdns.mydomain.com', garantido para conter o endereço IP do mestre (nem mesmo expor isso, não há necessidade) - então tudo que você precisa fazer é comparar o IP do Servidor DNS para o IP que lhe dá para o mestre, e está tudo pronto. Isso também é imperfeito, por causa do aliasing / multi-homing / whatever-the-hell (você não pode garantir que é um servidor diferente), mas ..

... você parece estar insinuando que está configurando tudo isso sozinho; nesse caso, você deve ter apenas o registro masterdns.mydomain.com.

    
por 27.10.2009 / 05:08
3

Não, não tem jeito. O protocolo DNS não fornece nada para aprender a relação mestre / escravo do lado de fora.

Além disso, essa distinção geralmente desaparece hoje. Muitos domínios possuem apenas mestres, sincronizados em um banco de dados comum.

Você pode usar heurísticas (consulte as sugestões do Maas ou use o aumento de números de série, o primeiro servidor de nomes a aumentar será o mestre), mas elas claramente não são confiáveis.

    
por 27.10.2009 / 09:51
2

Primeiro, tecnicamente, um servidor DNS não é necessariamente um mestre ou um escravo. Isso pode ser diferente em um domínio por domínio. Pode ser mestre para alguns domínios e escravo para outros.

Se a zona DNS do nome de domínio estiver configurada corretamente, você poderá solicitar o registro SOA da zona que (entre outras coisas) contém o nome do host do servidor DNS primário (o mestre).

Por exemplo:

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)

Agora você pode fazer outra pesquisa no nome do servidor principal (a partir do registro SOA - nesse caso, "ns1.google.com") para obter o endereço IP do mestre:

C:\nslookup ns1.google.com.
Server:  UnKnown
Address:  192.168.1.1

Non-authoritative answer:
Name:    ns1.google.com
Address:  216.239.32.10

A resposta neste caso é 216.239.32.10

    
por 29.10.2009 / 18:44