【初心者必見】ゾーンファイルの作成方法
- 2019.11.03
- 2022.05.04
- サーバー

みなさんこんにちは さくちゃん です。
本日は、前回構築したDNSサーバーに、ゾーン情報を作成し追加していきます。
ではやっていきましょう!
そもそもゾーン情報とは何か?
ゾーン情報とは、DNSサーバーが管理している管理情報のことを言います。
ゾーン情報は、ドメインに対するIPアドレスを管理しています。
DNSサーバーが名前解決をする時に、このゾーン情報を参照して、ドメインに対するIPアドレスを返答しています。
これがゾーン情報の役割です。
例に挙げると、市役所が「DNSサーバー」で、市役所で管理している「住所」がゾーン情報にあたります。
詳しくはこちらをご覧ください。
ゾーン情報を作成しよう!
ゾーン情報について理解できたところで、実際にゾーン情報を作成していきます。
実際のゾーン情報はこんな感じです。
$TTL 86400
@ IN SOA ns.sakuchan.org. XXX@sakuchan.org.(
2019070201 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire<br>
86400 ) ; Minumum TTL
sakuchan.org. IN A XXX.XXX.XXX.XXX
それぞれの意味はこんな感じです。
種類 | 意味 |
$TTL 86400 | DNSサーバーがゾーン情報のデータをキャッシュする時間(デフォルト:86400秒) |
@ IN SOA ns.sakuchan.org. XXX@sakuchan.org. | ・@はドメイン名(ここではsakuchan.org)を表します. ・ns.sakuchan.org. はこのゾーン情報を管理するDNSサーバー ・XXX@sakuchan.org.は、このドメインの管理者メールアドレス |
2019110301 ; Serial | ゾーン情報のシリアル番号。更新日+管理番号を表すことが多い。 ゾーン情報を更新した場合は、今よりもこの値を大きくしないといけない。 |
28800 ; Refresh | セカンダリDNSサーバが、プライマリDNSサーバにゾーン転送後に再度ゾーン情報を取得しようと試みるまでの時間 |
14400 ; Retry | セカンダリDNSサーバが、Refreshでゾーン情報の更新が失敗した場合に 再度Refreshを試みるまでの時間。 |
3600000 ; Expire | セカンダリDNSサーバが、ゾーン情報のリフレッシュができない状態が続いた場合、セカンダリDNSサーバが持っているゾーン情報をどれだけの時間利用するかの時間。 |
86400 ) ; Minumum TTL | 存在していないドメインのキャッシュを維持する時間。 |
sakuchan.org IN A XXX.XXX.XXX.XXX | Aレコードの設定。ドメインに対するIPアドレスを記述。 |
それぞれの値に決まった役割があり、それを指定していきます。
必ずしもこれが正解というわけではないので、それぞれの環境に合わせて設定していきましょう!
レコードの種類
先ほど出てきた「Aレコード」ですが、Aレコード以外にもいくつか種類があります。
このレコードは、非常に重要なのでしっかり覚えましょう!
レコードの種類 | 意味 |
Aレコード | ドメインのIPアドレスを指定。 |
NSレコード | ドメインを管理するDNSサーバー名を指定 |
MXレコード | ドメインのメールサーバーを指定 |
PTRレコード | IPアドレスに対するドメインを指定(逆引き) |
TXTレコード | ドメインのテキスト情報を指定 |
CNAMEレコード | ドメインの別名を指定 |
書き方は「〇〇 IN レコード 〇〇」と書きます。
例えばAレコードに場合は
sakuchan.org IN A XXX.XXX.XXX.XXX
・sakuchan.org → ドメイン
・A → レコードの種類
・XXX.XXX.XXX.XXX → Aレコードなのでドメインに対するIPアドレスとなります。
ゾーン情報を設定してみよう!
それでは、実際にゾーン情報を設定してみましょう!
ファイルを作成するコマンドは、touchコマンドで作成できます。
touchコマンドは、空のファイルを作成するだけです。
編集するにはviコマンドで編集します。
touch ファイル名
前回紹介したviコマンドでも作成できます。
vi ファイル名
では入力してみましょう。
まずはファイルを開きます。
vi ファイル名
ファイルを開いたら、キーボードの「i」でコマンドモードから入力(挿入)モードへ切り替えます。
切り替えたらゾーン情報を入力します。
$TTL 86400
@ IN SOA ns.sakuchan.org. XXX@sakuchan.org.(
2019070201 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minumum TTL
sakuchan.org. IN A XXX.XXX.XXX.XXX
ゾーン情報を入力したら、「ESC」で入力(挿入)モードからコマンドモードへ切り替えます。
「:wq」でファイルを保存し、viを終了させます。
次に設定ファイル(named.conf)を編集します。
viコマンドでファイル開きます。
vi /etc/named.conf
options {
listen on port 53 { 127.0.0.1; };
listen on v6 port 53 {::1;};
directory "/var/named";
dump file "/var/named/data/cache_dump.db";
statistics file "/var/named/data/named_stats.txt";
memstatistics file "/var/named/data/named_mem_stats.txt";
recursing file "/var/named/data/named.
secroots file "/var/named/data/named.secroots";
allow query {localhost; };
# 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜省略〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
# ここから編集していきます
zone " . " IN {
type hint;
file "name.ca";
};
# ↓ここに追加します
zone "ドメイン名" IN{
type master;
file "ファイル名";
};
# ここまで
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
zone “ドメイン名” IN{ → ドメイン名を入力
type master;
file “ファイル名”; → ゾーン情報を入力したファイルを指定
};
入力したら「ESC」で終了します。
設定できたら、BINDを再起動します。
systemctl restart named
エラーが返ってこなければOKです!
-
前の記事
【入門】CentOS7 BINDを使ったDNSサーバー構築 2019.11.02
-
次の記事
未経験からサーバーエンジニアになれるのか?サーバーエンジニア について徹底解説! 2019.11.04