본문 바로가기

공부/리눅스

dns 설정 실습

반응형
*. 설정하기전에 잘못될 경우를 대비하여 원본 설정파일은
백업 해 둔다.

=> cp /etc/named.conf /etc/named.conf_org

[root@vhost26 named]# cat /etc/named.conf
//
// named.conf for Red Hat caching-nameserver
//

options {
        directory "/var/named";
};

zone "." IN {
        type hint;
        file "named.ca";
};
/*
zone "localdomain" IN {
        type master;
        file "localdomain.zone";
        allow-update { none; };
};
zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};
*/

zone "abc.co.kr" IN {
        type master;
        file "abc.zone";
};

zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.10.rev";
};

==> 복잡한 설정을 쉽게 이해하기 위해 꼭 필요한 부분만 남겨두고 나머지는 삭제하거나
주석처리하였다.  그런다음 임의의 하나의 도메인을 등록하였다.

그리고 세부설정 파일은 /etc/named.conf 파일의 options 는 /var/named 로 되어 있으나
chroot 기능 사용으로 인하여 아래의 디렉토리에 존재해야 한다.

[root@vhost26 named]# pwd
/var/named/chroot/var/named  => 여기에 세부설정 파일을 만들어야 한다.
[
root@star named]# cp named.local abc.zone => 포맷이 일정하므로 복사해서 수정하면 쉽게
만들수 있다.
[root@vhost26 named]# cat abc.zone => 이 출력결과가 가리키는 것처럼 설정
$TTL    86400
@      IN      SOA    ns.abc.co.kr. root.ns.abc.co.kr.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      ns.abc.co.kr.

www            IN              A              192.168.10.1  =>테스트를 위해 임의의 ip 지정
ns              IN              A              192.168.10.100    (단, 이대역의 주소는 named.conf 에
ftp.abc.co.kr. IN      A      192.168.10.2                      reverse 영역으로 설정되어 있어야 한다)
[root@vhost26 named]#
[root@star named]# cp abc.zone 192.168.10.rev  => reverse 파일도 설정형태가 forward
파일과 유사하므로 복사해서 작업한다.

[root@vhost26 named]# cat 192.168.10.rev
$TTL    86400
@      IN      SOA    ns.abc.co.kr. root.ns.abc.co.kr.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      ns.abc.co.kr.

1      IN      PTR    www.abc.co.kr. <=  왼쪽 숫자 1은 호스트 ip 끝자리이며 192.168.10.1 을 의미
2      IN      PTR    ftp.abc.co.kr.
100    IN      PTR    ns.abc.co.kr.
[root@vhost26 named]#

이렇게 설정한 다음 dns 서버 테스트를 위해 몇가지 작업이 더 필요하다.
먼저 dns 서버 ip 가 활성화 되어 있어야 한다.

물리적인 랜카드에 직접 ip를 할당해도 되지만 편의상 가상 랜카드로 테스트한다.

ifconfig eth0:1 192.168.10.100 up

[root@star named]# ping -c 3 192.168.10.100
PING 192.168.10.100 (192.168.10.100) 56(84) bytes of data.
64 bytes from 192.168.10.100: icmp_seq=0 ttl=64 time=0.120 ms
64 bytes from 192.168.10.100: icmp_seq=1 ttl=64 time=0.094 ms
64 bytes from 192.168.10.100: icmp_seq=2 ttl=64 time=0.451 ms

--- 192.168.10.100 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.094/0.221/0.451/0.163 ms, pipe 2
[root@star named]#

==> dns 서버 ip 는 문제가 없음을 알수 있다.

그 다음 로컬(this host)호스트에서 dns 서버를 직접 테스트하기 위해서는
/etc/resolv.conf 를 열어서 기존에 설정된 dns 주소는 주석으로 처리해두고
직접 구성한 dns 서버 주소를 적어 넣는다. 아래처럼.

[root@star named]# cat /etc/resolv.conf
;nameserver 168.126.63.1  => 여기서 ';' 이 주석을 의미하는 기호이다.
nameserver 192.168.20.101

여기까지 되었으면 dns 서버가 현재 구동중인지 확인해보고 구동중이라면
restart 하고 그렇지 않으면 start 한다.

dns 서버는 standalone 서버이므로 올라가 있지 않다면 직접 올려줘야 한다.
[root@star named]# pgrep -fl named
[root@star named]#  => 현재 구동되어 있지 않은 상태이므로
[root@star named]# /etc/init.d/named start  => start 인수를 줘서 구동한다.
named (을)를 시작합니다:                                  [  확인  ]

[root@star named]# pgrep -fl named
29362 /usr/sbin/named -u named -t /var/named/chroot => 올라왔다.
[root@star named]#

여기서 u 옵션은 named 데몬의 소유주 권한을 named 계정으로 하겠다는 의미.
-t 옵션은 보안을 위해서 chroot 기능을 사용하겠다는 의미이며 -t 에 해당되는
디렉토리는 설정파일 경로이다.

만약 -t 옵션을 생략한다면 위에 설정한 /etc/named.conf 파일에 포함된 세부설정
파일위치는 options 키워드가 가리키는 디렉토리 즉, /var/named 바로 아래에 존재
해야 한다.
-t 옵션은 /etc/init.d/named 라는 스크립트에 기본적으로 포함되어 있다.
 OPTIONS="${OPTIONS} -t ${ROOTDIR}" <= 이 부분이이다.

그리고 테스트

[root@star named]# nslookup www.abc.co.kr  => 이건 비대화식 질의
Server:        192.168.10.100
Address:        192.168.10.100#53

Name:  www.abc.co.kr
Address: 192.168.10.1

[root@star named]# nslookup => 이건 대화식 질의
> ftp.abc.co.kr  => 정방향(forward) 질의
Server:        192.168.10.100
Address:        192.168.10.100#53

Name:  ftp.abc.co.kr
Address: 192.168.10.2
> 192.168.10.2  => 역방향(reverse) 질의
Server:        192.168.10.100
Address:        192.168.10.100#53

3.10.168.192.in-addr.arpa      name = ftp.abc.co.kr.
>exit
[root@star named]#

- 이 테스트 결과는 dns 서버가 문제가 없음을 보여준다.

만약 질의 결과가 제대로 검색되지 못하면 dns 서버 설정에 문제가 있는것이다.
그런경우 dns 설정을 확인해서 제대로 수정한다음 dns 서버를 다시 구동시켜서
테스트 해야 한다.

반응형