DNS

【初心者でも分る!】DNSゾーン転送の仕組みと設定方法の解説!【Linux】

こんにちは、インフラエンジニアのryuです。

今回は、初心者でも理解できるようにDNSゾーン転送の仕組みと設定方法の解説をします。ゾーン転送とは、簡単に言うとDNSのバックアップです。DNSサーバーを2台用意して、ゾーンを転送してゾーン情報をバックアップします。ゾーン転送が理解できていない人は必見です。

【初心者でも分る!】DNSゾーン転送の仕組みと設定方法の解説!

ゾーン転送とは、簡単に言うとDNSのバックアップです。DNSサーバーを2台用意して、ゾーンを転送してゾーン情報をバックアップします。

では、詳しく解説していきます!

ゾーン転送とは?

そもそも、ゾーンとは何でしょうか?

ゾーンとはDNSサーバーが保持しているドメインの管理情報です。つまり、AレコードやCNAMEレコードが設定してあるドメインの情報です。

ゾーンについては、こちらの記事で詳しく解説しています。参考にしてください。

では、ゾーン転送とは何でしょうか?

ゾーン転送とは、DNSサーバーが管理しているゾーン情報を別のDNSサーバーに転送することです。

イメージは↓のような感じです。

もともとゾーン情報を管理していたDNSサーバーをマスターサーバー(プライマリサーバー)、ゾーン情報をコピーした方をスレイブサーバー(セカンダリサーバー)と呼びます。

では、まとめです!

  • ゾーンとは、ドメインの管理情報
  • ゾーン転送とは、ゾーンを転送してバックアップすること
  • もともとゾーンを持っていたサーバーをマスターサーバーと呼ぶ
  • もう一台をスレイブサーバーと呼ぶ

bind9でゾーン転送を設定してみよう!

ゾーン転送の概要を理解したら、ゾーン転送を実際に設定してみましょう。

ゾーン転送を実装するためにはDNSサーバーを2台準備する必要があります。

VirtualBoxやHyper-vなどの仮想環境を使用して2台準備しましょう。IPアドレスはマスターサーバーが”192.168.100.107“、スレイブサーバーは”192.168.100.108“としています。

ゾーン転送を設定する手順は以下の通りとなります。

  1. マスターサーバーにゾーンを作成する
  2. スレイブサーバーの準備
  3. ゾーン転送の設定
  4. 再起動

では、詳しく解説します。

手順①. マスターサーバーにゾーンを作成する

まず、マスターサーバーにゾーンを作成します。

ゾーンの作成は、普通にAレコードを登録して名前解決ができるように設定します。

設定方法の詳細はこちらの記事で紹介しているので参考にしてください。

1つ追加の設定があります。

スレイブサーバーのAレコードとNSレコードの登録が必要です。

以下のように設定しましょう。

#vi /etc/bind/db.example.com    ←ゾーンファイルの編集
ゾーンファイルの中身

@    IN     NS    www2.example.com.     ←スレイブサーバーのホスト名(適当です)
www2 IN   NS  192.168.100.108          ←スレイブサーバーのホスト名とIPアドレス

これは、ゾーン転送したセカンダリサーバーが、このゾーンの名前解決ができるようにするためです。

手順②.スレイブサーバーの準備

次にスレーブサーバーの準備です。

まず、ゾーンファイルの定義をします。

	
#vi /etc/bind/named.conf.default-zones
//named.conf.default-zonesの中身

zone "example.com" {
    type slave;
    file "/etc/bind/slave/db.example.com";
    masters { 192.168.100.107; };
};

mastersでプライマリサーバーのIPアドレスを指定します。

fileの場所にゾーン情報がコピーされます。コピーするディレクトリを作っておきましょう。注意点は、そのゾーンにbindが書き込む権限が必要です。ファイルの作成方法を書いておきます。

#mkdir /etc/bind/slave           ←ディレクトリを作成
#chown bind /etc/bind/slave ←ディレクトリの所有者を変更
#chmod 660 /etc/bind/slave ←ディレクトリの権限を変更

手順③.ゾーン転送の設定

次にゾーン転送の設定です。

プライマリサーバーへの設定を行います。

まず、ゾーン転送を許可する設定です。

 #vi /etc/bind/named.conf.default-zones
//named.conf.default-zonesの中身

zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
    allow-transfer { 192.168.100.108;};  ←これを設定
};

allow-transferで許可するDNSサーバーを指定します。

今回は、その他のサーバーを拒否したり、notifyの制限は割愛します。

手順④.再起動

ゾーン転送の設定が完了したら、最後に再起動をします。

/etc/init.d/bind9 resetart

これで完了です。

スレイブサーバーにもゾーンファイルが作られたと思います。

作られていないかたは、logファイルを見ましょう。エラーの内容が表示されていると思います。

#tail -f /var/log/syslog

以上でゾーン転送の設定手順の解説を終了します!

About me
大手メーカのIT部門→上場ベンチャーでフルスタックエンジニアやってます。エンジニア歴は8年目。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!
Linuxを実践的に学べるInfraAcademy

InfraAcademyはLinuxをコマンドを打ちながら体系的に学ぶことができる学習サイトです。

以下のような方におすすめです。
Linuxを使いこなせるようになりたい方
・インフラエンジニアを目指す方
・LPICを取得したい方

Linuxの初級編から中級編まで学習できます!!

学習を始める

RELATED POST