自宅サーバー作製記
2005.11.1 DNSサーバー


我が家の契約しているISPはアサヒネットです。このISPは初期費用のみ(光プレミアムコースでは標準サービスになっています)で固定でグローバルIPアドレスを割り振ってもらえます。固定でIPアドレスを割り振ってもらったのはDNSサーバー(プライマリー)を自前で立てることにしたからです。
もちろん、固定で割り振ってもらっている以上、踏み台にされないようにセキュリティーを万全にしておかなければなりません。我が家ではルーターを使用し、DMZホスティングを使用 、他のマシンとセグメントをかえてあります。さらにウィルス対策ソフトとソフトウェアファイヤーウォールを導入しています。Windowsアップデートも必ずかけています。

我が家のLANの構成

インターネット

↓↑

ルータ 192.168.0.1

↓↑

192.168.10.3
 Webサーバー

192.168.0.100
 メインマシン

192.168.0.101
セカンドマシン

 192.168.0.102
ファイルサーバ

DHCPによる自動割り振り
ノートPC

プライベートIPアドレスはノートPC以外は固定で割り振っています。メールサーバーを不正中継させないようにしているため、中継許可を与える都合上、固定で割り振っています。したがって外出先でこれを使ってのメールの送信はできません。受信は出来ます。
接続はPPPoeで常時接続になっています。またWebサーバーとファイルサーバーは24時間、運用しています。


    Webサーバー

このHPでは説明の順序が逆になっていますが、DNSサーバーでメールサーバーの記述もしてありますのでDNSサーバーを自分で立てる場合はDNSサーバー立ててからメールサーバーを立てるということになります。
 

1.DNSサ−バーソフトの選定とダウンロード
WindowsにもDNSサービスがありますが、ここでは業界標準のBINDを使用することにします。Windows2000,XP用のBINDをダウンロードします。
BINDはこちらからダウンロードします。INTERNET SYSTEMS CONSORTIUM

Windows用です。現在にバージョン9.31はXPまで使用できます。


INTERNET SYSTEMS CONSORTIUMのHP

ダウンロードできたら解凍します。


解凍したファイル

2.インストール
解凍したファイルのなかにあるBINDInstall.exeをダブルクリックするとインストールが開始されます。

Installをクリックするとインストールが開始されます。すべてデフォルトのままで良いでしょう。インストールが終了したらまず共通鍵というものを作成します。コマンドプロンプトを開いて以下のコマンドを実行します。Windows2000の場合は\WINNT\となります。

cd  \Windows\system32\dns\
..\bin
\rndc-confgen.exe >rndc.key

実行した後 rndc.key をメモ帳などで開くと文字列が記載されています。これが共通鍵となります。上記のコマンドを実行するたびに共通鍵が生成されますので、新たに共通鍵を作成した場合は以下に述べるnamed.confという定義ファイルを書き直す必要があります。
BINDが必要とする定義ファイルは以下のとおりです。
・named.conf
・127.0.0.db
・suga.bz.db
・cache.db

の4つで\Windows\system32\dns\etc の中におきます。

 

2.次に各定義ファイルを書き換えて自分の環境にあったものにします。ここでは korosukeの自宅サーバー さんのDNSのページを参考にさせていただきました。同HPにあるDNSサーバー導入


(1) named.confファイルをメモ帳などで編集します。

acl local_network {
127.0.0.1;
192.168.0.0/16;   //適正なネットマスクを設定してください。
};
acl secondary_dns {  //セカンダリーDNSの値 (使用するセカンダリーDNSの情報を記述します)
195.234.42.1;     // ns0.Xname.org (ここではXname.orgというDNSサービスを利用しています。)
193.218.105.149;      // ns1.Xname.org
193.218.105.146;     // www.xname.org,(Webインターフェースにて使用しています)
};

# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "QHgQlTmDKDiMnYFosyWXRA==";    //前述の共通鍵で作成したものと置き換えてください
};

options {
directory "c:\windows\system32\dns\etc";
auth-nxdomain yes;
allow-transfer {
local_network;
secondary_dns;
};
version "";
};

//loggingには500KB必要とします
logging {
channel my_file {
file "named.run" versions 5 size 100k;
severity debug 0;
print-category yes;
print-severity yes;
print-time yes;
};

category default {my_file;};
category queries {my_file;};
category lame-servers { null;};
category xfer-out {my_file;};
category config {my_file;};
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; }
keys { "rndc-key"; };
};

// ルートサーバーの情報
zone "." {
type hint;
file "cache.db";
};

// 逆引ローカルループバックファイル
zone "0.0.127.in-addr.arpa" {
type master;
file "127.0.0.db";
};

// master
zone "suga.biz" {    //独自ドメイン名
type master;
file "suga.biz.db";    //ゾーン定義ファイル名
notify yes;
};


(2) 127.0.0.dbファイルをメモ帳などで編集します。

;;;;;;;;;; 127.0.0.db file by Len Conrad
$TTL 86400
$ORIGIN 0.0.127.IN-ADDR.ARPA.
@ SOA ns2.suga.biz.admin.suga.biz. (
2005110101 ; zone serial number in ccyymmddxx format  //シリアルナンバーは設定を変更して起動するときは1づつ増やします。
3600 ; slave polls master for SOA/serial number
1800 ; slave re-polls unreachable master
864000 ; slave expires zone after master unreachable
3600 ; TTL for negative answers
)
;nameservers
@ NS ns2.suga.biz.
;
1 PTR localhost.


(3) suga.biz.dbファイルをメモ帳などで編集します。

example of forward zone file: suga.bz
;
$TTL 86400
@ SOA ns2.suga.biz.admin.suga.biz. (
2003091501 ; zone serial number in ccyymmddxx format
3600 ; slave polls master for SOA/serial number
1800 ; slave re-polls unreachable master
864000 ; slave expires zone after master unreachable
3600 ; TTL for negative answers
)
;
;nameservers
@ NS ns2.suga.biz.  //DNSサーバー名
@ NS ns0.xname.org. //セカンダリーDNSサーバー名
;
localhost A 127.0.0.1
;
;mail
@ MX 10 mail.suga.biz. ; internet sends mail here
;
@ A 219.121.7.68 ; for URL without www prefix  //割り当てられたグローバルIPアドレス
ns2 A 219.121.7.68 ;     //Webサーバー名 割り当てられたグローバルIPアドレス
mail A 219.121.7.68 ;     //メールサーバー名 割り当てられたグローバルIPアドレス
;
www CNAME ns2.suga.biz. ;  //www名
ftp CNAME ns2.suga.biz. ;   //FTPサーバー名
;


(4) cache.dbファイルはこのまま使用します。ルートサーバーに変更があった場合は書き直す必要があります。この情報はnamed.cacheから得ることができます。

;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC 
;       under anonymous FTP as
;           file                /domain/named.cache
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    Jan 29, 2004
;       related version of root zone:   2004012900
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
;
; formerly C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
;
; formerly NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
;
; operated by VeriSign, Inc. 
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
;
; housed in LINX, operated by RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
;
; operated by IANA
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
;
; housed in Japan, operated by WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File

無料セカンダリDNSサービスはこちらで申し込み出来ます。xname.org他にもあります。
セカンダリ(スレーブ)DNSサーバーはプライマリ(マスター)DNSサーバーに障害があった場合に参照されるわけですから物理的に離れた場所に設置されているほうがいいわけです。 仮に今、スレーブDNSサーバーが同じところにあったとします。ここで停電があればマスター、スレーブともに停止してしまいます。したがって無料のスレーブDNSサービスを利用するか知り合いに頼むなどの方法がいいわけです 。もっとも、もう1回線引くだけの余裕もありません。なお、国内にはスレーブDNSサービスを無料で行っているところは無いようです。

3.サービスの開始
これらの設定を書き換えたらDNSサーバーを起動させます。Windowsの場合サービスの1つとして動きますので
マイコンピュータを右クリック−管理−サービスとアプリケーション−サービスの画面から

ISC BIND を選択しサービスを開始します。ここで共通鍵などに間違えがあると正常に起動しません。また、スタートアップの種類が自動になっていれば、再起動したときも自動でサービスが開始されます。サービスが開始されたらDNSが正常に動いているかどうか確認します。              

Page Top


前項 Information 次項