0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DNS、CDNサービスの詳細解説(四)

Last updated at Posted at 2025-04-08

DNSサーバー実装の実践ガイド:動的更新とクライアントキャッシュ

1. Webサーバー連携設定

1.1 HTTPサーバーのインストールと基本設定

# Apache HTTPサーバーのインストール
sudo yum -y install httpd

# テスト用インデックスページの作成
echo "www.example.com" | sudo tee /var/www/html/index.html

# サービスの起動と自動起動設定
sudo systemctl enable --now httpd

検証コマンド

curl -I http://localhost

2. クライアント側でのDNS設定

2.1 ネットワーク設定ファイルの編集

# CentOS/RHELの場合
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1="10.0.0.8"

# 設定の再読み込み
sudo nmcli con reload
sudo nmcli con up eth0

2.2 設定の確認

cat /etc/resolv.conf
# 期待される出力:
# nameserver 10.0.0.8

2.3 DNS解決のテスト

dig www.example.com +short
# 期待される出力:10.0.0.7

curl http://www.example.com
# 期待される出力:www.example.com

3. 動的DNS更新の実装

3.1 ゾーン設定の変更

zone "example.com" IN {
    type master;
    file "example.com.zone";
    allow-update { any; };
};

3.2 必要な権限設定

sudo chmod 770 /var/named
sudo setsebool -P named_write_master_zones on

3.3 nsupdateコマンドによる動的更新

nsupdate
> server 127.0.0.1
> zone example.com
> update add ftp.example.com 86400 IN A 203.0.113.10
> send
> quit

更新検証

dig ftp.example.com +short
# 期待される出力:203.0.113.10

4. DNSクライアントキャッシュの最適化

4.1 CentOS/RHELでの設定

# nscdのインストールと設定
sudo yum -y install nscd
sudo systemctl enable --now nscd

# キャッシュ統計の確認
sudo nscd -g | grep -A 5 "hosts cache"

# キャッシュのクリア
sudo nscd -i hosts

主要統計指標

指標 説明
cache hit rate キャッシュヒット率
current cached 現在のキャッシュエントリ数
maximum cached 最大キャッシュエントリ数

4.2 Ubuntuでの設定

# キャッシュステータスの確認
systemd-resolve --statistics

# キャッシュのクリア
sudo systemd-resolve --flush-caches

systemd-resolvedの主な機能

  • DNSSEC検証
  • LLMNR/MDNSサポート
  • 複数DNSサーバーのフェイルオーバー

5. トラブルシューティングチェックリスト

5.1 一般的な問題と解決策

現象 確認ポイント 解決方法
名前解決できない dig +traceの結果 ファイアウォール設定確認
ゾーン転送失敗 マスタ/スレーブのシリアル番号 シリアル番号のインクリメント
動的更新が反映されない SELinuxコンテキスト named_write_master_zones設定
キャッシュがクリアされない nscdサービスのステータス サービス再起動

5.2 ログ確認方法

# BINDログの確認
sudo tail -f /var/log/named.log

# システムログのフィルタリング
journalctl -u named --since "1 hour ago"

6. セキュリティベストプラクティス

6.1 推奨設定項目

  1. TSIG鍵を使用したゾーン転送制限
  2. 再帰問い合わせの制限
  3. DNSSECの有効化
  4. 定期的なゾーンファイルのバックアップ
  5. 不要なDNS機能の無効化(例:version.bind問い合わせ)
// セキュアなoptions設定例
options {
    allow-recursion { 192.168.0.0/24; };
    allow-transfer { none; };
    dnssec-validation auto;
    version "not disclosed";
};

7. パフォーマンスチューニング

7.1 キャッシュ設定の最適化

options {
    max-cache-size 512M;
    max-cache-ttl 3600;    // 1時間
    min-cache-ttl 300;     // 5分
    cleaning-interval 60;  // 1分毎のキャッシュ掃除
};

7.2 スレッドプール設定

options {
    listen-on port 53 { any; };
    coresize default;
    datasize default;
    stacksize default;
    max-ncache-ttl 10800;  // 3時間
};
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?