ちょっと物知り博士のちょこっと講座 戻る

第13回 DNSサーバー構築の苦闘

DNSサーバーの設定作業は、初めてLinuxをインストールしたときほどには悪戦苦闘はしませんでしたが、それなりに骨はありました。 ここから記録風にDNSサーバー設定手順を記述します。
1.ネットワークの整理
ローカルネットワークの ルータ、サーバー、端末の数を調べ、private IP address を振る
ルータ、外向けのサーバーにグローバルIP address を割り当てる
夫々のサーバーのサービスする内容を決める。
社外のサーバーのドメイン、IP address を調べる
この作業は必要に迫られて行なったのですが、後から振り返ってみると非常に重要なことであったと思います。
ネットワークを整理した結果次のようにサーバー毎のサービス内容を決めました
設備 ドメイン・サブドメイン プライベートIP グローバルIP サービス内容
ルーター 192.166.0.1 275.276.38.290 NAT、フィルター
DNSサーバー ns.isi-webnet.co.jp 192.166.0.104 275.276.38.291 ドメイン、メール、WEB
WWWサーバー ymzn.isi-webnet.co.jp 192.166.0.105 275.276.38.292 メール、WWW、FTP
WWWサーバー sgznt.isi-webnet.co.jp 192.166.0.106 275.276.38.293 メール、WWW、FTP
WWW(OCNホスティング) www.isi-webnet.co.jp 277.210.156.270 WWW 、メール
セカンダリーDNS ns-tk001.ocn.ad.jp 222.111.000.333
ここで疑問に思っていたのが、OCNホスティングサービスで受けているメールサービスのメールサーバーはどういう風に定義されるのか。本当は、この段階で、OCNに確認すべきだったのだが、ちょっと聞きにくく何とかならーとほっといた。なんともならんかったのは後述
2.サーバーの準備
DNSサーバーは365日24時間稼動で働くので、そこそこしっかりしたコンピュータを当てるべきです。新しいコンピュータを購入するつもりは全くなかったので、会社で現役で動いている WINDOWS98 を搭載している 富士通のFMV をつぶしてDNS に仕立て上げることにしました。
DNSサーバーは、単にドメイン名を解決するためにしか動きませんから、あまり大きなスペックのコンピュータは必要ないでしょう。仮にメールも扱うとしても、ISP(インターネットサービスプロバイダ)をやるわけではないので大きなディスク容量はいりません。CPU速度も130Mhzもあれば十分。
3.LINUXのインストール
ターゲットのFMVはディスク容量が 2Gbあったので、RedHat のディストリビューションのほとんどをインストールできました。
Xwindow 、SAMBA 、APACHE、wu-FTP、bind と主なものを全ていれてもまだ余裕です。
今までにトラブルもいれて7回LINUX のインストールを行なってきたので、トラブルゼロでインストール完了です。(実施は筆者の会社の従業員が2名夜遅くまでかかって、それでも2日で完了しました)
4.DNS サーバーの設定
DNSサーバーの構築手順は「Linuxによるネットワーク構築ガイド」に詳しく書いてあり、例をあげて一つ一つ手順を追って説明がなされているので、筆者のつたない講演よりそちらを見たほうがいいのです。 それでも概要だけは一応公開します。
@ 最初に named を止める。
# /etc/rc.d/init.d/named stop
A host.conf を確認する
# cat /etc/host.conf
order hosts,dns
multi on
B resolv.conf にnameserver の記述を行なう
# vi /etc/resolv.conf

domain isi-webnet.co.jp
nameserver 192.166.0.104 ・・ テスト用localhosts の記述
nameserver 192.166.0.101 ・・ router (ローカルDNSとしての機能)
nameserver 222.111.000.333 ・・ OCN セカンダリ DNS
C hosts ファイルに名前解決のための サーバー名、IPアドレスを記述
# vi /etc/hosts

127.0.0.1 localhost localhost,localdomain

192.166.0.104 gserver.isi-webnet.co.jp gserver mserver
テスト用 DNSサーバー
275.276.38.291 ns.isi-webnet.co.jp ns ms www.ns
本番用DNSサーバー
277.210.156.270 www.isi-webnet.co.jp www ftp
ホスティングWWWサーバー
275.276.38.292 ymzn.isi-webnet.co.jp www.ymzn ftp.ymzn
第2 WWWサーバー
275.276.38.293 sgznt.isi-webnet.co.jp www.sgznt ftp.sgznt
第3 WWWサーバー
222.111.000.333 ns-tk001.ocn.ad.jp
ocn セカンダリーDNS
D ゾーンファイル作成ベースファイル を作成
# cp /etc/hosts /etc/hosts.new

# vi /etc/hosts.new

127.0.0.1 localhost localhost,localdomain

192.166.0.104 gserver.isi-webnet.co.jp gserver mserver

275.276.38.289.291 ns.isi-webnet.co.jp ms www.ns

277.210.156.270 www.isi-webnet.co.jp ftp

275.276.38.292 ymzn.isi-webnet.co.jp www.ymzn ftp.ymzn

275.276.38.293 sgznt.isi-webnet.co.jp www.sgznt ftp.sgznt

222.111.000.333 ns-tk001.ocn.ad.jp
E h2n によりゾーンファイルを作成する
# mkdir /usr/local/etc/bind-contrib

# mount /mnt/cdrom

# cp /mnt/cdrom/../bind-contrib.tar.gz /usr/local/etc/bind-contrib/
CD よりコピー
# cd /usr/local/etc/bind-contrib

# tar -xvzf bind-contrib.tar.gz contrib/nutshell/h2n\*
解凍します
# cd /var/named

# pwd

# /usr/local/etc/bind-contrib/contrib/nutshell/h2n 以下スペースで区切って 連続記述
-d isi-webnet.co.jp
-n 192.166.0
-n 275.276.38.289 ; network アドレスをあるだけ記述(今回は1個)
-s ns
-s ns-tk001.ocn.ad.jp
-h ns.isi-webnet.co.jp
-H /etc/hosts.new
-b /etc/named.boot

以上の手続きで /var/named へ以下のファイルが作成されます
boot.cacheonly
db.127.0.0
db.192.166.0
db.275.276.38.289
db.isi-webnet
/etc へ 以下のファイルが作成されます
named.boot
F ブートファイルの変換(BINDvr4 to BINDvr8)
# perl /usr/sbin/named-bootconf < /etc/named.boot > /etc/named.conf

この処理ではあらかじめ named-bootconf の存在、場所を確認しておきます

/etc/named.conf に以下の内容が追記されているのを確認のこと

# vi /etc/named.conf
・・・・・・・・・・
zone "isi-webnet.co.jp"{
type master;
file "db.isi-webnet";
};
G ゾーンファイルを修正
# vi db.isi-webnet

@ IN SOA ns.isi-webnet.co.jp. root.ns.isi-webnet.co.jp. (1 10800 3600 604800 86400)
IN NS ns.isi-webnet.co.jp.
IN NS ns-tk001.ocn.ad.jp.
IN A 277.210.156.270 ※1
localhost IN A 127.0.0.1
ns IN A 275.276.38.291 ※2
ms IN CNAME ns.isi-webnet.co.jp.
www.ms IN CNAME ns.isi-webnet.co.jp.
ns IN MX 20 ns.isi-webnet.co.jp. ※3
gserver IN A 192.166.0.104
mserver IN CNAME gserver.isi-webnet.co.jp.
isi-webnet.co.jp. IN MX 10 mail-xxx.ww.ocn.ne.jp. ※4
smtp IN A 277.210.156.270 ※5
www IN A 277.210.156.270
ftp IN CNAME www.isi-webnet.co.jp.
www.ymzn IN A 275.276.38.292 ※6
ftp.ymzn IN CNAME ymzn.isi-webnet.co.jp.
ymzn IN MX 30 ymzn.isi-webnet.co.jp.
www.sgznt IN A 275.276.38.293
ftp.sgznt IN CNAME sgznt.isi-webnet.co.jp.

# vi db.275.276.38.289

@ IN SOA ns.isi-webnet.co.jp. root.ns.isi-webnet.co.jp. (1 10800 3600 604800 86400)
IN NS ns.isi-webnet.co.jp.
IN NS ns-tk001.ocn.ad.jp.
IN PTR isi-webnet.co.jp. ※7
IN A 255.255.255.248
291.289.38.276.275.IN-ADDR.ARPA. IN PTR isi-webnet.co.jp.

※1;通常はネットワークアドレスを追加記述します。今回の場合は isi-webnet.co.jp のドメインは
OCN ホスティングサービスで確保している 277.210.156.270 を指すのでこのように記述します。
※2;275.276.38.289.291 となっているので .289を削除します。
※3;メールイクスチェンジャレコード の順位 10 を20 に変えます。
※4;isi-webnet.co.jp のドメイン名で入ってくるメールは サーバー名 mail-xxx.ww.ocn.ne.jp. に変換します
このサーバー名は OCNに聞くしかありません。 これで悩んでいました。
※5;smtp サーバーを指定します。
※6;ネットワーク内のWWWサーバーを記述します
※7;追記します
H キャッシュファイルをコピー
# cp /var/named.original/named.ca /var/named/db.cache
5.DNS サーバーのテスト
4 の手順で一応 DNSサーバーの設定が出来ます。 これをこのままインターネットで公開するわけには行きません。
公開前に充分なテストが必要です。

テストはDNSサーバー自身及びローカルネットワークに繋がっているクライアントから行ないます。

named デーモンを起動します

# /etc/rc.d/init.d/named start

まず最初にメールサーバーの名前が解決できるか
# nslookup -querytype=mx isi-webnet.co.jp

次に夫々のサーバー名、及びエイリアスを入力してみて、名前変換が正常化どうか確認します。
# nslookup

Default Server : gserver.isi-webnet.co.jp
Address: 192.166.0.104
> xxxx

xxxx の部分にドメイン名、サーバー名、エイリアスをひとつづつ入力して正常に変換がなされるか
どうか確かめます。
さらに xxxx の部分に IP アドレスを入力して 名前が正常に返されるかテストします。

つぎにネットワークに繋がっているクライアントから DNS を 192.166.0.104 に設定して ping を飛ばしてみます

ping ns.isi-webnet.co.jp
ping ms.isi-webnet.co.jp
ping isi-webnet.co.jp
ping www.isi-webnet.co.jp
・・・・・・
一つでも応答が返って来ない場合、DNS の設定を誤っているので、/etc/hosts /var/named/db.isi-webnet
を再度チェックし、修正します。
解決しないまま、インターネットに公開してはいけません。

テストが完了したら
/etc/named.conf
/etc/named.boot
/var/named/db.192.166.0
/var/named/db.isi-webnet
/etc/resolv.conf
の各ファイルのローカルテスト部分を削除するかコメントアウトします。
6.JPNIC へサーバーを登録します
JPNIC への登録は指定された様式でmail を送信して自動的に行なわれます。
JPNIC から登録完了のmailが届いたら、直ちに、OCN の指定されたアドレスへ登録完了のmail を発信します。
7.router の設定
サービス開始日にあわせて routerの設定を行ないます

NAT 変換
275.276.38.291 ; 192.166.0.104
275.276.38.292 ; 192.166.0.105
275.276.38.293 ; 192.166.0.106
以上がDNSサーバーを構築する時の概要です。さあ、予定の日より2日遅れてしまいましたが、DNSサーバーが本格稼動し始めました。
筆者のDNSサーバーは無事に稼動したのでしょうか。次回の講演をお楽しみに!