ひとつの DNS サーバーでサブドメインを運用する (CentOS 5.5): Linux の使い方
自分で取得したドメインを公開する
DNS では、サブドメインを使用して、ドメインの階層をどんどん掘り下げて行くことが可能です。
たとえば、"DOMAIN.XX.JP" というドメインがあった場合、そのサブドメイン "SUB1.DOMAIN.XX.JP" やさらにそのサブドメイン "SUB2.SUB1.DOMAIN.XX.JP" というように、そのドメインの管理者が自由にサブドメインを作成して行くことができるようになっています。
逆に "XX.JP" は "JP" のサブドメイン、"DOMAIN.XX.JP" は "XX.JP" のサブドメインという形になっています。
自分でドメインを取得して、自分の DNS でそのドメインを運用している場合には、そのサブドメインを利用することは簡単です。
具体的には、親ドメインとサブドメインとを別々のゾーンファイルで運用する方法と、親ドメインのゾーンファイル 1 つにサブドメインの定義も含める方法の 2 通りで設定することが可能です。
今回は CentOS 5.5 の BIND 9.3.6 を利用して、上記 2 つのやり方でサブドメインを運用する方法について記してみようと思います。
ちなみにもし、サブドメインを別の DNS で管理することも可能で、その場合には サブドメインを別の DNS サーバーへ委譲する でお話ししたような委譲設定を行うことになります。
親ドメインとサブドメインとを別々のゾーンファイルで管理する
親ドメインとサブドメインとを別々のゾーンファイルで管理したい場合には、他のドメインと同じように、それぞれを "zone" として登録して、そのゾーンファイルを作成するという形になります。
たとえば、親ドメインが "DOMAIN.XX.JP" で、そのサブドメイン "SUB1.DOMAIN.XX.JP" を作成したい場合には、まずは "/etc/named.conf" 内に "zone" として "SUB1.DOMAIN.XX.JP" を追記します。
zone "domain.xx.jp"
{
type master;
file "data/domain.xx.jp.zone";
};
zone "sub1.domain.xx.jp"
{
type master;
file "data/sub1.domain.xx.jp.zone";
};
このようにしたら、後は通常と同じように、ゾーンファイル (上記の例では "/var/named/data/sub1.domain.xx.jp.zone" ファイル) を用意して、いつもと同じようにゾーン情報を記載すれば大丈夫です。
設定完了後、"service named reload" を実行することで、サブドメイン "sub1.domain.xx.jp" が利用できるようになります。
親ドメインとサブドメインとを 1 つのゾーンファイルで管理する
サブドメインを、その親ドメインのゾーンファイル内で定義することも可能です。
記載は特に難しいことはなく、定義するレコードにサブドメイン名も合わせて記載する形になります。
たとえば、"SUB1.DOMAIN.XX.JP" というサブドメインを用意して、そこで Web サーバーやメールサーバーなどで使用するためのレコードを追加しようとする場合は、既存の "DOMAIN.XX.JP" のゾーンファイルの中に、次のような記載をする感じです。
$TTL 3600
@ IN SOA ns1.domain.xx.jp. admin.domain.xx.jp. (
2010121501 ; serial
6m ; refresh
3m ; retry
4w ; expiry
1d ; minimum
)
IN NS ns1.domain.xx.jp.
IN NS ns2.domain.xx.jp.
ns1 IN A 192.168.0.1
ns2 IN A 192.168.0.2
@ IN MX 10 mail
www IN A 192.168.0.3
mail IN A 192.168.0.3
sub1 IN MX 10 mail.sub1
www.sub1 IN A 192.168.0.4
mail.sub1 IN A 192.168.0.4
上記の最後の 3 レコードがサブドメイン "sub1.domain.xx.jp" のためのレコードに当たります。
このように、レコード名に ".sub1" という記載を含めてあげれば、全体として "www.sub1.domain.xx.jp" や "mail.sub1.domain.xx.jp" というような FQDN (フルドメイン) も利用できるようになります。