반응형


http://hckim.tistory.com/196?srchid=BR1http%3A%2F%2Fhckim.tistory.com%2F196

아래의 내용은 실제 서버의 설정을 그대로 보여주고 있습니다.

bind 9.3 부터는 환경설정 파일로 name.caching-nameserver.conf 사용합니다.

미리설치된 bind가 없다면
yum install bind


설치가 완료되면 환경설정 을 아래와 같이 해 준다

1) Bind 환경설정
# vi /etc/named.caching-nameserver.conf

// named.caching-nameserver.conf
...
options {
//    listen-on port 53 { 127.0.0.1; };
// 기본적으로 port 53 으로 자신만이  접근 가능하게 되어있다.
// 외부접근 가능 하게 any로 바꾼다.
      listen-on port 53 { any; };
//        listen-on-v6 port 53 { ::1; };
// ip v6 에 대한 것으로 차후 서비스를 위해 ~..주석처리.
        directory       "/var/named";
// zone file에 대한 기본 디렉토리 설정
        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";
// 메모리 관련 통계파일 위치 이름

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;    
query-source    port 53;  
// 쿼리를 받아 들일 소스포트
        // query-source-v6 port 53;
//     allow-query     { localhost; };
        allow-query     { any; };
// 쿼리 허용할 ip 대역
};
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; };
// 로컬 리졸버 허용 클라이언트 지정

        recursion yes;
        include "/etc/named.rfc1912.zones";
};


2) zone 파일 지정
vi /etc/named.rfc1912.zones

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "." IN {
        type hint;
        file "named.ca";
};
...
zone "abydos.kr" IN {
        type master;
        file "abydos.kr.zone";
        allow-update { none; };
};
//추가

3)zone 파일 생성(미리생성된 localdomain.zone 파일을 복사해서 수정한다)

# cd /var/named
# ls
# cp localdoamin.zone abydos.kr.zone

4) 생성한 zone파일을 수정한다.
# vi abydos.kr.zone

$TTL    86400
@               IN SOA  abydos.kr. root.abydos.kr (
                                        2009080201      ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                IN NS           ns.abydos.kr.
                IN MX 10        abydos.kr.
                IN MX 10        mail.abydos.kr.
                IN MX 10        aspmx.l.google.com.
                IN MX 20        alt1.aspmx.l.google.com.
                IN MX 20        alt2.aspmx.l.google.com.
                IN MX 30        aspmx2.googlemail.com.
                IN MX 30        aspmx3.googlemail.com.
                IN MX 30        aspmx4.googlemail.com.
                IN MX 30        aspmx5.googlemail.com.
                IN A            114.207.245.36
ns              IN A            114.207.245.36
www             IN A            114.207.245.36
docs            IN CNAME        ghs.google.com.
sites           IN CNAME        ghs.google.com.
calendar        IN CNAME        ghs.google.com.
mail            IN CNAME        ghs.google.com.
googlea3e90e45321c80c2          IN CNAME        google.com.
ftp             IN CNAME        @
*               IN CNAME        @


제 경우에는 구글로 이메일서비스와 몇가지 서비스를 쓰고있어서 여러가지 설정이 추가되어 있습니다.

5)설정이 바르게 되었는지 확인

# named-checkconf /etc/named.rfc1912.zones
# named-checkconf /etc/named.caching-nameserver.conf
# named-checkzone abydos.kr /var/named/abydos.kr.com.zone


6)테스트

[root@ns named]# nslookup
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> abydos.kr
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   abydos.kr
Address: 114.207.245.36
> ftp.abydos.kr
Server:         127.0.0.1
Address:        127.0.0.1#53

ftp.abydos.kr   canonical name = abydos.kr.
Name:   abydos.kr
Address: 114.207.245.36


여기까지 해서 CentOS .5.2 Final + BIND 9.3.4의 환경에서 도메인네임서비스 설정이 끝났습니다.


7)zone파일 설명

TTL    86400 - time to live의 약자 다른 네임서버에서 읽어간 정보가 살아있는 시간이다. 초단위
@ - ORIGIN 의 의미 public domain을 의미 즉  @ = linux.com.
IN - IN 다음 의 설정을 이용
SOA - SOA start of authority 해당 도메인의 정보를 가지고 있고 root@abydos.kr 는 관리자임을 나타낸다.
2009080201      ; serial (d. adams) - 해당 정보의 시리얼 보통 날짜정보 + 카운터로 표시된다.
3H              ; refresh - 리프레쉬 타임 주기
15M             ; retry - S로의 장애 발생시 재 접속  시간
1W              ; expiry - 존파일 유효기간,
1D             ; minimum - TTL과 같은 의미 다른 서버에서 zone 데이터를 가져갔을때 그 데이터에 대한 유효기간
IN NS           ns.abydos.kr. - 네임서버 이름 지칭
IN MX 10        mail.abydos.kr. - mailserver 이름 지칭
IN A            192.168.10.200 - ip 할당
mail            IN CNAME        www - mail server의 ip는 www의 설정을 가져온다.
ftp             IN CNAME        @ - ORIGIN 변수의 값을 그대로 사용
*               IN CNAME       


8)DNS서비스를 이용하여 부하를 분산하고 싶은 경우(www.abydos.kr 주소를 여러개 적어서 분산)

www             IN A            192.168.10.200
www             IN A            192.168.10.201
www             IN A            192.168.10.202

반응형
반응형


만일 설치부터 필자를 계속 따라오신 분이라면 현재의 서버엔 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)|작성자 진아남편

 

반응형
반응형

yum 으로 bind 설치

# yum install bind*

네임 서버의 데이터베이스에 대한 기본적인 정보를 포함. 설정 파일 지정
/etc/named.conf

/var/named
네임서버의 zone 파일이 위치한다. 이디렉토리 변경은 named.conf 에서 변경 가능하다.

/var/named/name.local
루프백 IP 에 관한 IP 주소 -> 도메인으로 변경에 대한 정보 포함

/var/named/named.rev
도메인에 대한 역변환 데이터베이스



# vi /etc/named.conf

// test.co.kr
zone "test.co.kr {
  type master;
  file "test.co.kr.zone";
};


반응형

+ Recent posts