8.1. DNSの基礎知識

8.1.1. 名前解決

DNSサーバはホスト名とIPアドレスを相互に変換する名前解決という仕組みを提供する。
ホスト名からIPアドレスを求めることは正引き、その逆を逆引きと呼ぶ。

ホスト名はコンピュータに付けられた固有の名前。
ドメイン名(XX.comなど)はホストの所属するネットワーク上の区画を表す。

www.XX.comなどはFDQN(完全修飾ドメイン名)と呼ばれる。

8.1.2. DNSの仕組み

LinuxにおけるDNSによる名前解決(www.XX.comの例)の手順は以下の通り。

  1. Webサーバやアプリは名前解決ライブラリのリゾルバに名前解決を依頼する
  2. リゾルバは/etc/resolv.confに指定されているDNSサーバAに問い合わせを行う
  3. DNSサーバAはルートDNSサーバに問い合わせを行う
  4. ルートDNSサーバはwww.XX.comを知らない代わりに、.com管轄のDNSサーバCの情報を返す
  5. DNSサーバAはDNSサーバCに対し問い合わせる
  6. DNSサーバCは名前解決対象のドメイン名を知らない代わりに、XX.com管轄のDNSサーバDの情報を返す
  7. DNSサーバAはDNSサーバDに対し問い合わせる
  8. DNSサーバDはwww.XX.comのIPアドレスを返す
  9. DNSサーバAは得られた情報をキャッシュしリゾルバに送信する
  10. リゾルバは得られたIPアドレスをWebブラウザやアプリに知らせる

8.1.3. DNSサーバ

BIND

BIND(ISC DNS)はDNSサーバソフトウェアであり、多くのLinuxディストリビューションで採用されている。
BINDのサーバデーモンはnamedである。

/etc/dhcpd.conf

BIND以外のDNSサーバ

名前説明設定ファイル
dnsmasqDNS/DHCPサーバ機能を提供する軽量ソフトウェア/etc/dnsmasq.conf
PowerDNSコンテンツサーバ/キャッシュサーバ機能を提供する。DNSのキャッシュサーバやDHCPサーバなどの機能を持つ/etc/pdns/pdns.conf
djbdnsDNSのキャッシュサーバとコンテンツサーバの機能が分かれているDNSサーバ。RDBは使用できない/var/djbdns/dnscache/以下

ゾーン

ゾーンはDNSサーバが管轄するドメインの範囲のこと。
ゾーンを管理できる権威を持っていることは権威を持つと呼ぶ。

また下位のDNSサーバに対しゾーン管理を移すことは委譲と呼ぶ。

マスタDNSサーバ/スレーブDNSサーバ

  • マスタDNSサーバ
    • ゾーンファイルを所有するDNSサーバ
  • スレーブDNSサーバ
    • マスターDNSサーバのゾーン情報をコピーするDNSサーバ

なおマスタDNSサーバからスレーブDNSサーバへゾーン情報をコピーすることはゾーン転送と呼ばれる。

再帰的な問い合わせ

再帰的な問い合わせは最終的な結果を要求するDNS問い合わせのこと。
無条件に再帰的に問い合わせを許可すると、第3者からの問い合わせに回答しなくならないため、自ドメインからのみの問い合わせに対し許可をする。

8.1.4. DNSクライアントコマンド

nslookupコマンド

IPを調べたり、DNSサーバに問い合わせなどを行えるコマンド。

nslookup [オプション] [ホスト名|ドメイン名|IPアドレス]
オプション説明
-type=レコードレコードタイプの指定
-norescue再帰的問い合わせをしない

hostコマンド

DNSサーバを用いてホスト/ドメインに関する情報を表示するコマンド。
デフォルトでホスト名/IPアドレスの変換のみを行い、またDNSによる名前解決の確認に利用される。

host [オプション] ホスト名|ドメイン名|IPアドレス [問い合わせDNSサーバ]
オプション説明
-t タイプリソースレコードタイプの指定
-v詳細情報の表示

digコマンド

詳細な情報をDNSサーバから取得できるコマンド。

dig [@問い合わせ先DNSサーバ] ホスト名|ドメイン名|IPアドレス [クエリタイプ]
オプション説明
-x指定されたIPアドレスの逆引きを行う
-p ポート番号問い合わせ先のポート番号を指定(53番がデフォルト)
クエリタイプ説明
aホスト名に対応するIPアドレス(デフォルト)
ptrIPアドレスに対応するホスト名
nsDNSサーバ
mxメールサーバ
soaSOAレコード情報
hinfoホスト情報
axfrゾーン転送
txt任意の文字列
anyすべての情報

なお問い合わせ後に表示されるflagsには以下のようなものがある。

フラグ説明
qr問い合わせに対する回答
aa権威のある回答
rd再帰検索を希望
ra再帰検索が可能

また回答の表示されるセクションは4つに分かれる。

  • QUSETION SECITION
    • 問い合わせ内容の表示
  • ANSWER SECTION
    • 問い合わせの回答内容の表示
  • AUTHORITY SECTION
    • 問い合わせ先に権威がある場合に表示
  • ADDITIONAL SECTION
    • 回答したホストのIPアドレスなど追加情報が表示