일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- patch
- bash
- 오라클
- mariaDB
- prompt
- RHEL4
- MySQL
- cygwin
- 연산자
- rac
- PERL
- oracle install
- php5
- Oracle RAC
- command & perl
- Unix
- perl one-liner
- perl + 정규표현식
- grid
- Linux
- fdisk
- memory
- solaris
- oracle
- solaris network
- Network
- dba
- perl string
- sqlplus
- SQL
- Today
- Total
DATA 전문가로 가는 길
[Unix/Linux] DNS(Domain Name Server) + BIND 9.7 구축 및 운영 본문
[Unix/Linux] DNS(Domain Name Server) + BIND 9.7 구축 및 운영
EstenPark 2010. 11. 22. 18:44
작성자 : 박상수
작성일자 : 2010.11.22
작업환경 : VMware7 [ Redhat Enterprise 4 ]
참고자료 :
http://blog.cyworld.com/ruo91/5309018 [ DNS 확인 사이트 ]
http://seonz.tistory.com/22 [ Default DNS 설치 사이트 ]
http://www.google.co.kr/#sclient=psy&hl=ko&newwindow=1&q=linux+dns++%EC%84%9C%EB%B2%84+%EA%B5%AC%EC%B6%95&aq=f&aqi=g4g-o1&aql=&oq=&gs_rfai=&pbx=1&fp=3eb0db1a78eaa5af [ 설치 참조 사이트]
1. DNS서버의 종류와 역활
- DNS 서버는 크게 Primary 서버, Secondary서버, Caching Only서버로 나뉩니다.
1-2 종류와 역할
- Primary Name Server : 도메인 네임서버에 꼭 구축 하는 서버입니다.
- Secondary Name Server : 주로 주 도메인 서버 백업을 담당합니다.(반드시 구축할 필요 없음)
- Cashing Only Server : 서버에 기록된 정보가 요청이 올 경우 응답해주는 서버입니다.
2. 네임서버 구축 개요
- Redhat 리눅스는 BIND(Berkeley Internet Name Domain) 이라는 DNS 서버용 소프트웨어(데몬) 제공
2-2 Bind관련 파일 및 디렉토리
- named.conf(파일) : named 데몬이 작동할 때 처음으로 참조하는 파일로 환경설정과 밀접한 관련이 있습니다.
- named(데몬) : 네임서버를 작동 시키고 중단 시킬 때 사용하는 데몬 입니다.
- /var/named(디렉토리) : 루트 도메인 서버에 대한 정보가 담긴 named.ca(named.root), named.local 파일과 메인 도메인 설정을 위한 zone파일이 위치하는 디렉토리입니다.
3. BIND9.7 다운로드
[2010-11-22 15:21:53]-[root@server102:/usr/local/src]
# wget http://ftp.isc.org/isc/bind9/9.7.2-P2/bind-9.7.2-P2.tar.gz
--15:21:57-- http://ftp.isc.org/isc/bind9/9.7.2-P2/bind-9.7.2-P2.tar.gz
=> `bind-9.7.2-P2.tar.gz'
Resolving ftp.isc.org... 204.152.184.110, 2001:4f8:0:2::18
Connecting to ftp.isc.org|204.152.184.110|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7,573,857 (7.2M) [application/x-gzip]
82% [=============================> ] 6,240,549 174.23K/s ETA 00:11
[2010-11-22 15:23:15]-[root@server102:/usr/local/src]
# tar zxf bind-9.7.2-P2.tar.gz
[2010-11-22 15:23:46]-[root@server102:/usr/local/src/bind-9.7.2-P2]
# cd bind-9.7.2-P-2
[2010-11-22 15:23:46]-[root@server102:/usr/local/src/bind-9.7.2-P2]
# ./configure --prefix=/usr/local/dns
...
...
생략
...
...
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING
WARNING Your OpenSSL crypto library may be vulnerable to WARNING
WARNING one or more of the the following known security WARNING
WARNING flaws: WARNING
WARNING WARNING
WARNING CAN-2002-0659, CAN-2006-4339, CVE-2006-2937 and WARNING
WARNING CVE-2006-2940. WARNING
WARNING WARNING
WARNING It is recommended that you upgrade to OpenSSL WARNING
WARNING version 0.9.8d/0.9.7l (or greater). WARNING
WARNING WARNING
WARNING You can disable this warning by specifying: WARNING
WARNING WARNING
WARNING --disable-openssl-version-check WARNING
WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
[2010-11-22 15:25:02]-[root@server102:/usr/local/src/bind-9.7.2-P2]
# make; make install
4. 초기 상태 확인
[2010-11-23 20:25:53]-[root@server102:~]
# cat /etc/resolv.conf
nameserver 168.126.63.1
[2010-11-23 23:43:12]-[root@server102:/usr/local/dns/etc]
# nslookup
> estenpark.pe.kr
;; connection timed out; no servers could be reached
5. named.conf 파일의 환경설정
[2010-11-23 20:40:18]-[root@server102:/usr/local/dns/etc]
# cat named.conf
[설명] BIND9버전은 위와 같이 설치 한다면 /usr/local/dns/etc 안에 blnd,keys 파일을 밖에 없을 겁니다. 그래서 vi 편집기로 named.conf 파일을 생성 후 아래와 같은 내용을 적어 주시기 바랍니다.
[2010-11-23 20:43:24]-[root@server102:/usr/local/dns/etc]
# cat named.conf
/*
[설명]
directory : 네임서버에서 데이터베이스 역활을 하는 존(zone)파일의 위치를 설정
dump-file : named는 정보가 갱신될 때 dump파일로 저장하는데 그 덤프파일이 생성될 위치아 파일명을 지정
statistics-file : 네임서버의 통계를 낼 경우에 사용하는 옵션으로 메모리 통계 파일을 생성할 위치와 파일명 지정
allow-transfer : zone 파일의 내용을 복사할 대상에 제한을 걸 때 지정
*/
options {
directory "/var/named";
dump-file "/var/tmp/named_dmp.db";
statistics-file "/var/tmp/named.stats";
pid-file "/var/run/named.pid";
allow-transfer { 172.16.71.XXX; };
};
logging {
category lame-servers { null; };
category notify { null; };
};
/*
[설명]
도메인을 찾을때는 가장 상위 도메인서버에서 차례대로 트리구조형태로 찾습니다. 또한 참조하는 파일인 named.ca(named.root)는 일종의 캐시파일로서 인터닉(Internic)에서 제공하는 배포파일이므로 절대 변경해서는 안됩니다.
*/
zone "." IN {
type hint;
file "named.root";
};
/*
[설명]
로컬호스트에서는 Reverse파일에 관한 부분으로 이 부분 역시 설정 해야 합니다. type는 master인 것은 위에서 설명한 주 메인 도메인 서버를 의미 합니다.
/*
zone "0.0.127.in-addr.arpa" IN {
type master;
file "zone-0.0.127.in-addr.arpa";
notify no;
};
/*
[설명]
로컬호스트 파일에 관한 부분으로 이 부분 역시 설정 해야 합니다. type는 master인 것은 위에서 설명한 주 메인 도메인 서버를 의미 합니다.
*/
zone "localhost" IN {
type master;
file "zone-localhost";
notify no;
};
/*
[설명]
도메인 : calmmmass.pe.kr
IP : 172.16.71.xxx
위와 같은 정보라고 가정한다면 부여받은 IP중 마지막 자리를 뺀 나머지를 역으로 선언합니다. 물론 이선언은 안해도 무방하나, nslookup명령어나 기타 여러가지를 사용하려면 꼭 선언해야 합니다. type는 master인 것은 위에서 설명한 주 메인 도메인 서버를 의미 합니다.
*/
zone "71.16.172.in-addr.arpa" IN {
type master;
file "zone-71.16.172.in-addr.arpa";
};
/*
[설명]
도메인 : calmmmass.pe.kr
IP : 172.16.71.xxx
위와 같은 정보라고 가정한다면 부여받은 도메인을 도메인이름으로 지정하고 존파일은 임의로 지정하셔도 되지만 알아보기 편하도록 앞이나 뒤에 zone를 붙여 주시는게 좋습니다. type는 master인 것은 위에서 설명한 주 메인 도메인 서버를 의미 합니다.
*/
zone "estenpark.pe.kr" IN {
type master;
file "zone-estenpark.pe.kr";
};
[ Tip 한번에 문자 모두 변경 하는 방법 ]
:1,$ s/211.43.134.102/172.16.71.200/g
[2010-11-23 20:48:30]-[root@server102:/usr/local/dns/etc]
# grep file named.conf
dump-file "/var/tmp/named_dmp.db";
statistics-file "/var/tmp/named.stats";
pid-file "/var/run/named.pid";
file "named.root";
file "zone-0.0.127.in-addr.arpa";
file "zone-71.16.172.in-addr.arpa";
file "zone-estenpark.pe.kr";
6. 존파일의 구성
7. /var/named에 위치하는 zone파일의 설정
[설명] ftp://ftp.internic.org/domain/named.root 파일의 내용을 복사해서 아래와 같이 named.root 파일로 생성합니다. 캐시 파일로서 사용하기 위한 설정 방법이며 파일의 내용은 절대 변경 하지 마시길 바랍니다.
[2010-11-23 20:49:29]-[root@server102:/var/named]
# cat named.root
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: Jun 17, 2010
; related version of root zone: 2010061700
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30
;
; FORMERLY NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; FORMERLY C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; FORMERLY TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; FORMERLY NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; FORMERLY NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2F::F
;
; FORMERLY NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; FORMERLY AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::803F:235
;
; FORMERLY NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7FE::53
;
; OPERATED BY VERISIGN, INC.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:C27::2:30
;
; OPERATED BY RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7FD::1
;
; OPERATED BY ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
L.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:3::42
;
; OPERATED BY WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
M.ROOT-SERVERS.NET. 3600000 AAAA 2001:DC3::35
; End of File
[설명] 로컬호스트에서의 Reverse 파일 입니다. ns.calmmmass.pe.kr은 name server을 지정해주기 위한 것이고, PTR(Domain Name Pointer) 이것은 IP 주소를 도메인으로 변환 해줍니다.
예) nslookup 127.0.0.1 하면 localhost가 나옵니다.
[2010-11-23 20:49:29]-[root@server102:/var/named]
# cat zone-0.0.127.in-addr.arpa
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
[설명] 로컬호스트 파일 입니다. ns.calmmmass.pe.kr은 name server을 지정해주기 위한 것이고, A는 localhost(도메인) 주소를 IP로 변환 해줍니다.
예) nslookup localhost 하면 127.0.0.1이 나옵니다.
# cat zone-localhost
$TTL 86400
@ IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS @
IN A 127.0.0.1
[설명] IP중 마지막 자리를 뺀 나머지를 역으로 선언하는 Reverse 파일 입니다. ns.calmmmass.pe.kr은 name server를 지정해주기 위한 것이고, PTR(Domain Name Pointer) 이것은 IP 주소를 도메인으로 변환 해줍니다.
[2010-11-23 20:49:29]-[root@server102:/var/named]
# cat zone-71.16.172.in-addr.arpa
$TTL 3600
@ IN SOA ns.calmmmass.pe.kr. root.calmmmass.pe.kr. (
2001070600 ;Serial
21600 ;Refresh ( 6 hours )
1800 ;Retry ( 30 minutes )
1209600 ;Expire ( 14 days )
86400 ) ;Minimum ( 1 day )
IN NS ns.calmmmass.pe.kr.
xxx IN PTR ns.calmmmass.pe.kr.
[설명] 존 파일 입니다. 실제로 2차도메인 및 서비스별 도메인을 정의 할 수 있는 아주 중요한 파일입니다.
ns.calmmmass.pe.kr은 name server을 지정해주기 위한 것이고, MX는 Mail Excahanger의 약어로 Fowarding개념 입니다. A는 Address 즉 특정 호스트명에 대한 IP주소를 입력 해줍니다.
[2010-11-23 20:59:28]-[root@server102:/var/named]
# cat zone-estenpark.pe.kr
$TTL 3600
@ IN SOA ns.calmmmass.pe.kr. root.calmmmass.pe.kr. ( 2001041100 ;Serial
84600 ;Refresh
1800 ;Retry
1209600 ;Expire
84600 ) ;Minimum
IN NS ns.calmmmass.pe.kr.
IN NS ns2.calmmmass.pe.kr.
IN A 172.16.71.200
IN MX 10 mail
mail IN A 172.16.71.200
ns IN A 172.16.71.200
ns2 IN A 172.16.71.200
ftp IN A 172.16.71.200
www IN A 74.125.224.19
[2010-11-23 21:01:21]-[root@server102:/usr/local/dns/sbin]
# ./named-checkzone estenpark.pe.kr /var/named/zone-estenpark.pe.kr
zone estenpark.pe.kr/IN: loaded serial 2001041100
OK
8. 설정 확인 및 테스트
[설명] DNS 데몬 확인
[2010-11-23 21:02:58]-[root@server102:/usr/local/dns/sbin]
# ls |perl -ne 'print if /named$/'
named
[설명] DNS 데몬 가동 및 프로세스 확인
[2010-11-23 21:06:09]-[root@server102:/usr/local/dns/sbin]
# ./named
[2010-11-23 21:06:31]-[root@server102:/usr/local/dns/sbin]
# ps -ef |grep -v grep |grep named
root 16530 1 6 21:06 ? 00:00:00 ./named
[설명] 내 시스템 DNS 서버 변경
[2010-11-23 21:07:57]-[root@server102:/var/named]
# cat /etc/resolv.conf
nameserver 172.16.71.xxx
[설명] 네트워크 서비스 재시작(반드시 재시작 하지 않아도 됩니다. 원인은 왜 그런지 모르겠네요.^^ 정적으로 할당되는 것으로 알고 있었는데 테스트 결과 동적으로 변경이 됐습니다.)
[2010-11-23 21:08:17]-[root@server102:/var/named]
# service network restart
[설명] DNS 서버 변경 확인
[2010-11-23 16:06:45]-[root@server102:/usr/local/dns/sbin]
# nslookup
> 127.0.0.1
Server: 172.16.4.102
Address: 172.16.4.102#53
1.0.0.127.in-addr.arpa name = localhost.
> 172.16.4.102
Server: 172.16.4.102
Address: 172.16.4.102#53
102.4.16.172.in-addr.arpa name = ns.calmmmass.pe.kr.
> www.estenpark.pe.kr
Server: 172.16.4.102
Address: 172.16.4.102#53
Name: www.estenpark.pe.kr
Address: 74.125.224.19
> estenpark.pe.kr
Server: 172.16.4.102
Address: 172.16.4.102#53
Name: estenpark.pe.kr
Address: 172.16.71.200
[설명] www.estenpark.pe.kr을 구글 도메인 서버로 변경 한다면 어떻게 될까요? DNS를 이해 했다면 아래와 같은 그림을 이해하고 변경이 가능 할 거라고 생각 됩니다. zone-estenpark.pe.kr 파일을 확인 해보면" www IN A 74.125.224.19" 설정 부분이 보이실 겁니다. www.[구성한 존파일의 도메인 네임] 하면 테스트가 가능 합니다.
8. rndc DNS 유틸리티 사용방법
관련 파일 : [설치파일]/etc/rndc.conf( 주 환경설정 파일), rndc-confgen(주 환경설정파일을 만들어주는 명령어)
[설명] [설치파일]/etc/rndc.conf 기본 설정
[2010-11-24 01:44:17]-[root@server102:/usr/local/dns/etc]
# cat rndc.conf
options{
default-server localhost;
default-key "rndckey";
};
server localhost {
key "rndckey";
};
include "usr/local/dns/etc/rndc.key";
[설명] rndc-confgen 명령어를 이용하여 파일 생성(rndc.conf)
[2010-11-24 01:42:20]-[root@server102:/usr/local/dns/sbin]
# ./rndc-confgen -a
wrote key file "/usr/local/dns/etc/rndc.key"
[2010-11-24 01:45:54]-[root@server102:/usr/local/dns/etc]
# chmod 640 rndc.key
[2010-11-24 01:46:14]-[root@server102:/usr/local/dns/etc]
# ls -al
합계 24
drwxr-xr-x 2 root root 4096 11월 24 01:44 .
drwxr-xr-x 9 root root 4096 11월 23 20:37 ..
-rw-r--r-- 1 root root 665 11월 23 20:26 bind.keys
-rw-r--r-- 1 root root 689 11월 23 20:37 named.conf
-rw-r--r-- 1 root root 162 11월 24 01:44 rndc.conf
-rw-r----- 1 root root 77 11월 24 01:42 rndc.key
'OS > Server Admin' 카테고리의 다른 글
[Unix/Linux] Samba 3.0 설치 및 연동(RPM 설치) (0) | 2010.11.25 |
---|---|
[Unix/Linux] Sendmail 8.14.4 구축 및 메일 전송 테스트 (20) | 2010.11.23 |
[Unix/Linux] RHEL4 + Apache2 + PHP5.3 + MySql5.1 +Zend Optimizer 설치 및 구동방법 (0) | 2010.11.17 |