ドメインを取得し,LAN内にWebサーバを立てた.
このマシンにアクセスするのに,LAN内からはhttp://192.168.1.x/,
外部からはhttp://hoge.net/と別々なのは面倒である.
そこで,DNSサーバを立てることにした.
DNSサーバとしてBIND9を利用した.
インストールはapt-get install bindでよい.
ここで,LAN構成を確認する.
私の環境は,
マシン用途:ホスト名:IP
ルータ:192.168.1.1
サーバ:silvia.satze.net:192.168.1.4
その他クライアント:適当:DHCPより取得
である.
設定ファイルは/etc/named.conf
options {
directory "/var/named"; //ファイルの格納場所
allow-query { //BINDの利用を許可する範囲
127.0.0.1; //自分自身
192.168.1.0/24; //ローカル
};
allow-transfer { //スレーブのDNSのアドレス.(特に必要ない)
127.0.0.1;
192.168.1.0/24;
};
forwarders { //自分で名前の解決が出来ないとき,プロバイダのDNSに聞きに行く.
プロバイダのDNSを記述;
};
};
zone "." { // ルートDNSの情報
type hint; // ルートDNSの情報であることを明示
file "named.ca"; //ファイル名
};
zone "localhost" { //localhostの正引き設定
type master; //MasterDNSであることを明示
file "localhost.zone"; //ファイル名
};
zone "0.0.127.in-addr.arpa" { //localhostの逆引き設定
type master;
file "0.0.127.in-addr.arpa";
};
zone "satze.net" { //satze.netの正引き設定
type master;
file "satze.net";
allow-transfer {
192.168.1.0/24;
127.0.0.1;
};
allow-query {
192.168.1.0/24;
127.0.0.1;
};
};
zone "1.168.192.in-addr.arpa" { //192.168.1.*の逆引き設定
type master;
file "1.168.192.in-addr.arpa";
allow-transfer {
192.168.1.0/24;
127.0.0.1;
};
allow-query {
192.168.1.0/24;
127.0.0.1;
};
};
と記述.
ルートDNSの情報は,/var/named/named.caに保存.
named.caはインターネット上で公開されているので,それをダウンロード.
その際,ファイル名をnamed.caに変更します。
# wget ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root
# cp named.root /var/named/named.ca
localhostの正引き設定は,/var/named/localhost.zoneに記述.
$TTL 86400 ;このファイル情報は他のDNSに86400秒間キャッシュされる.
@ IN SOA silvia.satze.net. root.satze.net.(
2005011501 ;Serial yymmddのあとに2桁の数字
86400 ;Refresh SlaveS erverは86400秒に1回Masterから情報を更新.
86400 ;Retry Slave Serverが情報更新に失敗したら86400秒後に再挑戦.
604800 ;Expire Slave Serverが604800秒の間情報更新に失敗したら応答しなくなる.
86400 ;Minimum 他のDNSがクエリに失敗した時6400秒の間失敗したことがキャッシュされる.
)
IN NS silvia.satze.net. ;Name Serverを指定
localhost. IN A 127.0.0.1 ;Aは実際のアドレスを示す
localhosotの逆引き設定は,/var/named/0.0.127.in-addr.arpaに記述.
$TTL 86400
@ IN SOA silvia.satze.net. root.satze.net.(
2005011501 ;Serial
86400 ;Refresh
86400 ;Retry
604800 ;Expire
86400 ;Minimum
)
IN NS silvia.satze.net.
1 IN PTR localhost.
satze.netの正引き設定は,/var/named/satze.netに記述.
$TTL 86400
@ IN SOA silvia.satze.net. root.satze.net.(
2005011501 ;Serial
86400 ;Refresh
86400 ;Retry
604800 ;Expire
86400 ;Minimum
)
IN NS silvia.satze.net.
IN MX 10 silvia.satze.net. ;メールサーバのホスト名(10は優先順位).
IN A 192.168.1.4 ;何も指定が無い場合は192.168.1.4(Aは実際のアドレス)
silvia IN A 192.168.1.4 ;silviaも192.168.1.4
www IN CNAME silvia.satze.net. ;CNAMEは別名を示す.これ以降は任意.
research IN CNAME silvia.satze.net.
harada IN CNAME silvia.satze.net.
blog IN A 221.186.251.80
192.168.1.*の逆引き設定は,/var/named/1.168.192.in-addr.arpaに記述.
$TTL 86400
@ IN SOA silvia.satze.net. root.satze.net.(
2005011501 ;Serial
86400 ;Refresh
86400 ;Retry
604800 ;Expire
86400 ;Minimum
)
IN NS silvia.satze.net.
4 IN PTR silvia.satze.net. ;192.168.1.4の逆引き.先頭の4がIPのホストアドレス部分に対応.
さらに,
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf
/etc/host.conf
の4つのファイルを設定する.
まず,/etc/hostsはlocalhostの部分以外をコメントアウト.
/etc/resolv.confは
nameserver 192.168.1.4
nameserver 127.0.0.1
domain satze.net ←もしくは search satze.net
と記述.
/etc/nsswitch.confは内部に
hosts: files nis dns
このような記述(dns)があればOK.DNSを使って名前解決をするためのものらしい.
/etc/host.confは
order hosts,bind
multi on
となってれば良い.
これで大体設定は終わり.実際に起動して動作確認をする.
参考:
http://www.miloweb.net/bind.html
http://www.kkoba.com/dns/bind.shtml
ノートPCとかを自動的に固定ローカルIPにしたいので設定.
基本的には,/etc/dhcp.confに
server-identifier silvia.satze.net;
option domain-name satze.net;
option domain-name-servers 192.168.1.4;
option subnet-mask 255.255.255.0;
ddns-update-style ad-hoc;
shared-network (ネットワーク名を適当に:satze) {
default-lease-time 600;
max-lease-time 7200;(この2つは適宜設定)
subnet (サブネット:192.168.1.0とか) netmask (ネットマスク:255.255.255.0) {
range (動的に割り当てるIPの範囲:192.168.1.6 192.168.1.8とか);
option broadcast-address (ブロードキャストのIP:192.168.1.255とか);
option routers (ルータのIP:192.168.1.1とか);
host (マシン名) {
hardware ethernet (マシンのMACアドレス);
fixed-address (固定したいIPアドレス range外);
}
}
}
としただけ.あとは,host (マシン名)のところを適宜追加.