강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

4. 도메인 위임(Domain Parenting & Delegation)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.gif title04.gif

4.도메인 위임 (Domain Parenting & Delegation)

4.1. 부모 Zone에서의 서브 도메인 생성

4.2. 서브 도메인 위임
4.3. 옥텟 기반 in-addr.arpa 위임
4.4. Classless in-addr.arpa 위임

여러 계열사를 갖는 대기업의 경우, 계열사를 www.core.nobreak.com 과 같이 서브 도메인으로 분류하여 운영할 필요가 있다. 또한 해당 계열사의 네트워크가 방대할 경우, 효율적인 관리를 위해 해당 도메인을 해당 계열사로 위임할 수도 있다.

Figure 4-1. Domain Delegation에 의한 Namespace 계층도

Domain Delegation에 의한 Namespace 계층도

Figure 4-1를 보자.FreeBSD.ORG 도메인은 각 국가별로 서브 도메인을 위임하여 운영하고 있고, KR.FreeBSD.ORG 도메인은 각 프로젝트 팀을 CORE 도메인아래 위치시킴으로 써, doc-kr.core.kr.FreeBSD.org 와 같은 계층구조를 유지한다. 이 모든 가지를 하나의 네임서버에서 관리 할 수도 있지만 네트워크의 규모가 불어남에 따라 행해지는 도메인 위임 관리는 전체 네트워크를 부드럽게 한다.

icon04.gif 4.1. 부모 Zone에서의 서브 도메인 생성

서브 도메인이 반드시 위임되어야 하는 것은 아니다. 다음과 같이 부모 Zone 데이터베이스에 함께 정의될 수도 있다. 여기서는 회사내 망관리 그룹을 nms.nobreak.com 으로 분류하고, 그 아래 DNS 도메인을 생성한 경우이다.

    * zone-nobreak.com (NS.NOBREAK.COM)
    nms                     IN      MX 10   mail.nms
                            IN      MX 20   mail2.nms
    dns.nms                 IN      A       150.183.110.53
                            IN      MX 10   mail.nms
                            IN      MX 20   mail2.nms
    mail.nms                IN      A       150.183.110.10
    mail2.nms               IN      A       150.183.110.11

nobreak.com 의 SOA 레코드가 그대로 적용되기 때문에, 생성된 서브 도메인 nms.nobreak.com 에 대한 SOA 레코드는 필요가 없다.



icon04.gif 4.2. 서브 도메인 위임

nms.nobreak.com 의 규모가 커져 관리를 분산시키기 위해 타 네임 서버로 해당 도메인을 위임하고자 할 때에는 NS 레코드를 사용해 해당 도메인을 레퍼런싱 해주어야 한다. 다음은 nobreak.com 도메인에서 nms 를 ns.nms.nobreak.com 으로 위임한 예이다.

    * zone-nobreak.com (NS.NOBREAK.COM)
    nms                     IN      NS      ns.nms        ; Delegation
                            IN      NS      ns2.nms
    ns.nms                  IN      A       150.183.110.2 ; Glue Record
    ns2.nms                 IN      A       150.183.110.3

IP 주소는 A 레코드에서만 설정 할 수 있으므로, 반드시 글루 레코드를 사용하여 NS에 연결하여야 한다. (참고: 글루 레코드)

네임서버 ns.nms.nobreak.com 은 부트파일에 다음과 같이 위임받은 도메인에 대한 primary 설정이 필요하다.

    * named.boot (NS.NMS.NOBREAK.COM)
    primary         nms.nobreak.com         zone-nms.nobreak.com

그리고, Zone 데이터베이스 zone-nms.nobreak.com을 다음과 같이 작성한다.

    * zone-nms.nobreak.com (NS.NMS.NOBREAK.COM)
    @               IN      SOA     ns.nms.nobreak.com. hostmaster.nms.nobreak.com. (
                            1999012901  ;Serial
                            21600       ;Refresh ( 6 hours)
                            1800        ;Retry   (30 minutes)
                            1209600     ;Expire  (14 days)
                            86400)      ;Minimum ( 1 day)
                    IN      NS      ns.nms.nobreak.com.
                    IN      NS      ns2.nms.nobreak.com.
                    IN      MX 10   mail
                    IN      MX 20   mail2
    
    ns              IN      A       150.183.110.2
    ns2             IN      A       150.183.110.3
    mail            IN      A       150.183.110.10
    mail2           IN      A       150.183.110.11
    
    dns             IN      A       150.183.110.53
                    IN      MX 10   mail
                    IN      MX 20   mail2

네임서버 ns2.nms.nobreak.com 를 Secondary로 설정하기 위해 부트파일에 다음을 추가한다.

    * named.boot (NS2.NMS.NOBREAK.COM)
    secondary       nms.nobreak.com  150.183.110.2  sec-nms.nobreak.com

이제 ns, ns.nms, ns2.nms의 BIND를 모두 행업한후, 외부 네임서버를 통해 동작을 확인한다.

    $ nslookup  -type=NS  nms.nobreak.com  ns.kornet.ne.kr
    nms.nobreak.com nameserver = ns.nms.nobreak.com
    nms.nobreak.com nameserver = ns2.nms.nobreak.com
    
    $ nslookup  dns.nms.nobreak.com  ns.kornet.ne.kr
    Name:    dns.nms.nobreak.com
    Address:  150.183.110.53

icon04.gif 4.3. 옥텟 기반 in-addr.arpa 위임

nobreak.com 이 B 클래스 150.183을 다음과 같이 할당받았고, nms.nobreak.com 은 그중 서브넷 150.183.110을 사용한다고 가정하자.

    $ nslookup  -type=NS  183.150.in-addr.arpa
    183.150.in-addr.arpa    nameserver = ns.nobreak.com
    183.150.in-addr.arpa    nameserver = ns2.nobreak.com

옥텟 단위의 Inverse 도메인 위임은 서브 도메인 위임과 같은 느낌으로 수월하게 이루어진다. 다음은 183.150.in-addr.arpa 에서 110.183.150.in-addr.arpa 을 위임하기 위한 Zone 설정이다.

    * zone-183.150.in-addr.arpa (NS.NOBREAK.COM)
    110             IN      NS      ns.nms.nobreak.com.
                    IN      NS      ns2.nms.nobreak.com.

그리고, ns.nms.nobreak.com 과 ns2.nms.nobreak.com 에 primary, secondary 설정을 넣고 Inverse Zone 파일을 생성함으로써, 인버스 도메인 위임이 마무리 된다.

    * named.boot (NS.NMS.NOBREAK.COM)
    primary         110.183.150.in-addr.arpa        zone-110.183.150.in-addr.arpa
    * named.boot (NS2.NMS.NOBREAK.COM)
    secondary     110.183.150.in-addr.arpa 150.183.110.2 sec-110.183.150.in-addr.arpa
    * zone-110.183.150.in-addr.arpa (NS.NMS.NOBREAK.COM)
    @               IN      SOA     ns.nms.nobreak.com. hostmaster.nms.nobreak.com. (
                            1999012901  ;Serial
                            21600       ;Refresh ( 6 hours)
                            1800        ;Retry   (30 minutes)
                            1209600     ;Expire  (14 days)
                            86400)      ;Minimum ( 1 day)
                    IN      NS      ns.nms.nobreak.com.
                    IN      NS      ns2.nms.nobreak.com.
    
    2               IN      PTR     ns.nms.nobreak.com.
    3               IN      PTR     ns2.nms.nobreak.com.
    10              IN      PTR     mail.nms.nobreak.com.
    11              IN      PTR     mail2.nms.nobreak.com.
    53              IN      PTR     dns.nms.nobreak.com.

icon04.gif 4.4. Classless in-addr.arpa 위임

참고: RFC2317

도메인 위임은 도트로 분리되는 세그먼트 혹은 옥텟(octet) 기반으로 설계되었기 때문에, 옥텟 기반의 인버스 도메인 위임엔 별다른 문제가 없다. 하지만 세그먼트를 나누어 210.105.79.1-128 까지는 nobreak.com 이 129-256까지는 nms.nobreak.com 이 사용하는 경우에는 인버스 도메인 위임이 수월치 않다.

같은 기관이 편의상 나누는 것이라면, 인버스 도메인에 한해 위임치 않고, 중앙에서 통합관리하는 것이 가능하나, IP 고갈로 인해 ISP들이 클래스를 할프(half) 또는 더 잘게 나누어 배급하고 있으므로, 이러한 기관들 사이에서는 한쪽 기관의 피해가 없도록 위임이 배려되어야 하겠다.

첫번째 방법으로는 79.105.210.in-addr.arpa의 설정에 있어서 129-256(B에 할당된)까지의 IP 블럭을 NS 레코드를 사용해 모두 네임서버 ns.nms.nobreak.com 로 레퍼런싱 해준다. 79.105.210.in-addr.arpa 에 대한 Zone 데이터 베이스 작성 예를 보자.

    * zone-79.105.210.in-addr.arpa (NS.NOBREAK.COM)
    2               IN      PTR     ns.nobreak.com.
    3               IN      PTR     ns2.nobreak.com.
    ...
    129             IN      NS      ns.nms.nobreak.com.   # 129-254까지 위임
                    IN      NS      ns2.nms.nobreak.com.
    ...
    254             IN      NS      ns.nms.nobreak.com.
                    IN      NS      ns2.nms.nobreak.com.

NS 레코드를 사용해 페어린팅 했기 때문에, ns.nms.nobreak.com 의 부트 파일에는 IP 129-254에 대해 다음과 같이 모두 primary 설정이 들어가 있어야 한다. 조금 번거로운 면이 있다.

    * named.boot (NS.NMS.NOBREAK.COM)
    primary  129.79.105.210.in-addr.arpa  zone-129.79.105.210.in-addr.arpa
    ...
    primary  254.79.105.210.in-addr.arpa  zone-254.79.105.210.in-addr.arpa

또한, 각 Zone 파일 129.79.105.210.in-addr.arpa - 254.79.105.210.in-addr.arpa는 모두 다음과 같은 형식으로 작성되어야 한다.

    * zone-129.79.105.210.in-addr.arpa (NS.NMS.NOBREAK.COM)
    @               IN      SOA     ns.nms.nobreak.com. hostmaster.nms.nobreak.com. (
                            1999012901  ;Serial
                            21600       ;Refresh ( 6 hours)
                            1800        ;Retry   (30 minutes)
                            1209600     ;Expire  (14 days)
                            86400)      ;Minimum ( 1 day)
                    IN      NS      ns.nms.nobreak.com.
                    IN      NS      ns2.nms.nobreak.com.
                    IN      PTR     dns.nms.nobreak.com.
    * zone-130.79.105.210.in-addr.arpa (NS.NMS.NOBREAK.COM)
    @               IN      SOA     ns.nms.nobreak.com. hostmaster.nms.nobreak.com. (
                            1999012901  ;Serial
                            21600       ;Refresh ( 6 hours)
                            1800        ;Retry   (30 minutes)
                            1209600     ;Expire  (14 days)
                            86400)      ;Minimum ( 1 day)
                    IN      NS      ns.nms.nobreak.com.
                    IN      NS      ns2.nms.nobreak.com.
                    IN      PTR     dhcp.nms.nobreak.com.

IPv4는 4개의 옥텟으로 구분되고, 이것은 마지막 4번째 옥텟에 대한 Zone 이므로, 추가적인 정의가 있을 수 없다.

이 방법은 위임된 IP 개수만큼의 Zone 데이터베이스가 요구되기 때문에, 번거로워 실제로는 거의 사용하지 않는데, 도메인 페이런팅의 한계와 느낌을 전달하고자 소개하였다.

여기 조금 세련된 방법이 있다.

    * zone-79.105.210.in-addr.arpa (NS.NOBREAK.COM)
    2               IN      PTR     ns.nobreak.com.
    3               IN      PTR     ns2.nobreak.com.
    ...
    129             IN      CNAME   129.nms.79.105.210.in-addr.arpa.
    ...
    254             IN      CNAME   254.nms.79.105.210.in-addr.arpa.
    nms             IN      NS      ns.nms.nobreak.com.
                    IN      NS      ns2.nms.nobreak.com.

Namespace 상에서 Inverse 도메인을 위한 in-addr.arpa 가지와, 일반적인 문자 도메인 가지의 기술적 차이가 전혀 없음을 상기하자. 편의상 arpa 도메인을 IP 매핑용으로 사용하는 것 뿐이니, nms.79.105.210.in-addr.arpa 와 같은 도메인을 만들고 패어런팅하는 것이 가능하고, 여기서는 이점을 이용해 Classless in-addr.arpa를 해결하고 있다.

즉 129.79.105.210.in-addr.arpa 는 129.nms.79.105.210.in-addr.arpa 를 CNAME 하는데, nms.79.104.210.in-addr.arpa 의 primary는 ns.nms.nobreak.com 이므로, 결국 위임은 성공적으로 성립된다.

    * named.boot (NS.NMS.NOBREAK.COM)
    primary  nms.79.105.210.in-addr.arpa  zone-nms.79.105.210.in-addr.arpa
    * zone-nms.79.105.210.in-addr.arpa (NS.NMS.NOBREAK.COM)
    @               IN      SOA     ns.nms.nobreak.com. hostmaster.nms.nobreak.com. (
                                    1999012901  ;Serial
                                    21600       ;Refresh ( 6 hours)
                                    1800        ;Retry   (30 minutes)
                                    1209600     ;Expire  (14 days)
                                    86400)      ;Minimum ( 1 day)
                    IN      NS      ns.nms.nobreak.com.
                    IN      NS      ns2.nms.nobreak.com.
    
    129             IN      PTR     dns.nms.nobreak.com.
    130             IN      PTR     mail.nms.nobreak.com.
    ...
    254             IN      PTR     layla.nms.nobreak.com.

129-254까지의 PTR을 여기에 모두 나열한다. 79.105.210.in-addr.arpa Zone에서 각 IP를 모두 CNAME으로 잡아주어야 하는 불편함을 빼면 현재의 DNS 알고리즘상에선 최선의 방안이 아닌가 한다.

서로 다른 기관으로 할당된 쪼개어진 하나의 Class에 대한 Reverse 도메인 위임은 ISP 단계에서 이루어져야 하지만, 실제 ISP들은 Class 단위로만 위임처리를 하는경우가 대부분이여서, 해당 Class 전체를 한쪽 기관으로 위임하는 경우가 대부분이다. 따라서 이러한 경우에는 위임받은 기관에서 타 기관으로 할당된 IP 블락을 소개한 방법과 같이 레퍼런싱 해주어 타 기관의 피해가 없도록 하자. 네임서버를 비롯하여 Public IP를 갖는 호스트(PC를 포함하여)가 Reverse 매핑이 안되어 있을 경우에는 몇몇 서비스의 사용이 거부될 수도 있으며, 해당 호스트로의 Reverse Resolving 딜레이가 증가하는등 크고 작은 잠재적 문제가 야기된다.

Classless in-addr.arpa 위임과는 조금 다르게, 다수의 C 클래스 210.105.79 - 210.105.81 를 할당받았고, 이중 81 네트워크를 위임코자할 경우를 생각해보자. 한가지 방법은, 해당 ISP에 81.105.210.in-addr.arpa에 대한 네임서버 변경 신청만을 하는 것이겠지만, 보통은 이렇게 하지 않고, 여기서 설명하는 것과 같이 Namespace상의 링크가 해당 네트워크의 네임 서버에의해 포인팅 되도록하여, 네트워크의 변동에 빠르게 대처토록 한다.


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  97 명