サブドメインの運用に当たって、すべてのサブドメインに委任先となるDNSを立てる必要はありません。組織の規模や管理手法によっては委任を利用せず、親ドメイン内で完結させることもできます。サブドメインが管理するゾーン情報の更新頻度が比較的低い場合や、サブドメインを運用できる担当者やサーバなどの資源に恵まれない場合は、この方法が有効的です。
例として、example.jpドメインにサブドメインとして「secretary.example.jp」を新設してみましょう。secretary.example.jpに属するホスト情報は次のとおりです。
pc1.secretary.example.jp | 192.168.10.50 | |
---|---|---|
pc2.secretary.example.jp | 192.168.10.51 | |
mail.secretary.example.jp | 192.168.10.52 | secretary.example.jpドメインのメールサーバ |
www.secretary.example.jp | pc1.secretary.example.jpの別名 | secretary.example.jpドメインのwwwサーバ |
第2回で紹介したexample.zoneファイルを基に、追加設定を施します。
最も簡単な方法は、親(example.jp)のゾーンファイルに子(secretary.example.jp)のホスト情報を持たせることです。
$TTL 86400 |
親の/var/named/example.zoneファイル |
ホスト名の最後の「.」を省略すると、ゾーンファイルの起点名が補完されます。例ではnamed.confで「example.jp」を起点名に指定(注)しているため、下記のようにFQDNで指定した場合と同じように振る舞います。特に、MXレコードの指定ではドメイン名そのものをレコードの左辺に指定しています。
(省略) |
親の/var/named/example.zoneファイル |
注:/etc/named.confで、
と指定されています。 |
設定は、親ゾーン(example.jp)のNSとして登録されている全DNSサーバ(図3のA、B)に必要です。ゾーン転送やゾーンファイルの自動更新を用いてゾーン情報の同期を行っているのでなければ、ここで紹介した設定を全サーバに施します。設定完了後、BINDを再起動して変更を有効化し、digなどで動作を確認します。
$ dig www.secretary.example.jp |
同様の手順で、MXやNSレコードの確認も行います。うまくいかないときは、/var/log/messagesのエラーを参考に、ゾーンファイルに問題がないか確認します。
named.confで指定したデフォルトの起点名を意図的に変更するには、$ORIGINステートメントを用います。$ORIGINステートメント以降は、ホスト名の最後の「.」を省略した際に補完されるドメイン名が、$ORIGINの右辺(secretary.example.jp.)に変更されます。ただし、MXはFQDNを指定する必要があります。
また、$ORIGINで起点名を変更すると、再度$ORIGINで起点名を定義し直さない限り、行末まで指定した起点名が有効になります。
(省略) |
親の/var/named/example.zoneファイル |
注:@表記を用いて、
とすることもできます。FQDNと起点名が同じ場合は「@」で代替します。 |
$INCLUDEステートメントを利用することで、サブドメイン「secretary.example.jp」の情報を別ファイルに分離し、親のゾーンファイルに挿入させることができます。サブドメインのゾーンファイルはexample.zoneと同じディレクトリ(ここでは/var/named)に保存し、記述する内容は「$ORIGINを使用したサブドメインの設定」と同じにします。サブドメイン情報を別ファイルとすることで、ゾーンファイルの編集中に親ドメインとサブドメインの整理がつかなくなるなどの煩わしさがなくなります。
(省略) |
親の/var/named/example.zoneファイル |
pc1 IN A 192.168.10.50 |
親の/var/named/secretary.example.zoneファイル |
注:@表記を用いた、
と同等です。 |
$INCLUDEの2番目の引数に起点名を指定することで、記述をさらに簡潔にできます。簡素化とともに、起点名の変更がその1行(読み込むファイルに対してのみ)に限定できるため、$INCLUDEの次の行はデフォルトの起点名(例ではexample.jp)のままにすることが可能です。
(省略) |
注:/var/named/secretary.example.zoneは「$ORIGINに$INCLUDEを併用した設定」と同じように用意しておきます。 |
BIND 9では、サブドメイン専用のゾーンファイルを定義できます。これまでの方法は、親のSOAをそのまま引き継ぎますが、専用のゾーンファイルを用意すればサブドメイン専用のSOAを定義できます。
zone "secretary.example.jp" { |
親の/etc/named.confに追加 |
$ttl 38400 |
親に/var/named/secretary.example.zoneファイルを用意 |
ゾーン転送やゾーンファイルの自動更新でゾーン情報を同期している場合、サブドメイン専用にゾーンファイルを定義すると、サブドメイン分はスレーブ側に反映されません。ゾーン転送を使用している場合は、スレーブサーバ側に以下のような設定を追加します。
zone "secretary.example.jp" { |
親(スレーブ)の/etc/named.confに追加 |
以上が、委任せずに親ドメイン内でサブドメインの設定を完結させる手法です。ここでは正引きのみ説明しましたが、逆引きも通常どおり行いましょう。
$TTL 86400 |
第2回のexample.revに記述を加えた場合 |
Copyright © ITmedia, Inc. All Rights Reserved.