次のページ 前のページ 目次へ

7. 実際のドメインの例

実際に用いられているゾーンファイルの例

チュートリアルの例だけでなく実際に動作している例を載せて欲しい、 という意見があったので、この章を設けました。

この例は LAND-5 の David Bullock の許可の下に用いています。 これらのファイルは、 1996 年 9 月 24 日現在のものを、私が BIND 9 の制限と拡張にあわせて編集したものです。 したがってここでの記述は、 実際に LAND-5 のネームサーバに問い合わせを行った結果とは多少異なります。

7.1 /etc/named.conf (または /var/named/named.conf)

マスターゾーンセクションとして、 必須の逆引きゾーンが二つ書かれています。 127.0.0 のネットと LAND-5 のサブネットである 206.6.177 です。 LAND-5 の正引きゾーンである land-5.com もプライマリとして指定されています。 ゾーンファイルは本 HOWTO のこれまでの例で用いていた pz ではなく、 zone というディレクトリに収められていることにも注意してください。


// Boot file for LAND-5 name server

options {
        directory "/var/named";
};

controls {
        inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
};

key "rndc_key" {
        algorithm hmac-md5;
        secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
        type master;
        file "zone/127.0.0";
};

zone "land-5.com" {
        type master;
        file "zone/land-5.com";
};

zone "177.6.206.in-addr.arpa" {
        type master;
        file "zone/206.6.177";
};

このファイルをあなたの named.conf ファイルに用いるときには、 必ず ``notify no;'' を land-5 の二つの zone セクションに追加して、 事故が起こらないようにしてください。

7.2 /var/named/root.hints

このファイルは動的に変化するものですから、このリストは古いです。 以前に説明したようにして、新しく作ったものを使いましょう。


; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET. 
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUERY SECTION:
;;      ., type = NS, class = IN

;; ANSWER SECTION:
.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241

;; Total query time: 215 msec
;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4
;; WHEN: Sun Feb 15 01:22:51 1998
;; MSG SIZE  sent: 17  rcvd: 436

7.3 /var/named/zone/127.0.0

非常にシンプルなものです。まず絶対に必要な SOA レコード、 そして 127.0.0.1 を localhost にマップするレコードです。 これらは両方とも必須です。逆にこれ以上のものは置くべきではありません。 このファイルは、使っているネームサーバか hostmaster のメールアドレスが変更されない限り、 更新する必要はおそらくないでしょう。


$TTL 3D
@               IN      SOA     land-5.com. root.land-5.com. (
                                199609203       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
        
1                       PTR     localhost.

適当にインストールされた BIND では、 ここでの例のように $TTL の行がないかもしれません。 この行は以前は用いられておらず、 8.2 の BIND だけが起動時にこの行が無い旨の警告を出します。 なお BIND 9 では $TTL必須です。

7.4 /var/named/zone/land-5.com

まず必須である SOA レコードと、同じく必須の NS レコードがあります。 セカンダリのネームサーバが ns2.psi.net に用意されていることもわかりますね。 これは望ましい設定です。 必ずサイトの外にバックアップのセカンダリネームサーバを置くべきです。 マスターのホストは land-5 で、 このホストは同時に各種のインターネットサービスを提供していることもわかります。 これには (A レコードでなく) CNAME が用いられています。

SOA レコードからわかるように、このゾーンファイルは land-5.com を origin にしており、連絡担当者は root@land-5.com です。 hostmaster も担当者のアドレスとして良く用いられます。 シリアル番号は yyyymmdd 形式で、 その日のうちのシリアル番号が追加されています。 これはきっと 1996 年 9 月 20 日の第 6 版なのでしょう。 シリアル番号は必ず増加しなければならないことを思い出してください。 ここには当日中のシリアル番号として一桁しか使うことが できません。したがって 9 回変更を行ったら、次の変更を行うには 翌日まで待たなければなりません。二桁使う方が良いかもしれませんね。


$TTL 3D
@       IN      SOA     land-5.com. root.land-5.com. (
                        199609206       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        4W              ; expire, seconds
                        1D )            ; minimum, seconds
                NS      land-5.com.
                NS      ns2.psi.net.
                MX      10 land-5.com.  ; Primary Mail Exchanger
                TXT     "LAND-5 Corporation"

localhost       A       127.0.0.1

router          A       206.6.177.1
        
land-5.com.     A       206.6.177.2
ns              A       206.6.177.3
www             A       207.159.141.192

ftp             CNAME   land-5.com.
mail            CNAME   land-5.com.
news            CNAME   land-5.com.

funn            A       206.6.177.2

;
;       Workstations
;
ws-177200       A       206.6.177.200
                MX      10 land-5.com.   ; Primary Mail Host
ws-177201       A       206.6.177.201
                MX      10 land-5.com.   ; Primary Mail Host
ws-177202       A       206.6.177.202
                MX      10 land-5.com.   ; Primary Mail Host
ws-177203       A       206.6.177.203
                MX      10 land-5.com.   ; Primary Mail Host
ws-177204       A       206.6.177.204
                MX      10 land-5.com.   ; Primary Mail Host
ws-177205       A       206.6.177.205
                MX      10 land-5.com.   ; Primary Mail Host
; {Many repetitive definitions deleted - SNIP}
ws-177250       A       206.6.177.250
                MX      10 land-5.com.   ; Primary Mail Host
ws-177251       A       206.6.177.251
                MX      10 land-5.com.   ; Primary Mail Host
ws-177252       A       206.6.177.252
                MX      10 land-5.com.   ; Primary Mail Host
ws-177253       A       206.6.177.253
                MX      10 land-5.com.   ; Primary Mail Host
ws-177254       A       206.6.177.254
                MX      10 land-5.com.   ; Primary Mail Host

land-5 のネームサーバを試してみればわかりますが、 本当のホスト名は ws_number となっています。 BIND 4 の後の方のバージョンから、 ホスト名に用いることのできる文字が制限されるようになりました。 したがってこの名前は BIND 8 では全く動作しませんから、 この HOWTO に掲載する際には '_' (underline) を '-' (dash) で置き換えました。 しかし、先に述べたように、BIND 9 では再びこの制限はなくなりました。

もう一つ気がつきましたか? 各ワークステーションには固別の名前は付いておらず、 プレフィックスに IP 番号の最後の二つが付いた形式になっています。 このような命名方法を用いればメンテナンスはとても楽になりますが、 やや人間との相性は悪いので、 顧客をイライラさせる結果になってしまうかもしれません。

funn.land-5.comland-5.com のエイリアスになっていますが、 これは CNAME レコードではなく A レコードを用いています。

7.5 /var/named/zone/206.6.177

このファイルについては後でコメントします。


$TTL 3D
@               IN      SOA     land-5.com. root.land-5.com. (
                                199609206       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
                        NS      ns2.psi.net.
;
;       Servers
;
1       PTR     router.land-5.com.
2       PTR     land-5.com.
2       PTR     funn.land-5.com.
;
;       Workstations
;
200     PTR     ws-177200.land-5.com.
201     PTR     ws-177201.land-5.com.
202     PTR     ws-177202.land-5.com.
203     PTR     ws-177203.land-5.com.
204     PTR     ws-177204.land-5.com.
205     PTR     ws-177205.land-5.com.
; {Many repetitive definitions deleted - SNIP}
250     PTR     ws-177250.land-5.com.
251     PTR     ws-177251.land-5.com.
252     PTR     ws-177252.land-5.com.
253     PTR     ws-177253.land-5.com.
254     PTR     ws-177254.land-5.com.

逆引きのゾーンは、設定の中でも多くの悲劇を引き起こす部分と言えます。 これはマシンの IP 番号がわかっている場合に、 ホスト名を取得するために用いられます。 例えば、あなたが立てている FTP サーバが FTP クライアントから接続されたとしましょう。 あなたの FTP サーバはノルウェーにあるので、 ノルウェーと他のスカンジナビアの国々以外からの接続は多めに、 他の国々からの接続は少なめに制限したいとします。 クライアントから接続されると、 C ライブラリによって接続してきたマシンの IP 番号を知ることができます。 なぜならクライアントの IP 番号は、ネットワークを運ばれてきた IP パケットのそれぞれに書き込まれているからです。 ここで gethostbyaddr という関数を呼べば、 IP 番号からホストの名前を引くことができます。 gethostbyaddr は DNS サーバに尋ね、 DNS サーバは DNS からそのマシンを探します。 接続してきたクライアントは ws-177200.land-5.com だったとしてみましょう。 C ライブラリが IRC サーバに渡す IP 番号は 206.6.177.200 となります。 したがって名前を引くためには 200.177.6.206.in-addr.arpa を見つける必要があります。 DNS サーバはまず arpa. のサーバに問い合わせをし、 in-addr.arpa. のサーバを教えてもらいます。 続いて 206, 6 を順次逆に辿って、最後に Land-5 のゾーンである 177.6.206.in-addr.arpa ゾーンを発見します。 最後にサーバは、そこから 200.177.6.206.in-addr.arpa に対する答えを入手します。 ``PTR ws-177200.land-5.com'' レコードから、 206.6.177.200ws-177200.land-5.com であることがわかります。

FTP サーバはスカンジナビアの国々、すなわち *.no, *.se, *.dk からの接続を優先しますが、 ws-177200.land-5.com は明らかに以上のどれにもマッチしませんから、 サーバはこの節続を、バンド幅がより小さく、 最大接続数も少ないクラスに割り当てます。 206.2.177.200 に対する逆引きマップがそもそも in-addr.arpa ゾーンに存在しなければ、 サーバは決して名前を見つけることができませんから、 206.2.177.200 そのものを *.no, *.se, *.dk と比較します。 どれにもマッチするわけはなく、 サーバはクラスの割り当てができないその節続を、 拒否することもあり得ます。

逆引きマップが重要なのはサーバだけだ、という人や、 そもそも逆引きマップなんて全然大事じゃないんだ、 なんていう人がいるかもしれません。 これは間違いです。 多くの ftp, news, IRC サーバでは逆引きのできないマシンからの接続を拒否します (WWW サーバにさえ拒否するものもあります)。 ですからマシン名の逆引きマップは実のところは必須なのです。


次のページ 前のページ 目次へ