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

Table of Contents
6.1. ミニ DNS システムの作成
6.2. PPP フィルタとの戯れ

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`