만일 설치부터 필자를 계속 따라오신 분이라면 현재의 서버엔 BIND 9가 설치되어 있을 것이다.
확인해 보도록 하자.
# rpm -qa | grep bind
bind-libs-9.2.4-2
bind-utils-9.2.4-2
ypbind-1.17.2-3
bind-9.2.4-2
bind-chroot-9.2.4-2
네임서버도 설치되어 있나 확인해 보자.
# rpm -qa | grep name
caching-nameserver-7.3-3
이젠 서버에선 DNS를 설정할 준비가 끝났다.
아래 점섬내의 글은 BIND가 설치되지 않으신 분들만 보도록 하자~~
=======================================================================================
1. 설치
설치는 간단하게 rpm 설치 하는 법만 설명하도록 하겠습니다.
RH9에서 DNS와 관련된 패키지는 다음과 같습니다. (bind9)
bind-9.2.1-16 : DNS (도메인 이름 시스템) 서버.
bind-devel-9.2.1-16 : bind DNS 개발을 위해 필요한 파일들과 라이브러리들이 포함되어 있습니다.
bind-utils-9.2.1-16 : DNS 네임 서버들을 질의(query)하는 유틸리티.
caching-nameserver-7.2-7 : 캐싱 네임 서버를 설정하는데 필요한 설정 파일들.
redhat-config-bind-1.9.0-13 : Red Hat DNS 설정 도구.
위 패키지들 중에 bind-devel-9.2.1-16 는 설치하지 않도록 하겠습니다. ^^;
개발에 필요한 것이기 때문이죠.
위 패키지들을 rpm -qa | grep bind 해서 확인하시고 있을경우 삭제합니다.
# rpm -e --nodeps bind-libs-9.2.4-2
# rpm -e --nodeps bind-utils-9.2.4-2
# rpm -e --nodeps ypbind-1.17.2-3
다음과 같이 설치하세요
# rpm -Uvh /home/free/e-cnn/dns/bind-utils-9.2.1-16.i386.rpm
# rpm -Uvh /home/free/e-cnn/dns/bind-9.2.1-16.i386.rpm
# rpm -Uvh /home/free/e-cnn/dns/redhat-config-bind-1.9.0-13.noarch.rpm
# rpm -Uvh /home/free/e-cnn/dns/caching-nameserver-7.2-7.noarch.rpm
이렇게 설치가 끝났다면, dns 실행 준비가 된 것 입니다.
- CentOS 4.1 설치시 패키지선택에서 DNS 이름서버를 선택하면 위의 내용이 모두 설치됨.
(위와 같은 설치과정을 거칠 필요가 없음)
=======================================================================================
이해를 돕기위해 사용되는 예제에서 필자는 test.net 이란 가상의 도메인과 192.168.1.100 이란 공인IP를 사용하것으로 하겠다. (참고로 192.168.~ 로 시작되는 IP는 99% 공유기 IP이다.)
설마 아래의 내용을 보고 실제로 test.net으로 따라하시는 분은 없을거라 믿는다..
우선 도메인을 구입하기 위해서 whois.co.kr 에 접속했다.
test.net이란 도메인을 검색했더니 다행스럽게도 소유자가 없는 도메인으로 나와서
바로 회원으로 가입하고 1년 사용료 2만얼마를 내고 도메인을 구입했다.
네임서버를 지정하기 위해서 [내 도메인 관리]의 [호스트 관리] 메뉴로 들어가서...
ns.test.net 이란 호스트을 만들고 IP입력란에 192.168.1.100 라고 입력한후 호스트명 생성을 클릭.
[내 도메인 관리] - [네임서버 변경]으로 들어가서 1차 네임서버에 ns.test.net , 2차 네임서버는 whois에서 제공하는 네임서버명을 입력하고 저장했다.
(참고로 com 이나 .net은 외국도메인이라 적용되는데 평균 24시간정도가 소요된다.)
이제 다시 CentOS로 들어와서...
1.서버에서 도메인을 제일 먼저 찾는 곳
# vi /etc/hosts
=======================================================================================
127.0.0.1 test.net localhost
192.168.1.100 ns.test.net ns
=======================================================================================
위와 같이 바꾸도록 하자
2.서버에서 쓸 dns
# vi /etc/resolv.conf
=======================================================================================
domain test.net
search test.net
nameserver 192.168.1.100
nameserver 168.126.63.1
nameserver 168.126.63.2
=======================================================================================
3.도메인에 대하 ip를 찾을 때 참조할 순서
# vi /etc/host.conf
=======================================================================================
order hosts,bind
==> 초기 설치시 이렇게 되어 있으며, 의미는 /etc/hosts파일부터 찾고, bind에서 찾는다는의미
=======================================================================================
4.Zone 파일 및 케시 DNS서버에 대한 설정
# vi /etc/named.conf
=======================================================================================
options {
directory "/var/named"; // zone 파일을 저장할 디렉토리
// query-source address * port 53; // DNS 서버의 ip와 포트 설정 (기본)
controls { //==> 127.0.0.1 에서 rndc로 접속시 컨트롤 가능하다는 의미
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
// 캐시 네임 서버 설정
zone "." IN {
type hint;
file "named.ca";
};
// localhost 에 대한 설정
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; }; //다이나믹 하게 업데이트를 허용할것인지 설정한다. 대부분 none
};
// 127.0.0.X 에 대한 역 도메인
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
include "/etc/rndc.key";
=======================================================================================
위 파일 내용들은 caching-nameserver에서 기본적으로 생성되는 것들이다. 대부분의 서버에서 별다른 설정하지 않고 사용하면 되고, 중요한 것은 다음 줄부터이다. test.net 이라는 도메인을 셋팅하도록 하겠다.
named.conf파일의 맨 아랫 줄에 아래의 내용을 추가한다.
=======================================================================================
zone "test.net" IN {
type master;
file "test.net.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" { //reverse domain - IP가 역으로 입력되어 있는 것에 주목~!!
type master;
file "test.net.rev";
allow-update { none; };
};
=======================================================================================
zone 파일명은 test.net.zone으로 하였다.
위에서 추가한 도메인에 대한 zone 파일을 만들도록 하자..
# vi /var/named/chroot/var/named/test.net.zone
=======================================================================================
$TTL 86400
@ IN SOA ns.test.net. root.ns.test.net. (
2005101311 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.test.net.
IN MX 0 mail.test.net.
;
localhost IN A 127.0.0.1
@ IN A 192.168.1.100
www IN A 192.168.1.100
mail IN A 192.168.1.100
* IN A 192.168.1.100
=======================================================================================
# ln -s /var/named/chroot/var/named/test.net.zone /var/named/test.net.zone
(반드시 심볼릭 링크를 걸어야 한다~~!!!)
# vi /var/named/chroot/var/named/test.net.rev
=======================================================================================
$TTL 86400
@ IN SOA ns.test.net. root.ns.test.net. (
2005101312 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.test.net.
;
100 IN PTR ns.test.net.
100 IN PTR www.test.net.
100 IN PTR test.net.
=======================================================================================
위에서 100이란 숫자는 IP의 제일 마지막에 해당하는 숫자이다.
# ln -s /var/named/chroot/var/named/test.net.rev /var/named/test.net.rev
자.. 이제 모든 설정은 끝났다.. 사실 이제부턴 네임서버를 변경한 후 하루정도가 지나야 확실한 결과를 얻을 수 있다. 또한 방화벽을 설치했다면 외부에서 네임서버로 접근할 수 없으니 주의한다. 네임서버의 포트는 42로 방화벽에서 이 포트를 풀어야 한다.
설치와 설정이 끝났다면, DNS 서버를 시작하도록 한다.
(1) 시작
# /etc/rc.d/init.d/named start
(2) 재시작
# /etc/rc.d/init.d/named reload
(3) 정지
# /etc/rc.d/init.d/named stop
(4) 서버시작시 자동으로 실행
# ntsysv
named 라는 서버스에 체크하고 OK로 저장하고 나오도록 한다.
(5) 호스트 네임 검사
# grep named /var/log/messages
(6) 설정한 도메인 확인하기
# nslookup
> server 168.126.63.1
> set type=any
> test.net
[출처] [CentOS] DNS 네임서버 설정 (BIND 9)|작성자 진아남편