今ならXeonも搭載可能なPCサーバー「PowerEdge SC440」が2万円台から買える!

マウスコンピューター」ならWindows抜きでもPCが買える。Linuxサーバーとしての利用に最適!

トップページ

  • tarの使い方
  • rpmの使い方
  • psコマンドでプロセスを確認
  • /etc/crontabを編集してアプリを自動実行
  • chkconfigコマンドでプロセスを自動起動

DNSサーバーのBINDを設定する

2005年2月13日 掲載
2006年6月14日 改訂

  DNSとはDomain Name Systemの略であり、ドメイン名をIPアドレスに変換する仕組みのことだ。インターネット上のコンピュータは数字の羅列であるIPアドレスでアクセスするが、DNSを用いることで人間が覚えやすいドメイン名で指定できる。たとえば、ブラウザにwww.jitaku-server.netのようなURLを入力すると、DNSサーバーへと問い合わせを行う。そして、DNSからIPアドレスを取得し、そのIPアドレスで接続をおこなうわけだ。

DNSサーバーを設置するメリット

 一般家庭ではプロバイダが用意したDNSサーバーを利用するのがふつうだ。だが、自宅サーバーを設置したなら、自分のところでDNSサーバーを動かすこともできる。自前のDNSサーバーを持つメリットは2つある。
 まずはレスポンスが良くなるところ。DNSサーバーには過去に問い合わせた内容をキャッシュする機能があり、次に同じドメイン名を指定するとキャッシュされたデータを使用する。いちいち外部のDNSサーバーに問い合わせるよりも、LANの中にあるDNSサーバーを使った方が速いのだ。また、インターネットへの接続に使うルーターにはプロバイダのDNSサーバーへの問い合わせを中継する機能を持つものが多い。だが、ルーターの機能では速度が遅く、そこが原因となってインターネットへのアクセスが遅く感じられることもある。
 もうひとつの利点は、LANの中のサーバーにホスト名でアクセスできるようになること。たとえば、LANの中でウェブサーバーを立ち上げたとき、ページがうまく表示されるか確認するにはサーバーのプライベートIPアドレスを指定して接続する。これがDNSサーバーを設置することで、www.jiitaku-server.netのような名前で見られるようになる。LANの中ではドメイン名を省略することができるので、wwwだけでアクセスすることも可能だ。

キャッシュだけのDNSサーバーを作る

 Linuxの世界ではBINDというソフトウェアを使ってDNSサーバーを構築する。Vine LinuxではこのBINDが標準で組み込まれるので、あとからインストールする必要はないはずだ。もし何らかの理由でインストールされていないときは、「apt-get install bind」「apt-get install bind-utils」でインストールすることができる。

 まずはLAN内のホスト名の通知を行わない、キャッシュだけのDNSサーバーを作ることから始めてみよう。BINDの設定はけっこう面倒なので、難しいことをやりたくない人はキャッシュだけでも快適に使えるようになると思う。
 BINDの設定ファイルは/etc/named.confだ。しかし、なぜか標準インストールではこのファイルが作成されないので、次の内容のファイルを一から作成する必要がある。まずは理屈を考えることなく、ファイルをそのまま作成しよう。下の例を入力するとき、太字で示したプロバイダのDNSサーバーのアドレスだけは自分の環境に合わせて変更してほしい。

options {
    directory "/var/named"; ZONEファイルの保存場所を指定
    forwarders { ZONEファイルにないホスト名の検索先を指定
        202.248.37.74;  プロバイダのDNSサーバーのアドレス
        202.219.63.253;
    };
    allow-query { DNSサーバーに接続できる端末を制限する
        127.0.0.1; サーバー自身を示す
        192.168.0.0/24; LAN内の端末を示す
    };
};

zone "localhost" IN { localhostの正引きの設定
    type master;
    file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" IN { localhostの逆引きの設定
    type master;
    file "0.0.127.in-addr.arpa";
};

 次に/var/namedディレクトリにZONEファイルというホスト名とIPアドレスの対応を記述したファイルを作成する。ここではキャッシュとしてだけ使うので、localhostという自分を指し示すホスト名についてだけ情報を設定する。まずはlocalhostと指定したときにループバックアドレス(127.0.0.1)を通知するために、localhost.zoneというファイルを作る。

$TTL 1D
@   IN    SOA    localhost.    root.localhost. (
                      2005021401
                      3H
                      15M
                      1W
                      1D )
    IN    NS     localhost.
    IN    A      127.0.0.1

 同じ/var/namedディレクトリに0.0.127.in-addr.arpaというファイルを作成する。こちらのファイルは127.0.0.1というアドレスからlocalhostというホスト名を導き出すために使う。IPアドレスからホスト名を探すことを逆引きという。

$TTL 1D
@   IN    SOA    localhost.    root.localhost. (
                      2005021401
                      3H
                      15M
                      1W
                      1D )
    IN    NS     localhost.
1   IN    PTR    localhost.

BINDを起動する

 ファイルを作成したら、次はDNSサーバーを起動する。起動スクリプトは/etc/rc.d/init.d/namedである。次のようにコマンドを入力しよう。

# /etc/rc.d/init.d/named start
namedを起動中:                           [  OK  ]
#

 さらに標準ではシステム起動時にDNSサーバーが起動しない設定になっているので、chkconfigコマンドで自動起動するように設定する。「chkconfig named on」で設定を行い、「chkconfig --list named」で設定が正しくなされたかを確認する。「3:on」と表示されていることをチェックしよう。

# chkconfig named on
# chkconfig --list named
named           0:off   1:off   2:off   3:on    4:on    5:on    6:off
#

DNSサーバーのテストを行う

 設定が終わったら、DNSサーバーが正しく動作するかを確かめてみよう。まずはサーバーマシンが参照するDNSサーバーのアドレスを変更する。DNSサーバーのアドレスは/etc/resolv.confに保存されているので、これを編集する。DNSサーバーは自分自身なのでループバックアドレス(127.0.0.1)と指定する。設定は再起動しなくても反映するはずだが、念のために再起動しておくと安心だ。

nameserver 127.0.0.1

 設定が正しいかどうかはhostコマンドで検証する。チェックのポイントは次の3つだ。

  1. localhostから127.0.0.1に変換できるか
  2. 127.0.0.1からlocalhostに変換できるか
  3. 外部のサーバーを指定したときにIPアドレスに変換できるか

 次のように表示されればDNSサーバーは正しく動いている。

# host localhost localhostのIPアドレスを調べる
localhost has address 127.0.0.1
# host 127.0.0.1 127.0.0.1のホスト名を調べる
1.0.0.127.in-addr.arpa domain name pointer localhost.
# host www.vinelinux.org 外部のサーバーのIPアドレスを調べる
www.vinelinux.org is an alias for vinelinux.org.
vinelinux.org has address 133.1.84.71
#

 また、WindowsのパソコンでもDNSサーバーの設定を変更してみる。
 WindowsXPの場合はコントロールパネルの「ネットワーク接続」を開き、「ローカルエリア接続」「ワイヤレスネットワーク接続」をダブルクリック。ネットワークの状態画面があらわれるので「プロパティ」をクリックすると、ネットワークの詳細設定を行う画面になる。ここで「この接続は次の項目を使用します」の中にある「インターネットプロトコル(TCP/IP)」をダブルクリックすれば、DNSサーバーの指定を行える。「次のDNSサーバーのアドレスを使う」を選択し、「優先DNSサーバー」のところに自宅サーバーのプライベートIPアドレスを入力しよう。
 設定を保存したら、ブラウザを起動して、いろんなウェブサイトを開いてみる。少しは速くなったことを感じられるだろうか。

 
掲示板 管理者のサイト トップページへ

お問い合わせや間違いのご指摘はyasu@center-left.comまでメールください。