DNS Server 구축
1. DNS Server를 구축하기 위해 필요한 패키지를 다운 및 설치한다.
bind-9.3.4-6.P1.el5.i386.rpm
bind-chroot-9.3.4-6.P1.el5.i386.rpm
bind-libs-9.3.4-6.P1.el5.i386.rpm
bind-utils-9.3.4-6.P1.el5.i386.rpm
caching-nameserver-9.3.4-6.P1.el5.i386.rpm
패키지 설치 확인
[root@localhost ~]# rpm -qa | grep bind
bind-9.3.4-6.0.2.P1.el5_2
ypbind-1.19-8.el5
bind-libs-9.3.4-6.0.2.P1.el5_2
bind-chroot-9.3.4-6.0.2.P1.el5_2
bind-utils-9.3.4-6.0.2.P1.el5_2
[root@localhost ~]# rpm -qa | grep caching
caching-nameserver-9.3.4-6.0.2.P1.el5_2
패키지 설치
1. RPM을 이욯해서 설치
# rpm -Uvh 파일명
2. YUM을 이용해서 설치
# YUM install bind*
# YUM install caching-nameserver
-----------------------------------------------------------------------------------------------------
2. DNS의 환경설정파일
- 참고
bind-9.2 버전까지는 /etc/named.config 파일을 사용하였지만
bind-9.3 버전부터는 /etc/named.caching-namedserver.conf 파일을 사용하고
/etc/named.rfc1912.zones 파일을 포함하고 있다.
/etc/named.caching-nameserver.conf
- 네임서버의 주 환경설정 파일
- named 데몬이 작동시 참조하는 파일로 도메인별 zone 파일을 지정한다.
- /var/named/chroot/etc에 원본 파일이 있고 /etc/named/에 있는 파일은 링크파일이다.
- /etc/named.conf 와 같은 파일이다.
- /etc/named.conf 파일과 같은 파일이다.
환경설정
#vi /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 port 53 { any; };
- 네임서버의 포트번호와 접근할 수 있는 IP를 설정하는 지시자로써
기본적으로는 127.0.0.1(루프백IP) 즉, 자신만이 53번 포트에 접속을 허용하고 있다.
만약 외부에서 네임서버로의 접근을 허용해야 한다면 허용 Ip부분에 any를 입력하여 외부와의 연결을 허용하도록 한다.
// listen-on-v6 port 53 { ::1; };
- IPv6하의 네임서버 운영을 설정하는 것으로 현재는 필요하지 않으므로 기본설정 뽀는 주석처리 한다.(여기서는 주석처리)
directory "/var/named";
- DNS의 zone파일의 경로를 지정한다. 기본 설정은 /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";
- 메모리 관련 통계파일이 생성되는 경로 및 파일명을 지정한다.
query-source port 53;
// query-source-v6 port 53;
- 네임서버의 쿼리를 받아들일 소스포트를 설정하는 것으로 기본 설정은 53포트이다.
// allow-query { localhost; };
allow-query { any; };
- 네임서버의 쿼리를 허용할 IP 혹은 IP대역을 설정하는 것으로 외부와의 쿼리 허용을 위하여 any를 입력한다.
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
- 디버깅시 참고할 수 있는 로그파일을 생성하는 경로를 지정한다.
view localhost_resolver {
// match-clients { localhost; };
// match-destinations { localhost; };
match-clients { any; };
match-destinations { any; };
- 로컬 리졸버 사용을 허용할 클라이언트를 지정하는 지시자로 외부에 허용하기 위하여 any를 입력한다.
recursion yes;
// recursion no;
- 외부에서 현재의 네임서버를 지정하여 사용할 수 있게 하느냐, 사용할 수 없게 하느냐를 설정하는 지시자로
네임서버의 보안상 no로 설정하지만 yes를 해야 인터넷에 연결된다.
include "/etc/named.rfc1912.zones";
};
-----------------------------------------------------------------------------------------------------
2-1. Zone 파일 설정
Forward zone 과 Reverse zone
- Forwaerd zone : Demain -> IP로 매칭시켜주는 것
- Reverse zone : IP -> Domain으로 매칭시켜주는 것
#vi /etc/named.rfc1912.zones
- IPv4부분에 아래의 두 설정을 추가시켜 준다.-
zone "server3.co.kr" IN { - zone "데이터베이스 또는 도메인 주소" IN
type master; - 1차 네임 서버를 의미, slave는 2차 네임서버를 의미미
file "server3.zone"; - 존 파일명을 설정한다. Forward zone
allow-update { none; }; - 2차 네임서버를 운영하지 않는다면 none을 입력
};
zone "33.10.10.in-addr.arpa" IN {
type master;
file "server3.rzone"; - Reverse zone
allow-update { none; };
};
- 위쪽은 IPv4에 관한 설정 -
- 아래쪽은 IPv6에 관련된 설정 -
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; };
};
-----------------------------------------------------------------------------------------------------
3. Zone 파일 환경설정
3-1. Zone파일 생성
-참고
/var/named/에 있는 파일들은 링크파일이고
/var/named/chroot/var/named/에 있는 파일들이 원본파일이기 때문에 이 폴더에 아래 두 파일을 추가생성해 준다.
[root@server3 named]# pwd
/var/named/chroot/var/named
[root@server3 named]# ls -l
-rw-r----- 1 root named 198 5월 25 2008 localdomain.zone
-rw-r----- 1 root named 426 5월 25 2008 named.local
[root@server3 named]# cp localdomain.zone server3.zone
[root@server3 named]# cp named.local server3.rzone
[root@server3 named]# ls -l
-rw-r----- 1 root named 198 5월 25 2008 localdomain.zone
-rw-r----- 1 root named 426 5월 25 2008 named.local
-rw-r----- 1 root root 426 12월 10 15:46 server3.rzone
-rw-r----- 1 root root 198 12월 10 15:46 server3.zone
-----------------------------------------------------------------------------------------------------
3-2. 퍼미션 설정 -> server3.zone, server3.rzone 퍼미선 설정
[root@server3 named]# chown root.named server3.zone
[root@server3 named]# chown root.named server3.rzone
[root@server3 named]# ls -l
-rw-r----- 1 root named 198 5월 25 2008 localdomain.zone
-rw-r----- 1 root named 426 5월 25 2008 named.local
-rw-r----- 1 root named 485 12월 10 16:01 server3.rzone
-rw-r----- 1 root named 238 12월 10 15:58 server3.zone
- 참고
cp 명령어를 파일처리 할때 -p 옵션(원본파일의 소유권, 그룹, 허가권,퍼미션을 복사)을 쓰면 퍼미션 설정을 안해줘도 된다.
[root@server3 named]# cp -p localdomain.zone server3.zone
[root@server3 named]# cp -p named.local server3.rzone
-----------------------------------------------------------------------------------------------------
3-3. Forward zone 파일 설정
[root@server3 named]# cp -p localdomain.zone server3.zone
[root@server3 named]# vi /var/named/chroot/var/named/server3.zone 파일 생성 및 설정
$TTL 86400
@ IN SOA server3.co.kr. root.server3.co.kr. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS server3.co.kr.
IN A 10.10.33.3
www IN A 10.10.33.3
- 참고
SOA는 Start of Authority의 약자로 server3.co.kr 도메인 네임 서버에 대한 모든 정보를 가지고 있으며,
관리자는 root@server3.co.kr 이라는 메일로 설정하고 있다.
여기서 주의 할 사항은 도메인이름을 적은 다음에 항상 닷(.) 루트 도메인을 표시하여야 한다는 점이다.
또한 관리자의 메일 설정에서 @는 특수문자로 인식하기 때문에 @를 사용하지 않고 닷(.)을 사용하고 있는 점을 기억하도록 하자.
-----------------------------------------------------------------------------------------------------
3-4. Reverse zone 파일 설정
[root@server3 named]# cp -p named.local server3.rzone
[root@server3 named]# vi /var/named/chroot/var/named/server3.rzone 파일 생성 및 설정
$TTL 86400
@ IN SOA server3.co.kr. root.server3.co.kr. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS server3.co.kr.
3 IN PTR server3.co.kr.
3 IN PTR www.server3.co.kr.
-----------------------------------------------------------------------------------------------------
4. /etc/hosts 파일 설정
#vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
::1 localhost6.localdomain6 localhost6
127.0.0.1 server3 localhost.localdomain localhost - 기본설정
#10.10.33.3 server3 - 추가설정으로 주석처리를 한다.
- 주석처리를 한 이유.
현재 강의 실 전체가 10점대의 네트워크 대역을 쓰고 있기 때문에 이 IP주소를 주석처리하지 않으면
DNS 우선순위(/etc/host.conf의 설정 : hosts,bind 순) 에 따라서 /etc/hosts파일에 있는 이 주소를 통해 네임서버가 동작할 수 있기 때문에
네임서버가 제대로 동작하는지를 알수 없다. 그렇게 때문에 확인차 주석처리를 한다. 실사용시에는 주석처리를 안해도 된다.
-----------------------------------------------------------------------------------------------------
5. /etc/resolv.conf 파일 설정
#vi /etc/resolv.conf
#nameserver 168.126.63.1 - 기본 KT DNS Server 주소로 주석처리 한다.
nameserver 10.10.33.3 - 자신의 IP주소를 기준으로 DNS Server 주소를 추가해준다.
-----------------------------------------------------------------------------------------------------
6. DNS Server 서비스를 시작한다.
#service named start
named를 시작 중: [ OK ]
-----------------------------------------------------------------------------------------------------
7. DNS Server가 제대로 작동하는지 확인
- 참고
데몬(DNS Server)이 실행된 후 제대로 작동이 됐는지 확인하는 명령어
#tail /var/log/messages
7-1.
#netstate -nat - DNS Server의 기본 포트인 53번 포트를 확인
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.29.1:53 0.0.0.0:* LISTEN
tcp 0 0 192.168.189.1:53 0.0.0.0:* LISTEN
tcp 0 0 192.168.33.3:53 0.0.0.0:* LISTEN
tcp 0 0 10.10.33.3:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
7-2.
#ping server3.co.kr
PING server3.co.kr (10.10.33.3) 56(84) bytes of data.
64 bytes from www.server3.co.kr (10.10.33.3): icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from www.server3.co.kr (10.10.33.3): icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from www.server3.co.kr (10.10.33.3): icmp_seq=3 ttl=64 time=0.029 ms
64 bytes from www.server3.co.kr (10.10.33.3): icmp_seq=4 ttl=64 time=0.029 ms
--- server3.co.kr ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.021/0.026/0.029/0.007 ms
7-3.
#nslookup server3.co.kr - DNS Server가 잘 작동하는지 확인
Server: 10.10.33.3
Address: 10.10.33.3#53
Name: server3.co.kr
Address: 10.10.33.3
7-4.
#nslookup www.server3.co.kr - DNS Server가 잘 작동하는지 확인
Server: 10.10.33.3
Address: 10.10.33.3#53
Name: www.server3.co.kr
Address: 10.10.33.3
7-5.
# nslookup 10.10.33.3 - DNS Server가 잘 작동하는지 확인
Server: 10.10.33.3
Address: 10.10.33.3#53
3.33.10.10.in-addr.arpa name = www.server3.co.kr.
3.33.10.10.in-addr.arpa name = server3.co.kr.
7-6.
# nslookup www.daum.net - www.daum.net에 대해서 DNS Server가 제대로 작동하는지 확인(인터넷 연결 확인)
Server: 10.10.33.3
Address: 10.10.33.3#53
Non-authoritative answer:
www.daum.net canonical name = daumtop.daum.akadns.net.
Name: daumtop.daum.akadns.net
Address: 211.32.117.30
Name: daumtop.daum.akadns.net
Address: 211.115.77.212
Name: daumtop.daum.akadns.net
Address: 211.115.77.213
Name: daumtop.daum.akadns.net
Address: 211.115.77.214
Name: daumtop.daum.akadns.net
Address: 211.115.115.211
Name: daumtop.daum.akadns.net
Address: 222.231.51.40
Name: daumtop.daum.akadns.net
Address: 222.231.51.77
Name: daumtop.daum.akadns.net
Address: 222.231.51.78
-----------------------------------------------------------------------------------------------------
8. 재부팅 후에도 DNS Server를 작동시키기
#ntsysv
[*]named - ntsysv에서 named(DNS Server 서비스 추가)
file "server3.zone"; - 존 파일명을 설정한다. Forward zone
allow-update { none; }; - 2차 네임서버를 운영하지 않는다면 none을 입력
};
zone "33.10.10.in-addr.arpa" IN {
type master;
file "server3.rzone"; - Reverse zone
allow-update { none; };
};
- 위쪽은 IPv4에 관한 설정 -
- 아래쪽은 IPv6에 관련된 설정 -
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; };
};
-----------------------------------------------------------------------------------------------------
3. Zone 파일 환경설정
3-1. Zone파일 생성
-참고
/var/named/에 있는 파일들은 링크파일이고
/var/named/chroot/var/named/에 있는 파일들이 원본파일이기 때문에 이 폴더에 아래 두 파일을 추가생성해 준다.
[root@server3 named]# pwd
/var/named/chroot/var/named
[root@server3 named]# ls -l
-rw-r----- 1 root named 198 5월 25 2008 localdomain.zone
-rw-r----- 1 root named 426 5월 25 2008 named.local
[root@server3 named]# cp localdomain.zone server3.zone
[root@server3 named]# cp named.local server3.rzone
[root@server3 named]# ls -l
-rw-r----- 1 root named 198 5월 25 2008 localdomain.zone
-rw-r----- 1 root named 426 5월 25 2008 named.local
-rw-r----- 1 root root 426 12월 10 15:46 server3.rzone
-rw-r----- 1 root root 198 12월 10 15:46 server3.zone
-----------------------------------------------------------------------------------------------------
3-2. 퍼미션 설정 -> server3.zone, server3.rzone 퍼미선 설정
[root@server3 named]# chown root.named server3.zone
[root@server3 named]# chown root.named server3.rzone
[root@server3 named]# ls -l
-rw-r----- 1 root named 198 5월 25 2008 localdomain.zone
-rw-r----- 1 root named 426 5월 25 2008 named.local
-rw-r----- 1 root named 485 12월 10 16:01 server3.rzone
-rw-r----- 1 root named 238 12월 10 15:58 server3.zone
- 참고
cp 명령어를 파일처리 할때 -p 옵션(원본파일의 소유권, 그룹, 허가권,퍼미션을 복사)을 쓰면 퍼미션 설정을 안해줘도 된다.
[root@server3 named]# cp -p localdomain.zone server3.zone
[root@server3 named]# cp -p named.local server3.rzone
-----------------------------------------------------------------------------------------------------
3-3. Forward zone 파일 설정
[root@server3 named]# cp -p localdomain.zone server3.zone
[root@server3 named]# vi /var/named/chroot/var/named/server3.zone 파일 생성 및 설정
$TTL 86400
@ IN SOA server3.co.kr. root.server3.co.kr. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS server3.co.kr.
IN A 10.10.33.3
www IN A 10.10.33.3
- 참고
SOA는 Start of Authority의 약자로 server3.co.kr 도메인 네임 서버에 대한 모든 정보를 가지고 있으며,
관리자는 root@server3.co.kr 이라는 메일로 설정하고 있다.
여기서 주의 할 사항은 도메인이름을 적은 다음에 항상 닷(.) 루트 도메인을 표시하여야 한다는 점이다.
또한 관리자의 메일 설정에서 @는 특수문자로 인식하기 때문에 @를 사용하지 않고 닷(.)을 사용하고 있는 점을 기억하도록 하자.
-----------------------------------------------------------------------------------------------------
3-4. Reverse zone 파일 설정
[root@server3 named]# cp -p named.local server3.rzone
[root@server3 named]# vi /var/named/chroot/var/named/server3.rzone 파일 생성 및 설정
$TTL 86400
@ IN SOA server3.co.kr. root.server3.co.kr. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS server3.co.kr.
3 IN PTR server3.co.kr.
3 IN PTR www.server3.co.kr.
-----------------------------------------------------------------------------------------------------
4. /etc/hosts 파일 설정
#vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
::1 localhost6.localdomain6 localhost6
127.0.0.1 server3 localhost.localdomain localhost - 기본설정
#10.10.33.3 server3 - 추가설정으로 주석처리를 한다.
- 주석처리를 한 이유.
현재 강의 실 전체가 10점대의 네트워크 대역을 쓰고 있기 때문에 이 IP주소를 주석처리하지 않으면
DNS 우선순위(/etc/host.conf의 설정 : hosts,bind 순) 에 따라서 /etc/hosts파일에 있는 이 주소를 통해 네임서버가 동작할 수 있기 때문에
네임서버가 제대로 동작하는지를 알수 없다. 그렇게 때문에 확인차 주석처리를 한다. 실사용시에는 주석처리를 안해도 된다.
-----------------------------------------------------------------------------------------------------
5. /etc/resolv.conf 파일 설정
#vi /etc/resolv.conf
#nameserver 168.126.63.1 - 기본 KT DNS Server 주소로 주석처리 한다.
nameserver 10.10.33.3 - 자신의 IP주소를 기준으로 DNS Server 주소를 추가해준다.
-----------------------------------------------------------------------------------------------------
6. DNS Server 서비스를 시작한다.
#service named start
named를 시작 중: [ OK ]
-----------------------------------------------------------------------------------------------------
7. DNS Server가 제대로 작동하는지 확인
- 참고
데몬(DNS Server)이 실행된 후 제대로 작동이 됐는지 확인하는 명령어
#tail /var/log/messages
7-1.
#netstate -nat - DNS Server의 기본 포트인 53번 포트를 확인
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.29.1:53 0.0.0.0:* LISTEN
tcp 0 0 192.168.189.1:53 0.0.0.0:* LISTEN
tcp 0 0 192.168.33.3:53 0.0.0.0:* LISTEN
tcp 0 0 10.10.33.3:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
7-2.
#ping server3.co.kr
PING server3.co.kr (10.10.33.3) 56(84) bytes of data.
64 bytes from www.server3.co.kr (10.10.33.3): icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from www.server3.co.kr (10.10.33.3): icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from www.server3.co.kr (10.10.33.3): icmp_seq=3 ttl=64 time=0.029 ms
64 bytes from www.server3.co.kr (10.10.33.3): icmp_seq=4 ttl=64 time=0.029 ms
--- server3.co.kr ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.021/0.026/0.029/0.007 ms
7-3.
#nslookup server3.co.kr - DNS Server가 잘 작동하는지 확인
Server: 10.10.33.3
Address: 10.10.33.3#53
Name: server3.co.kr
Address: 10.10.33.3
7-4.
#nslookup www.server3.co.kr - DNS Server가 잘 작동하는지 확인
Server: 10.10.33.3
Address: 10.10.33.3#53
Name: www.server3.co.kr
Address: 10.10.33.3
7-5.
# nslookup 10.10.33.3 - DNS Server가 잘 작동하는지 확인
Server: 10.10.33.3
Address: 10.10.33.3#53
3.33.10.10.in-addr.arpa name = www.server3.co.kr.
3.33.10.10.in-addr.arpa name = server3.co.kr.
7-6.
# nslookup www.daum.net - www.daum.net에 대해서 DNS Server가 제대로 작동하는지 확인(인터넷 연결 확인)
Server: 10.10.33.3
Address: 10.10.33.3#53
Non-authoritative answer:
www.daum.net canonical name = daumtop.daum.akadns.net.
Name: daumtop.daum.akadns.net
Address: 211.32.117.30
Name: daumtop.daum.akadns.net
Address: 211.115.77.212
Name: daumtop.daum.akadns.net
Address: 211.115.77.213
Name: daumtop.daum.akadns.net
Address: 211.115.77.214
Name: daumtop.daum.akadns.net
Address: 211.115.115.211
Name: daumtop.daum.akadns.net
Address: 222.231.51.40
Name: daumtop.daum.akadns.net
Address: 222.231.51.77
Name: daumtop.daum.akadns.net
Address: 222.231.51.78
-----------------------------------------------------------------------------------------------------
8. 재부팅 후에도 DNS Server를 작동시키기
#ntsysv
[*]named - ntsysv에서 named(DNS Server 서비스 추가)
'Linux Server 구축 > 1-1. DNS Server' 카테고리의 다른 글
보조네임서버구축 (Secondary Name Server) (0) | 2008.12.11 |
---|---|
DNS 도메인 추가2 (0) | 2008.12.11 |
DNS 도메인 추가1 (0) | 2008.12.11 |
DNS 관련 명렁어 (0) | 2008.12.11 |