- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
**はじめに [#na8024bf]
**はじめに [#c9bcc3ae]
このさいと(きのさいと http://www.masatom.in/pukiwiki/FrontPage/ ) は自宅の自前サーバでホスティングしています。で、このサーバへのアクセスですが、あたりまえですがインターネット側のいわゆる「外側のLAN」からも、自宅内のいわゆる「内側のLAN」からも、同じサーバ名 www.masatom.in でアクセスしたいわけです。
ただルータの設定上、上記のように同じサーバ名でアクセスできない場合があります。たとえばwww.masatom.inにはグローバルIPが振られてます。で、内側のLANからそのサーバ名にアクセスすると、
-ソース: 192.168.x.x
-宛先: www.masatom.in のグローバルIP
となりますが、外と内をつなぐルータがそのアクセスをはじくケースがあります。ようするにルータのセキュリティで「内側のセグメントのIPアドレスは、外からアクセスしてきても入れてあげない」ってことをやってるわけですね。IP偽装の防止だと思います。
外と内をつなぐルータがそのアクセスを許可したとしても、内側のネットワークからサーバにアクセスする際、いちいち外側からぐるって回るのもおかしいし、そもそもセキュリティ的にも好ましくありません。
まあ、というわけで内側のPCからは、内側のIPアドレスでアクセスできるよう www.masatom.in をPCのhostsで内側のIPに名前解決させてたのですが、逆にそうすると、PCを外に持って行ったときにいちいちhostsを直さなくちゃだめで、それもメンドクサイです。うーんと思ってたのですが「じゃあ内側用のDNSたてて、内側のIPアドレスに名前解決させればいいじゃん。内側のネットワークはDHCPなんで、内側のDHCPでDNSをそのサーバにしちゃえばいいし」という結論になりました。こうしておけば、
-内側のネットワークにいるときにはDHCPが内側用のDNSを設定してくれて、そのDNSが内側のIPに名前解決してくれる
-外側のネットワークにいるときは、インターネット上のDNSがグローバルIPに名前解決してくれる
ということで、手間なしで理想の環境が構築できそうです。
前置きが長くなりましたが、そんなことがあって、以下、自宅の内側用のDNSを構築したときの記録です。
さて手順の前に今回のネットワーク環境についてです。
:サーバ|CentOS 5.2
:ホスト名|www
:FQDN|www2.masatom.in
:ローカルIP|192.168.1.3
:グローバルIP|222.228.xxx.yyy
:DNSサーバのローカルIP|192.168.1.3 <-wwwと同じにした
目的は内側のネットワークからアクセスの時は、www2.masatom.in を 192.168.1.3に名前解決し、ついでに外からのアクセスの時は 222.228.xxx.yyy に名前解決するDNSサーバを構築する、ということですね((外から云々は実際の運用では使わないけど。ネット上のDNSで十分なので))。
さてさていろいろ書こうと思ったのですが、参考にさせていただいた [[はじめての自宅サーバ構築 Fedora/CentOS - DNSサーバの構築(bind)>http://kajuhome.com/bind.shtml]] というサイトに、ものすごーく丁寧に説明が書いてあるので、うちでは備忘録程度にとどめておこうと思います。
**DNSサーバのインストール [#l59b2027]
まずはDNSサーバをインストールします。プロダクトとしてはネームサーバの役割をするbindと、キャッシュネームサーバの役割をするcaching-nameserver をインストールします。また、bindをroot以外のユーザ(named)で稼働させるためのbind-chrootをインストールします。が今回使っているCentOS5.2では、すでにbindとbind-chrootはインストールされていました。
ただ、ここではまずbindをrootで稼働させて、bind-chrootをインストールしてnamed で稼働させるようにしたいので、bind-chrootはいったんアンインストールします。ようするに手順は以下の通り。
yum -y remove bind-chroot <- bind-chrootをアンインストール
yum -y install caching-nameserver <- caching-nameserver をインストール
***関連リンク [#j09dac9f]
** /etc/named.caching-nameserver.conf の設定 [#m13b1a8a]
bindとcaching-nameserver をインストールした場合、設定ファイルは
/etc/named.caching-nameserver.conf
です。これを以下のように編集します。
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
//listen-on port 53 { 127.0.0.1; };
//listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
//allow-query { localhost; };
allow-query { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
include "/etc/named.masatom.in.lan";
};
view internal {
match-clients { localnets; };
match-destinations { localnets; };
recursion yes;
include "/etc/named.masatom.in.lan";
};
view external {
match-clients { any; };
match-destinations { any; };
recursion no;
include "/etc/named.masatom.in.wan";
};
** /etc/named.masatom.in.lan, /etc/named.masatom.in.wan の設定 [#o4d96de2]
named.caching-nameserver.conf から参照されているファイルnamed.masatom.in.lan,named.masatom.in.wan は以下の通りです。
-named.masatom.in.lan
zone "masatom.in" IN {
type master;
file "masatom.in.lan"; //カレントは/var/named/のようだ
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN { <-ローカルIPの逆?
type master;
file "1.168.192.in-addr.arpa.db"; //カレントは/var/named/のようだ
allow-update { none; };
};
-named.masatom.in.wan
zone "masatom.in" IN {
type master;
file "masatom.in.wan"; //カレントは/var/named/のようだ
allow-update { none; };
};
zone "xxx.228.222.in-addr.arpa" IN { <-グローバルIPの逆?
type master;
file "xxx.228.222.in-addr.arpa.db"; //カレントは/var/named/のようだ
allow-update { none; };
};
**内向きの正引き設定 [#v76e5c5e]
view /var/named/masatom.in.lan
$TTL 86400
@ IN SOA masatom.in. root.masatom.in.(
2007031400 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; negative (1 day)
)
IN NS masatom.in.
IN A 192.168.1.3
www2 IN A 192.168.1.3
www IN A 192.168.1.3
**内向きの逆引き設定 [#h2b313c0]
view /var/named/1.168.192.in-addr.arpa.db
$TTL 86400
@ IN SOA masatom.in. root.masatom.in.(
2007031400 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; negative (1 day)
)
IN NS masatom.in.
3 IN PTR masatom.in.
**外向きの正引き設定 [#a5e7885d]
view /var/named/masatom.in.wan
$TTL 86400
@ IN SOA masatom.in. root.masatom.in.(
2007031400 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; negative (1 day)
)
IN NS masatom.in.
IN MX 10 mail.masatom.in.
IN A 222.228.xxx.yyy
wwww IN CNAME masatom.in.
wwww2 IN CNAME masatom.in.
**外向きの逆引き設定 [#t07a4fd7]
view /var/named/xxx.228.222.in-addr.arpa.db
$TTL 86400
@ IN SOA masatom.in. root.masatom.in.(
2007031400 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; negative (1 day)
)
IN NS masatom.in.
yyy IN PTR masatom.in.
**ルートDNS情報(named.ca)の設定 [#n7aaf194]
[root@www named]# pwd
/var/named
[root@www named]# wget ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root
23:54:53 (1.10 MB/s) - `named.root' を保存しました [2878]
[root@www named]# mv named.root named.ca
[root@www named]#
結局それぞれの設定は以下の通りになりました。
[root@www etc]# pwd
/etc
[root@www etc]# ls -lrt name*
-rw-r----- 1 root named 955 7月 12 09:27 named.rfc1912.zones
-rw-r----- 1 root named 1601 10月 7 10:51 named.caching-nameserver.conf
-rw-r--r-- 1 root root 240 10月 7 10:54 named.masatom.in.lan
-rw-r--r-- 1 root root 258 10月 7 10:55 named.masatom.in.wan
[root@www etc]#
[root@www etc]# cd /var/named/
[root@www named]# ls -lrt
合計 68
drwxr-x--- 5 root named 4096 10月 7 10:50 chroot
-rw-r--r-- 1 root root 545 10月 7 10:55 masatom.in.lan
-rw-r--r-- 1 root root 455 10月 7 10:56 1.168.192.in-addr.arpa.db
-rw-r--r-- 1 root root 548 10月 7 10:57 masatom.in.wan
-rw-r--r-- 1 root root 450 10月 7 10:58 xxx.228.222.in-addr.arpa.db
-rw-r--r-- 1 root root 2878 10月 7 10:58 named.ca
[root@www named]#
**bindの再起動 [#d9fe003b]
[root@www named]# /etc/init.d/named restart
named を停止中: [ OK ]
named を起動中: [ OK ]
[root@www named]# ps -ef| grep named
named 7151 1 0 11:03 ? 00:00:00 /usr/sbin/named -u
named -c /etc/named.caching-nameserver.conf
root 7161 6574 0 11:03 pts/2 00:00:00 grep named
[root@www named]#
あれーnamedでうごいてんな(´д`;)。まあヨシとしましょう。
**疎通 [#m69be3c9]
[root@www named]# nslookup www2.masatom.in localhost
Server: localhost
Address: 127.0.0.1#53
Name: www2.masatom.in
Address: 192.168.1.3
[root@www named]#
OKです。
**bind-chroot のインストール [#ha8546e4]
最後にbind-chrootをインストールします。インストールするとbindがnamedユーザで稼働するようになり、設定ファイルの場所は /etc/,や/var/から /var/named/chroot/etc,var などにシンボリックリンクされます。
[root@www etc]# yum -y install bind-chroot
[root@www etc]# pwd
/etc
[root@www etc]# ls -lrt name*
lrwxrwxrwx 1 root named named.rfc1912.zones
-> /var/named/chroot//etc/named.rfc1912.zones
lrwxrwxrwx 1 root named named.masatom.in.wan
-> /var/named/chroot//etc/named.masatom.in.wan
lrwxrwxrwx 1 root named named.masatom.in.lan
-> /var/named/chroot//etc/named.masatom.in.lan
lrwxrwxrwx 1 root named named.caching-nameserver.conf
-> /var/named/chroot//etc/named.caching-nameserver.conf
[root@www etc]#
[root@www named]# pwd
/var/named
[root@www named]# ls -lrt
合計 24
lrwxrwxrwx 1 root named named.ca
-> /var/named/chroot//var/named/named.ca
lrwxrwxrwx 1 root named masatom.in.wan
-> /var/named/chroot//var/named/masatom.in.wan
lrwxrwxrwx 1 root named masatom.in.lan
-> /var/named/chroot//var/named/masatom.in.lan
lrwxrwxrwx 1 root named xxx.228.222.in-addr.arpa.db
-> /var/named/chroot//var/named/1.228.222.in-addr.arpa.db
lrwxrwxrwx 1 root named 1.168.192.in-addr.arpa.db
-> /var/named/chroot//var/named/1.168.192.in-addr.arpa.db
drwxr-x--- 6 root named 4096 10月 7 11:06 chroot
[root@www named]#
最後にもう一度再起動します。
[root@www etc]# /etc/init.d/named restart
named を停止中: [ OK ]
named を起動中: [ OK ]
[root@www etc]#
[root@www etc]# ps -ef| grep named
named 7316 1 0 10:19 ? 00:00:00 /usr/sbin/named
-u named -c /etc/named.caching-name server.conf -t /var/named/chroot
[root@www etc]#
**TIPS集 [#z0e48c1d]
***一部のサーバを外部を指定する [#ye1e7399]
自前でサーバを運用してて、一部のサーバ名のアクセスだけは外のサーバを指定したいなんて時があります。たとえばWEBサーバは自前で用意しているけど、メールサーバはGoogle AppsのGmailを使いたい、とかですね。
そんな場合は 内向きの正引き設定 (/var/named/masatom.in.lan) に
m IN CNAME ghs.l.google.com. <-m.masatom.inはこれにするって設定
などのレコードを追加すればOKです。
**関連リンク [#j09dac9f]
-[[はじめての自宅サーバ構築 Fedora/CentOS - DNSサーバの構築(bind)>http://kajuhome.com/bind.shtml]]
-[[@IT:VIEWによるスプリットDNS>http://www.atmarkit.co.jp/flinux/rensai/bind913/bind913c.html]]
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}