実践で学ぶ、一歩進んだサーバ構築・運用術

第 3 回 ネームサーバ (後編)


外向けネーム・サーバー

さて, ではいよいよ named の設定ファイルの書き方の説明です。 外向けのサーバー専業型ネーム・サーバーの設定ファイル /alt-root/etc/named.conf の例を図6に示します。


1 options { 2 directory "/var/named"; 3 pid-file "/var/named/public.pid"; 4 listen-on { 5 210.145.125.160/28; // gcd.org 6 }; 7 allow-transfer { 8 none; 9 }; 10 fetch-glue no; 11 recursion no; 12 }; 13 14 zone "gcd.org" { 15 type master; 16 file "db.gcd.org"; 17 allow-transfer { 18 203.139.160.74; // ns-tk012.ocn.ad.jp 19 210.167.164.35; // brother.daionet.gr.jp 20 }; 21 }; 22 23 zone "160.125.145.210.IN-ADDR.ARPA" { 24 type master; 25 file "db.210.145.125.160"; 26 allow-transfer { 27 203.139.160.74; // ns-tk012.ocn.ad.jp 28 }; 29 }; 30 31 // master server 32 33 zone "haniwa.com" { 34 type master; 35 file "db.haniwa.com"; 36 allow-transfer { 37 210.167.164.35; // brother.daio.net 38 }; 39 }; 40 41 // slave server 42 43 zone "daio.net" { 44 type slave; 45 file "bak.daio.net"; 46 masters { 47 210.167.164.35; // brother.daio.net 48 }; 49 }; 50 51 // local 52 53 zone "0.0.127.IN-ADDR.ARPA" { 54 type master; 55 file "db.127.0.0"; 56 }; 57 58 zone "." { 59 type hint; 60 file "root.cache"; 61 };
図6 外向けネーム・サーバーの設定ファイル /alt-root/etc/named.conf の例

1行目から12行目がnamedの全体的な設定, 14行目以降がドメインごとの設定です。 5行目で named が外向けの IP アドレスで問い合わせを待つように指定しています。 8行目は, ゾーン転送をデフォルト禁止にする指定です。

重要なのは10行目と11行目で, この指定により named がサーバー専業型ネーム・サーバーとして動作します。 11行目の「recursion no」は文字通り recursion(再帰)をしない, すなわち知らないドメインに関する問い合わせがあったときに 他のサーバーへの問い合わせを行わないという指定です。

10行目は, 「糊」*6データを取り込まないという意味で, 「recursion no」と組み合わせることにより 他のネーム・サーバーが持っているドメインに関する情報を キャッシュに取り込むことを防ぎます。 つまり「サーバー専業型」動作になります。

この例では, 表2の各ドメインのプライマリ・サーバーになり, 表3のドメインのセカンダリ・サーバーになります*7。

表2 プライマリ・サーバーとして機能するドメイン
ドメインゾーン・ファイル
gcd.orgdb.gcd.org
160.125.145.210.in-addr.arpadb.210.145.125.160
haniwa.comdb.haniwa.com
0.0.127.in-addr.arpadb.127.0.0

表3 セカンダリ・サーバーとして機能するドメイン
ドメインゾーン・ファイルのコピー
daio.netbak.daio.net

ゾーン・ファイルは, named.conf の2行目で指定したように, /alt-root/var/named ディレクトリの下に置きます。

ドメイン gcd.org のゾーン・ファイル db.gcd.org の例を図7に示します*8。


; GCD.ORG. ; $TTL 14400 ; Default TTL of 4 hour @ IN SOA ns.gcd.org. sengoku.gcd.org. ( 58 ; Serial 3600 ; Refresh after 1 hour 1800 ; Retry after 30 min 604800 ; Expire after 1 week 3600 ) ; Minimum TTL of 1 hour IN NS ns.gcd.org. IN NS brother.daio.net. IN NS ns-tk012.ocn.ad.jp. IN A 210.145.125.162 IN MX 10 mx localhost IN A 127.0.0.1 ns IN A 210.145.125.162 mx IN A 210.145.125.162 asao IN A 210.145.125.162 toyokawa IN A 210.145.125.163 soho IN A 210.145.125.168 soho1 IN A 210.145.125.169 soho2 IN A 210.145.125.170 soho3 IN A 210.145.125.171 soho4 IN A 210.145.125.172 ube IN A 210.145.125.174 www IN CNAME asao news IN CNAME asao uucp IN CNAME asao mn IN MX 10 mx $INCLUDE member.gcd.org
図7 ドメイン gcd.org のゾーン・ファイル db.gcd.org の例

最後の行「$INCLUDE member.gcd.org」で, ファイル「member.gcd.org」をインクルードしていますが, このファイルは gcd.org のサブドメインについて記述したものです。 このファイルも, /alt-root/var/named ディレクトリに置きます。 一部を抜粋(図8)して紹介します。


maczuka IN MX 10 mx *.maczuka IN MX 10 mx www.maczuka IN CNAME www
図8 サブドメインについて記述したファイル「member.gcd.org」 一部だけを抜粋して紹介しています。

db.210.145.125.160 は逆引きのためのゾーン・ファイル*です。 OCNエコノミーでは, ユーザーそれぞれに16個または8個のIPアドレスが割り当てられます。 逆引きのためのゾーン・ファイルは, IPアドレス256個分が最小単位ですから, このままではユーザーのネーム・サーバーに逆引きのためのゾーン・ファイルを 置くことができません。 そこで, OCN では OCN 側のネーム・サーバーで, 図9のようなエイリアス(CNAME)が設定されています。


$ORIGIN 125.145.210.in-addr.arpa. 160 IN NS ns.gcd.org. IN NS ns-tk012.ocn.ad.jp. 161 IN CNAME 161.160 162 IN CNAME 162.160 163 IN CNAME 163.160 164 IN CNAME 164.160 165 IN CNAME 165.160 166 IN CNAME 166.160 167 IN CNAME 167.160 168 IN CNAME 168.160 169 IN CNAME 169.160 170 IN CNAME 170.160 171 IN CNAME 171.160 172 IN CNAME 172.160 173 IN CNAME 173.160 174 IN CNAME 174.160 175 IN CNAME 175.160
図9 OCNのネーム・サーバーで設定されているエイリアス ユーザーのネーム・サーバーに逆引きのためのゾーン・ファイルを置けるように, このようなエイリアス(CNAME)が設定されています。

つまり, 「161.125.145.210.in-addr.arpa. 〜 175.125.145.210.in-addr.arpa.」は, それぞれ 「161.160.125.145.210.in-addr.arpa. 〜 175.160.125.145.210.in-addr.arpa.」 のエイリアス(別名)になっています。 こうしておいて, ドメイン「160.125.145.210.in-addr.arpa.」に関する管理権限を ユーザーのネーム・サーバー(この場合だとns.gcd.org)へ委譲しているわけです。

ドメイン「160.125.145.210.in-addr.arpa.」のゾーン・ファイル 「db.210.145.125.160」の例を図10に示します。


; 160.125.145.210.IN-ADDR.ARPA. ; $TTL 14400 ; Default TTL of 4 hour @ IN SOA ns.gcd.org. sengoku.gcd.org. ( 5 ; Serial 3600 ; Refresh after 1 hour 1800 ; Retry after 30 min 604800 ; Expire after 1 week 1800 ) ; Minimum TTL of 30 min IN NS ns.gcd.org. IN NS ns-tk012.ocn.ad.jp. ; RFC 1101 stuff 0 IN PTR gcdnet.gcd.org. IN A 255.255.255.240 162 IN PTR asao.gcd.org. 163 IN PTR toyokawa.gcd.org. 168 IN PTR soho.gcd.org. 169 IN PTR soho1.gcd.org. 170 IN PTR soho2.gcd.org. 171 IN PTR soho3.gcd.org. 172 IN PTR soho4.gcd.org. 174 IN PTR ube.gcd.org.
図10 逆引き用ゾーン・ファイルの例 ドメイン「160.125.145.210.in-addr.arpa.」の ゾーン・ファイル「db.210.145.125.160」の例です。

例えば「210.145.125.162」の逆引きを調べようとして, 「162.125.145.210.in-addr.arpa.」を問い合わせると, OCN のサーバーが CNAME は「162.160.125.145.210.in-addr.arpa.」である旨を 教えてくれますから, 改めて「162.160.125.145.210.in-addr.arpa.」を問い合わせれば, ns.gcd.org が「asao.gcd.org」を返してくれます。

*6
ドメイン管理権限を委譲するときに, 親ドメインと子ドメインを結び付けるためのデータを指します。 具体的には, 子ドメインのネーム・サーバーのホスト名とIPアドレスのことです。 親ドメインが子ドメイン内に関する問い合わせを受け取ると, このデータを返します。
*7
実際の ns.gcd.org は, もっとたくさんのドメインを収容しています。
*8
このゾーン・ファイルは, 執筆時点のgcd.orgのゾーン・ファイルそのままです。
【ゾーン・ファイル】
ネーム・サーバーが情報に責任を持つ(権限を委譲されている)範囲を 「ゾーン」と呼びます。 ゾーンに関するデータを格納するのがゾーン・ファイルです。

(内向けネーム・サーバー)


本稿は日経Linux 2000 年 6 月号に掲載された、 実践で学ぶ、一歩進んだサーバ構築・運用術, 第 3 回「ネームサーバ (後編)」を日経BP 社の許可を得て転載したものです。

Copyright(C)2000 by 仙石浩明 <sengoku@gcd.org>
無断転載を禁じます

| home | up |

sengoku@gcd.org