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

Как направить запрос на определенный DNS-сервер?

Я хочу направить запрос на определенный DNS-сервер, IP-адрес которого мне известен. На самом деле не имеет значения, будет ли это на Windows или на *nix.

В Windows я могу сделать что-то вроде:

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

Но это использует настройки DNS на локальной машине. Вместо этого я хочу запросить определенный DNS сервер, чтобы проверить, правильно ли он отвечает на мои запросы или вообще отвечает.

Так что это должно быть что-то вроде:

nslookup --dns-ip=8.8.8.8 superuser.com

Ответы (8)

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

Для основных записей A и CNAME, вы можете просто сделать

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'

или если вы просто набираете nslookup без каких-либо параметров, вы можете сделать гораздо больше вариантов…

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

Просто копаясь в опциях nslookup, которые можно отобразить, если вызвать nslookup, а затем набрать help внутри интерактивного режима nslookup, я получил правильный ответ:

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

Да, C:\Documents and Settings\Anton Daneyko>nslookup superuser.com будет искать ваш собственный DNS-сервер, чтобы узнать IP-адрес для superuser.com. Если вы добавите ip-адрес или имя другого DNS-сервера в командную строку, он будет искать данный DNS-сервер для ip-адреса superuser.com. Исх.:

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

Кстати, 8.8.4.4 - это ip-адрес DNS-серверов Google.

Но оба вышеприведенных ответа дают “Неавторитетные ответы”, так как ни один из них не является авторитетным для домена superuser.com. У обоих есть кэшированная копия, которая была распространена из SOA. Если вы хотите спросить авторитетный сервер, сначала узнайте имя ip-адрес авторитетного сервера, используя команду:

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

Это вернет неавторитетный ответ с вашего локального DNS-сервера, с Марбургского университета, назвав все авторитетные серверы для superuser.com. Затем вы можете использовать команду, которую мы использовали ранее, чтобы спросить любой из 4 авторитетных серверов, следующим образом:

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

Как вы видите, на этот раз авторитетный SOA сервер вернул ip-адреса, следовательно, вы не видите комментарий “Неавторитетный ответ” комментарий, больше нет. Это особенно полезно, когда вы создали новое доменное имя или сменили хостинг-провайдера или перешли к другому регистратору доменов, и вы не можете получить доступ к своему веб-сайту, так как новые IP-адреса не распространяются даже по истечении 24 часов. Затем вы можете начать с SOA и проверить, что ваш правильный ip-адрес указан сервером DNS, а затем следовать дальше по дереву. Хорошо проверить, получили ли Google DNS-серверы изменения, и, наконец, если ваш локальный DNS-сервер может разрешить ваше доменное имя для корректировки IP-адреса.

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

Получить определенные типы записей с указанного DNS сервера с помощью одной команды

Для поиска типов записей, отличных от стандартных записей A и AAAA (и CNAME), возвращаемых nslookup, с помощью указанного DNS сервера:

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

Например, для возврата MX записей для домена stackexchange.com с помощью DNS сервера 8.8.4.4 команда будет:

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

Чтобы изменить свой стандартный DNS сервер в nslookup, вы можете просто изменить сервер, введя NAMEorIPofDNS. В этом примере ниже я изменил свой стандартный DNS сервер (192.168.50.21) на новый (4.2.2.3)

C:\Windows\system32>nslookup

Default Server: Адрес неизвестного

: 192.168.50.21

сервер 4.2.2.3

Сервер по умолчанию: c.resolvers.level3.net

Адрес: 4.2.2.3

>

Теперь я готов делать запросы против 4.2.2.3 против 192.168.50.21.

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

Я работаю над Openwrt 18.06.1 ARMv6 Raspberry pi и устанавливаю tor dns, а также dnscrypt-proxy, так что у меня была очень похожая проблема. Основной причиной является то, что локальный isp перехватывает незащищенные ответы от root-servers.net, ответы, в которых говорится, что сайт не найден, а затем перенаправляет на их собственный сайт. Хотя это и не большой недостаток безопасности, я не нахожу его особенно полезным.

Первым тестом при запросе определенного адреса на самом деле является проверка недействительного адреса, чтобы убедиться, что вы получаете правильный нулевой ответ при использовании параметров сервера, порта и хоста, Существует множество руководств и версий, и легко подумать, что вы делаете тест на порт, когда на самом деле он отвечает из кэшированных результатов или серверов по умолчанию. После получения нулевого ответа работайте с адресом и портом активного сервера. Активные порты могут быть показаны на openwrt с помощью netstat -plnt, но обратите внимание, что некоторые команды маршрутизатора могут потребовать установки в первую очередь. Служба tor, которую я установил на порт 9053, здесь не показывается, но все равно работает после добавления DNSPort 127.0.0.1:9053 в torrc-файл. Формат nslookup на этой платформе принимает [host] и [server] параметры, и я могу протестировать tor dns с помощью nslookup cnn.com 127.0.0.1#9053 Я могу протестировать dnscrypt с помощью команды nslookup cnn. com 127.0.0.1#5353 Изменение на недействительные номера портов или доменов получает ответ; соединение прервано; никакие сервера не могут быть достигнуты Dig также работает на openwrt, но должен быть установлен из пакета bind-dig. dig -q 127.0.0.1 -p 9053 www.bbc.com И опять не работает на недействительных портах. В моем случае проблема была решена, когда я изменил записи в /etc/config/network и установил опцию dns ‘127.0.0.1’ для сетей, в которых я ранее использовал небезопасные записи dns.

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

Для окон, которые вы, возможно, ищете, представлена следующая статья: https://technet.microsoft.com/en-us/library/ff394369.aspx

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

вы можете настроить первичный DNS для использования с вашим подключением. Перейдите к свойствам подключения => Internet Procol (TCP/IP). (место, где вы можете установить статический IP) Здесь вы можете вручную определить, какой DNS будет использоваться для каждого подключения. После тестирования вы всегда можете изменить его обратно на предыдущее значение.