DNSゾーン転送(AXFR・IXFR)の仕組みとは?プライマリDNSとセカンダリーDNSの同期方法を理解する

目次
DNSゾーン転送(AXFR・IXFR)の仕組み
DNSサーバを冗長化する際に欠かせない仕組みがゾーン転送(Zone Transfer)です。
セカンダリーDNSサーバはプライマリDNSサーバが管理するゾーン情報を取得し、同じ内容で応答できる必要があります。
その際に利用されるのがAXFRとIXFRです。
DNSの学習では「セカンダリーDNSはゾーン情報を自動取得する」と説明されることが多いですが、実際にどのように同期しているのか理解している人は意外と多くありません。
本記事ではゾーン転送の仕組みやAXFRとIXFRの違い、実際の動作について解説します。
ゾーン転送とは
ゾーン転送とは、プライマリDNSサーバからセカンダリーDNSサーバへゾーン情報をコピーする仕組みです。
例えば次のような構成です。
Primary DNS
192.168.60.10
Secondary DNS
192.168.60.11セカンダリーDNSはプライマリDNSからゾーン情報を取得します。
これにより両方のDNSサーバが同じ情報を保持できます。
なぜゾーン転送が必要なのか
セカンダリーDNSは権威DNSサーバとして動作します。
しかしゾーン情報の原本は持っていません。
プライマリDNSから取得する必要があります。
Primary DNS
↓
ゾーン転送
↓
Secondary DNSこれがゾーン転送の役割です。
ゾーン転送が無い場合
もしゾーン転送が無ければ、管理者がすべてのDNSサーバを手作業で更新しなければなりません。
DNS1 修正
DNS2 修正
DNS3 修正
DNS4 修正
管理ミスの原因になります。
ゾーン転送によって自動同期が可能になります。
AXFRとは
AXFR(Full Zone Transfer)はゾーン全体を転送する方式です。
AXFR
↓
ゾーン全体コピー
最初の同期時に利用されることが多い方式です。
AXFRの動作例
プライマリDNSに次のレコードがあるとします。
www IN A 192.168.60.20
mail IN A 192.168.60.30
ftp IN A 192.168.60.40
AXFRではこれらすべてを転送します。
SOA
NS
A
MX
TXT
PTR
...
すべて転送
シンプルですが通信量は多くなります。IXFRとは
IXFR(Incremental Zone Transfer)は差分転送方式です。
IXFR
↓
変更部分のみ転送
大規模環境でよく利用されます。
IXFRの動作例
既存ゾーンです。
www IN A 192.168.60.20
mail IN A 192.168.60.30
新たに追加します。
ftp IN A 192.168.60.40
IXFRでは追加分のみ転送します。
ftp IN A 192.168.60.40
通信量を大幅に削減できます。AXFRとIXFRの違い
| 項目 | AXFR | IXFR |
|---|---|---|
| 転送方式 | 全体転送 | 差分転送 |
| 通信量 | 多い | 少ない |
| 初回同期 | 利用 | 不可 |
| 更新時 | 利用可能 | 主流 |
SOAレコードとの関係
ゾーン転送ではSOAレコードが重要です。
特にシリアル番号を利用します。
@ IN SOA ns1.example.com. root.example.com. (
2026060801
)セカンダリーDNSはこの番号を監視しています。
シリアル番号の比較
現在の状態です。
Primary DNS
2026060802
Secondary DNS
2026060801
番号が異なるため更新が必要と判断します。
その後ゾーン転送を開始します。
Refresh値の役割
SOAレコード内にはRefresh値があります。
28800
セカンダリーDNSはこの間隔でプライマリDNSへ問い合わせます。
更新があるか確認するためです。
Retry値の役割
プライマリDNSへ接続できなかった場合です。
14400
Retry値経過後に再試行します。
Expire値の役割
長期間プライマリDNSと通信できない場合です。
3600000
Expireを超えるとゾーン情報を無効と判断します。
ゾーン転送で利用するポート
DNS問い合わせは通常UDP53番ポートを利用します。
しかしゾーン転送はTCP53番ポートです。
通常問い合わせ
UDP 53
ゾーン転送
TCP 53
非常によく試験で出るポイントです。
BINDのallow-transfer設定
ゾーン転送先を制限します。
zone "example.com" {
type master;
allow-transfer {
192.168.60.11;
};
};実運用では必須設定です。
allow-transferが重要な理由
誰でもゾーン転送できる状態は危険です。
攻撃者が内部情報を取得できる可能性があります。
www
mail
vpn
db
backup
すべてのホスト名が漏洩する恐れがあります。
digによるAXFR確認
ゾーン転送確認は次のように行います。
dig @192.168.60.10 example.com AXFR
許可されていればゾーン全体が表示されます。
失敗例
allow-transferで拒否されている場合です。
Transfer failed.
正常な動作です。
ログで確認する
ゾーン転送状況はログで確認できます。
# journalctl -u named
成功例です。
transfer of 'example.com/IN'
Transfer completed
実務での運用
大規模環境では複数のセカンダリーDNSを運用します。
Primary DNS
↓
Secondary DNS 1
Secondary DNS 2
Secondary DNS 3
すべてゾーン転送によって同期されます。
よくあるトラブル
シリアル番号未更新
変更しても転送が開始されません。
allow-transfer未設定
セカンダリーDNSが取得できません。
TCP53遮断
ファイアウォールでブロックされる場合があります。
masters設定ミス
プライマリDNSへ接続できません。
実務で覚えておきたいポイント
- ゾーン転送はDNS冗長化の基盤技術
- AXFRは全体転送
- IXFRは差分転送
- SOAシリアル番号が重要
- TCP53番ポートを利用する
- allow-transferで転送先を制限する
まとめ
ゾーン転送はプライマリDNSとセカンダリーDNSを同期するための重要な仕組みです。
AXFRはゾーン全体を転送し、IXFRは変更部分のみを転送します。
また、SOAレコードのシリアル番号によって変更を検知し、TCP53番ポートを利用して同期が行われます。
DNS冗長化を実現するためには欠かせない技術であり、BIND運用では必ず理解しておくべき知識です。





