2011. 11. 28. 19:29 Log/Linux
DNS - Primary DNS 설정 및 테스트
*** master DNS 설정
[root@star named]# cat /etc/named.conf
//
// named.conf for Red Hat caching-nameserver
//
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "lee.pe.kr" IN {
type master;
file "lee.zone";
allow-update { none; };
allow-transfer { 192.168.20.200; };
};
zone "20.168.192.in-addr.arpa" IN {
type master;
file "192.168.20.rzone";
# allow-update { 192.168.20.200; };
allow-transfer { 192.168.20.200; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN
{
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
include "/etc/rndc.key";
[root@star named]# cat lee.zone
$TTL 86400
@ IN SOA lee.pe.kr. root.lee.pe.kr. (
20080728 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.lee.pe.kr.
IN NS ns2.lee.pe.kr.
ns IN A 192.168.20.101
ns2 IN A 192.168.20.200
www IN A 192.168.20.102
@ IN A 192.168.20.102
[root@star named]#
[root@star named]# cat 192.168.20.rzone
$TTL 86400
@ IN SOA lee.pe.kr. root.lee.pe.kr. (
20080728 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.lee.pe.kr.
IN NS ns2.lee.pe.kr.
101 IN PTR ns.lee.pe.kr.
102 IN PTR www.lee.pe.kr.
200 IN PTR ns2.lee.pe.kr.
[root@star named]#
[root@star named]# cat /etc/resolv.conf
;nameserver 168.126.63.1
nameserver 192.168.20.101
[root@star named]# /etc/init.d/named start
named (을)를 시작합니다: [ 확인 ]
[root@star named]# pgrep -fl named
24828 /usr/sbin/named -u named -t /var/named/chroot
*. 보안을 위해서 과거버전과 달리 /var/named 가 아닌 /var/named/chroot 에서 설정파일을 찾는다.
*. chroot 기능을 사용하지 않으려면 /usr/sbin/named -u named 로 실행하면 된다.
[root@star named]# cat /etc/resolv.conf => 직접구성한 dns 서버를 현재 호스트에서 직접 테스트 하려면
;nameserver 168.126.63.1
nameserver 192.168.20.101 => 이것을 직접구성한 dns ip 로 바꾸어야 한다.
[root@star named]#
그리고 아래결과처럼 dns 서버의 ip 는 설정되어 있어야 하고 활성화 되어 있어야 한다.
그래야 클라이언트의 요청에 dns 서버가 응답할 수 있다.
[root@star named]# ifconfig eth0:1
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:9E:9E:DF
inet addr:192.168.20.101 Bcast:192.168.20.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:10 Base address:0x2000
[root@star named]#
그리고 ping 으로 응답하는지 확인해본다.
[root@star named]# ping 192.168.20.101
PING 192.168.20.101 (192.168.20.101) 56(84) bytes of data.
64 bytes from 192.168.20.101: icmp_seq=0 ttl=64 time=1.44 ms
64 bytes from 192.168.20.101: icmp_seq=1 ttl=64 time=0.008 ms
--- 192.168.20.101 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.008/0.727/1.446/0.719 ms, pipe 2
[root@star named]#
=> 정상적으로 응답하고 있음을 알수 있다.
[root@star named]# nslookup <= dns 에 등록된 도메인을 확인하는 명령어이다.
> www.lee.pe.kr
Server: 192.168.20.101
Address: 192.168.20.101#53
Name: www.lee.pe.kr
Address: 192.168.20.102
> 192.168.20.101
Server: 192.168.20.101
Address: 192.168.20.101#53
101.20.168.192.in-addr.arpa name = ns.lee.pe.kr.
> www.yahoo.co.kr
Server: 192.168.20.101
Address: 192.168.20.101#53
Non-authoritative answer:
www.yahoo.co.kr canonical name = yahoo.co.kr.
Name: yahoo.co.kr
Address: 119.161.11.206
Name: yahoo.co.kr
Address: 203.212.171.217
> lee.pe.kr
Server: 192.168.20.101
Address: 192.168.20.101#53
Name: lee.pe.kr
Address: 192.168.20.102
> exit
[root@star named]#
*. dns 서버가 제대로 동작 하지 않는다면 로그 파일을 보고 어디에 문제가 있는지를 찾아내서 고쳐야 한다.
*. dns 의 로그기록은 /var/log/messages 파일에 저장되어 있다.
[root@star named]# tail -10 /var/log/messages
Aug 16 02:23:04 star named[24828]: zone localhost/IN: loaded serial 42
Aug 16 02:23:04 star named[24828]: running
Aug 16 02:23:04 star named[24828]: zone lee.pe.kr/IN: sending notifies (serial 20080728)
Aug 16 02:23:04 star named[24828]: zone 20.168.192.in-addr.arpa/IN: sending notifies (serial 20080728)
Aug 16 02:23:04 star named[24828]: client 192.168.20.101#32769: received notify for zone 'lee.pe.kr'
Aug 16 02:23:05 star named[24828]: client 192.168.20.101#32769: received notify for zone '20.168.192.in-addr.arpa'
Aug 16 02:38:02 star crond(pam_unix)[24990]: session opened for user root by (uid=0)
Aug 16 02:38:02 star crond(pam_unix)[24990]: session closed for user root
Aug 16 02:39:02 star crond(pam_unix)[25002]: session opened for user root by (uid=0)
Aug 16 02:39:02 star crond(pam_unix)[25002]: session closed for user root
[root@star named]#
######################################################
설정 예. (centos 5.x)
named.caching-nameserver.conf 파일을 테스트를 위해 아래처럼 수정합니다.
이 파일이 없으면 yum install caching-nameserver 명령어로 설치부터해야합니다.
1 //
2 // named.caching-nameserver.conf
3 //
4 // Provided by Red Hat caching-nameserver package to configure the
5 // ISC BIND named(8) DNS server as a caching only nameserver
6 // (as a localhost DNS resolver only).
7 //
8 // See /usr/share/doc/bind*/sample/ for example named configuration files.
9 //
10 // DO NOT EDIT THIS FILE - use system-config-bind or an editor
11 // to create named.conf - edits to this file will be lost on
12 // caching-nameserver package upgrade.
13 //
14 options {
15 // listen-on port 53 { 127.0.0.1; };
16 listen-on port 53 { any; };
17 // listen-on-v6 port 53 { ::1; };
18 directory "/var/named";
19 dump-file "/var/named/data/cache_dump.db";
20 statistics-file "/var/named/data/named_stats.txt";
21 memstatistics-file "/var/named/data/named_mem_stats.txt";
22
23 // Those options should be used carefully because they disable port
24 // randomization
25 query-source port 53;
26 // query-source-v6 port 53;
27
28 // allow-query { localhost; };
29 allow-query { any; };
30 allow-notify { any; };
31 };
32 logging {
33 channel default_debug {
34 file "data/named.run";
35 severity dynamic;
36 };
37 };
38 view localhost_resolver {
39 // match-clients { localhost; };
40 match-clients { any; };
41 // match-destinations { localhost; };
42 match-destinations { any; };
43 recursion yes;
44 include "/etc/named.rfc1912.zones";
45 };
=====================================================
/etc/named.rfc19212.zones 파일 맨 아래에 아래와
같이 도메인을 하나 추가합니다.
zone "lee.pe.kr" IN {
type master;
file "lee.hosts";
};
zone "100.168.192.in-addr.arpa" IN {
type master;
file "192.168.100.rev";
};
================================
/etc/var/named/chroot/var/named 디렉토리에
lee.hosts 파일을 아래와 같이 작성합니다.
*. 설정할때 주의할점 - 도메인명으로 끝날때는 끝에 root 도메인을 의미하는
마침표를 꼭 붙여줘야 합니다. 그렇지 않으면 제대로 동작하지 않습니다.
1 $TTL 86400
2 @ IN SOA ns.myunix.co.kr. root.myunix.co.kr. (
3 2009072401 ; Serial
4 60 ; Refresh
5 14400 ; Retry
6 600 ; Expire
7 86400 ) ; Minimum
8 IN NS ns.myunix.co.kr.
9 ns IN A 192.168.100.1
10 www IN A 192.168.100.2
11 ftp IN A 192.168.100.3
===================================
/etc/var/named/chroot/var/named 디렉토리에
192.168.100.rev 파일을 아래와 같이 작성합니다.
[root@centos1 named]# cat 192.168.100.rev
1 $TTL 86400
2 @ IN SOA ns.myunix.co.kr. root.myunix.co.kr. (
3 201006133 ; Serial
4 60 ; Refresh
5 14400 ; Retry
6 600 ; Expire
7 86400 ) ; Minimum
8 IN NS ns.myunix.co.kr.
9 1 IN PTR ns.myunix.co.kr.
10 2 IN PTR www.myunix.co.kr.
11 3 IN PTR ftp.myunix.co.kr.
================================================
그리고 작성한 파일퍼미션은 named 가 읽을수 있게 권한 설정을 고쳐주어야합니다.
chgrp named lee.hosts
chgrp named 192.168.100.rev
/etc/resolv.conf 파일은 자신이 테스트할 dns서버를 적어둡니다.
[root@centos1 named]# cat /etc/resolv.conf
nameserver 192.168.100.1
그리고 dns ip 를 하나 할당합니다.
ifconfig eth0:1(또는 eth1:1) 192.168.100.1
그런다음 service named start
여기서 에러가 발생하였다면 /var/log/messages 파일을 보고 에러를 잡아야 합니다.
그리고 dns 설정파일을 수정한 경우에는 설정을 적용하기 위해서 dns 서비슬
재시작 해야 합니다.
nslookup 명령으로 테스트 했을때 문제가 없다면
도메인을 추가로 하나를 더 등록해서 테스트하면 dns 를 이해하는데 더 도움이 될것입니다.
[root@star named]# cat /etc/named.conf
//
// named.conf for Red Hat caching-nameserver
//
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "lee.pe.kr" IN {
type master;
file "lee.zone";
allow-update { none; };
allow-transfer { 192.168.20.200; };
};
zone "20.168.192.in-addr.arpa" IN {
type master;
file "192.168.20.rzone";
# allow-update { 192.168.20.200; };
allow-transfer { 192.168.20.200; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN
{
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
include "/etc/rndc.key";
[root@star named]# cat lee.zone
$TTL 86400
@ IN SOA lee.pe.kr. root.lee.pe.kr. (
20080728 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.lee.pe.kr.
IN NS ns2.lee.pe.kr.
ns IN A 192.168.20.101
ns2 IN A 192.168.20.200
www IN A 192.168.20.102
@ IN A 192.168.20.102
[root@star named]#
[root@star named]# cat 192.168.20.rzone
$TTL 86400
@ IN SOA lee.pe.kr. root.lee.pe.kr. (
20080728 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.lee.pe.kr.
IN NS ns2.lee.pe.kr.
101 IN PTR ns.lee.pe.kr.
102 IN PTR www.lee.pe.kr.
200 IN PTR ns2.lee.pe.kr.
[root@star named]#
[root@star named]# cat /etc/resolv.conf
;nameserver 168.126.63.1
nameserver 192.168.20.101
[root@star named]# /etc/init.d/named start
named (을)를 시작합니다: [ 확인 ]
[root@star named]# pgrep -fl named
24828 /usr/sbin/named -u named -t /var/named/chroot
*. 보안을 위해서 과거버전과 달리 /var/named 가 아닌 /var/named/chroot 에서 설정파일을 찾는다.
*. chroot 기능을 사용하지 않으려면 /usr/sbin/named -u named 로 실행하면 된다.
[root@star named]# cat /etc/resolv.conf => 직접구성한 dns 서버를 현재 호스트에서 직접 테스트 하려면
;nameserver 168.126.63.1
nameserver 192.168.20.101 => 이것을 직접구성한 dns ip 로 바꾸어야 한다.
[root@star named]#
그리고 아래결과처럼 dns 서버의 ip 는 설정되어 있어야 하고 활성화 되어 있어야 한다.
그래야 클라이언트의 요청에 dns 서버가 응답할 수 있다.
[root@star named]# ifconfig eth0:1
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:9E:9E:DF
inet addr:192.168.20.101 Bcast:192.168.20.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:10 Base address:0x2000
[root@star named]#
그리고 ping 으로 응답하는지 확인해본다.
[root@star named]# ping 192.168.20.101
PING 192.168.20.101 (192.168.20.101) 56(84) bytes of data.
64 bytes from 192.168.20.101: icmp_seq=0 ttl=64 time=1.44 ms
64 bytes from 192.168.20.101: icmp_seq=1 ttl=64 time=0.008 ms
--- 192.168.20.101 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.008/0.727/1.446/0.719 ms, pipe 2
[root@star named]#
=> 정상적으로 응답하고 있음을 알수 있다.
[root@star named]# nslookup <= dns 에 등록된 도메인을 확인하는 명령어이다.
> www.lee.pe.kr
Server: 192.168.20.101
Address: 192.168.20.101#53
Name: www.lee.pe.kr
Address: 192.168.20.102
> 192.168.20.101
Server: 192.168.20.101
Address: 192.168.20.101#53
101.20.168.192.in-addr.arpa name = ns.lee.pe.kr.
> www.yahoo.co.kr
Server: 192.168.20.101
Address: 192.168.20.101#53
Non-authoritative answer:
www.yahoo.co.kr canonical name = yahoo.co.kr.
Name: yahoo.co.kr
Address: 119.161.11.206
Name: yahoo.co.kr
Address: 203.212.171.217
> lee.pe.kr
Server: 192.168.20.101
Address: 192.168.20.101#53
Name: lee.pe.kr
Address: 192.168.20.102
> exit
[root@star named]#
*. dns 서버가 제대로 동작 하지 않는다면 로그 파일을 보고 어디에 문제가 있는지를 찾아내서 고쳐야 한다.
*. dns 의 로그기록은 /var/log/messages 파일에 저장되어 있다.
[root@star named]# tail -10 /var/log/messages
Aug 16 02:23:04 star named[24828]: zone localhost/IN: loaded serial 42
Aug 16 02:23:04 star named[24828]: running
Aug 16 02:23:04 star named[24828]: zone lee.pe.kr/IN: sending notifies (serial 20080728)
Aug 16 02:23:04 star named[24828]: zone 20.168.192.in-addr.arpa/IN: sending notifies (serial 20080728)
Aug 16 02:23:04 star named[24828]: client 192.168.20.101#32769: received notify for zone 'lee.pe.kr'
Aug 16 02:23:05 star named[24828]: client 192.168.20.101#32769: received notify for zone '20.168.192.in-addr.arpa'
Aug 16 02:38:02 star crond(pam_unix)[24990]: session opened for user root by (uid=0)
Aug 16 02:38:02 star crond(pam_unix)[24990]: session closed for user root
Aug 16 02:39:02 star crond(pam_unix)[25002]: session opened for user root by (uid=0)
Aug 16 02:39:02 star crond(pam_unix)[25002]: session closed for user root
[root@star named]#
######################################################
설정 예. (centos 5.x)
named.caching-nameserver.conf 파일을 테스트를 위해 아래처럼 수정합니다.
이 파일이 없으면 yum install caching-nameserver 명령어로 설치부터해야합니다.
1 //
2 // named.caching-nameserver.conf
3 //
4 // Provided by Red Hat caching-nameserver package to configure the
5 // ISC BIND named(8) DNS server as a caching only nameserver
6 // (as a localhost DNS resolver only).
7 //
8 // See /usr/share/doc/bind*/sample/ for example named configuration files.
9 //
10 // DO NOT EDIT THIS FILE - use system-config-bind or an editor
11 // to create named.conf - edits to this file will be lost on
12 // caching-nameserver package upgrade.
13 //
14 options {
15 // listen-on port 53 { 127.0.0.1; };
16 listen-on port 53 { any; };
17 // listen-on-v6 port 53 { ::1; };
18 directory "/var/named";
19 dump-file "/var/named/data/cache_dump.db";
20 statistics-file "/var/named/data/named_stats.txt";
21 memstatistics-file "/var/named/data/named_mem_stats.txt";
22
23 // Those options should be used carefully because they disable port
24 // randomization
25 query-source port 53;
26 // query-source-v6 port 53;
27
28 // allow-query { localhost; };
29 allow-query { any; };
30 allow-notify { any; };
31 };
32 logging {
33 channel default_debug {
34 file "data/named.run";
35 severity dynamic;
36 };
37 };
38 view localhost_resolver {
39 // match-clients { localhost; };
40 match-clients { any; };
41 // match-destinations { localhost; };
42 match-destinations { any; };
43 recursion yes;
44 include "/etc/named.rfc1912.zones";
45 };
=====================================================
/etc/named.rfc19212.zones 파일 맨 아래에 아래와
같이 도메인을 하나 추가합니다.
zone "lee.pe.kr" IN {
type master;
file "lee.hosts";
};
zone "100.168.192.in-addr.arpa" IN {
type master;
file "192.168.100.rev";
};
================================
/etc/var/named/chroot/var/named 디렉토리에
lee.hosts 파일을 아래와 같이 작성합니다.
*. 설정할때 주의할점 - 도메인명으로 끝날때는 끝에 root 도메인을 의미하는
마침표를 꼭 붙여줘야 합니다. 그렇지 않으면 제대로 동작하지 않습니다.
1 $TTL 86400
2 @ IN SOA ns.myunix.co.kr. root.myunix.co.kr. (
3 2009072401 ; Serial
4 60 ; Refresh
5 14400 ; Retry
6 600 ; Expire
7 86400 ) ; Minimum
8 IN NS ns.myunix.co.kr.
9 ns IN A 192.168.100.1
10 www IN A 192.168.100.2
11 ftp IN A 192.168.100.3
===================================
/etc/var/named/chroot/var/named 디렉토리에
192.168.100.rev 파일을 아래와 같이 작성합니다.
[root@centos1 named]# cat 192.168.100.rev
1 $TTL 86400
2 @ IN SOA ns.myunix.co.kr. root.myunix.co.kr. (
3 201006133 ; Serial
4 60 ; Refresh
5 14400 ; Retry
6 600 ; Expire
7 86400 ) ; Minimum
8 IN NS ns.myunix.co.kr.
9 1 IN PTR ns.myunix.co.kr.
10 2 IN PTR www.myunix.co.kr.
11 3 IN PTR ftp.myunix.co.kr.
================================================
그리고 작성한 파일퍼미션은 named 가 읽을수 있게 권한 설정을 고쳐주어야합니다.
chgrp named lee.hosts
chgrp named 192.168.100.rev
/etc/resolv.conf 파일은 자신이 테스트할 dns서버를 적어둡니다.
[root@centos1 named]# cat /etc/resolv.conf
nameserver 192.168.100.1
그리고 dns ip 를 하나 할당합니다.
ifconfig eth0:1(또는 eth1:1) 192.168.100.1
그런다음 service named start
여기서 에러가 발생하였다면 /var/log/messages 파일을 보고 에러를 잡아야 합니다.
그리고 dns 설정파일을 수정한 경우에는 설정을 적용하기 위해서 dns 서비슬
재시작 해야 합니다.
nslookup 명령으로 테스트 했을때 문제가 없다면
도메인을 추가로 하나를 더 등록해서 테스트하면 dns 를 이해하는데 더 도움이 될것입니다.
'Log > Linux' 카테고리의 다른 글
dns 설정 실습 (0) | 2011.11.28 |
---|---|
DNS - Secondary(Slave) 구성 (0) | 2011.11.28 |
dns 설정파일 문법 (0) | 2011.11.28 |
DNS - Domain Name Service (0) | 2011.11.28 |
압축유틸리티/백업복구/패키지관리 (0) | 2011.11.28 |