CodeGym /コース /Docker SELF /DNSチェック: コマンド `nslookup`, `dig`

DNSチェック: コマンド `nslookup`, `dig`

Docker SELF
レベル 4 , レッスン 2
使用可能

DNSチェック: コマンド nslookup, dig

1. DNSの概要

こういうことを想像してみて: お気に入りのサイト、例えばgoogle.comにアクセスしたい。でもブラウザは「google」という言葉を理解できない。ブラウザはIPアドレス(例: 142.250.74.206)が必要なんだ。このドメイン名をIPアドレスに変換するのがDNS (Domain Name System)の役目だよ。このプロセスがうまくいかないと、ブラウザから「サーバーが見つかりません」というエラーメッセージが表示される。将来のLinuxネットワークマスターとして、DNSに関する問題を診断して解決する術を知ることは必須だよ。

DNSはインターネットの電話帳みたいなもの。難しいIPアドレスを覚えなくても、便利な名前を利用でき、それがDNSによって変換される。以下にいくつかの重要な概念を挙げるね:

  1. DNSレコード:

    • Aレコード (Address Record): ドメイン名をIPv4アドレスに紐付ける。
    • AAAAレコード: ドメイン名をIPv6アドレスに紐付ける。
    • CNAMEレコード (Canonical Name): ドメインのエイリアスを指す。
    • MXレコード (Mail Exchange): メールの処理サーバを指す。
  2. DNSサーバー:

    • 普段のユーザーは、通常、自分のプロバイダのDNSサーバーを使用する。
    • 代わりに、Google公開DNSサーバー (8.8.8.8) やCloudflare (1.1.1.1) を使うこともできる。
  3. 名前解決:

    • ブラウザにドメイン名を入力すると、それがDNSサーバーに送信され、対応するIPアドレスを取得する。

この基礎知識を持って、コマンドnslookupdigを使ったDNSの魔法を実践的に学ぶ準備ができたよ。


2. コマンド nslookup

nslookup は、DNSの動作を確認するためのユーティリティだよ。Linuxのほとんどのディストリビューションやその他のOSでも利用できる。

基本的な構文:

nslookup [オプション] [ドメインまたはIPアドレス]

簡単な例:

google.comのIPアドレスをチェックするよ:

nslookup google.com

出力:

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 142.250.74.206

出力に関する注記:

  • Server: リクエストを処理したDNSサーバー。
  • Non-authoritative answer: これは情報がルートDNSサーバーから直接取得されたのではなく、他のサーバーのキャッシュから得られたことを意味する。

DNSサーバーのチェック

特定のDNSサーバーを使いたい場合、コマンドで指定することも可能だよ:

nslookup google.com 8.8.8.8

ここではGoogleのDNSサーバー(8.8.8.8)を明示的に選択したんだ。

実践: 学習サイトのIPを探そう

次のコマンドを試してみて:

nslookup linux.org

結果を見てみてね — サイトのサーバーと関連付けられたIPアドレスが表示されるはず。


3. コマンド dig

dig (Domain Information Groper) は、DNSのためのより高度なツール。DNS問い合わせと応答に関する詳細情報を提供してくれるんだよ。

基本的な構文:

dig [ドメイン] [オプション]

クエリの例:

dig google.com

出力 (主なポイント):

;; Question section:
;google.com.			IN	A

;; ANSWER SECTION:
google.com.		300	IN	A	142.250.74.206

;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Oct 19 10:00:00 UTC 2023
;; MSG SIZE  rcvd: 68

出力セクション:

  • ANSWER SECTION: ドメインに関連付けられているIPアドレス。
  • Query time: クエリ処理時間。
  • SERVER: クエリを処理したDNSサーバー。

4. 主なDNSレコードとその確認方法

Aレコード (IPv4)

dig linux.org A

結果にはドメインのIPv4アドレスが表示されるよ。

AAAAレコード (IPv6)

dig linux.org AAAA

出力にはIPv6アドレスが含まれる。現代のネットワークで作業している場合に便利だよ。

MXレコード (メールサーバー)

dig linux.org MX

このコマンドは、ドメインに対してメールのやり取りを処理するサーバーを確認するために使われるよ。


5. 詳細な実践: dig vs nslookup

さて、2つのコマンドの結果を比較できます:

  1. 実行してみて:

        nslookup linux.org
    
  2. その次に:

        dig linux.org
    

digは詳細情報を提供することに注目してください。例えば、リクエストの実行時間や、リクエストに応答したサーバーに関する情報が見えます。


6. GoogleのDNSサーバーのチェック

目的:

  1. nslookup を使って、Googleの公開DNSサーバーが動作しているか確認する:

    nslookup github.com 8.8.8.8
    
  2. 次に、dig を使って同じことを試す:

    dig @8.8.8.8 github.com
    
  3. そのサイトにIPv6アドレスが存在するか確認する:

    dig github.com AAAA
    

7. 典型的なエラーと特徴

DNSの作業はほとんど常に次の問題に直面する:

  1. DNSサーバーの設定ミス: DNSサーバーが動作していないか、設定が間違っている場合、応答を得られないことがあるよ。nslookup または dig を使う時に手動でIPを指定して、サーバーの利用可能性を確認してみて。
  2. DNSキャッシュ: 時々、DNSの変更はキャッシュのせいで時間がかかるよ。例えば、DNSレコードが最近変更された場合、古い情報を見ることがある。

  3. DNSサーバーの利用不可: もし connection timed out; no servers could be reached のようなエラーが見られたら、サーバーが利用できないか、ブロックされている可能性があるよ。

  4. 代替コマンド: nslookup はLinuxの最小インストールにいつも含まれているわけじゃないけど、dig は標準のツールセットに入っていることが多いよ。

知識を実践に活かす:これを知る理由は?

  • DNSの問題診断. ブラウザがなぜ「サイトが見えない」のかをすぐに理解できる。
  • サーバーの設定. クラウドでサーバーを設定する際、DNSレコードが正しく設定されているか確認する必要があるよ。
  • インターネットのセキュリティ. DNSレコードを操作するスキルは、フィッシングサイトを分析するのにも役立つ。
  • 面接で. dignslookup のコマンド知識は、Linux/DevOpsの専門家向けの標準的な質問のひとつなんだ。

これでDNSの深い理解と診断に必要な知識が整ったね。ターミナルを開いてコマンドを試してみて、どんな「DNSの失敗」にも負けないように準備しよう。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION