DNSフォワーダとゾーン転送の仕組み

  • URLをコピーしました!

DNS(Domain Name System)は、ドメイン名とIPアドレスを対応付ける仕組みですが、実際の運用では「フォワーダ(Forwarder)」と「ゾーン転送(Zone Transfer)」という2つの重要な機能があります。 本記事では、それぞれの仕組み・設定方法・注意点をわかりやすく解説します。

目次

1. DNS フォワーダ(Forwarder)とは

フォワーダとは、DNSサーバが自分で名前解決できないときに、別のDNSサーバへ問い合わせを転送する仕組みです。 通常、企業内ネットワークでは内部DNSサーバが外部DNSへ直接問い合わせるのではなく、指定した「フォワーダ」に転送することで効率的かつ安全に名前解決を行います。

■ フォワーダの仕組み図(イメージ)


クライアント ─→ 内部DNS ─→ フォワーダDNS ─→ インターネットDNS
  • 内部DNS: 社内で使用されるローカルDNS
  • フォワーダDNS: 外部解決を代行するDNS(例:ISPのDNS)

■ フォワーダのメリット

  • キャッシュを共有し、外部問い合わせの回数を削減できる
  • 外部へのDNS通信を制御し、セキュリティを高められる
  • 内部DNSの設定負荷を軽減できる

■ BINDでのフォワーダ設定例


options {
    forwarders {
        8.8.8.8;        // Google Public DNS
        1.1.1.1;        // Cloudflare DNS
    };
    forward only;
};

forward only; を指定すると、フォワーダ経由以外の問い合わせを行わなくなります。 通常は forward first;(フォワーダ失敗時は自力解決)を利用します。

2. ゾーン転送(Zone Transfer)とは

ゾーン転送は、DNSの「ゾーン情報(ドメインに関するレコード)」を、マスターDNSからスレーブDNSへ複製する仕組みです。 これにより、冗長構成(冗長化)や負荷分散が可能になります。

■ ゾーン転送の種類

種類説明
AXFR(全転送)ゾーン全体をスレーブに転送する方式。初回同期時などに使用。
IXFR(差分転送)変更された部分だけをスレーブに転送する方式。効率的。

■ ゾーン転送の流れ


1. スレーブDNSがマスターに SOA レコードを問い合わせ
2. シリアル番号を比較し、更新があれば転送要求を送信
3. マスターDNSがAXFRまたはIXFRでデータを送信
4. スレーブDNSがゾーン情報を更新

■ BINDでのゾーン転送設定例

マスターDNS側(/etc/named.conf)


zone "example.com" {
    type master;
    file "/var/named/example.com.zone";
    allow-transfer { 192.168.1.2; };  // スレーブDNSのIPを指定
};

スレーブDNS側


zone "example.com" {
    type slave;
    masters { 192.168.1.1; };         // マスターDNSのIP
    file "/var/named/slaves/example.com.zone";
};

■ ゾーン転送が失敗する主な原因

  • allow-transfer にスレーブIPが未登録
  • ファイアウォールで TCP/53 がブロックされている
  • マスターとスレーブの時刻差が大きい
  • シリアル番号の管理ミス(更新漏れ)

3. フォワーダとゾーン転送の違いまとめ

項目フォワーダゾーン転送
目的名前解決を他のDNSに委任ゾーン情報の複製(同期)
通信方向内部DNS → 外部DNSマスターDNS → スレーブDNS
使用プロトコルUDP/TCP 53(通常問い合わせ)TCP 53(AXFR/IXFR)
用途外部DNS参照冗長化・可用性向上

4. まとめ

  • フォワーダは、DNS解決を他のサーバへ委任する仕組み
  • ゾーン転送は、マスターとスレーブ間でデータを同期する仕組み
  • いずれもDNS構成の安定性・効率化に欠かせない機能
  • セキュリティ設定(allow-transferやファイアウォール設定)を忘れずに行う

DNS構成の最適化には、これらの機能を正しく理解し、組み合わせて運用することが重要です。

目次