2011-12-14 16:43:50 +0000 2011-12-14 16:43:50 +0000
162
162

Como posso dirigir uma consulta a um servidor DNS específico?

Gostaria de fazer uma consulta a um servidor DNS específico, cujo endereço IP eu conheço. Não importa se está no Windows ou *nix.

No Windows 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 isto utiliza as definições DNS da máquina local. Em vez disso, gostaria de consultar um servidor DNS específico para testar se ele está a responder correctamente às minhas consultas ou a responder de todo.

Por isso deve ser algo como:

nslookup --dns-ip=8.8.8.8 superuser.com

Respostas (8)

210
210
210
2011-12-14 16:54:16 +0000

Para registos A e CNAME básicos, 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 escrever nslookup sem qualquer parâmetro, 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
11
11
11
2011-12-14 16:50:55 +0000

Basta pesquisar as opções de nslookup, que pode apresentar se invocar nslookup e depois digitar help dentro do modo interactivo nslookup deu-me 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
7
7
7
2015-09-22 13:20:36 +0000

Sim, C:\Documents and Settings\Anton Daneyko>nslookup superuser.com irá procurar o seu próprio servidor DNS para descobrir o endereço IP do superuser.com. Se adicionar o endereço ip ou o nome de um servidor DNS diferente à linha de comando, irá procurar esse servidor DNS para o endereço ip do 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 da Google.

Mas, ambos os anteriores dão “respostas não autorizadas”, uma vez que nenhum deles SOA, que é o autorizado para o domínio superuser.com. Ambos têm uma cópia em cache que foi propagada a partir 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

. Isto irá retornar uma resposta não-autoritativa do seu servidor DNS local, do Uni Marburg, nomeando todos os servidores autoritativos para o superuser.com. Depois pode usar o comando que usámos anteriormente para perguntar a qualquer um dos 4 servidores autorizados, da seguinte forma:

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 vê, desta vez o servidor autorizado SOA devolveu os endereços ip, logo já não vê o comentário “Resposta não autorizada”. Isto é particularmente útil, quando criou um novo nome de domínio ou alterou os fornecedores de alojamento ou transferiu para outro fornecedor de alojamento, e não pode aceder ao seu site, uma vez que os novos endereços IP não se propagaram mesmo após 24 horas. Depois pode começar pela SOA e verificar se o seu endereço IP correcto é dado pelo servidor DNS, e depois segui-lo mais abaixo na árvore. É bom verificar se os servidores DNS do Google receberam as alterações e, por último, se o seu servidor DNS local pode resolver o nome do seu Domínio para corrigir o endereço IP.

1
1
1
2017-09-24 20:07:36 +0000

Obtenha tipos de registos específicos do servidor DNS especificado com um comando

Para procurar outros tipos de registos que não os registos A e AAAA (e CNAME) por defeito devolvidos por nslookup, utilizando o servidor DNS especificado:

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

Por exemplo, para devolver registos MX para o domínio stackexchange.com utilizando o servidor DNS 8.8.4.4 o comando seria:

nslookup -q=MX stackexchange.com 8.8.4.4
1
1
1
2016-03-30 20:02:05 +0000

Para alterar o seu servidor DNS por defeito em nslookup pode simplesmente alterar o servidor digitando o servidor NAMEorIPofDNS Neste exemplo abaixo alterei o meu servidor DNS por defeito (192.168.50.21) para um novo (4.2.2.3)

C:\Windows\system32>nslookup

Default Server: UnKnown

Endereço: 192.168.50.21

server 4.2.2.3

Default Server: c.resolvers.level3.net

Address: 4.2.2.3

>

Agora estou pronto para fazer consultas contra 4.2.2.3 contra 192.168.50.21

0
0
0
2018-10-05 09:42:11 +0000

Estou a trabalhar na Openwrt 18.06.1 ARMv6 Raspberry pi e a instalação de dns e dnscrypt-proxy, pelo que tinha um problema muito semelhante. A causa principal é que o isp local está a interceptar respostas inseguras do root-servers.net, respostas que dizem que o site não foi encontrado, redireccionando depois para o seu próprio site. Embora não seja uma grande falha de segurança, também não a acho particularmente útil.

O primeiro teste a fazer quando se consulta um endereço específico é na verdade tentar um endereço inválido, para ter a certeza que se obtém uma resposta nula adequada quando se utiliza o servidor, porta e parâmetros do anfitrião, Existem muitos guias e versões e é fácil pensar que se está a fazer um teste de porta quando de facto se está a responder a partir de resultados em cache ou de servidores por defeito. Depois de obter uma resposta nula, trabalhe com um endereço de servidor e uma porta activos. As portas activas podem ser mostradas no openwrt com netstat -plnt mas note que alguns comandos de router podem precisar de ser instalados primeiro. O serviço tor que eu configurei na porta 9053 não aparece aqui mas ainda funciona após adicionar DNSPort 127.0.0.1:9053 ao ficheiro torrc. O formato nslookup nesta plataforma aceita parâmetros [host] e [server] e posso testar tor dns com nslookup cnn.com 127.0.0.1#9053 Posso testar dnscrypt com o comando nslookup cnn. com 127.0.0.0.1#5353 Mudando para números de portas ou domínios inválidos obtém-se uma resposta; ; a ligação é temporizada; nenhum servidor pode ser alcançado Dig também funciona em openwrt mas tem de ser instalado a partir do pacote bind-dig. dig -q 127.0.0.1 -p 9053 www.bbc.com E novamente falha para portas inválidas. No meu caso o problema foi resolvido quando alterei as entradas em /etc/config/network e defini a opção dns ‘127.0.0.1’ para redes onde anteriormente utilizava entradas dns inseguras.

0
0
0
2018-10-12 11:59:26 +0000

Para janelas o que você pode estar procurando é apresentado no artigo seguinte: https://technet.microsoft.com/en-us/library/ff394369.aspx

0
0
0
2011-12-14 16:50:27 +0000

pode configurar o DNS primário para ser utilizado com a sua ligação. Vá às suas propriedades de ligação => Internet Procol (TCP/IP). (o local onde pode definir um IP estático) Aqui pode definir manualmente qual o DNS que pretende utilizar para cada ligação. Depois de testar, pode sempre alterá-lo para o seu valor anterior.