では、さっそくnamed.conf と ゾーンファイルを編集してみましょう。

ここでは、「dns-test.com」というドメインを管理するインターネットDNSを構築するとします。

・DNSサーバ(マスター) 1.1.1.1 ns.dns-test.com
・DNSサーバ(スレーブ) 1.1.1.2 ns.example.com
・Webサーバ       1.1.1.3 www.dns-test.com
・FTPサーバ       1.1.1.3 ftp.dns-test.com
・メールサーバ1     1.1.1.4 mail01.dns-test.com
・メールサーバ2     1.1.1.5 mail02.dns-test.com

※DNSサーバ(スレーブ)については外部に委託している想定となります。



1.リゾルバの設定
リゾルバとして自ホストのBINDを利用するように設定します。
リゾルバの設定は、 /etc/resolv.conf で行ないます。

nameserver 127.0.0.1

この設定によって、このコンピュータが利用するリゾルバは自分自身ということになります。





2.named.conf の設定

・まず、不要な記述をコメントアウトしましょう。

#listen-on port 53 { 127.0.0.1; };
#listen-on-v6 port 53 { ::1; };


#allow-query     { localhost; };
#allow-query-cache { localhost; };


#view localhost_resolver {
        match-clients      { localhost; };
        match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};


これらは、外部からのアクセスを受け付けなくさせるための設定です。

・つぎの記述をファイルに付け加えます。
 include "/etc/named.rfc1912.zones";

・zoneステートメントを記述します。
※この記述はoptionsステートメント以降に追加して下さい。

zone "test-dns.com" {  ★①
        type master;  ★②
        file "test-dns.com.zone";  ★③
        allow-update { none; };  ★④
        allow-transfer { 1.1.1.2; };  ★⑤
};



★① ・・・ 設定するゾーン名を指定
★② ・・・ マスターサーバであることを指定
★③ ・・・ ゾーンファイル名を指定
★④ ・・・ 動的更新を許可するホストを指定 (通常はnone)
★⑤ ・・・ ゾーン転送を許可するホスト (通常はスレーブサーバ)



3.ゾーンファイルの設定
ゾーンファイルは/var/named/chroot/var/named ディレクトリに作成します。
ここでは、named.conf で指定した「dns-test.com.zone」 というファイルを作成します。

$TTL    10800  ★①

dns-test.com.    IN    SOA    ns.dns-test.com.   root.dns-test.com.  (  ★②
                2014083001      ; Serial   ★③
                43200        ; Refresh  ★④
                5400        ; Retry  ★⑤
                3600000    ; Expire  ★⑥
                3600 )        ; Minimum  ★⑦

dns-test.com.    IN    NS    ns.dns-test.com.  ★⑧
dns-test.com.    IN    NS    ns.example.com.  ★⑧

dns-test.com.    IN    MX  10    mail01.dns-test.com. ★⑨
dns-test.com.    IN    MX  20    mail02.dns-test.com.  ★⑨

ns.dns-test.com.        IN    A    1.1.1.1  ★⑩
www.dns-test.com.    IN    A    1.1.1.3  ★⑩
mail01.dns-test.com.    IN    A    1.1.1.4  ★⑩
mail02.dns-test.com.    IN    A    1.1.1.5  ★⑩

mail01.dns-test.com.    IN    CNAME    www.dns-test.com.
 ★⑪


★①
各レコードのTTLのデフォルト値を設定します。単位は秒です。「10800」は3時間に相当します。TTLは基本的に1日以内が推奨されています。

★②
ゾーン名とマスターDNSサーバ名、管理者メールアドレスを記載しています。
「 ゾーン名    IN    SOA    マスターDNSサーバ名   管理者メールアドレス (
 」

★③
シリアルナンバー

★④
更新時間

★⑤
再試行時間

★⑥
有効期限

★⑦
ネガティブキャッシュのTTL値

★⑧
NSレコードを記述しています。
NSレコードが2つありますが、これはマスターサーバとスレーブサーバを指定しているためです。

★⑨
MXレコードを記述しています。
「dns-test.com」が指定されたメールは、メールサーバ「mail01.dns-test.com」または「mail02.dns-test.com」に届くようになります。

★⑩
Aレコードを記述しています。
ns.dns-test.com に 1.1.1.1、www.dns-test.comに1.1.1.3、mail01.dns-test.com に1.1.1.4、mail02.dns-test.comに1.1.1.5 を割り当てています。

★⑪
CNAMEレコードを記述しています
「ftp.dns-test.com」という別名を「www.dns-test.com」のホストに付けています。



DNSはただ単にドメイン名からIPアドレスを調べるだけのものではありません。

レコードという形で様々なデータを参照することが出来ます。

それではさっそくレコードを見てみましょう。


1.Aレコード
FQDNからIPアドレスを調べるのがAレコード

www.example.com.     3600    IN A    192.168.1.1


「www.example.com」 が FQDN
「3600」 が TTL(この例では3600秒)
「A」 が Aレコード
「192.168.1.1」 が IPアドレス

いわゆる正引きといわれるレコードです。




2.AAAAレコード
こちらもFQDNからIPアドレスを調べるレコードですが、こちらはIPv6用の正引きレコードです。

www.example.com.     1D    IN AAAA    ffea:120:551:::::246




3.CNAMEレコード
CNAMEレコードはコンピュータに別名を定義します。
Aレコードで付けたFQDNとは別の名前をコンピュータに付けることが出来ます。

smtp.example.com.     3600    IN CNAME   www.example.com

「smtp.example.com」 が別名。
「www.example.com」 が正規名です。

ちなみに正規名はAレコードで定義されたものを使います。
CNAMEで定義した別名は他のレコードの正規名として代用する事はできません。

www.example.com.     3600    IN A    192.168.1.1
smtp.example.com.     3600    IN CNAME   www.example.com
上記の様に設定した場合、どちらも「192.168.1.1」にアクセスできます。











続きを読む

DNSサーバがこけたら大変やばいことになるので、基本多重化されています。

しかし、複数台DNSサーバを立ててしまうと同じゾーンデータを複数設定しなければならないので、非常に面倒というか、ミスが起こるかも知れません。そこで、DNSサーバは、以下の2つの役割で多重化されます。

マスターサーバ
管理者が設定するゾーンデータを持つサーバ

スレーブサーバ
マスターサーバからのゾーンデータのコピーを持つサーバ

なので、オリジナルはマスターサーバが持ち、そのコピーをスレーブサーバが持ちます。
スレーブサーバがマスターサーバのゾーンデータをコピーすることを「ゾーン転送」といいます。




続きを読む

↑このページのトップヘ