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
基本的な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
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
はい、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アドレスに解決できるかどうかをチェックするのに良いです。
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を手動で定義できます。
テストが終わったら、いつでも以前の値に戻すことができます。
私は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'を設定したときに問題が解決しました。
指定した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
Windowsの場合、探しているものは次の記事に掲載されています。 https://technet.Microsoft.com/ja-jp/library/ff394369.aspx