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"

// here are the names of the master files
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 ファイルの例


$TTL 5h
;
; 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 ファイルは通常、次の要素で構成されています。

hosts.rev ファイル

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

hosts.rev ファイルの設定

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


注 –

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



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


$TTL 5h
; 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 ファイルの例


$TTL 5h
; 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 ファイルは通常、次の要素で構成されています。

$INCLUDE ファイル

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

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


$INCLUDE /etc/named/data/mailboxes

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