Gentoo-WiKi

본문 바로가기
사이트 내 전체검색


Gentoo Linux >> System Administration for Gentoo Linux
[목차]
제6장 Server Administration

    1. DNS 설치하기


  네임 서버를 운영하기 위해서 서버측 데몬 프로그램이 필요합니다. BIND(berekeley Internet Name Daemon)는 데이터베이스의 관리가 쉽고, 유닉스 계열에서 네임 서버 데몬으로 가장 널리 사용되고 있는 검증된 도구중 하나입니다. 배포처인 ISC(Internet Software Consortium)에서BIND의 최신 버전을 확인할 수 있으며, BIND에 대한 정보를 구할 수 있습니다.



1.1. emerge를 이용한 패키지 설치


다음 명령으로 간단히 Bind를 설치할 수 있다.

# emerge -pv bind (바인드가 설치 유무와 필요한 패키지 확인)

# emerge bind



1.2.  nsswitch.conf 설정


# vi /etc/nsswitch.conf

... 생략

hosts:      files dns nisplus nis

  네임서버와 관계 있는 행은 hosts부분입니다. files는 /etc/hosts파일을 가리키며, dns는 네임서버를 의미합니다. 즉 Domain을 검색하고자할 경우 자신이 가지고 있는 hosts파일을 먼저 참조한 후 없을 경우 dns nisplus nis 순으로 검색하라는 말과 같습니다.



1.3. named.conf 설정


  패키지를 설치했다면 수정해야 하는 설정 파일들이 있습니다. 그중 /etc/bind/named.conf는 bind의 네임 데몬프로그램인 named의 환경을 설정해 주는 파일입니다.

  named.conf를 보면 두 개의 zone이 정의되어 있는데 이 zone 설정을 임의로 수정해선 안됩니다. 이 설정은 primary나 secondary에 포함되어있어야 하는 기본 zone이기 때문입니다.

  named.conf 파일내용을보면 type으로 hint, master가 있는데, 이외에도 slave가 있습니다. hint는 루트 도메인을 관리하는 최상의 도메인 서버의 데이터를 가지고 있는 캐시 파일을 지정할 때 사용합니다. file "named.ca" 라고 되어 있는 named.ca가 캐시 파일입니다.

  캐시 파일은 ftp.rs.internic.net/domain/named.root에서 배포하는 것으로 named.root를 named.ca로 이름만 바꿨을 뿐입니다.

  정기적으로 이 캐시 파일을 갱신할 필요가 있습니다. 그러나 그렇게 자주 바뀌지는 않는다. 일년에 한두 번 갱신만 해주어도 충분합니다. master는 primary를 slave는 secondary를 의미합니다.

  다음은 bind를 설치했을 경우 기본으로 생성된 named.conf파일의 내용입니다.


# vi /etc/bind/named.conf

options {

        directory "/var/bind";

 

        // uncomment the following lines to turn on DNS forwarding,

        // and change the forwarding ip address(es) :

        //forward first;

        //forwarders {

        //      123.123.123.123;

        //      123.123.123.123;

        //};

 

        listen-on-v6 { none; };

        listen-on { 127.0.0.1; };

 

        // to allow only specific hosts to use the DNS server:

        //allow-query {

        //      127.0.0.1;

        //};

 

        // if you have problems and are behind a firewall:

        //query-source address * port 53;

        pid-file "/var/run/named/named.pid";

};

 

zone "." IN {

        type hint;

        file "named.ca";

};

 

zone "localhost" IN {

        type master;

        file "pri/localhost.zone";

        allow-update { none; };

        notify no;

};

 

zone "127.in-addr.arpa" IN {

        type master;

        file "pri/127.zone";

        allow-update { none; };

        notify no;

};


  여기서 directory "/var/named"; 라고 된 부분이 있는데, 이곳이 zone 파일의 위치를 지정하는 곳입니다. file항목 다음에 오는 것들은 모두 directory에서 지정한 곳에서 찾게 됩니다.

  zone 다음을 살펴보면 "."은 앞서 설명했던 루트도메인을 의미합니다. 루트도메인은 생략해서 사용한다고 했지만 네임 서버 설정에선 생략할 수 없습니다.


  named.conf 파일을 보면 0.0.127.in-addr.arpa라고 된 부분이 있는데, 이는 로컬 주소 대역(127.0.0.x) 에 대한 reverse zone 설정입니다. reverse zone 설정은 일반적으로 IP를 거꾸로 적으며, 이 뒤에 .in-addr.arpa라고 적습니다.


  DNS에서는 forward와 reverse라는 말이 나오는데, forward는 도메인->IP로, reverse는 IP->도메인으로 변환해 주는 것을 뜻합니다. 다시말해 forward zone이라는 것은 도메인을 IP로 변환해 주기 위한 데이터를 가지고 있는 zone파일이고, reverse zone은 반대로 IP를 도메인으로 변환해 주기 위한 zone파일입니다. 또한 일반적으로 reverse zone에 대한 설정은 없는 경우가 많습니다.


Master 네임서버시 /etc/bind/named.conf에 추가할 부분

  tgsoft.co.kr 이라는 도메인이 202.31.147.x 대의 IP를 사용한다고 가정해본다면 tgsoft.co.kr 의 primary네임 서버의 named.conf에 forward zone과 reverse zone은 다음과 같이 추가되어야 할 것입니다.


# vi /etc/bind/named.conf

... 생략

zone "147.31.202.in-addr.arpa" IN {

        type master;

        file "pri/tgsoft.rev";

        allow-update { none; };

        notify yes;

};

 

zone "tgsoft.co.kr " IN {

        type master;

        file "pri/tgsoft.zone";

        allow-update { none; };

        notify yes;

};


  type 은 1차 네임서버(master), 2차 네임서버(slave), 캐시 전용 서버(hint) 를 나타내는데 사용합니다. file 은 tgsoft.co.kr 의 존 파일의 위치를 명시하는 역할을 합니다. allow-update는 동적 업데이트 기능의 ON/OFF를 결정하는 역할을 하는데 중괄호 안에는 네임서버 간 인증을 위한 공유키가 들어갑니다. 또한 2차 네임서버의 IP로도 설정 가능합니다.


2차(Slave) 네임서버시 /etc/bind/named.conf에 추가할 부분

  2차 네임 서버의 named.conf을 보면 1차 네임서버와 별 다른 것이 없으나, masters { primary의 IP; };라는 항목이 추가가 되는데 이는 1차 네임서버에서 zone 파일을 가져와 file에 지정된 이름으로 저장하는 것을 의미합니다. 다음은 secondary 로서 tgsoft.co.kr 에 대한 named.conf에 추가되어야 할 내용입니다.


# vi /etc/bind/named.conf

... 생략

zone "147.31.202.in-addr.arpa" IN {

        type slave;

        file "sec/tgsoft.rev";

        masters { 202.31.147.174; };

        allow-update { none; };

};

 

zone "tgsoft.co.kr " IN {

        type slave;

        file "sec/tgsoft.zone";

        masters { 202.31.147.174; };

        allow-update { none; };

};



1.4. zone 파일 설정


  zone파일은 도메인의 그룹들의 정보를 담고있는 파일입니다. 우선 /var/bind안에보면 named.ca라는 파일이 있는데 이것은 INTERNIC에서 제공하는 파일인데 ftp://ftp.rs.internic.net/domain/named.root 에서 구할 수 있습니다. /var/bind/pri/127.rev 는 로컬호스트에 대한 reverse zone파일인데 필요하다면 수정해도 되지만 이것은 127.0.0.x을 lacalhost로 매핑해 주는 역할만 하기때문에 특별히 수정할 필요는 없습니다.

  여기서 만들어야 줘야 할 파일이 두 개인데 위에서 설정한 tgsoft.rev와 tgsoft.zone 파일입니다.  다음은 tgsoft.zone 파일의 설정내용이다.

# vi /var/bind/pri/tgsoft.zone

        $TTL 1W

        @       IN      SOA     ns.tgsoft.co.kr. root.tgsoft.co.kr.  (

                                    2002081601 ; Serial

                                    28800      ; Refresh

                                    14400      ; Retry

                                    604800     ; Expire - 1 week

                                    86400 )    ; Minimum

 

                        IN      NS      ns.tgsoft.co.kr.

                        IN      NS      ns2.tgsoft.co.kr.

                        IN      MX  10  mail

        @                      IN       A      202.31.147.174

        ns                      IN       A      202.31.147.174

        ns2                     IN       A      202.31.147.170

 

        www                           IN       CNAME  ns

        ftp                     IN       CNAME  ns   

        mail                    IN      CNAME  ns


  zone 파일의 1열을 보면 '@'이 있습니다. 이는 tgsoft.co.kr.을 뜻합니다. IN은 클래스명이고, SOA는 레코드로 해당 도메인이 tgsoft.co.kr에 대해 네임 서버가 인증된 자료를 갖고 있음을 나타냅니다.  root.lab.co.kr은 root@tgsoft.co.kr을 뜻하는 것으로, 네임 서버 관리자의 이메일 주소입니다. 이메일 주소가 root.tgsoft.co.kr과 같이 @이 아닌 (.)으로 구분한다는 것을 주의하기 바랍니다. 또한 각 도메인의 끝엔 (.) 루트도메인이 꼭 포함 된다는 것도 잊지 말기 바랍니다.


  다음으로 Serial, Refresh, Retry, Expire, Minimum을 보면 Serial을 제외한 네 개의 필드는 초 단위의 시간을 뜻한다. 각각에 대한 의미는 다음과 같습니다.

Serial

  Secondary가 zone 파일의 수정 여부를 알 수 있도록 하기 위한 것입니다. serial의 표기는 YYYYMMDDNN형식으로 하며, secondary는 이를 통해 primary보다 작으면 zone을 재전송 받습니다.

Refresh

  Primary측의 zone데이터베이스 수정 여부를 secondary가 검사하는 주기입니다.

Retry

  Secondary측에서 Primary의 연결이 안될 때 재시도하는 시간 주기입니다.

Expire

  오래된 백업 카피 자료의 유효기간으로, secondary는 이 기간이 만료되면 더 이상 유효하지 않다고 봅니다.

Minimum

  다른 네임 서버가 본 zone에 기술된 자료를 가지고 갔을 경우 그 자료에 대한 유효기간입니다.


  레코드엔 NS(Name Server), A(Address),CNAME(Canonical Name), MX(Mail eXchanger), PTR(Pointer) 그리고 그 외 HINFO, TXT, RP 등과 같은 것들이 있습니다. NS는 네임 서버를 지정할 때 사용합니다. 또는 다른 네임 서버로 서브 도메인을 위임할 때도 사용하는데, 이에 대한 것은 생략하겠습니다.

  A와 CNAME은 도메인에 IP를 부여할 때 사용한다. CNAME의 경우 위에서 보는 바와 같이 www와 ftp가 같은 IP를 공유할 때 이용한다. 그러나 A만을 이용하여 같은 IP를 공유해도 된다.

          www       IN A 211.230.176.3

             ftp       IN A 211.230.176.3


  CNAME 레코드를 사용할 때 주의할 점이 있는데, 이는 MX, NS등의 레코드에 CNAME으로 설정된 도메인을 넣어서는 안됩니다.

             ftp       IN CNAME www ;(x)

                      IN MX mail

           power     IN MX 10 mail ;(x)

                      IN CNAME ns


  MX는 메일 라우팅을 지정할 때 사용하며, MX 다음에 오는 수는 작을수록 우선 순위가 높습니다. PTR은 reverse zone에서 사용하는 것으로, IP 주소에 대해 도메인명을 매핑해 줄 때 사용합니다. 이는 중복을 허용하지 않습니다. 그 외 HINFO, TXT는 정보를 표시할 때 사용하며, RP는 담당자의 정보를 갖게 됩니다. 그러나 이러한 HINFO, TXT, RP와 같은 레코드는 보안을 이유로 사용하지 않는 경우도 있습니다. reverse zone 파일인 named.rev은 다음과 같습니다.


# vi /var/named/named.rev

@ IN SOA ns.tgsoft.co.kr. root.ns.tgsoft.co.kr.      (

                2000080100         ;Serial

                10800                 ;Refresh

                1800                   ;Retry

                3600000              ;Expire

                43200                 ;Minimum

)

                IN NS ns.tgsoft.co.kr.

                IN NS ns2.tgsoft.co.kr.

 

 

174             IN PTR ns.tgsoft.co.kr.

170              IN PTR ns2.tgsoft.co.kr.

174              IN PTR www.tgsoft.co.kr.



1.5. bind-tools 설치


  dig, nslookup, host등의 명을 사용하려면 아래의 패키지를 설치하야 합니다.


# emerge -av bind-tools


[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.