★内向きDNSの設定
「このページにある設定ははかつさんのサイトhttp://www.kkoba.com/dns/bind.shtmlの設定をほとんど丸写ししてあります.詳しくはかつさんのサイトを見てください.私はVine
Linuxを使っていますのでbindはまだ8系です.したがって9系から用いられるようになったrndcの鍵ファイルは使っていません.」
lan内での名前解決にはhostsファイルを使うのが簡単ですが,いちいちすべてのコンピュータのhostsファイルを設定したりするのは面倒なので内向きDNSの設定をしてみました.もう一つ私は自分のHP(このページです)をバーチャルホストで設定しているので単にhttp://192.168.1.101としても自分のページをlan内から見ることはできません.これを解決するのにも役立ちます.自分のHPがlan内から,内向きDNSのおかげでyaguma.com
-> 192.168.1.101が解決されるので,http://yaguma.comとすれば見ることができます.逆にhttp://192.168.1.101としても192.168.1.101
-> sav.yaguma.com が解決されるので見ることができます.(バーチャルホスト機能でsav.yaguma.comでも自分のHPが見れるようにしてあります)ヤマハやコレガのある種のルータを使用しなければ,普通はlan内からhttp://yaguma.comは直接見ることができません.http://bfle.yaguma.comとすればルーターの設定画面が出ます.hostsでもできないことはないですが,ここまでやるとけっこうめんどくさいです.DNSの方が簡単のように思います.Windowsの設定で,TCP/IP
-> DNS -> DNSサーバーのIP(この場合は192.168.1.101)を入力するを忘れないように.これは,使用しているルータのDHCP機能で,DNSの割付機能があればそれでも良いです.
★lan内のパソコンとルーター
192.168.1.1 bfle.yaguma.com <- ルーター
192.168.1.100 savb.yaguma.com
192.168.1.101 sav.yaguma.com <- lan内ではこれがサーバー機
192.168.1.102 vine.yaguma.com
あとwindows機が数台あります.
★まずnetcfgでネットワーク関係の設定をします.なぜならこの内容がDNSクライアントであるレゾルバ,(設定ファイルは/etc/resolv.conf)に反映されるからです.
netcfgの設定
名前タブ
ホスト名 sav(DNSを設定するパソコンのホスト名)
ドメイン yaguma.com(自分の取得したドメイン)
ネームサーバ 127.0.0.1
202.224.32.1(プロバイダのネームサーバー)
202.224.32.1
ホストタブ(hostsファイルに登録される内容)
127.0.0.1 localhost.localdomain localhost
192.168.1.101 sav.yaguma.com sav
ルーティングタブ
デフォルトゲートウェイ 192.168.1.1(ルータのプライベートIP)
デフォルトゲートウェイデバイス eth0
/etc/resolv.conf
search yaguma.com <- ホスト名検索時に省略できるドメイン名
nameserver 127.0.0.1 <- Name Serverはlocalhost
nameserver 202.224.32.1 <- プロバイダのDNSのIP
nameserver 202.224.32.2
searchには,検索を指示されたホスト名に付加する複数のドメイン名を指定できる.このままではルータにつないでルータのDHCP機能を使用していると再起動したときにresolv.confが書き換えられてしまいますので/etc/sysconfig/network-scripts/ifcfg-eth0に
DHCPCDARGS=-R
を付け加えることでこの問題を回避することができます.
もしくは固定にする.固定にすればresolv.confは書き換えられません.
/etc/nsswitch.conf
hosts: files nisplus nis dns <- hostsファイル,nisplus, nis, dnsの順に名前解決
/etc/host.conf
order hosts,bind <- hostsファイル,dnsの順に名前解決
multi on <- /etc/hostsのホスト名に複数のIPを割り当てる
/var/namedにゾーン設定のためのファイルがあるが以下のものは手を加える必要なし.
/var/named/named.ca <- 世界に13台あるルートネームサーバーの設定ファイル.
/var/named/named.local <- localhostの逆引きゾーンファイル
/var/named/localhost.zone <- localhostの正引きゾーンファイル
/etc/named.conf bindの設定ファイル
options {
directory "/var/named";
// 下記の行はおまじない
// auth-nxdomain yes;
// 下記の行はいつものやつ
allow-query {
127.0.0.1;
192.168.1.0/24;
};
allow-transfer {
127.0.0.1;
192.168.1.0/24;
};
};
// ルートの設定.最近変更になったらしいので気をつけてください.
zone "." IN {
type hint;
file "named.ca";
};
// localhostの正引き
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
// localhostの逆引き
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
// ゾーンの正引き
zone "yaguma.com" IN {
type master;
file "yaguma.com";
};
// ゾーンの逆引き
zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192.in-addr.arpa";
};
/var/named/yaguma.com 正引きのゾーン設定ファイル
$TTL 5M
@ IN SOA sav.yaguma.com. tanaka.yaguma.com. (
2002121301 ;serial
3H ;reflesh
1H ;retry
1W ;expire
1D ) ;minimum
IN NS sav.yaguma.com.
IN MX 10 sav.yaguma.com.
@ IN A 192.168.1.101
bfle IN A 192.168.1.1
savb IN A 192.168.1.100
sav IN A 192.168.1.101
vine IN A 192.168.1.102
dns IN CNAME sav
www IN CNAME sav
mail IN CNAME sav
ftp IN CNAME sav
/var/named/1.168.192.in-addr.arpa 逆引きゾーン設定ファイル
$TTL 1D
@ IN SOA sav.yaguma.com. tanaka.yaguma.com. (
2002121301 ;serial
3H ;reflesh
1H ;retry
1W ;expire
1D ) ;minimum
IN NS sav.yaguma.com.
IN PTR yaguma.com.
; 下記の行は必要ないかも
IN A 255.255.255.0
1 IN PTR bfle.yaguma.com.
100 IN PTR savb.yaguma.com.
101 IN PTR sav.yaguma.com.
102 IN PTR vine.yaguma.com.
/var/named/0.0.127.in-addr.arpa localhostの逆引きゾーン設定ファイル.内容はnamed.localとほぼ同じ.私はnamed.localのほうを現在使っている.(localhostの正引きファイル
localhost.zone と逆引きファイル named.local はvineではbindがインストールされた時点でそろっています.)
$TTL 1D
@ IN SOA sav.yaguma.com. tanaka.yaguma.com. (
2002121301 ;serial
3H ;reflesh
1H ;retry
1W ;expire
1D ) ;minimum
IN NS sav.yaguma.com.
1 IN PTR localhost.
以上でファイルの設定は終わりです.
# service named start
としてbindを起動します.
nslookup
> sav.yaguma.com
Server: localhost
Address: 127.0.0.1
Name: sav.yaguma.com
Address: 192.168.1.101
となればほぼ成功です.
ところで最初に設定した時
nslookup
>yaguma.com
Server:sav.yaguma.com
Address: 192.168.1.101
Name:yaguma.com
となりyaguma.comのアドレスを表示しませんでした.つまり私の使っているルータ(コレガのHG)はlan内からも自分のHPであるhttp://yaguma.comが参照できましたが,DNSを設定してからhttp://yaguma.comが参照できなくなってしまいました.http://www.websitepulse.com/index.php3ではokがでたりcoud't resovlとでたりとまちまちです.ただ一つhttp://www.yaguma.comなら大丈夫でした.これはどうしてかというと最初の設定では/var/named/yaguma.com内の
@ IN A 192.168.1.101
がなかったためでした.要するにLAN外から見ると,yaguma.comの情報はDDNSが持っているが,LAN内から見ると,内向きDNSが持っているとなっていたからです.yaguma.comの情報を内向きDNSに与えてなかったんですね.また,最初はTTLを1D(1日)としていたんですが,デバッグ目的であれば,TTLが1Dは,長すぎるそうです.このためTTLは5M(5分)と設定しました.
以下は鷹の巣さんに教えていただきました./var/named/yaguma.comの解説です.
@ IN SOA sav.yaguma.com. tanaka.yaguma.com. (
この行の@は,「yaguma.com.」を意味します.
yaguma.com. IN SOA sav.yaguma.com. tanaka.yaguma.com. (
とも書けます.
2002121301
3H
1H
1W
3Hと1Hと1Wは,セカンダリDNSサーバーに設定データ(ゾーンデータ)を転送する
時間設定ですから,今回は全く無関係です.
1D )
TTLは,ドメイン名の寿命を意味しますが,これがDNSサーバーのキャッシュ時間です.
IN NS sav.yaguma.com.
IN MX 10 sav.yaguma.com.
この2行は,INの左側が空欄ですから,上の行の左側と同じという意味です.従って,
@ IN NS sav.yaguma.com.
@ IN MX 10 sav.yaguma.com.
や
yaguma.com. IN NS sav.yaguma.com.
yaguma.com. IN MX 10 sav.yaguma.com.
と書いても同じです.従ってこの行の次に
@ IN A 192.168.1.101
と書いても
IN A 192.168.1.101
と書いても同じことです.
www IN CNAME sav
のwwwやsavの右側に「.」(ドット)がありませんので,@の内容(yaguma.com.)が補完されますので,
www.yaguma.com. IN CNAME sav.yaguma.com.
と同じ意味になります.
以上,@や空白を使用せずに,ホスト名を省略せずに正引き設定を書いた方が勉強になります.また,多くのドメイン名を設定する訳でもありませんので,CNAMEもAレコードで書いたり,ホスト名もFQDN表記し省略しない書き方の方が間違いが起きにくいかと思われます.
Copyright 2002-2003 Kai All Rights Reserved & This site is Link Free
戻る