第6回 サブドメインの運用と委任

鶴長 鎮一
2003/6/3

委任しないサブドメイン運用

 サブドメインの運用に当たって、すべてのサブドメインに委任先となるDNSを立てる必要はありません。組織の規模や管理手法によっては委任を利用せず、親ドメイン内で完結させることもできます。サブドメインが管理するゾーン情報の更新頻度が比較的低い場合や、サブドメインを運用できる担当者やサーバなどの資源に恵まれない場合は、この方法が有効的です。

図3 サブドメインは委任することもしないことも可能

 例として、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
@            IN      SOA dns.example.jp. root.example.jp. (
                     2003052001 ; serial
                     3600       ; refresh 1hr
                     900        ; retry 15min
                     604800     ; expire 1w
                     86400      ; min 24hr
)
                 IN      NS     dns.example.jp.
dns              IN      A      192.168.10.1
pc1              IN      A      192.168.10.11
pc2              IN      A      192.168.10.12
pc3              IN      A      192.168.10.13
pc4              IN      A      192.168.10.14
pc5              IN      A      192.168.10.15
(ここから追加分)
pc1.secretary    IN      A      192.168.10.50
pc2.secretary    IN      A      192.168.10.51
mail.secretary   IN      A      192.168.10.52
secretary        IN      MX     10 mail.secretary
www.secretary    IN      CNAME  pc1.secretary
親の/var/named/example.zoneファイル

 ホスト名の最後の「.」を省略すると、ゾーンファイルの起点名が補完されます。例ではnamed.confで「example.jp」を起点名に指定()しているため、下記のようにFQDNで指定した場合と同じように振る舞います。特に、MXレコードの指定ではドメイン名そのものをレコードの左辺に指定しています。

(省略)
pc4.example.jp.            IN    A     192.168.10.14
pc5.example.jp.            IN    A     192.168.10.15
(ここから変更分)
pc1.secretary.example.jp.  IN    A     192.168.10.50
pc2.secretary.example.jp.  IN    A     192.168.10.51
mail.secretary.example.jp. IN    A     192.168.10.52
secretary.example.jp.      IN    MX    10 mail.secretary.example.jp.
www.secretary.example.jp.  IN    CNAME pc1.secretary.example.jp.
親の/var/named/example.zoneファイル

注:/etc/named.confで、

zone "example.jp" {
        type master;
        file "example.zone";
};

と指定されています。

 設定は、親ゾーン(example.jp)のNSとして登録されている全DNSサーバ(図3のA、B)に必要です。ゾーン転送やゾーンファイルの自動更新を用いてゾーン情報の同期を行っているのでなければ、ここで紹介した設定を全サーバに施します。設定完了後、BINDを再起動して変更を有効化し、digなどで動作を確認します。

$ dig www.secretary.example.jp
(省略)
;; ANSWER SECTION:
www.secretary.example.jp.  86400  IN      CNAME   
pc1.secretary.example.jp.
pc1.secretary.example.jp. 86400 IN      A       192.168.10.50

 同様の手順で、MXやNSレコードの確認も行います。うまくいかないときは、/var/log/messagesのエラーを参考に、ゾーンファイルに問題がないか確認します。

$ORIGINを使用したサブドメインの設定

 named.confで指定したデフォルトの起点名を意図的に変更するには、$ORIGINステートメントを用います。$ORIGINステートメント以降は、ホスト名の最後の「.」を省略した際に補完されるドメイン名が、$ORIGINの右辺(secretary.example.jp.)に変更されます。ただし、MXはFQDNを指定する必要があります。

 また、$ORIGINで起点名を変更すると、再度$ORIGINで起点名を定義し直さない限り、行末まで指定した起点名が有効になります。

(省略)
pc4                    IN      A      192.168.10.14
pc5                    IN      A      192.168.10.15
(ここから変更分)
$ORIGIN secretary.example.jp.
pc1                    IN      A      192.168.10.50
pc2                    IN      A      192.168.10.51
mail                   IN      A      192.168.10.52
secretary.example.jp.  IN      MX     10 mail (注)
www                    IN      CNAME  pc1
親の/var/named/example.zoneファイル

注:@表記を用いて、

@                     IN      MX     10 mail

とすることもできます。FQDNと起点名が同じ場合は「@」で代替します。

$ORIGINに$INCLUDEを併用した設定

 $INCLUDEステートメントを利用することで、サブドメイン「secretary.example.jp」の情報を別ファイルに分離し、親のゾーンファイルに挿入させることができます。サブドメインのゾーンファイルはexample.zoneと同じディレクトリ(ここでは/var/named)に保存し、記述する内容は「$ORIGINを使用したサブドメインの設定」と同じにします。サブドメイン情報を別ファイルとすることで、ゾーンファイルの編集中に親ドメインとサブドメインの整理がつかなくなるなどの煩わしさがなくなります。

(省略)
pc4                    IN      A      192.168.10.14
pc5                    IN      A      192.168.10.15
(ここから変更分)
$ORIGIN secretary.example.jp.
$INCLUDE secretary.example.zone
親の/var/named/example.zoneファイル

pc1                    IN      A      192.168.10.50
pc2                    IN      A      192.168.10.51
mail                   IN      A      192.168.10.52
secretary.example.jp.  IN      MX     10 mail (注)
www                    IN      CNAME  pc1
親の/var/named/secretary.example.zoneファイル

注:@表記を用いた、

@                     IN      MX     10 mail

と同等です。

$INCLUDEで起点名を変更した設定

 $INCLUDEの2番目の引数に起点名を指定することで、記述をさらに簡潔にできます。簡素化とともに、起点名の変更がその1行(読み込むファイルに対してのみ)に限定できるため、$INCLUDEの次の行はデフォルトの起点名(例ではexample.jp)のままにすることが可能です。

(省略)
pc4                    IN      A      192.168.10.14
pc5                    IN      A      192.168.10.15
(ここから変更分)
$INCLUDE secretary.example.zone secretary.example.jp.
注:/var/named/secretary.example.zoneは「$ORIGINに$INCLUDEを併用した設定」と同じように用意しておきます。

専用のゾーンファイルを用意する方法

 BIND 9では、サブドメイン専用のゾーンファイルを定義できます。これまでの方法は、親のSOAをそのまま引き継ぎますが、専用のゾーンファイルを用意すればサブドメイン専用のSOAを定義できます。

zone "secretary.example.jp" {
        type master;
        file "secretary.example.zone";
};
親の/etc/named.confに追加

$ttl 38400
@       IN      SOA     dns01.secretary.example.jp. root.secretary.
example.jp.  (
                        2003052001
                        10800
                        3600
                        604800
                        38400 )
        IN      NS      dns01.example.jp.
        IN      NS      dns02.example.jp.
        IN      MX      10 mail.secretary.example.jp.
pc1     IN      A       192.168.10.50
pc2     IN      A       192.168.10.51
mail    IN      A       192.168.10.52
www     IN      CNAME   pc1.secretary.example.jp.
親に/var/named/secretary.example.zoneファイルを用意

 ゾーン転送やゾーンファイルの自動更新でゾーン情報を同期している場合、サブドメイン専用にゾーンファイルを定義すると、サブドメイン分はスレーブ側に反映されません。ゾーン転送を使用している場合は、スレーブサーバ側に以下のような設定を追加します。

zone "secretary.example.jp" {
        type slave;
        masters {
                マスター・サーバのIPアドレス;
        };
        file "secretary.example.zone.bak";
};
親(スレーブ)の/etc/named.confに追加

 以上が、委任せずに親ドメイン内でサブドメインの設定を完結させる手法です。ここでは正引きのみ説明しましたが、逆引きも通常どおり行いましょう。

$TTL 86400
@            IN      SOA    dns.example.jp. root.example.jp.  (
                     2003052001      ; Serial
                     3600            ; Refresh
                     900             ; Retry
                     604800          ; Expire
                     3600 )          ; Minimum
             IN      NS    dns.example.jp.
1            IN      PTR   dns.example.jp.
11           IN      PTR   pc1.example.jp.
12           IN      PTR   pc2.example.jp.
13           IN      PTR   pc3.example.jp.
14           IN      PTR   pc4.example.jp.
15           IN      PTR   pc5.example.jp.
(追加分)
50           IN      PTR   pc1.secretary.example.jp.
51           IN      PTR   pc2.secretary.example.jp.
52           IN      PTR   mail.secretary.example.jp.
第2回のexample.revに記述を加えた場合

2/3

Index
実用 BIND 9で作るDNSサーバ
 第6回 サブドメインの運用と委任
  Page 1
委任の概念とサブドメインの必要性
  Page 2
委任しないサブドメイン運用
 基本的なサブドメインの設定
 $ORIGINを使用したサブドメインの設定
 $ORIGINに$INCLUDEを併用した設定
 $INCLUDEで起点名を変更した設定
 専用のゾーンファイルを用意する方法
  Page 3
サブドメインの委任
 親側の設定
 子側の設定
 スタブによる便利な委任管理

連載 実用 BIND 9で作るDNSサーバ


 Linux Squareフォーラム サーバ構築・運用関連記事
連載:Heartbeatでかんたんクラスタリング(連載中)
オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します
特集:Apache 2.2でWebサイトをパフォーマンスアップ!
最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する
連載:実用 Apache 2.0運用・管理術(全8回)
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
連載:実用 BIND 9で作るDNSサーバ(全15回)
本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく
連載:実用qmailサーバ運用・管理術(全14回)
本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで
特集:Samba 3.0の全貌 改訂版
Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH