Questão Como posso direcionar uma consulta para um servidor DNS específico?


Eu gostaria de emitir uma consulta para um servidor DNS específico, cujo endereço IP eu conheço. Não importa se é no Windows ou * nix.

No Windows eu posso fazer algo como:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

Non-authoritative answer:
Name:    superuser.com
Address:  64.34.119.12

Mas isso usa as configurações de DNS da máquina local. Em vez disso, gostaria de consultar um servidor DNS específico para testar se ele está respondendo às minhas consultas corretamente ou respondendo de maneira alguma.

Então deve ser algo como:

nslookup --dns-ip=8.8.8.8 superuser.com

122


origem




Respostas:


Para os registros básicos A e CNAME, você pode simplesmente fazer

nslookup somewhere.com some.dns.server

 

Usage: 
   nslookup [-opt ...]             # interactive mode using default server
   nslookup [-opt ...] - server    # interactive mode using 'server'
   nslookup [-opt ...] host        # just look up 'host' using default server
   nslookup [-opt ...] host server # just look up 'host' using 'server'

ou se você simplesmente digitar nslookup sem nenhum parâmetro, você pode fazer muito mais opções ...

Commands:   (identifiers are shown in uppercase, [] means optional)
NAME            - print info about the host/domain NAME using default server
NAME1 NAME2     - as above, but use NAME2 as server
help or ?       - print info on common commands
set OPTION      - set an option
    all                 - print options, current server and host
    [no]debug           - print debugging information
    [no]d2              - print exhaustive debugging information
    [no]defname         - append domain name to each query
    [no]recurse         - ask for recursive answer to query
    [no]search          - use domain search list
    [no]vc              - always use a virtual circuit
    domain=NAME         - set default domain name to NAME
    srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
    root=NAME           - set root server to NAME
    retry=X             - set number of retries to X
    timeout=X           - set initial time-out interval to X seconds
    type=X              - set query type (ex. A,AAAA,A+AAAA,ANY,CNAME,MX,NS,PTR,SOA,SRV)
    querytype=X         - same as type
    class=X             - set query class (ex. IN (Internet), ANY)
    [no]msxfr           - use MS fast zone transfer
    ixfrver=X           - current version to use in IXFR transfer request
server NAME     - set default server to NAME, using current default server
lserver NAME    - set default server to NAME, using initial server
root            - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
    -a          -  list canonical names and aliases
    -d          -  list all records
    -t TYPE     -  list records of the given RFC record type (ex. A,CNAME,MX,NS,PTR etc.)
view FILE           - sort an 'ls' output file and view it with pg
exit            - exit the program

160



É lamentável que o manual use os termos 'host' e 'server' em vez de algo mais claro como 'domain-name' e 'dns-server'. - ClearCrescendo
Não é totalmente incorreto. O "nome de domínio" é apenas parte de um nome de host. Você pode realmente fazer pesquisas apenas na parte "host" do FQDN, omitindo o sufixo de domínio. NSLOOKUP tentará usar automaticamente quaisquer sufixos de pesquisa configurados em seu sistema para obter uma correspondência. - TheCompWiz
Você não precisa acessar totalmente NSLOOKUP para usar as opções - a sintaxe é um pouco estranha. Exemplo: nslookup -all -debug -type=ANY -class=ANY servertolookup.com someDNSserver.com - Coruscate5


Basta cavar as opções do nslookup, que você pode exibir se invocar nslookup e depois digitando help dentro do modo interativo nslookup me deu a resposta certa:

C:\Documents and Settings\Anton Daneyko>nslookup help
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

*** DNSs2.Uni-Marburg.DE can't find help: Non-existent domain

C:\Documents and Settings\Anton Daneyko>nslookup
Default Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

> stackoverflow.com 8.8.8.8
Server:  [8.8.8.8]
Address:  8.8.8.8

Non-authoritative answer:
Name:    stackoverflow.com
Address:  64.34.119.12

9



Eu sorri quando vi esta resposta começa com "Just escavaçãoing ... ". - Hossein


Sim,   C:\Documents and Settings\Anton Daneyko>nslookup superuser.com irá procurar o seu próprio servidor DNS para descobrir o endereço IP de superuser.com. Se você adicionar o endereço IP ou o nome de um servidor DNS diferente à linha de comando, ele consultará esse servidor DNS para o endereço IP de superuser.com. Ex:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 8.8.4.4
Server:  google-public-dns-b.google.com
Address:  8.8.4.4

Non-authoritative answer:
Name:    superuser.com
Addresses:  190.93.245.58
      190.93.246.58
      141.101.114.59
      190.93.247.58
      190.93.244.58

A propósito, 8.8.4.4 é o endereço IP dos servidores DNS do Google.

Porém, ambos os itens acima fornecem "Respostas não autoritativas", pois nenhum deles SOA, que é o autoritativo para o domínio superuser.com. Ambos têm uma cópia em cache que foi propagada da SOA. Se você quiser perguntar ao servidor autoritativo, primeiro descubra o nome do endereço IP do servidor autoritativo, usando o comando:

C:\Documents and Settings\Anton Daneyko>nslookup -type=ns superuser.com
Server:  DNSs2.Uni-Marburg.DE
Address:  137.248.21.22

Non-authoritative answer:
superuser.com   nameserver = cf-dns02.superuser.com
superuser.com   nameserver = cf-dns01.superuser.com

cf-dns02.superuser.com  internet address = 173.245.59.4
cf-dns02.superuser.com  AAAA IPv6 address = 2400:cb00:2049:1::adf5:3b04
cf-dns01.superuser.com  AAAA IPv6 address = 2400:cb00:2049:1::adf5:3a35
cf-dns01.superuser.com  internet address = 173.245.58.53

Isso retornará uma resposta não autoritativa de seu servidor DNS local, da Marburg Uni, nomeando todos os servidores autoritativos para o superuser.com. Em seguida, você pode usar o comando que usamos anteriormente para perguntar a qualquer um dos quatro servidores autoritativos, da seguinte maneira:

C:\Documents and Settings\Anton Daneyko>nslookup superuser.com 173.245.59.4
Server:  cf-173-245-59-4.cloudflare.com
Address:  173.245.59.4

Name:    superuser.com
Addresses:  141.101.114.59
      190.93.246.58
      190.93.245.58
      190.93.247.58
      190.93.244.58

Como você pode ver, desta vez o servidor SOA autoritário retornou os endereços IP, portanto, você não vê mais o comentário "Resposta não autoritativa". Isso é particularmente útil quando você criou um novo nome de domínio ou alterou os provedores de hospedagem ou transferiu-os para um registrador de domínios diferente e não consegue acessar seu site, pois os novos endereços IP não se propagaram mesmo após 24 horas. Em seguida, você pode começar com a SOA e verificar se o endereço IP correto é fornecido pelo servidor DNS e, em seguida, seguir mais adiante na árvore. É bom verificar se os servidores DNS do Google receberam as alterações e, por último, se o servidor DNS local pode resolver seu nome de domínio para corrigir o endereço IP.


7





Para alterar seu servidor DNS padrão no nslookup, você pode simplesmente alterar o servidor digitando o servidor NAMEorIPofDNS Neste exemplo abaixo, mudei meu servidor DNS padrão (192.168.50.21) para um novo (4.2.2.3)

C: \ Windows \ system32> nslookup

Servidor Padrão: UnKnown

Endereço: 192.168.50.21

servidor 4.2.2.3

Servidor Padrão: c.resolvers.level3.net

Endereço: 4.2.2.3

>

Agora estou pronto para fazer consultas contra 4.2.2.3 versus 192.168.50.21


1



Isso duplica outra resposta e não adiciona conteúdo novo. Por favor, não poste uma resposta a menos que você tenha algo novo para contribuir. - DavidPostill♦
Nenhum conteúdo novo, talvez, mas valor. Eu prefiro esta resposta ao longo das onças :) - Pawel Cioch


você pode configurar o DNS primário para ser usado com sua conexão.
Vá para as propriedades da sua conexão => Internet Procol (TCP / IP). (o lugar onde você pode definir um IP estático)
Aqui você pode definir manualmente qual DNS você deseja usar para cada conexão.
Após o teste, você pode sempre alterá-lo de volta para seu valor anterior.


0



Não acho que seja uma maneira "direta" de consultar um servidor DNS. - lepe


Obter tipos de registro específicos do servidor DNS especificado com um comando

Para procurar tipos de registro diferentes dos registros padrão A e AAAA (e CNAME) retornados pelo nslookup, usando o servidor DNS que você especificar:

nslookup -q=<record type> <host> <DNS server>

Por exemplo, para retornar registros MX para o domínio stackexchange.com usando o servidor DNS 8.8.4.4 o comando seria:

nslookup -q=MX stackexchange.com 8.8.4.4

0