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構成の最適化には、これらの機能を正しく理解し、組み合わせて運用することが重要です。
あわせて読みたい


DNS の仕組みとキャッシュ・再帰・権威サーバ関係
DNS(Domain Name System)は、インターネット通信の基盤となる「名前解決システム」です。人が覚えやすいドメイン名(例:example.com)を、コンピュータが通信に使うI…
