ネットワーク管理者必携の定番書籍『DNS & BIND』の改訂版。第5版の本書では、BIND 8.4.7だけでなくBIND 9シリーズの最新版BIND 9.5.0-P1にも対応しました。BIND 9.3.2以降ではセキュリティ面とIPv6対応が強化されたほか、国際化ドメイン名、ENUM(electronic numbering)、SPF(Sender Policy Framework)といった新しい機能が追加されました。日々の仕事でDNSに触れることが多い管理者にも、インターネットについてもっと詳しくなってその仕組み理解したいと思っているエンドユーザにもお勧めです
DNS & BIND 第5版
Cricket Liu, Paul Albitz 著、小柏 伸夫 訳
- TOPICS
- Web , System/Network
- 発行年月日
- 2008年12月
- PRINT LENGTH
- 672
- ISBN
- 978-4-87311-390-6
- 原書
- DNS and BIND, Fifth Edition
- FORMAT
正誤表
ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。
正誤表 - 2009年10月掲載(2刷以降は修正済み)
■P.54 18行目
- 【誤】# もの)hあ、パケットを一瞬にして転送したりはしないという点である。
- 【正】# もの)は、パケットを一瞬にして転送したりはしないという点である。
- 【誤】serverステートメントのサブステートメントendsを用いて、
- 【正】serverステートメントのサブステートメントednsを用いて、
目次
目次 訳者まえがき まえがき 1章 背景 1.1 インターネットの歴史についての(とても)簡単な説明 1.2 “the Internet”と“internet” 1.2.1 ドメインネームシステムの歴史 1.3 ドメインネームシステムの簡単な説明 1.4 BIND の歴史 1.5 DNS を使う必要があるの? 2章 DNSの仕組み 2.1 ドメイン名空間 2.1.1 ドメイン名 2.1.2 ドメイン 2.1.3 資源レコード 2.2 インターネットのドメイン名空間 2.2.1 トップレベルドメイン 2.2.2 下位のドメイン 2.2.3 ドメイン名の読み方 2.3 委任 2.4 ネームサーバとゾーン 2.4.1 サブドメインの委任 2.4.2 ネームサーバの種類 2.4.3 ゾーンデータファイル 2.5 リゾルバ 2.6 名前の解決 2.6.1 ルートネームサーバ 2.6.2 再帰 2.6.3 反復 2.6.4 ネームサーバの選択 2.6.5 ここまでの整理 2.6.6 アドレスから名前へのマッピング 2.7 キャッシュ 2.7.1 生存時間 3章 最初の仕事 3.1 BIND の入手 3.1.1 便利なメーリングリストとUsenet ニュースグループ 3.1.2 IP アドレスを見つける 3.2 ドメイン名の選択 3.2.1 レジストラとレジストリについて 3.2.2 ドメイン名空間の中でどこが自分にふさわしいか 3.2.3 米国に戻ろう 3.2.4 ネットワークアドレスの登録チェック 3.2.5 ゾーンの登録 4章 BINDの設定 4.1 例として使うゾーン 4.2 ゾーンデータの設定 4.2.1 ゾーンデータファイル 4.2.2 コメント 4.2.3 ゾーンのデフォルトTTL の設定 4.2.4 SOA レコード 4.2.5 NS レコード 4.2.6 アドレスレコードと別名レコード 4.2.7 PTR レコード 4.2.8 完成したゾーンデータファイル 4.2.9 ループバックアドレス 4.2.10 ルートヒントデータ 4.3 BIND 設定ファイルの記述 4.4 省略形 4.4.1 ドメイン名の付加 4.4.2 @ 記法 4.4.3 直前の名前の繰り返し 4.4.4 簡略化されたゾーンデータファイル 4.5 ホスト名のチェック 4.6 ツール 4.6.1 BIND 9 のツール 4.7 プライマリネームサーバの運用 4.7.1 ネームサーバの起動 4.7.2 syslog に出力されたエラーの確認 4.7.3 nslookup による設定内容のテスト 4.7.4 起動ファイルの修正 4.8 スレーブネームサーバの運用 4.8.1 設定 4.8.2 バックアップファイル 4.8.3 SOA レコードの値 4.8.4 複数のマスタサーバ 4.9 ゾーンの追加 4.10 次章では 5章 DNSと電子メール 5.1 MX レコード 5.2 movie.edu のメールサーバ 5.3 メールエクスチェンジャについての再考 5.4 MX のアルゴリズム 5.5 DNS と電子メール認証 5.5.1 送信者ポリシーフレームワーク 6章 ホストの設定 6.1 リゾルバ 6.2 リゾルバの設定 6.2.1 ローカルドメイン名 6.2.2 探索リスト 6.2.3 search ディレクティブ 6.2.4 nameserver ディレクティブ 6.2.5 sortlist ディレクティブ 6.2.6 options ディレクティブ 6.2.7 コメント 6.2.8 4.9 リゾルバのディレクティブに関する注意 6.3 リゾルバの設定例 6.3.1 リゾルバのみの場合 6.3.2 自ホストにネームサーバがある場合 6.4 苦労を最小限に抑えるために 6.4.1 サービスの動作の違い 6.4.2 電子メール 6.4.3 .rhosts やhosts.equiv などの更新 6.4.4 別名の提供 6.5 追加の設定ファイル 6.5.1 nsswitch.conf 6.6 Windows XP のリゾルバ 6.6.1 キャッシュ 6.6.2 サブネットの優先順位づけ 7章 BINDの運用 7.1 ネームサーバの制御 7.1.1 ndc とcontrols(BIND 8) 7.1.2 rndc とcontrols(BIND 9) 7.1.3 シグナルの使用 7.2 ゾーンデータファイルの更新 7.2.1 ホストの追加と削除 7.2.2 SOA のシリアル番号 7.2.3 新しいシリアル番号から始める 7.2.4 補助的なゾーンデータファイルエントリ 7.2.5 ホストテーブルからのゾーンデータファイルの生成 7.2.6 ルートヒントを最新に保つ 7.3 ファイル構成の整理 7.3.1 複数のディレクトリを使う 7.3.2 ゾーンデータファイルの起点名の変更 7.3.3 他のゾーンデータファイルの挿入 7.4 システムファイルの場所の変更 7.5 ログ出力 7.5.1 logging ステートメント 7.5.2 チャネルの詳細 7.5.3 カテゴリの詳細 7.6 すべてをスムーズに 7.6.1 よく目にするsyslog メッセージ 7.6.2 BIND の統計情報を理解する 8章 ドメインの拡張 8.1 ネームサーバはいくつ必要か 8.1.1 ネームサーバをどこに置くか 8.1.2 容量の見積り 8.2 ネームサーバの追加 8.2.1 プライマリマスタサーバとスレーブサーバ 8.2.2 キャッシュ専用サーバ 8.2.3 部分的なスレーブネームサーバ 8.3 ネームサーバの登録 8.4 TTL の変更 8.4.1 SOA 中の他の値の変更 8.5 障害にそなえて 8.5.1 停電 8.5.2 推奨される方法 8.6 障害が起きたら 8.6.1 長めの停止の場合(数日) 8.6.2 非常に長い停止の場合(数週間) 9章 親の仕事 9.1 いつ親になるか 9.2 子供をいくつ作るか 9.3 子供の名前 9.4 子供の作り方 9.4.1 委任をしない場合のサブドメインの作成 9.4.2 委任をする場合のサブドメインの作成 9.4.3 fx.movie.edu 用のスレーブ 9.4.4 movie.edu のプライマリネームサーバでの作業 9.4.5 in-addr.arpa ゾーンの委任 9.4.6 movie.edu のスレーブの追加 9.5 in-addr.arpa ドメインのサブドメイン 9.5.1 オクテット境界でのサブネット化 9.5.2 オクテット境界以外でのサブネット化 9.6 よい親になるために 9.6.1 host の使い方 9.6.2 委任の管理 9.7 サブドメインへの移行の管理 9.7.1 親の別名を削除 9.8 親の一生 10章 高度な機能 10.1 アドレスマッチリストとACL 10.2 DNS 動的更新 10.2.1 動的更新とシリアル番号 10.2.2 動的更新とゾーンデータファイル 10.2.3 アクセスコントロールリストの更新 10.2.4 TSIG 署名つき更新 10.3 DNS NOTIFY(ゾーン変更通知) 10.4 差分ゾーン転送(IXFR) 10.4.1 IXFR の制約 10.4.2 IXFR の比較機能 10.4.3 IXFR ファイル 10.4.4 BIND 8 のIXFR 設定 10.4.5 BIND 9 のIXFR 設定 10.5 回送 10.5.1 制約を強化したネームサーバ 10.5.2 回送ゾーン 10.6 ビュー 10.7 ラウンドロビンによる負荷分散 10.7.1 複数の別名 10.7.2 rrset-order サブステートメント 10.8 ネームサーバアドレスの順序づけ 10.9 特定のネットワーク上のネームサーバの優先 10.10 非再帰的なネームサーバ 10.11 異常なネームサーバの排除 10.12 システムのチューニング 10.12.1 ゾーン転送 10.12.2 リソースの制限 10.12.3 保守間隔 10.12.4 TTL 10.13 互換性 10.14 IPv6 アドレッシングの基本 10.15 アドレスとポート 10.15.1 IPv4 トランスポートの設定 10.15.2 IPv6 トランスポートの設定 10.15.3 EDNS0 10.15.4 IPv6 の正引きと逆引き 10.15.5 AAAA とip6.arpa 10.15.6 A6、DNAME、ビットストリングラベル、およびip6.arpa 11章 セキュリティ 11.1 TSIG 11.1.1 単方向ハッシュ関数 11.1.2 TSIG レコード 11.1.3 TSIG の設定 11.1.4 TSIG の利用 11.2 ネームサーバのセキュリティの確保 11.2.1 BIND のバージョン 11.2.2 問い合わせの制限 11.2.3 無許可のゾーン転送の禁止 11.2.4 最小限の権限でのBIND の実行 11.2.5 ネームサーバの機能分割 11.2.6 1 つで2 役のネームサーバ 11.3 DNS とインターネットファイアウォール 11.3.1 ファイアウォールソフトウェアの種類 11.3.2 悪い例 11.3.3 インターネットフォワーダ 11.3.4 内部ルート 11.3.5 分離された名前空間 11.4 DNS セキュリティ拡張 ・342 11.4.1 公開鍵暗号方式と電子署名 11.4.2 DNSKEY レコード 11.4.3 RRSIG レコード 11.4.4 NSEC レコード 11.4.5 DS レコードと信用の連鎖 11.4.6 DO、AD およびCD 11.4.7 レコードの使い方 11.4.8 DNSSEC と性能 11.4.9 ゾーン署名鍵と鍵署名鍵 11.4.10 ゾーンへの署名 11.4.11 DNSSEC と動的更新 11.4.12 鍵の変更 11.4.13 結局いったい何だったのか 12章 nslookupとdig 12.1 nslookup はよいツールか 12.1.1 複数のネームサーバ 12.1.2 タイムアウト 12.1.3 探索リスト 12.1.4 ゾーン転送 12.1.5 NIS と/etc/hosts の利用 12.2 対話型と非対話型 12.3 オプション設定 12.3.1 .nslookuprc ファイル 12.4 探索リストの無効化 12.5 一般的な作業 12.5.1 異なるレコード型の検索 12.5.2 権威つきの回答と権威なしの回答 12.5.3 ネームサーバの切り替え 12.6 それほど一般的ではない作業 12.6.1 問い合わせメッセージと応答メッセージを表示する 12.6.2 BIND ネームサーバの問い合わせを模倣する 12.6.3 ゾーン転送 12.7 nslookup のトラブルシューティング 12.7.1 正しいレコードの検索 12.7.2 ネームサーバからの応答がない 12.7.3 ネームサーバのアドレスに対してPTR レコードが存在しない 12.7.4 問い合わせが拒否される 12.7.5 resolv.conf の最初のネームサーバが応答しない 12.7.6 検索の対象を知る 12.7.7 特定されないエラー 12.8 ネット上の最高の喜び 12.9 dig を使う 12.9.1 dig の出力フォーマット 12.9.2 dig によるゾーン転送 12.9.3 dig のオプション 13章 BINDデバッグ出力の読み方 13.1 デバッグレベル 13.1.1 各レベルで出力される情報 13.2 デバッグをオンにする 13.2.1 コマンドラインでのデバッグオプション 13.2.2 制御メッセージによるデバッグレベルの変更 13.3 デバッグ出力を読む 13.3.1 ネームサーバの起動例(BIND 8、デバッグレベル1) 13.3.2 ネームサーバの起動例(BIND 9、デバッグレベル1) 13.3.3 正常な検索の例(BIND 8、デバッグレベル1) 13.3.4 正常な検索の例(BIND 9、デバッグレベル1) 13.3.5 再送による検索の成功例(BIND 8、デバッグレベル1) 13.3.6 スレーブネームサーバによるゾーンのチェックの例 (BIND 8、デバッグレベル1) 13.3.7 スレーブネームサーバによるゾーンのチェックの例 (BIND 9、デバッグレベル1) 13.4 リゾルバの探索アルゴリズムとネガティブキャッシュ(BIND 8) 13.5 リゾルバの探索アルゴリズムとネガティブキャッシュ(BIND 9) 13.6 ツール 14章 DNSとBINDのトラブルシューティング 14.1 NIS に原因があるかもしれない 14.2 トラブルシューティング用のツールとテクニック 14.2.1 named-xfer の使い方 14.2.2 named-xfer を持っていない場合 14.2.3 データベースダンプの読み方 14.2.4 BIND 9 のデータベースダンプの読み方 14.2.5 問い合わせログ 14.3 一般的な問題のリスト 14.3.1 問題1:シリアル番号の増やし忘れ 14.3.2 問題2:プライマリマスタネームサーバのリロードし忘れ 14.3.3 問題3:スレーブネームサーバがゾーンデータを読み出せない 14.3.4 問題4:ゾーンデータファイルに名前を追加したが、 PTR レコードを追加するのを忘れた 14.3.5 問題5:設定ファイルやDNS ゾーンデータファイル中の文法エラー 14.3.6 問題6:ゾーンデータファイル中でドメイン名の最後にドットを つけ忘れた 14.3.7 問題7:ルートヒントがない 14.3.8 問題8:ネットワーク接続が失われた 14.3.9 問題9:サブドメインの委任が行われていない 14.3.10 問題10:サブドメインの委任設定ミス 14.3.11 問題11:resolv.conf 中の文法エラー 14.3.12 問題12:ローカルドメイン名が設定されていない 14.3.13 問題13:予期しないソースからの応答 14.4 バージョンアップに伴う問題 14.4.1 リゾルバの動作 14.4.2 ネームサーバの動作 14.5 相互運用性とバージョンの問題 14.5.1 WINS 固有のレコードによってゾーン転送が失敗する 14.5.2 ネームサーバが“No NS RR for SOA MNAME”を報告する 14.5.3 ネームサーバが“Too Many Open Files”を報告する 14.5.4 リゾルバが“asked for PTR, got CNAME”を報告する 14.5.5 UDP チェックサムが無効であるためにネームサーバの起動に失敗する 14.5.6 他のネームサーバが否定応答をキャッシュしない 14.5.7 TTL が設定されていない 14.6 TSIG のエラー 14.7 症状から問題を探る 14.7.1 ローカルドメイン名を検索できない 14.7.2 リモートな名前を検索できない 14.7.3 間違った回答や一貫性のない回答 14.7.4 検索に長い時間がかかる 14.7.5 ホストへのrlogin やrsh のアクセス権のチェックが失敗する 14.7.6 サービスへのアクセスが拒否される 14.7.7 古いデータを取り除けない 15章 リゾルバおよびネームサーバライブラリルーチンを使ったプログラミング 15.1 nslookup を使ったシェルスクリプトの作成 15.1.1 典型的な問題 15.1.2 スクリプトによるこの問題の解法 15.2 リゾルバライブラリルーチンを使ったC プログラムの作成 15.2.1 DNS メッセージのフォーマット 15.2.2 ドメイン名の格納 15.2.3 ドメイン名の圧縮 15.2.4 リゾルバライブラリルーチン 15.2.5 _res 構造体 15.2.6 ネームサーバライブラリルーチン 15.2.7 DNS メッセージの解析 15.2.8 サンプルプログラム:check_soa 15.3 Net::DNS を使ったPerl プログラミング 15.3.1 リゾルバオブジェクト 15.3.2 パケットオブジェクト 15.3.3 ヘッダオブジェクト 15.3.4 問い合わせオブジェクト 15.3.5 資源レコードオブジェクト 15.3.6 Perl バージョンのcheck_soa 16章 アーキテクチャ――DNS システム全体設計 16.1 外部向け権威DNS インフラ 16.2 フォワーダのインフラ 16.3 内部DNS インフラ 16.4 運用 16.5 DNS およびBIND の更新 17章 その他のトピックス 17.1 CNAME レコードの使い方 17.1.1 中間ノードに対するCNAME 17.1.2 他のCNAME を指すCNAME 17.1.3 資源レコードデータ中のCNAME 17.1.4 複数のCNAME レコード 17.1.5 CNAME レコードの検索 17.1.6 ホストの別名の検索 17.2 ワイルドカード 17.3 MX レコードの制限 17.4 ダイアルアップ接続 17.4.1 ダイアルアウトの原因 17.4.2 ダイアルアウトの回避 17.4.3 ホストが1 台の場合のマニュアルダイアルアップ 17.4.4 複数のホストからのマニュアルダイアルアップ 17.4.5 1 台のホストからのダイアルオンデマンド 17.4.6 複数のホストからのダイアルオンデマンド接続 17.4.7 ダイアルオンデマンドでの権威ネームサーバの実行 17.5 ネットワーク名とネットワーク番号 17.6 その他の資源レコード 17.6.1 AFSDB 17.6.2 LOC 17.6.3 SRV 17.7 ENUM 17.7.1 E.164 番号からドメイン名への変換 17.7.2 NAPTR レコード 17.7.3 ENUM ドメイン名の登録 17.7.4 ENUM におけるプライバシとセキュリティ 17.8 国際化ドメイン名 17.9 DNS とWINS 17.10 DNS、Windows、Active Directory 17.10.1 Windows による動的更新の使用 17.10.2 Active Directory とBIND にかかわる問題 17.10.3 安全な動的更新 17.10.4 ではどうするか 付録A DNSのメッセージフォーマットと資源レコード A.1 マスタファイルのフォーマット A.1.1 大文字と小文字 A.1.2 型 A.1.3 RFC 1183 で提案された新しいレコード型 A.1.4 RFC 1664 で提案された新しいレコード型 A.1.5 RFC 3596 で提案された新しいレコード型 A.1.6 RFC 2782 で提案された新しいレコード型 A.1.7 RFC 2915 で提案された新しいレコード型 A.1.8 クラス A.2 DNS メッセージ A.2.1 メッセージのフォーマット A.2.2 ヘッダ部のフォーマット A.2.3 問い合わせ部のフォーマット A.2.4 回答部、権威部、および付加情報部のフォーマット A.2.5 データの転送順序 A.3 資源レコードのデータ A.3.1 データフォーマット 付録B BINDの互換性一覧表 付録C Linux環境でのBINDのコンパイルとインストール C.1 BIND 8 の場合の手順 C.1.1 ソースコードの入手 C.1.2 ソースコードの展開 C.1.3 適切なコンパイラ設定 C.1.4 BIND のコンパイル C.2 BIND 9 の場合の手順 C.2.1 ソースコードの入手 C.2.2 ソースコードの展開 C.2.3 configure スクリプトによるコンパイル 付録D トップレベルドメイン 付録E BINDネームサーバおよびリゾルバの設定 E.1 BIND ネームサーバの起動ファイル用のディレクティブと 設定ファイル用のステートメント E.2 BIND 8 の設定ファイル用のステートメント E.3 BIND 9 の設定ファイル用のステートメント E.3.1 コメント E.4 BIND リゾルバ用のステートメント E.5 BIND 9 オプションステートメント E.5.1 定義と使い方 E.5.2 ブール値のオプション E.5.3 フォワーディング E.5.4 デュアルスタックサーバ E.5.5 アクセス制御 E.5.6 インタフェース E.5.7 問い合わせアドレス E.5.8 ゾーン転送 E.5.9 利用不可UDP ポート番号リスト E.5.10 OS 資源の制限 E.5.11 サーバ資源制限 E.5.12 定期的な処理の間隔 E.5.13 トポロジ E.5.14 並べ替えリストステートメント E.5.15 RR セットの順番 E.5.16 調整 E.5.17 組み込みのサーバ情報ゾーン 索引