読者です 読者をやめる 読者になる 読者になる

本当は怖い情報科学

情報系大学院生の趣味&実益ブログ。

いろいろ便利にするためにローカルでDNSサーバーを動かす

以前に書いたとおり、
Windows Vistaでdial-up接続をすると、Deault Gatewayのアドレスが0.0.0.0になるという問題があった。そのせいで、e-mobileでインターネットに接続するとゲストOSから外の世界に接続できなかった。

名前解決以外は特に問題ないので、ホストであるWindows Vista上でDNSサーバー動かせばいいんじゃねーということでやってみた。独自ドメインを設定したりするわけではなく、ただ単にキャッシュサーバーとして動作させるだけ。

注:といっても、DNSサーバーを不用意にインターネット上に公開しないように、ファイアーウォール等の設定をきちんとして、内部からのリクエストのみを処理するようにしよう。


まず、ここからWindows 2000/XP/2003 Binary Kitをダウンロードする。解凍したディレクトリの中のBINDInstall.exeを実行すれば、普通にインストールされる。ここまでは簡単。

次に、設定をする。

ログを保存するためのディレクトリを作る。BINDのインストールディレクトリがC:\Windows\System32\dnsなので、C:\Windows\System32\dns\logというディレクトリを作成し、「読み取り専用」を解除する。

次に、C:\Windows\System32\dns\etcディレクトリに、named.confという名前で設定ファイルを作成しよう。内容は次の通り。

options {
          directory "C:\windows\system32\dns\etc";  // DNSのデータベースディレクトリ
};

// ルートのゾーン設定
zone "." {
          type hint;
          file "named.root";
};

// ログ関係の設定
logging {
          channel default-log {
              file "C:\Windows\System32\dns\log\named.log" versions 5 size 1m;
              severity info;
              print-time yes;
              print-category yes;
        }; 
};

次に、ルートサーバーの情報が入った定義ファイルを用意する。
ftp://rs.internic.net/domain/named.rootにファイルが用意されているので、これをダウンロードしてnamed.rootという名前になっていることを確認してnamed.confと同じディレクトリに保存する。

設定ファイルの情報が正しいかどうか確認しよう。コマンドプロンプトを開いて、

> cd c:\Windows\System32\dns\bin
> named-checkconf.exe

と入力して何事も無く終了すれば設定ファイルは正しく書かれている。

続いて、コマンドラインからサーバーを起動してみる。

> named.exe -f

終了するときはCtrl + Cで終了できる。コマンドプロンプトをもう1つ開いて、

> cd c:\Windows\System32\dns\bin
> nslookup.exe www.google.com 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 66.249.89.104
Name:   www.l.google.com
Address: 66.249.89.147
Name:   www.l.google.com
Address: 66.249.89.99

と返ってくれば正しくDNSの情報が取れている。

最後に、bindをWindowsサービスとして起動しよう。「コントロールパネル→管理ツール→サービス」からサービスの管理画面を起動して「ISC BIND」を探す。僕の手元の環境だと、ログオン名が「.\named」になっていてエラーで起動できなかったので、「プロパティ→ログオン」から「ローカルシステムアカウント」を選択した。それがOKなら、「スタートアップの種類」を「自動」にして、「開始」を押す。

あとは、適宜セキュリティソフトのファイアーウォール機能を使って、BINDへのアクセスを自マシンとVMWareのゲストOSからだけにするように設定しよう。これで、無事にローカルのDNSサーバーを使ってVMWareのゲストOSからもインターネット接続ができるようになった。

BIND入門 (Linux magazine books (04))
BIND入門 (Linux magazine books (04))榊 正憲

アスキー 2001-04
売り上げランキング : 146266

おすすめ平均 star
starコンパクトによくまとまっています

Amazonで詳しく見る
by G-Tools

DNS&BIND(第4版)
DNS&BIND(第4版)Paul Albitz Cricket Liu 高田 広章

オライリー・ジャパン 2002-02-26
売り上げランキング : 12215

おすすめ平均 star
starDNSの本ならこれ一冊でOK!
starご存知バッタ本
starアマチュア(日曜サーバ管理者)には難しいかも・・・

Amazonで詳しく見る
by G-Tools

【広告】