1. BIND DNSサーバーの基本構成
1.1 BINDのインストール
主要ディストリビューションでのインストールコマンド:
# CentOS/RHEL
sudo yum install bind bind-utils
# Ubuntu/Debian
sudo apt install bind9 bind9-utils bind9-host
1.2 主要ファイル構成
ファイル/ディレクトリ | 説明 |
---|---|
/etc/named.conf | メイン設定ファイル |
/etc/named.rfc1912.zones | ゾーン定義ファイル |
/var/named/ | ゾーンファイル格納ディレクトリ |
/usr/sbin/named | BINDデーモン実行ファイル |
/var/log/named.log | ログファイル(デフォルト) |
2. プライマリDNSサーバー設定手順
2.1 メイン設定ファイルの編集
sudo vim /etc/named.conf
変更ポイント:
options {
listen-on port 53 { any; }; // 全インターフェースでリッスン
allow-query { any; }; // 全クライアントからの問い合わせ許可
dnssec-validation no; // DNSSEC検証無効化(テスト環境用)
};
2.2 ゾーン定義の追加
sudo vim /etc/named.rfc1912.zones
追加例:
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
2.3 ゾーンファイルの作成
sudo cp -p /var/named/named.localhost /var/named/example.com.zone
sudo vim /var/named/example.com.zone
基本テンプレート:
$TTL 1D
@ IN SOA ns1.example.com. admin.example.com. (
2023082101 ; Serial
3H ; Refresh
15M ; Retry
1W ; Expire
1D ) ; Minimum TTL
NS ns1.example.com.
NS ns2.example.com.
ns1 A 192.168.1.10
ns2 A 192.168.1.20
www A 192.168.1.100
mail MX 10 mail.example.com.
3. 設定検証とサービス起動
3.1 構文チェック
# メイン設定ファイル検証
sudo named-checkconf
# ゾーンファイル検証
sudo named-checkzone example.com /var/named/example.com.zone
3.2 サービス操作
# サービス起動
sudo systemctl start named
# 設定再読み込み
sudo rndc reload
# または
sudo systemctl reload named
4. 主要管理ツールの活用
4.1 digコマンド活用例
# 基本クエリ
dig example.com
# 詳細オプション付き
dig +trace +nodnssec example.com
# 逆引き確認
dig -x 192.168.1.100
# ゾーン転送シミュレーション
dig axfr example.com @localhost
4.2 rndc管理コマンド
コマンド | 機能 |
---|---|
rndc status | サービス状態表示 |
rndc reload | 設定再読み込み |
rndc querylog | クエリログの有効化/無効化 |
rndc flush | キャッシュ消去 |
rndc stats | 統計情報の出力 |
5. 実践的な設定例:Webサーバー向けDNS
5.1 ネットワーク構成
5.2 詳細設定手順
- 基本Aレコード設定
web01 A 203.0.113.10
web02 A 203.0.113.20
- ロードバランシング設定
www A 203.0.113.10
www A 203.0.113.20
- フェイルオーバー設定
MX 10 primary-mail.example.com.
MX 20 backup-mail.example.com.
5.3 高度な設定テクニック
TTL最適化例:
$TTL 300 ; 通常時5分
@ IN SOA ... (
2023082101
3H
15M
1W
60 ) ; ネガティブキャッシュTTL
CNAME使用時の注意点:
- MXレコードとの併用不可
- 他のCNAMEを参照不可
- ゾーン頂点での使用不可
6. トラブルシューティングガイド
6.1 一般的なエラーと解決策
エラーメッセージ | 原因 | 解決方法 |
---|---|---|
SERVFAIL | 権威サーバー応答不可 | 再帰問い合わせの確認 |
REFUSED | クエリ拒否 | ACL設定の見直し |
NXDOMAIN | ドメインが存在しない | ゾーンファイルの確認 |
FORMERR | パケットフォーマット異常 | クライアントソフト更新 |
6.2 デバッグ手順
- クエリの基本確認
dig +short example.com
- 再帰性問い合わせの追跡
dig +trace example.com
- ログの確認
tail -f /var/log/named.log
7. セキュリティ強化設定
7.1 chroot環境の構築
sudo yum install bind-chroot
sudo systemctl restart named-chroot
7.2 TSIG鍵によるゾーン転送保護
# 鍵生成
dnssec-keygen -a HMAC-SHA512 -b 512 -n HOST example-transfer
# 設定ファイル追記
key "example-transfer" {
algorithm hmac-sha512;
secret "xxxxxxxxxxxxxxxxxxxx==";
};
8. パフォーマンスチューニング
8.1 キャッシュ最適化
options {
max-cache-size 512M;
max-cache-ttl 3600;
min-cache-ttl 300;
};
8.2 スレッド設定
options {
listen-on-v6 { any; };
coresize default;
datasize default;
stacksize default;
max-ncache-ttl 10800;
cleaning-interval 60;
};