web-dev-qa-db-ja.com

特定のDNSサーバーにクエリを送信する方法はありますか

IPアドレスがわかっている特定のDNSサーバーにクエリを発行します。それが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サーバーに正しく応答しているのか、まったく応答しているのかをテストするためにDNSサーバーに問い合わせたいと思います。

だからそれは次のようになるはずです:

nslookup --dns-ip=8.8.8.8 superuser.com
144
Anton Daneyko

基本的な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
187
TheCompWiz

Nslookupのオプションを掘り下げてみると、nslookupを呼び出してからnslookupの対話モード内でhelpと入力すると表示されるので、正しい答えが得られました。

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
11
Anton Daneyko

はい、C:\Documents and Settings\Anton Daneyko>nslookup superuser.comはあなた自身のDNSサーバーを調べてsuperuser.comのIPアドレスを見つけます。 IPアドレスまたは別のDNSサーバーの名前をコマンドラインに追加すると、指定されたDNSサーバーでsuperuser.comのIPアドレスが検索されます。例:

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はGoogle DNSサーバーのIPアドレスです。

しかし、どちらもSOAではないため、上記の両方で「権限のない回答」となっています。これは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サーバーから、Marburg Uniから、権限のないすべてのサーバーに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

ご覧のとおり、今回はauthoritative SOAサーバーからipアドレスが返されたため、 "Non-authoritative answer"というコメントは表示されなくなりました。新しいIPアドレスは24時間経っても伝達されていないため、新しいドメイン名を作成したり、ホスティングプロバイダを変更したり、別のドメイン登録機関に移動したりしてもWebサイトにアクセスできません。それからSOAから始めて、正しいIPアドレスがDNSサーバーから与えられていることを確認してから、さらにツリーの下に進んでください。 GoogleのDNSサーバーが変更を受け取ったかどうかをチェックし、そして最後にあなたのローカルDNSサーバーがあなたのドメイン名を正しいIPアドレスに解決できるかどうかをチェックするのに良いです。

7

NslookupでデフォルトのDNSサーバーを変更するには、サーバーNAMEorIPofDNSを入力してサーバーを変更します。以下の例では、デフォルトのDNSサーバー(192.168.50.21)を新しいもの(4.2.2.3)に変更しました

C:\ Windows\system32> nslookup

デフォルトサーバ:不明

住所:192.168.50.21

サーバー4.2.2.3

デフォルトサーバー:c.resolvers.level3.net

住所:4.2.2.3

>

これで、4.2.2.3(192.168.50.21)に対してクエリを実行する準備が整いました

接続に使用するプライマリDNSを設定できます。
あなたの接続プロパティ=> Internet Procol(TCP/IP)に行きます。 (静的IPを設定できる場所)
ここで、各接続に使用するDNSを手動で定義できます。
テストが終わったら、いつでも以前の値に戻すことができます。

0
PatrickCUDO

私はOpenwrt 18.06.1 ARMv6 Raspberry Piに取り組んでいて、dnscrypt-proxyと同様にtor dnsをセットアップしているので、非常によく似た問題がありました。根本的な原因は、ローカルのispがroot-servers.netからの安全でない応答、つまりサイトが見つからなかったという応答を傍受してから、自分のWebサイトにリダイレクトしていることです。これは大きなセキュリティ上の欠陥ではありませんが、特に有用ではありません。

特定のアドレスを照会するときに行う最初のテストは、実際には無効なアドレスを試すことです。サーバー、ポート、およびホストの各パラメーターを使用するときに適切なNULL応答が得られるようにします。それが実際にキャッシュされた結果またはデフォルトのサーバーから返事をしているとき、あなたはポートテストをしています。 null応答を受け取った後は、アクティブなサーバーアドレスとポートで作業してください。アクティブポートは、netstat -plntを使用してopenwrtに表示できますが、一部のルーターコマンドを最初にインストールする必要がある場合があることに注意してください。ポート9053で設定したtorサービスはここには表示されませんが、torrcファイルにDNSPort 127.0.0.1:9053を追加した後も機能します。このプラットフォームのnslookupフォーマットは[Host]と[server]パラメータを受け付け、nslookup cnn.com 127.0.0.1で905番のdnsをテストすることができます。#9053無効なポートに変更する数字またはドメインが応答を受け取ります。 ;接続がタイムアウトしました; Digにアクセスできないサーバーはopenwrtでも動作しますが、bind-Digパッケージからインストールする必要があります。 Dig -q 127.0.0.1 -p 9053 www.bbc.comそして、無効なポートでも失敗します。私の場合は、/ etc/config/networkのエントリを変更し、安全でないdnsエントリを以前に使用していたネットワークに対してオプションdns '127.0.0.1'を設定したときに問題が解決しました。

0
Prada

1つのコマンドで特定のDNSサーバーから特定のレコードタイプを取得する

指定したDNSサーバーを使用して、nslookupから返されるデフォルトのAレコードとAAAAレコード(およびCNAMEレコード)以外のレコードタイプを検索するには、次の手順を実行します。

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

たとえば、DNSサーバーstackexchange.comを使用してドメイン8.8.4.4のMXレコードを返すには、コマンドは次のようになります。

nslookup -q=MX stackexchange.com 8.8.4.4
0

Windowsの場合、探しているものは次の記事に掲載されています。 https://technet.Microsoft.com/ja-jp/library/ff394369.aspx

0
Zaspam Akaunt