DNSサーバ構築 (bind) | ぼぶろぐ

ぼぶろぐ

以前は、あいらぶLinux♪というタイトルでしたが、
最近はLinux以外のことも書いているので、タイトルを変更しました。
ぼぶちゃんのぶろぐでぼぶろぐです。

◆DNSサーバ構築 (bind)

とっても久しぶりにDNSサーバを構築しました。
もう私の知っているbindではなかったですね。
設定ファイルが以前よりも複雑になっているような気がしました。



[root@localhost ~]# yum -y install bind bind-chroot caching-nameserver
Loaded plugins: downloadonly, fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
* fedora: opensource.nchc.org.tw
* updates: ftp.riken.jp
fedora | 2.8 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 4.0 MB 00:22
Setting up Install Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
---> Package bind.i386 32:9.5.1-2.P2.fc10 set to be updated
---> Package bind-chroot.i386 32:9.5.1-2.P2.fc10 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================
Package Arch Version Repository Size
=========================================================================================
Installing:
bind i386 32:9.5.1-2.P2.fc10 updates 3.3 M
bind-chroot i386 32:9.5.1-2.P2.fc10 updates 59 k

Transaction Summary
=========================================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 3.3 M
Downloading Packages:
(1/2): bind-9.5.1-2.P2.fc10.i386.rpm | 3.3 MB 00:18
(2/2): bind-chroot-9.5.1-2.P2.fc10.i386.rpm | 59 kB 00:00
-----------------------------------------------------------------------------------------
Total 170 kB/s | 3.3 MB 00:20
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 32:bind-9.5.1-2.P2.fc10.i386 1/2
Installing : 32:bind-chroot-9.5.1-2.P2.fc10.i386 2/2

Installed:
bind.i386 32:9.5.1-2.P2.fc10 bind-chroot.i386 32:9.5.1-2.P2.fc10

Complete!
[root@localhost ~]# cp -p /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.conf.org
[root@localhost ~]# vi /var/named/chroot/etc/named.conf

変更箇所
[root@localhost ~]# diff /var/named/chroot/etc/named.conf /var/named/chroot/etc/named.conf.org
11,13c11,12
< #listen-on port 53 { 127.0.0.1; };
< #listen-on-v6 port 53 { ::1; };
< version "unknown";
---
> listen-on port 53 { 127.0.0.1; };
> listen-on-v6 port 53 { ::1; };
18c17
< allow-query { localhost; localnets; };
---
> allow-query { localhost; };
20,22d18
< forwarders{
< 192.168.11.1;
< };
25,27c21,26
< view "internal" {
< match-clients { localnets; };
< match-destinations { localnets; };
---
> logging {
> channel default_debug {
> file "data/named.run";
> severity dynamic;
> };
> };
35c34
< };
---
>

[root@localhost ~]# vi /var/named/chroot/etc/named.localhost.zone   ←ファイルの作成

[root@localhost ~]# cat /var/named/chroot/etc/named.localhost.zone
zone "localhost" {
type master;
file "localhost.db";
};
zone "11.168.192.in-addr.arpa";
type master;
file "11.168.192.in-addr.arpa.db";
};

あっ、このファイルをnamed.confでひもづけていない。。。


[root@localhost ~]# dig . ns @198.41.0.4 > /var/named/chroot/var/named/named.ca
[root@localhost ~]# vi named.root_update ←ファイルの作成

[root@localhost ~]# cat named.root_update
#!/bin/bash

new=`mktemp`
errors=`mktemp`

dig . ns @198.41.0.4 > $new 2> $errors

if [ $? -eq 0 ]; then
sort_new=`mktemp`
sort_old=`mktemp`
diff_out=`mktemp`
sort $new > $sort_new
sort /var/named/chroot/var/named/named.ca > $sort_old
diff --ignore-matching-lines=^\; $sort_new $sort_old > $diff_out
if [ $? -ne 0 ]; then
(
echo '-------------------- old named.root --------------------'
cat /var/named/chroot/var/named/named.ca
echo
echo '-------------------- new named.root --------------------'
cat $new
echo '---------------------- difference ----------------------'
cat $diff_out
) | mail -s 'named.root updated' root
cp -f $new /var/named/chroot/var/named/named.ca
chown named. /var/named/chroot/var/named/named.ca
chmod 644 /var/named/chroot/var/named/named.ca
/etc/rc.d/init.d/named restart > /dev/null
fi
rm -f $sort_new $sort_old $diff_out
else
cat $errors | mail -s 'named.root update check error' root
fi
rm -f $new $errors

[root@localhost ~]# chmod 700 named.root_update
[root@localhost ~]# mv named.root_update /etc/cron.monthly/
[root@localhost ~]# vi /var/named/chroot/var/named/localhost.db ←ファイルの作成

[root@localhost ~]# cat /var/named/chroot/var/named/localhost.db
$TTL 86400
@ IN SOA localhost. root.localhost.(
2009070701 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
IN MX 10 localhost.
@ IN A 192.168.11.100
* IN A 192.168.11.100

[root@localhost ~]# vi /var/named/chroot/var/named/11.168.192.in-addr.arpa.db ←ファイルの作成

[root@localhost ~]# cat /var/named/chroot/var/named/11.168.192.in-addr.arpa.db
$TTL 86400
@ IN SOA localhost. root.localhost.(
2009070701 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
100 IN PTR localhost.

[root@localhost etc]# /etc/rc.d/init.d/named start
named を起動中: [ OK ]
[root@localhost etc]# chkconfig named on
[root@localhost etc]# chkconfig --list named
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost etc]# sed -i 's/DNS1=.*/DNS1=127.0.0.1/g' /etc/sysconfig/network-scripts/
ifcfg-eth0
[root@localhost etc]# /etc/rc.d/init.d/network restart
インターフェース eth0 を終了中: [ OK ]
ループバックインターフェースを終了中 [ OK ]
ループバックインターフェイスを呼び込み中 [ OK ]
インターフェース eth0 を活性化中: [ OK ]

[root@localhost etc]# nslookup yahoo.co.jp
Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:
Name: yahoo.co.jp
Address: 203.216.227.176
Name: yahoo.co.jp
Address: 124.83.139.192



一応、うまくいってるんでしょうかね。。。
ドメイン名にlocalhostを使ってしまったので、
よくわからなくなってしまいました。

明日直します。