1. 序章

このチュートリアルでは、Linuxでnslookupコマンドを使用するさまざまな方法を見てみましょう。

2. nslookupコマンド

nslookup は、ドメインネームサーバー(DNS)のクエリに使用されるコマンドラインツールであり、LinuxやWindowsなどのオペレーティングシステムで使用できます。

2.1. インタラクティブvs非インタラクティブ

nslookupを使用するには、interactiveとnon-interactiveの2つのモードがあります。

まず、パラメーターを指定せずにコマンドを入力して、インタラクティブモードをアクティブにします。

[kdoyle@localhost ~]$ nslookup
>

その後、毎回nslookupと入力せずに個々のコマンドを入力するためのコマンドプロンプトが表示されます。

一方、非対話型モードでは、パラメーターと同じコマンドを使用します。

[kdoyle@localhost ~]$ nslookup -type=a redhat.com

それでは、nslookup。を使用していくつかのクエリを実行してみましょう。

2.2. ドメインを検索する

ドメイン名ルックアップの結果を見てみましょう。

[kdoyle@localhost ~]$ nslookup redhat.com
Server:        192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:    redhat.com
Address: 209.132.183.105

DNSレコード(またはAレコード)は、「「」というテキストの後に始まります。 権威のない答え」これらのレコードは、ドメインに関連付けられているIPアドレスを示しています。

DNSレコードは、ドメイン名をコンピューターシステムのIPアドレスにマップすることを忘れないでください。

2.3. DNS逆引きルックアップ

同様に、IPアドレスからドメイン名を検索できます。

[kdoyle@localhost ~]$ nslookup
> type=ptr
> 209.132.183.105
105.183.132.209.in-addr.arpa    name = redirect.redhat.com.

返されるドメイン名が元のドメインとわずかに異なることに注意してください。 PTRと呼ばれる別のレコードが実際に返されています。

一部のドメインには、IPアドレス用に登録されたPTRレコードがありません。

[kdoyle@localhost ~]$ nslookup
> 104.18.62.78
Server:        192.168.1.1
Address:    192.168.1.1#53

** server can't find 78.62.18.104.in-addr.arpa: NXDOMAIN

3. タイプパラメータ

次に、タイプパラメータはルックアップにさらに情報を追加します。 たとえば、 ptr は、上記のように逆引きDNSを提供します。

それでは、他のタイプを試してみましょう。

3.1. すべてのエントリ

-type = a を指定すると、すべてのDNSエントリを取得できます。

[kdoyle@localhost ~]$ nslookup -type=a baeldung.com
Server:        192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:    baeldung.com
Address: 104.18.63.78
Name:    baeldung.com
Address: 104.18.62.78

3.2. 権威(SOA)

次に、ドメインに関する信頼できる(SOA)情報を確認します。 たとえば、 Aレコードには、メール情報やその他の情報が含まれています。

[kdoyle@localhost ~]$ nslookup -type=soa baeldung.com
Server:        192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
baeldung.com
    origin = lakas.ns.cloudflare.com
    mail addr = dns.cloudflare.com
    serial = 2033559691
    refresh = 10000
    retry = 2400
    expire = 604800
    minimum = 3600

多くのドメインネームサーバーがインターネット全体に分散しているため、直接ではない結果が得られます。 これらは非信頼的回答と呼ばれます。 ただし、それでも正確な記録を提供します。

3.3. エントリ

最後に、 type = any パラメーターは、サーバー上の他のタイプのレコードを含む上記のすべてのを返します。これは、必要なレコードがわからない場合に役立ちます。

type = any はほとんどのパブリックネームサーバーに実装されていない可能性がありますが、内部ネットワークでは引き続き役立ちます。

4. ネームサーバー情報

ドメインレコードが存在する場所を検証するために、ネームサーバー情報を確認したい場合があります。

たとえば、 type =nsを使用してドメインをテストできます。

[kdoyle@localhost ~]$ nslookup -type=ns baeldung.com
Server:        192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
baeldung.com    nameserver = lakas.ns.cloudflare.com.
baeldung.com    nameserver = meera.ns.cloudflare.com.

その結果、ドメインを介したサーバー間通信用に構成するDNSを特定できます。 新しいDNSをクエリするには、ローカルネットワーク構成を変更する必要があることに注意してください

5. デバッグをオンにする

さらに、 nslookup のインタラクティブモードにより、ユーザーはクエリをデバッグできます。

[kdoyle@localhost ~]$ nslookup -debug baeldung.com
Server:        192.168.1.1
Address:    192.168.1.1#53

------------
    QUESTIONS:
    baeldung.com, type = A, class = IN
    ANSWERS:
    ->  baeldung.com
    internet address = 104.18.63.78
    ttl = 300
    ->  baeldung.com
    internet address = 104.18.62.78
    ttl = 300
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Non-authoritative answer:
Name:    baeldung.com
Address: 104.18.63.78
Name:    baeldung.com
Address: 104.18.62.78
------------
    QUESTIONS:
    baeldung.com, type = AAAA, class = IN
    ANSWERS:
    ->  baeldung.com
    has AAAA address 2606:4700:3030::6812:3e4e
    ttl = 300
    ->  baeldung.com
    has AAAA address 2606:4700:3036::6812:3f4e
    ttl = 300
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Name:    baeldung.com
Address: 2606:4700:3030::6812:3e4e
Name:    baeldung.com
Address: 2606:4700:3036::6812:3f4e

6. 結論

要約すると、 nslookup コマンドは基本的で、非常に便利です。 2つのモードとさまざまなタイプのクエリ、およびトラブルシューティングが必要になった場合にデバッグする機能を確認しました。