BIND9.3.1?C???X?g?[???A??????

DNS?T?[?o????????????????A自???}?V????\?[?X???IND?????????B
???????????C??z?X?g?????????????????v????B

?\??/h3>

?t?@?C????\?????????B

  • named.conf.../etc/named.conf
  • ?]?[???t?@?C??.../var/named/???/li>
192.168.50.39/27 = sayo

?????????????B

????K?p?}?V????Z?J???_?????????A???[???T?[?o??\?z??????\??B

?C???X?g?[??

???/a>???IND9.3.1??_?E?????[?h???W?J?B

$ tar zxfv bind-9.3.1.tar.gz
$ ls
bind-9.3.1 bind-9.3.1.tar.gz

configure実?s

$ cd bind-9.3.1
$ ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking whether make sets $(MAKE)... yes
checking for ranlib... ranlib
checking for a BSD-compatible install... /usr/bin/install -c
checking for ar... /usr/bin/ar
checking for etags... no
checking for emacs-etags... no
checking for perl5... no
checking for perl... /usr/bin/perl
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

失?s?Bgcc???????????????B?iCD?????????j

$ which gcc
/usr/bin/gcc

??xconfigure実?s?B

$./configure
(??
config.status: creating port/Makefile
config.status: creating port/linux/Makefile
config.status: creating port/linux/include/Makefile
config.status: creating config.h
$

?????????ake

$ make
(??
make[2]: Leaving directory `/home/sayo/archivos/bind-9.3.1/doc/arm'
making all in /home/sayo/archivos/bind-9.3.1/doc/misc
make[2]: Entering directory `/home/sayo/archivos/bind-9.3.1/doc/misc'
make[2]: Leaving directory `/home/sayo/archivos/bind-9.3.1/doc/misc'
make[1]: Leaving directory `/home/sayo/archivos/bind-9.3.1/doc'

?????B????B????ake test?B

$ make test
(??
I: "bin/tests/system/ifconfig.sh up" as root to configure them
I: and rerun the tests.
make[2]: Leaving directory `/home/sayo/archivos/bind-9.3.1/bin/tests/system'
make[1]: Leaving directory `/home/sayo/archivos/bind-9.3.1/bin/tests'

?C???X?g?[???B

$ su
# make install
(??
make[2]: Leaving directory `/home/sayo/archivos/bind-9.3.1/doc/misc'
make[1]: Leaving directory `/home/sayo/archivos/bind-9.3.1/doc'
/bin/sh ./mkinstalldirs /usr/local/bin
/usr/bin/install -c isc-config.sh /usr/local/bin
# which named
/usr/local/sbin/named

??P??/p>

named.conf???/h3>
controls { /* empty */ };
options {
version "unknown"
directory "/var/named";
recursion no;
notify no;
};
zone "." {
type hint;
file "root.hint"; };
zone "example.com" {
type master; // example.com?h???C??? file "example.com.zone";
};
zone "50.168.192.in-addr.arpa" in { // 192.168.50.32/27
type master;
file "192.168.50.rev";
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.rev";
};

???[?U?A?O???[?v???/h3>

named???[?U?Anamed?O???[?v???B
?V?F????g?????/bin/false)?B/var/named??z?[???f?B???N?g??????B

# groupadd named
# useradd -g named -d /var/named -s /bin/false named
# mkdir /var/named/
# chown named.named /var/named/

?]?[???t?@?C?????nbsp;

root.hint

ftp://ftp.rs.internic.net/domain/named.root? ?A?N?Z?X?????????\?[?X???R?s?[?????B

# cp ~sayo/archivos/bind-9.3.1/bin/tests/system/common/root.hint /var/named/

example.com.zone

$TTL 86400
@ IN SOA sayo.example.com. root.example.com. (
2005101701 ; serial?@
3600 ; refresh 1hr?@
900 ; retry 15min
604800 ; expire 1w?@
86400 ; min 24hr?@
)
IN NS sayo.example.com.
sayo IN A 192.168.50.39

192.168.50.32.rev

$TTL 86400
@ IN SOA sayo.example.com. root.example.com. (
2005101701 ; Serial
3600 ; Refresh
900 ; Retry
604800 ; Expire
3600 ) ; Minimum
IN NS sayo.example.com.
39 IN PTR sayo.example.com.

localhost.zone

$TTL 86400
@ IN SOA localhost. root.localhost. (
2002122001 ; serial
28800 ; refresh 8hr
14400 ; retry 4hr
604800 ; expire 1w
86400 ; default_ttl 24hr
)
IN NS localhost.
IN A 127.0.0.1

127.0.0.rev

$TTL 86400
@ IN SOA localhost. root.localhost. (
2002122001 ; serial
28800 ; refresh 8hr
14400 ; retry 4hr
604800 ; expire 1w
86400 ; default_ttl 24hr
)
IN NS localhost.
1 IN PTR localhost.

?N??/h3>

?????????N??B

# /usr/local/sbin/named -u named
# ps -aef|grep named
root 9046 7814 0 09:34 pts/0 00:00:00 grep named
# tail /var/log/messages
(??
Oct 17 08:28:11 sayo exiting on signal 15
Oct 17 08:28:12 sayo syslogd 1.4.1#16ubuntu6: restart.
Oct 17 08:48:12 sayo -- MARK --
Oct 17 09:08:13 sayo -- MARK --
Oct 17 09:28:13 sayo -- MARK --

??[?B????[?H
??v????var/log/daemon.log???c??????B

# tail /var/log/daemon.log
Oct 17 09:36:16 sayo named[9071]: starting BIND 9.3.1 -u named -c /etc/named.conf
Oct 17 09:36:16 sayo named[9071]: loading configuration from '/etc/named.conf'
Oct 17 09:36:16 sayo named[9071]: /etc/named.conf:5: missing ';' before 'directory'
Oct 17 09:36:16 sayo named[9071]: loading configuration: failure
Oct 17 09:36:16 sayo named[9071]: exiting (due to fatal error)

?????x?N??B

# tail /var/log/daemon.log
Oct 17 09:41:13 sayo named[9171]: starting BIND 9.3.1 -u named -c /etc/named.conf
Oct 17 09:41:13 sayo named[9171]: loading configuration from '/etc/named.conf'
Oct 17 09:41:13 sayo named[9171]: listening on IPv4 interface lo, 127.0.0.1#53
Oct 17 09:41:13 sayo named[9171]: listening on IPv4 interface eth0, 192.168.50.39#53
Oct 17 09:41:13 sayo named[9171]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2005101701
Oct 17 09:41:13 sayo named[9171]: zone 32/27.50.168.192.in-addr.arpa/IN: loaded serial 2005101701 Oct 17 09:41:13 sayo named[9171]: zone example.com/IN: loaded serial 2005101701
Oct 17 09:41:13 sayo named[9171]: zone localhost/IN: loaded serial 2005101701
Oct 17 09:41:13 sayo named[9171]: running

?m?F

????m?F

$ dig @localhost sayo.example.com ; <<>> DiG 9.3.1 <<>> @localhost sayo.example.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30130
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;sayo.example.com. IN A
;; ANSWER SECTION:
sayo.example.com. 86400 IN A 192.168.50.39
;; AUTHORITY SECTION:
example.com. 86400 IN NS sayo.example.com.
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Oct 17 09:47:54 2005
;; MSG SIZE rcvd: 64

OK

?t????H

$ dig @localhost -x 192.168.50.39
; <<>> DiG 9.3.1 <<>> @localhost -x 192.168.50.39
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57208
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;39.50.168.192.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
. 999999 IN NS a.root-servers.nil.
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Oct 17 10:44:58 2005
;; MSG SIZE rcvd: 75

????H??????BCIDR????????????????H?l?b?g?}?X?N???????????H
http://www.atmarkit.co.jp/flinux/rensai/bind02/bind02.html? ??A192.168.50.rev??/p>

IN A 255.255.255.224

???B

????a href="http://www.atmarkit.co.jp/flinux/rensai/bind904/bind904b.html" rel="nofollow">http://www.atmarkit.co.jp/flinux/rensai/bind904/bind904b.html? ?????n??????????????H

????br> /etc/named.conf

zone "50.168.192.in-addr.arpa" in 

????A?]?[???t?@?C????/p>

IN A 255.255.255.224

???????B

$ dig @localhost -x 192.168.50.39
; <<>> DiG 9.3.1 <<>> @localhost -x 192.168.50.39
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47334
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;39.50.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
39.50.168.192.in-addr.arpa. 86400 IN PTR sayo.example.com.
;; AUTHORITY SECTION:
50.168.192.in-addr.arpa. 86400 IN NS sayo.example.com.
;; ADDITIONAL SECTION:
sayo.example.com. 86400 IN A 192.168.50.39
;; Query time: 14 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Oct 17 10:45:34 2005
;; MSG SIZE rcvd: 104

??????B
????o?[?W??????`?F?b?N?B

$ dig @localhost chaos txt version.bind
; <<>> DiG 9.3.1 <<>> @localhost chaos txt version.bind
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28117
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION:
;version.bind. CH TXT
;; ANSWER SECTION:
version.bind. 0 CH TXT "unknown"
;; AUTHORITY SECTION:
version.bind. 0 CH NS version.bind.
;; Query time: 14 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Oct 17 10:52:38 2005
;; MSG SIZE rcvd: 64

?????nknown????????B

recursion

???????o???????A??????????B

$ dig @localhost www.yahoo.com
; <<>> DiG 9.3.1 <<>> @localhost www.yahoo.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64327
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;www.yahoo.com. IN A
;; AUTHORITY SECTION:
. 999999 IN NS a.root-servers.nil.
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Oct 17 10:54:36 2005
;; MSG SIZE rcvd: 62

???B??????B

/etc/named.conf??/p>

recursion no;

??/p>

recursion yes;

?????N??B

$ dig @localhost www.yahoo.com
; <<>> DiG 9.3.1 <<>> @localhost www.yahoo.com
; (1 server found)
;; global options: printcmd
;; connection timed out; no servers could be reached

????H???int.root????B????????????????_?????B
http://www.internic.net/zones/named.root? ????????B

$ dig @localhost www.yahoo.com
; <<>> DiG 9.3.1 <<>> @localhost www.yahoo.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59368
;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 8, ADDITIONAL: 0
;; QUESTION SECTION:
;www.yahoo.com. IN A
;; ANSWER SECTION:
www.yahoo.com. 300 IN CNAME www.yahoo.akadns.net.
www.yahoo.akadns.net. 60 IN A 68.142.226.34
www.yahoo.akadns.net. 60 IN A 68.142.226.36
www.yahoo.akadns.net. 60 IN A 68.142.226.39
(??

??x??K?B

?N??X?N???v?g

#!/bin/sh
[ -f /usr/local/sbin/named ] || exit 0
[ -f /etc/named.conf ] || exit 0
case "$1" in
'start')
echo 'starting ISC BIND'
/usr/local/sbin/named -c /etc/named.conf -u named
;;
'stop')
/usr/bin/pkill -x -u named named
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0

?Z?J???_??DNS

実?@?????????B

?v???C?}??DNS??etc/named.conf

192.168.50.36????]?[???]?????????B?????

controls { /* empty */ };
options {
directory "/var/named";
recursion yes;
pid-file "/var/run/named/named.pid";
allow-transfer{ 192.168.50.36; };
};
zone "." {
type hint; // servidores raiz.
file "root.hint"; // puede usar qualquier nombre
};
zone "example.com" { // dominio "example.com" (solicitud normal
type master; // significa que sea primario para dominio "example.com"
file "example.com.zone";
};
zone "50.168.192.in-addr.arpa" in { // dominio "example.com" (solicitud inversa)
type master; file "192.168.50.rev";
};
zone "localhost" in { // para localhost -> 127.0.0.1
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in { // para 127.0.0.1 -> localhost
type master;
file "127.0.0.rev";
};

?Z?J???_??DNS??etc/named.conf

?v???C?}????92.168.50.39?A?t?@?C?????bak???????B

options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
recursion yes;
};
zone "." {
type hint;
file "root.hint";
};
zone "localhost" {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "127.0.0.rev";
};
zone "example.com" {
type slave;
masters {
192.168.50.39;
};
file "example.com.zone.bak";
};
zone "50.168.192.in-addr.arpa" {
type slave;
masters {
192.168.50.39;
};
file "192.168.50.rev.bak";
};

?????????..?B