반응형

제목 : SULINUX를 네임서버로 사용하기 2편





ㅇ 제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 서버관리팀


ㅇ SULINUX  홈페이지 : www.sulinux.net

ㅇ 리눅스포털 홈페이지 : www.superuser.co.kr

SULINUX를 Name Server로 사용하기




4-6. MX(Mail eXchanger) 레코드


MX 레코드는 해당 호스트의 메일 라우팅 경로를 조정한다. 다음과 같이 설정되어 있을 경우, account@nemo.co.kr 으로 보내어 지는 편지는 실제 mail.nemo.co.kr. 으로 전송된다. 만약 mail.nemo.co.kr. 에 연결할 수 없다면, 다음 우선순위인 power.nemo.co.kr 으로 편지를 배송하게 된다. MX Priority_Number 와 같이 사용하며, Priority_Number의 숫자는 적을수록 우선순위가 높다. MX 알고리즘에서 자세히 다룬다.



nemo.co.kr.        IN  MX  10  mail.nemo.co.kr.

                   IN  MX  20  power.nemo.co.kr.

mail.nemo.co.kr.    IN  A       192.168.1.2

power.nemo.co.kr.  IN  A       192.168.1.103


다음과 같이 MX 레코드에 CNAME으로 설정된 도메인을 넣으면 안된다. 이럴 경우 몇몇 MTA(Mail Transfer Agent: sendmail)는 메일 라우팅 경로를 찾지 못하여, 메일을 주고받을 수 없다. 이는 송신인이 사용하는 MTA의 종류와 버전에 의존적이므로, 경험 많은 도메인 메니저가 아니면 문제의 원인을 진단하기도 어렵다. 반드시 주의하자.



nemo.co.kr.        IN  MX  10  mail.nemo.co.kr.  ; (X) 잘못된 사용

mail.nemo.co.kr.    IN  CNAME   power.nemo.co.kr.

power.nemo.co.kr.  IN  A       192.168.1.103


4-7. PTR(Pointer) 레코드


PTR 레코드는 IP 주소에 대해 도메인명을 매핑하여 주며, Reverse Zone 파일에서 사용된다. 다음은 IP 192.168.1.2에 대한 설정 예이다.



    1.1.168.192.in-addr.arpa.  IN  PTR  ns.nemo.co.kr.


Forward Zone에서는 다수의 도메인이 A(혹은 CNAME) 레코드를 통해 같은 IP를 갖을 수 있지만, PTR 레코드는 중복이 허용되지 않기 때문에, 해당 IP에 대한 대표 도메인명 하나만을 설정하여야 한다.


4-8. 기타 레코드들


Zone 데이터베이스에 필요한 레코드들은 위에 나열한 것만으로도 충분하지만, 더 많은 레코드들이 존재한다. 다음에 반드시 필요하지는 않으나, 종종 사용되는 레코드를 소개한다. 더 자세한 정보가 필요하다면 RFC1035, RFC1183, RFC2163을 참고하자.



    power           IN  A      192.168.1.103

                    IN  HINFO  "Sun Sparc Ultra 5"  "Solaris 2.6"

                    IN  TXT    "Nobreak's Primary Server"

                    IN  TXT    "WWW, FTP is now available"

                    IN  RP     hostmaster.nemo.co.kr.  hostinfo.nemo.co.kr.

    hostinfo        IN  TXT    "Seung-young Kim, +84864-4440/1"


HINFO(Host INFOrmation) 레코드는 두 개의 문자열(CPU 정보, OS 정보)을 갖으며 시스템 정보를 나타낸다. 문자열에 공백이 포함되어 있을 경우에는 반드시 큰따옴표를 사용하여야 한다.


TXT(TeXT) 레코드는 텍스트 정보를 갖으며 중첩되어 사용될 수 있다. RP(Responsible Person)는 담당자의 정보를 표시하는데, Email 주소(@를 도트로 치환한)와, 담당자 정보(TXT 레코드를 갖는 도메인을 포인팅함)를 갖는다. HINFO를 포함한 몇몇 레코드는 보안을 이유로 사용치 말아야 한다는 의견도 있다.



4-9. Zone 데이터베이스 예제



Figure 1의 네트워크 구성에 대한 Forward Zone 파일 zone-nemo.co.kr은 다음과 같이 작성될 수 있다.


    * nemo.co.kr 도메인에 대한 Forward Zone 파일 /var/named/zone-nemo.co.kr

    @               IN      SOA     ns.nemo.co.kr. hostmaster.nemo.co.kr. (

                                    1998122801  ;Serial

                                    21600       ;Refresh ( 6 hours)

                                    1800        ;Retry   (30 minutes)

                                    1209600     ;Expire  (14 days)

                                    86400)      ;Minimum ( 1 day)

                    IN      NS      ns.nemo.co.kr.

                    IN      NS      ns2.nemo.co.kr.

                    IN      MX 10   mail           ; 메일 라우팅 호스트

   

    mail            IN      A       192.168.1.2

   

    ; Hosts Here - This is comments

    router          IN      A       192.168.1.1

    ns              IN      A       192.168.1.2

    ns2             IN      A       192.168.1.3

    power           IN      A       192.168.1.103

                    IN      HINFO   "Sun Sparc Ultra 5"         "Solaris 2.6"

                    IN      TXT     "Nobreak Technologies, Inc."

    www             IN      CNAME   power


인버스 도메인을 위한 Reverse Zone 파일 zone-79.105.210.in-addr.arpa은 다음과 같이 작성된다.


    * Reverse Zone 파일 /var/named/zone-79.105.210.in-addr.arpa

    @               IN      SOA     ns.nemo.co.kr. hostmaster.nemo.co.kr. (

                                    1998122801  ;Serial

                                    21600       ;Refresh ( 6 hours)

                                    1800        ;Retry   (30 minutes)

                                    1209600     ;Expire  (14 days)

                                    86400)      ;Minimum ( 1 day)

                    IN      NS      ns.nemo.co.kr.

                    IN      NS      ns2.nemo.co.kr.

    ; IP-Domain mapping here

    1               IN      PTR     router.nemo.co.kr.

    2               IN      PTR     ns.nemo.co.kr.

    3               IN      PTR     ns2.nemo.co.kr.

    103             IN      PTR     power.nemo.co.kr.


loopback 주소를 위한 Reverse Zone 파일 또한 다음과 같이 작성된다. IP 127.0.0.1을 localhost. 로 매핑하는 것이 전부이므로, 본 파일은 어느 네트워크에서나 비슷하게 작성될 것이다.


    * loopback을 위한 Reverse Zone 파일 /var/named/zone-0.0.127.in-addr.arpa

   

    @               IN      SOA     ns.nemo.co.kr. hostmaster.nemo.co.kr. (

                                    1998122801  ;Serial

                                    21600       ;Refresh ( 6 hours)

                                    1800        ;Retry   (30 minutes)

                                    1209600     ;Expire  (14 days)

                                    86400)      ;Minimum ( 1 day)

                    IN      NS      ns.nemo.co.kr.

                    IN      NS      ns2.nemo.co.kr.

    ; IP-Domain mapping here

    1               IN      PTR     localhost.


Zone 파일에서의 도메인 표기는 반드시 FQDN 표기법을 따라야 한다. BIND는 도트로 끝나지 않는 문자열은 호스트명으로 처리하므로, ns.nemo.co.kr 을 ns.nemo.co.kr.nemo.co.kr. 으로 해석한다. 따라서 ns.nemo.co.kr. 과 같이 도트를 붙인 FQDN으로 표기하거나, ns 와 같이 호스트명만 사용하여야 한다. 도트를 빼먹는 실수는 매우 빈번히 발생하므로, 주의하자.


4-10. 호스팅 업체를 위한 Zone 데이터베이스 예제


호스팅업체의 경우 다음과 같이 다수의 도메인을 하나의 Zone 데이터베이스로 관리할 수가 있다. 만약, 호스팅 도메인별로 별도의 Zone을 유지한다면, 호스팅 서버의 IP 변화와 같이 관련된 모든 Zone이 수정되어야 하는 상황이 오지 않기를 기도하거나, 반나절을 편집기와 씨름할수 있는 끈기를 배워야할 것이다. 여기서 소개하는 팁은 사용자가 많은 호스팅 업체일수록 유용하게 활용될 수 있으며, 도메인 추가/수정/삭제에 드는 시간과 노력을 절약할 수 있을 것이다.


    * named.boot (BIND)

    primary         netbsd.org                      zone-default

    primary         openbsd.org                     zone-default

    .

    primary         freebsd.org                     zone-freebsd.org ; 별도의 추가 도메인이 필요한 경우

    .


    * named.conf (BIND-8)

    zone "netbsd.org"       IN { type master; file "zone-default"; };

    zone "openbsd.org"      IN { type master; file "zone-default"; };

    .

    zone "freebsd.org"      IN { type master; file "zone-freebsd.org"; };

    .


    * zone-default

    @               IN      SOA     ns.nemo.co.kr. hostmaster.nemo.co.kr. (

                                    1999030601  ;serial

                                    21600       ;Refresh ( 6 hours)

                                    1800        ;Retry   (30 minutes)

                                    1209600     ;Expire  (14 days)

                                    86400)      ;Minimum ( 1 day)

                    IN      NS      ns.nemo.co.kr.

                    IN      NS      ns2.nemo.co.kr.

                    IN      A       192.168.1.39

                    IN      MX 10   @

                    IN      MX 20   mqueue.nemo.co.kr.

   

    www             IN      CNAME   @

    telnet          IN      CNAME   @

    ftp             IN      CNAME   @

    mail            IN      CNAME   @

    pop             IN      CNAME   @

    news            IN      CNAME   news.nemo.co.kr.


    * zone-freebsd.org

    $INCLUDE zone-default

   

    ftp.kr          IN      A       147.46.102.39

    www.kr          IN      CNAME   @



4-11. Name Server 구동


네임서버를 구동하기 위한 설정이 마무리되었다. 관련 파일들이 준비되었음을 확인한 후, 네임서버를 구동하자. 일련의 과정은 다음과 같다.


    * NS.nemo.co.kr

    # ls /etc/named.conf     # BIND 부트 파일

    /etc/named.conf

    # ls /var/named/         # Zone 데이터베이스 파일 확인

    named.root

    zone-0.0.127.in-addr.arpa

    zone-79.105.210.in-addr.arpa

    zone-nemo.co.kr

    # /usr/sbin/named        # 네임 데몬 구동 (Solaris: /usr/sbin/in.named)

    # ps ax | grep named     # 프로세스 동작 확인 (Solaris: ps -e | grep in.named)

      254  ?  S    0:00 named


    * NS2.nemo.co.kr (BIND)

    # ls /etc/named.boot      # BIND 부트 파일

    /etc/named.boot

    # ls /var/named/          # Zone 데이터베이스 파일 확인

    named.root

    zone-0.0.127.in-addr.arpa

    # ndc start               # ndc(Name Daemon Control)가 설치되어 있을 경우

    Name Server Started

    # ndc status

      254  ?  S    0:00 named

    # ls /var/named/          # Primary의 Zone 전송여부 확인

    named.root

    sec-79.105.210.in-addr.arpa

    sec-nemo.co.kr

    zone-0.0.127.in-addr.arpa



4-12. Name Server 동작 확인



여기에선 [그림 3]의 가상 네트워크 구성도에 따른 설정을 다루었지만, 기본적으로 필요한 부분은 모두 적용되어 있으므로 실제 네트워크에 적용할 때에도 같은 느낌으로 설정하면 된다. 다음과 같이 타 네임서버를 통해 질의를 던져봄으로써, Namespace 가지상에 잘 연결되어 있음을 확인하자.



    $ nslookup power.nemo.co.kr ns.nemo.co.kr   # Primary 동작 확인

    Server:  ns.nemo.co.kr

    Address:  0.0.0.0

   

    Name:    power.nemo.co.kr

    Address:  192.168.1.103

   

    $ nslookup power.nemo.co.kr ns2.nemo.co.kr  # Secondary 동작 확인

    Server:  ns2.nemo.co.kr

    Address:  192.168.1.3

   

    Name:    power.nemo.co.kr

    Address:  192.168.1.103

   

    $ nslookup power.nemo.co.kr ns.kornet.ne.kr  # Namespace 링크 확인

    Server:  ns.kornet.nm.kr

    Address:  168.126.63.1

   

    Name:    power.nemo.co.kr

    Address:  192.168.1.103


위의 3가지 질의가 성공적으로 수행되었다면, 일단 네임서버가 정상적으로 운용된다고 생각해도 좋다. 확실히 하기 위해선, 로그파일 분석을 통해 Zone 데이터베이스 구성상의 오류와 BIND의 동작 상태를 살펴보아야 한다.

반응형

+ Recent posts