8.1. DNSの基礎知識
8.1.1. 名前解決
DNSサーバはホスト名とIPアドレスを相互に変換する名前解決という仕組みを提供する。
ホスト名からIPアドレスを求めることは正引き、その逆を逆引きと呼ぶ。
ホスト名はコンピュータに付けられた固有の名前。
ドメイン名(XX.comなど)はホストの所属するネットワーク上の区画を表す。
www.XX.comなどはFDQN(完全修飾ドメイン名)と呼ばれる。
8.1.2. DNSの仕組み
LinuxにおけるDNSによる名前解決(www.XX.comの例)の手順は以下の通り。
- Webサーバやアプリは名前解決ライブラリのリゾルバに名前解決を依頼する
- リゾルバは/etc/resolv.confに指定されているDNSサーバAに問い合わせを行う
- DNSサーバAはルートDNSサーバに問い合わせを行う
- ルートDNSサーバはwww.XX.comを知らない代わりに、.com管轄のDNSサーバCの情報を返す
- DNSサーバAはDNSサーバCに対し問い合わせる
- DNSサーバCは名前解決対象のドメイン名を知らない代わりに、XX.com管轄のDNSサーバDの情報を返す
- DNSサーバAはDNSサーバDに対し問い合わせる
- DNSサーバDはwww.XX.comのIPアドレスを返す
- DNSサーバAは得られた情報をキャッシュしリゾルバに送信する
- リゾルバは得られたIPアドレスをWebブラウザやアプリに知らせる
8.1.3. DNSサーバ
BIND
BIND(ISC DNS)はDNSサーバソフトウェアであり、多くのLinuxディストリビューションで採用されている。
BINDのサーバデーモンはnamedである。
/etc/dhcpd.conf
BIND以外のDNSサーバ
| 名前 | 説明 | 設定ファイル | 
|---|---|---|
| dnsmasq | DNS/DHCPサーバ機能を提供する軽量ソフトウェア | /etc/dnsmasq.conf | 
| PowerDNS | コンテンツサーバ/キャッシュサーバ機能を提供する。DNSのキャッシュサーバやDHCPサーバなどの機能を持つ | /etc/pdns/pdns.conf | 
| djbdns | DNSのキャッシュサーバとコンテンツサーバの機能が分かれている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アドレス(デフォルト) | 
| ptr | IPアドレスに対応するホスト名 | 
| ns | DNSサーバ | 
| mx | メールサーバ | 
| soa | SOAレコード情報 | 
| hinfo | ホスト情報 | 
| axfr | ゾーン転送 | 
| txt | 任意の文字列 | 
| any | すべての情報 | 
なお問い合わせ後に表示されるflagsには以下のようなものがある。
| フラグ | 説明 | 
|---|---|
| qr | 問い合わせに対する回答 | 
| aa | 権威のある回答 | 
| rd | 再帰検索を希望 | 
| ra | 再帰検索が可能 | 
また回答の表示されるセクションは4つに分かれる。
- QUSETION SECITION- 問い合わせ内容の表示
 
- ANSWER SECTION- 問い合わせの回答内容の表示
 
- AUTHORITY SECTION- 問い合わせ先に権威がある場合に表示
 
- ADDITIONAL SECTION- 回答したホストのIPアドレスなど追加情報が表示