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 будет использоваться для каждого подключения. После тестирования вы всегда можете изменить его обратно на предыдущее значение.

Похожие вопросы

16
7
5
15
10