Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)

DNS の構成ファイルとデータファイル

DNS のネームサーバーには、in.named デーモンに加えて、named.conf という起動ファイル、resolv.conf というリゾルバファイル、4 種類のゾーンデータファイルがあります。

DNS データファイルの名前

内部で一貫性が取れていれば、ゾーンデータファイルには何でも好きな名前を付けることができます。このため、異なるサイトで作業をしようとする場合や DNS 関連のマニュアルや本を参照する場合に、混乱するかもしれません。

たとえば、Sun のマニュアルや大多数の Solaris サイトで使われているファイル名は、『DNS and BIND』(Paul Albeltz & Criclcet Liu 著、浅羽登志也/上水流由香監訳 、アスキー出版局、1995年) で使われているファイル名とは異なります。 そしてこれら 2 派の命名方法は、『Name Server Operations Guide for BIND』(カリフォルニア州立大学刊、ハブリックドメイン) の命名方法とも若干の相違があります。

さらに、本書とその他の DNS 関連のマニュアルでは、説明にはファイルの主な役割を表す総称名を使い、コード例には具体的な固有の名前を使っています。たとえば、Solaris のネームサービスに関するマニュアルでは、ファイルの機能や役割を説明する場合は hosts という総称名を使い、コード例では db.docdb.sales.doc といった名前を使っています。

参考のため、次の表で上で述べた 3 種類の BIND ファイル名を比較します。

表 5–3 BIND ファイル名の例

Solaris 

O'Reilly / その他 

カリフォルニア州立大学バークレイ校 

ファイルの内容と役割 

/etc/named.conf

/etc/named.conf

/etc/named.conf

構成ファイルは、それが実行されるサーバーのタイプ、および「マスター」、「スレーブ」、または「スタブ」として機能するゾーンを指定する。 また、セキュリティ、ロギング、およびゾーンに適用されるオプションの細かい細分性を定義する 

/etc/resolv.conf

/etc/resolv.conf

/etc/resolv.conf

各クライアント (DNS サーバーを含む) 上に存在するファイル。DNS 情報を探すためにクライアントが照会するサーバーを示す 

named.ca

db.cache

db.root

root.cache

ルートサーバー名とそのアドレスがリストされている  

総称名: hosts 例: db.doc db.sales

総称名: db.domain 例:db.movie

db.fx

総称名:hosts

例: ucbhosts

サーバーがサービスを提供するローカルゾーン内のマシンに関する全データが格納されている 

総称名: hosts.rev

例:doc.rev

総称名: db.ADDR 例: db.192.249.249 db.192.249.253

hosts.rev

逆マッピング (アドレスから名前への変換) を行うための特殊ドメイン in-addr.arpa 内のゾーンを指定する

named.local

総称名: db.cache 例: db.127.0.0

named.local

ローカルループバックインタフェースまたはローカルホスト用のアドレスを指定する 

$INCLUDE ファイル

$INCLUDE ファイル

$INCLUDE ファイル

データファイル内の $INCLUDE() 文によって識別されるファイル


注意 – 注意 –

このマニュアル内の例やコード例で使われている IP アドレスとネットワーク番号は、説明に具体性を持たせるために仮に決めたものです。これらの情報は、実際のネットワークやホストに使われていることがあるので、そのまま使うのは避けてください。


named.conf ファイル

BIND 構成ファイル /etc/named.conf は、サーバーをマスターサーバー、スレーブサーバー、またはキャッシュ専用サーバーとして設定します。 また、サーバーが権限を持つゾーンを指定し、どのデータファイルから初期データを取得するかを指定します。

/etc/named.conf ファイルには、次の機能を実装する文が含まれています。

構成ファイルは、サーバーの起動スクリプト /etc/init.d/inetsvc によってデーモンが起動されるとき、in.named によって読み取られます。構成ファイルにより、他のサーバー (マスター、スレーブまたはキャッシュ専用サーバー) として設定されるか、あるいは初期データを取得する構成ファイルが示されます。

named.conf

named.conf ファイルは、いくつかの文とコメントで構成されています。文はセミコロンで終わります。一部の文は、文のブロックを含むことができます。ブロック内の各文もセミコロンで終わります。

named.conf ファイルは、以下の文をサポートします。

表 5–4 named.conf

文 

説明 

aclアクセス制御に使用する、IP アドレスの一致リストを名前を付けて定義する。アドレスの一致リストは、1 つ以上の IP アドレス (ドット形式の 10 進表記) または IP 接頭辞 (ドット形式の 10 進表記の後にスラッシュとネットマスクのビット数が付く) を示す。名前を付けたIP アドレスの一致リストは、他の場所で使用する前に acl 文で定義されている必要がある。前方参照は不可
includeinclude 文がある箇所にインクルードファイルを挿入する。include を使用することで、管理しやすいまとまりに構成情報を分割することができる
key特定のネームサーバーでの認証と承認に使用される鍵の ID を指定する。server 文を参照
logging サーバーが記録するログ情報と、ログメッセージの送り先を指定する
options グローバルなサーバー構成のオプションを制御して、他の文に対するデフォルト値を設定する
server 遠隔ネームサーバーに関して、指定された構成オプションを設定する。すべてのサーバーに対してではなく、サーバーごとに選択的にオプションを適用する
zone ゾーンを定義する。すべてのゾーンに対してではなく、ゾーンごとに選択的にオプションを適用する


例 5–13 マスターサーバー用マスター構成ファイルの例


options {
         directory "/var/named";
         datasize 2098;
         forward only;
         forwarders {
                  99.11.33.44;
         };
         recursion no;
         transfers-in 10;
         transfers-per-ns 2;
         allow-transfer {
                  127.0.1.1/24;
         };
};

logging {
         category queries { default_syslog; };
};

include "/var/named/abcZones.conf"

// これはマスターファイルの名前です
zone "cities.zn" {
         type master;
         file "db.cities.zn";
};

zone "0.0.127.in-addr.arpa." {
         type master;
         file "db.127.cities.zn";
};

zone "168.192.in-addr.arpa" {
         type master;
         file "db.cities.zn.rev";
};

zone "sales.doc.com" {
         type slave;
         file "slave/db.sales.doc";
         masters {
                  192.168.1.151;
         };
};

zone "168.192.in-addr.arpa" {
         type slave;
         file "slave/db.sales.doc.rev";
         masters {
                  192.168.1.151;
         };
};

named.ca ファイル

named.ca ファイルによって、ルートサーバー名が確立され、そのアドレスが列挙されます。ネットワークがインターネットに接続されている場合は、named.ca には、インターネットのネームサーバーが表示されます。接続されていなければ、ローカルネットワークのルートドメインネームサーバーが表示されます。in.named デーモンは、サーバーの 1 つに接続できるまで、サーバーのリストを一巡します。そして、そのサーバーから現在のルートサーバーのリストを入手します。デーモンは、このリストを named.ca の更新のために用います。

named.ca ファイルの設定

ルートサーバー名は NS レコードに、アドレスは A レコードに示されています。この named.ca ファイルを使用するルートサーバーごとに、NS レコードと A レコードを追加する必要があります。

named.ca ファイルの入手方法または作成方法は、ネットワークがインターネットに接続されているかどうかによって異なります。

インターネット named.ca ファイル

ネットワークがインターネットに接続されている場合は、InterNIC Registration Service (本書執筆の時点) から次の手段で named.ca ファイルを入手できます。

本書で説明した命名規則に従う場合、named.root/var/named/named.ca に移動します。


例 5–14 インターネット named.ca ファイルの例


;
; formerly NS1.ISI.EDU
.                        3600000    NS   B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000    A    128.9.0.107
;
; formerly C.PSI.NET
.                        3600000    NS   C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000    A    192.33.4.12
;
; formerly TERP.UMD.EDU
.                        3600000    NS   D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000    A    128.8.10.90
;
; formerly NS.NASA.GOV
;.                       3600000    NS   E.ROOT-SERVERS.NET.
 
E.ROOT-SERVERS.NET.      3600000    A    192.203.230.10
;
; formerly NS.ISC.ORG
.                        3600000    NS   F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000    A    192.5.5.21
;
; formerly NS.NIC.DDN.MIL
.                        3600000    NS   G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000    A    192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
.                        3600000    NS   H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000    A    128.63.2.53
;
; formerly NIC.NORDU.NET
.                        3600000    NS   I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000    A    192.36.148.17
;
; temporarily housed at NSI (InterNIC)
.                        3600000    NS   J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000    A    198.41.0.10
;
; temporarily housed at NSI (InterNIC)
.                        3600000    NS   K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000    A    198.41.0.11
;
; temporarily housed at ISI (IANA)
.                        3600000    NS   L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000    A    198.32.64.12
;
; temporarily housed at ISI (IANA)
.                        3600000    NS   M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000    A    198.32.65.12
; End of File

非インターネット named.ca ファイル

ネットワークがインターネットに接続されていない場合は、独自の named.ca ファイルを作成する必要があります。そのためには、サーバーのどれか 1 つをルートサーバーとし、DNS サーバーごとにそのルートサーバーを指す named.ca ファイルを作成します。

たとえば、private というドメインで ourroot というマシンを非インターネットルートサーバーとして指定する場合を想定します。ourroot の IP アドレスが 192.1.1.10 であるとすると、named.ca ファイルには次の行を書き込みます。


ourroot.private.  999999  IN  A  192.1.1.10

キャッシュファイルも SOA レコード、各ドメインおよびサブドメインの NS レコード、各サーバーの A レコードを必要とします。

たとえば、ourroot の他に、ourmasterourslave という 2 つの DNS ネームサーバーがあるとします。 その場合、DNS サーバー上の named.ca ファイルはすべて次のようになります。


例 5–15 named.ca ファイル (非インターネット) の例


;
@    IN    SOA  ourroot.private.   hermit.ourroot.private  (    
                 1997071401       ;  serial number (YYYYMMDD##)
                 10800            ;  refresh after 3 hours
                 3600             ;  retry after 1 hour
                 604800           ;  expire after 1 week
                 86400 )          ;  minimum TTL of 1 day
;
ourroot.private.      999999     IN    A    192.1.1.10
;
private.                         IN    NS   ourmaster.private.
1.1.192.in-addr.arpa             IN    NS   ourmaster.private.
 
ourprivate.private.              IN    A    192.1.1.1
;
private.                         IN    NS   ourslave.private.
1.1.192.in-addr.arpa             IN    NS   ourslave.private.
ourslave.private.            IN    A    192.1.1.2 

hosts ファイル

hosts ファイルには、ローカルゾーン内のマシンに関するすべてのデータが含まれています。このファイル名は、起動ファイル内で指定します。/etc/hosts との混同を避けるために、hosts 以外の名前を付けます。たとえば、これらのファイルに db.domain パターンを使用して名前を付けることができます。この命名方法により、doc.comsales.doc.com ドメインのホストファイルは db.docdb.sales になります。

hosts ファイルの設定

hosts ファイルには、ゾーン内にある各マシンの全データが収められています。ゾーンが複数のドメインにまたがっている場合は、そのゾーンを構成する全ドメインの全マシンがそのゾーンのホストファイルに列挙されます。hosts ファイルの設定 を参照してください。


注 –

hosts という名前はファイルの役割や内容を表す総称名です。ただし、この総称名をそのまま使うと /etc/hosts と紛らわしいので、この種のファイルは hosts 以外の名前にします。 ドメイン内に複数のゾーンがある場合は、各ゾーンに 1 つずつ hosts ファイルを置き、各ゾーンの hosts ファイルには一意の名前を付けなければなりません。たとえば、DNS ドメイン内に doc.comsales.doc.com という 2 つのゾーンがある場合は、1 つの hosts ファイルを db.doc、もう 1 つを sales.db.doc という名前にするとよいでしょう。


各ゾーンには個別の、一意の名前を持つ hosts ファイルが必要です。複数のゾーンが存在する場合は、各ゾーンの hosts ファイルには他のゾーンのマスター (マスター、スレーブ) サーバーに関する情報も含める必要があります。詳細については、例 5–16 を参照してください。


例 5–16 hosts ファイルの例


;
; SOA rec
doc.com.  IN SOA sirius.doc.com. sysop.centauri.doc.com. (
                 1997071401       ;  serial number (YYYYMMDD##)
                      10800       ;  refresh every 3 hours
                      10800       ;  retry every 3 hours
                      604800      ;  expire after a week
                      86400 )     ;  TTL of 1 day
; Name Servers
doc.com.                   IN  NS  sirius.doc.com.
sales.doc.com.             IN  NS  altair.sales.doc.com.
; Addresses
localhost.                 IN  A  127.0.0.1
 
sirius                    IN  A  192.168.6.1
rigel                     IN  A  192.168.6.112
antares                   IN  A  192.168.6.90
polaris                   IN  A  192.168.6.101
procyon                   IN  A  192.168.6.79
tauceti                   IN  A  123.45.6.69
altair.sales.doc.com.     IN  A   111.22.3.4
; aliases
durvasa                   IN  CNAME sirius.doc.com.
dnsmastr                  IN  CNAME sirius.doc.com.
dnssales                  IN  CNAME altair.sales.doc.com.

hosts ファイルは通常、次の 5 つの要素で構成されています。

hosts.rev ファイル

hosts.rev ファイルで、逆 (アドレスから名前) マッピングを行うための特別な in-addr.arpa. ドメインのゾーンを指定します。このファイル名は、起動ファイル内で指定します。

hosts.rev ファイルの設定

hosts.rev は逆マッピングを設定するファイルです。


注 –

hosts.rev という名前は、ファイルの役割や中身を表す総称名です。ドメイン内に複数のゾーンがある場合は、各ゾーンに 1 つずつ hosts.rev ファイルを置き、各ゾーンの hosts.rev ファイルには一意の名前を付けなければなりません。たとえば、DNS ドメイン内に doc.comsales.doc.com という 2 つのゾーンがある場合は、1 つの hosts.rev ファイルを doc.rev、もう 1 つを sales.rev という名前にするとよいでしょう。



例 5–17 hosts.rev ファイルの例


; SOA rec
6.45.123.in-addr.arpa.  IN SOA sirius.doc.com. sysop.centauri.doc.com. (
                 1997071401       ;  serial number (YYYYMMDD##)
                      10800       ;  refresh every 3 hours
                      10800       ;  retry every 3 hours
                      604800      ;  expire after a week
                      86400 )     ;  TTL of 1 day
; Name Servers
6.45.123.in-addr.arpa.   IN  NS  sirius.doc.com.
1                        IN  PTR sirius.doc.com.

hosts.rev ファイルは、次の要素で構成されています。

(これらのリソースレコードの詳細については、リソースレコードのタイプを参照してください。)

named.local ファイル

named.local では、ローカルループバックインタフェースのアドレスまたはローカルホストをネットワークアドレス 127.0.0.1 で指定します。このファイル名は、起動ファイル内で指定します。他のファイルと同様、このマニュアルで使われていない名前を付けることもできます。

named.local ファイルの設定

named.local ファイルは、ネームサーバーのローカルループバックインタフェースを設定します。


例 5–18 named.local ファイルの例


; SOA rec
0.0.127.in-addr.arpa. IN SOA sirius.doc.com sysop.centauri.doc.com (
                          1997071401       ;  serial number (YYYYMMDD##)            
                           10800           ;  refresh every 3 hours
                           10800           ;  retry every 3 hours
                           604800          ;  expire after a week
                           86400 )         ;  TTL of 1 day
; Name Servers
0.0.127.in-addr.arpa.      IN  NS     sirius.doc.com
1                          IN  PTR  localhost.
 

named.local ファイルは通常、次の 3 つの要素で構成されています。

$INCLUDE ファイル

インクルードファイルは、DNS データファイル内の $INCLUDE() 文で指定されているファイルのことです。$INCLUDE ファイルを使ってデータを型ごとに別々のファイルに分割しておくと便利です。

たとえば、データファイルに次のような行が含まれているとします。


$INCLUDE /etc/named/data/mailboxes

この行によって、/etc/named/data/mailboxes ファイルがその時点で読み込まれます。この例では、/etc/named/data/mailboxes が、$INCLUDE ファイルです。$INCLUDE ファイルは必要に応じて、必要な数だけ使用します。