본문 바로가기
Server&OS/Linux

[CentOS] DNS 네임서버 설정 (BIND 9)

by 백룡화검 2010. 4. 24.

만일 설치부터 필자를 계속 따라오신 분이라면 현재의 서버엔 BIND 9가 설치되어 있을 것이다.

확인해 보도록 하자.

 

# rpm -qa | grep bind
bind-libs-9.3.3-10.el5
bind-9.3.3-10.el5
ypbind-1.19-8.el5
bind-utils-9.3.3-10.el5
bind-chroot-9.3.3-10.el5

 

=======================================================================================

- CentOS 5.1 설치시 패키지선택에서 DNS 이름서버를 선택하면 위의 내용이 모두 설치됨.
=======================================================================================

 

네임서버도 설치되어 있나 확인해 보자.

# rpm -qa | grep name
없다...젠장.... 설치해야 한다 ㅠㅠ

 

# yum install caching-nameserver

( 위에 걸로 설치가 안되면 caching-nameserver-9.3.3-10.el5 다 입력해준다. )

이젠 서버에선 DNS를 설정할 준비가 끝났다.

 

이해를 돕기위해 사용되는 예제에서 test.net 이란 가상의 도메인과 192.168.1.100 이란 공인IP를 사용하것으로 하겠다.

자신의 도메인과 IP 주소로 바꿔 사용하기 바란다.

 

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서버에 대한 설정

# cd /etc

# ls named*
named.caching-nameserver.conf  named.rfc1912.zones

 

위 파일 내용들은 caching-nameserver에서 기본적으로 생성되는 것들이다.

 

# vi /etc/named.caching-nameserver.conf
=======================================================================================
options {
        listen-on port 53 { 127.0.0.1; };

        listen-on port 53 { 111.222.333.444; }; // local machine IP
        listen-on-v6 port 53 { ::1; };
        directory       "/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;
        allow-query     { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
        //match-clients            { localhost; };
        //match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};

=======================================================================================
( 더 자세한 것은 책이나 인터넷을 더 검색해 보기 바란다.... ㅡ.ㅡ )

( 동작하면 되지 않는가 ㅜㅜ )

 

# vi named.rfc1912.zones

=======================================================================================
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; };
};
=======================================================================================

 

named.rfc1912.zones 파일의 맨 아랫 줄에 아래의 내용을 추가한다.

=======================================================================================
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.  (
                2007112101 ; Serial
                28800      ; Refresh
                14400      ; Retry
                3600000    ; Expire
                86400 )    ; Minimum
                IN      NS      ns.test.net.
                IN      MX  10   mail.test.net.
                    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.  (
                2007122101 ; 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) 서버시작시 자동으로 실행

/etc/rc.d/rc3.d 와 /etc/rc.d/rc5.d 에 K로 시작하는 것이 있으면 다음과 같이 해준다.

# mv /etc/rc.d/rc3.d/K번호named /etc/rc.d/rc3.d/S번호named

# mv /etc/rc.d/rc5.d/K번호named /etc/rc.d/rc5.d/S번호named

 

(5) 호스트 네임 검사
# grep named /var/log/messages

 

(6) 설정한 도메인 확인하기

# nslookup

> server 168.126.63.1

> set type=any

> test.net

 

[ 다음은 iptables 사용시 추가할 부분이다 ]

------------------------------------------------------------------------------------------

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --sport 1024:65535 -j ACCEPT     #상황봐서
# -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --sport 1024:65535 -j ACCEPT   #상황봐서

------------------------------------------------------------------------------------------

'Server&OS > Linux' 카테고리의 다른 글

centos 5 설정  (0) 2010.04.24
중국 IP막기  (0) 2010.04.24
[본문스크랩] VI 명령어 모음  (0) 2010.04.24
[본문스크랩] tar, gzip 사용  (0) 2010.04.24
[본문스크랩] qmail 설치하기  (0) 2010.04.24