PPP - Pedantic PPP Primer
Prev |  | Next

# Chapter 6 熱心な学習者への練習問題

# 6.1 ミニ DNS システムの作成

確かにドメインネームサービス (DNS) ヒエラルキーの管理は黒魔術にも似た作業ではありますが, FreeBSD システムを ISP へのゲートウェイとして作動させながら, 同時に小さな DNS サーバとしても働かせることも可能なのです.

FreeBSD システムのインストール時に `/etc/namedb` ディレクトリに作成されるファイルを元にすれば, ガイド中のネットワークに権威を持ちながら, インターネットの DNS アーキテクチャに対する正面玄関としての役割も果たすネームサーバをつくることができるのです.

最小限の DNS の設定を行うには, 以下の三つのファイルが必要になります.

    /etc/namedb/named.boot
    /etc/namedb/named.root
    /etc/namedb/mydomain.db

`/etc/namedb/named.root` ファイルは FreeBSD のベースインストールの一部として自動的にインストールされますが, 他の二つのファイルは手で書いてやる必要があります.

## 6.1.1 `/etc/namedb/named.boot` ファイル

`/etc/namedb/named.boot` ファイルは DNS サーバのスタートアップ時の設定をコントロールします. 基本的には, ネームサーバに以下の情報を伝えます.

1. どこに設定ファイルが存在し,

2. どの「ドメイン名」を管理するのか. そして

3. どこへ行けば他の DNS サーバを見つけられるのか.

'ee' エディタを使って, 以下の内容の `/etc/namedb/named.boot` ファイルをつくってください.

    ; boot file for mini-name server

    directory   /etc/namedb

    ; type    domain        source host/file        backup file

    cache     .         named.root
    primary   my.domain.        mydomain.db

セミコロンで始まる行はコメントです. このファイル内で重要な行は

- `directory /etc/namedb`

  ネームサーバに '`/etc/namedb/named.boot`' の残りのセクションで参照される設定ファイルの存在するディレクトリを伝えています.

- cache . named.root

  ネームサーバにインターネットの "Top-Level" の DNS サーバの一覧が '`named.root`' ファイルに書いてあることを伝えています. (このファイルはベースインストールの一部に含まれているので, このドキュメントでは内容については説明しません.)

  ネームサーバに対して, "my.domain" という DNS ドメインを 「管理する (authoritative)」こと, "my.domain" (このローカルネットワーク) 上のシステムのホスト名と IP アドレスのリストは '`mydomain.db`' ファイル内にあることを伝えています.

`/etc/namedb/named.boot` ファイルをつくってセーブしたら, つぎの章に進んで `/etc/namedb/mydomain.db` ファイルをつくってください.

## 6.1.2 `/etc/namedb/mydomain.db` ファイル

`/etc/namedb/mydomain.db` ファイルはローカルエリアネットワーク (LAN) のすべてのシステムのホスト名と IP アドレスを一覧にしたものです.

このファイルで使用されている文の詳細な説明については, named の man を参照してください.

このガイド中のネットワークで DNS サーバの設定を最低限行う `/etc/namedb/mydomain.db` ファイルは, 次のような内容になるでしょう.

    @  IN SOA  my.domain. root.my.domain.  (
                    961230  ; 通し番号
                    3600    ; 問い合わせ
                    300 ; 再試行
                    3600000 ; 無効化
                    3600 )  ; 有効期間
        IN NS   curly.my.domain.

    curly.my.domain.    IN A    192.168.1.1 # FreeBSD マシン
    larry.my.domain.    IN A    192.168.1.2 # Win'95 マシン
    moe.my.domain.      IN A    192.168.1.3 # WfW マシン
    shemp.my.domain.    IN A    192.168.1.4 # Windows NT マシン

    $ORIGIN 1.168.192.IN-ADDR.ARPA
            IN NS   curly.my.domain.
    1       IN PTR  curly.my.domain.
    2       IN PTR  larry.my.domain.
    3       IN PTR  moe.my.domain.
    4       IN PTR  shemp.my.domain.

    $ORIGIN 0.0.127.IN-ADDR.ARPA
            IN NS   curly.my.domain.
    1       IN PTR  localhost.my.domain.

簡単に説明すると, このファイルでは, ローカルの DNS サーバは以下のようであると宣言しています.

- 'my.domain' というドメインに対する管理情報の始点 (Start of Authority, "SOA") であり,

- 'my.domain' に対するネームサーバ ("NS") であり,

- '192.168.1.' と '127.0.0.' で始まる全ての IP アドレスに対する逆引き情報に責任があること ("$ORIGIN ...")

このファイルにワークステーションのエントリを加えるとき, 一つのシステムにつき二つの行を加える必要があります. 一つは頭のセクション, ホスト名がインターネットアドレス ("IN A") に対応づけられる部分で, もう一つは `$ORIGIN 1.168.192.IN-ADDR.ARPA` セクションの, アドレスをホスト名に逆付けする部分です.

## 6.1.3 DNS サーバの起動

デフォルトではシステムのブート時に DNS サーバ ('`/usr/sbin/named`') は起動しません. この振る舞いは, 以下のように '`/etc/rc.conf`' を一行変えるだけで変更することができます.

'ee' エディタを使って `/etc/rc.conf` を読み込み, このようなセクションに当たるまで 40 行ほど下ってください.

    ---
    named_enable="NO"                       # Run named, the DNS server (or NO).
    named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled).
    ---

このセクションを次のように変えましょう.

    ---
    named_enable="YES"                      # Run named, the DNS server (or NO).
    named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled).
    ---

ファイルをセーブしてマシンを再起動してください.

または, 次のコマンドを打ち込んでネームサーバデーモンを起動してください.

    # named -b /etc/namedb/named.boot

`/etc/namedb` 以下のファイルを変更した場合はいつも, 変更に対応させるために, ネームサーバのプロセスにキックスタートをかけてやる必要があります. これは以下のシステムコマンドで実行できます.

    # kill -HUP `cat /var/run/named.pid`

Prev | Home | Next
イーサネット LAN のテスト |  | PPP フィルタとの戯れ

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。