最終更新日 2003/12/8  戻る  483327 人 REMOTE = 38.103.63.59 REFERER =

★内向き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 戻る