다음 이전 차례

5. 도메인 설정의 실제 예

여기에서 실제 존 파일 몇 개를 다룰 것이다.

사용자들이 교육적인 예와 함께 실제로 사용되고 있는 도메인의 예를 포함해 줄 것을 제안했다.

LAND-5의 David Bullock 씨의 허락하에 아래 예들을 사용한다. 이 파일들은 1996년 9월 24일에 만들어졌다. bind-8 조건에 맞게 수정하였고 저자가 좀 더 확장하여 사용하였다. 그러므로 현재의 LAND-5 네임 서버에 쿼리를 한다면 여기서와는 조금은 다른 결과를 얻게 될 것이다.

5.1 /etc/named.conf (또는 /var/named/named.conf)

여기서 127.0.0 과 LAND-5의 206.6.177 서브넷에 필요한 역변환 존에 대한 마스터 존 섹션을 살펴보자. 그리고 lang-5.com 존을 살펴 보자. 이 하우투에서 저자는 pz 라는 디렉토리에 파일들을 두었지만 그는 zonezone 이라는 디렉토리에 두고 있음에 주의하자.


// Boot file for LAND-5 name server

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

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
        type master;
        file "zone/127.0.0";
};

zone "land-5.com" {
        type master;
        file "zone/land-5.com";
};

zone "177.6.206.in-addr.arpa" {
        type master;
        file "zone/206.6.177";
};

위의 내용을 실제로 named.conf에 넣어서 테스트할 경우에는, 사고가 일어나지 않도록 lang-5 존과 역변환 존 두 곳에 notify no; 라인을 반드시 넣어라.

5.2 /var/named/root.hints

이 파일은 유동적임을 명심하라. 그러므로 여기 나열된 정보는 예전 것이다. 이전에 설명되었던 dig로 산출된 현재의 것을 사용하는 것이 훨씬 나을 것이다.


; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET. 
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUERY SECTION:
;;      ., type = NS, class = IN

;; ANSWER SECTION:
.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241

;; Total query time: 215 msec
;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4
;; WHEN: Sun Feb 15 01:22:51 1998
;; MSG SIZE  sent: 17  rcvd: 436

5.3 /var/named/zone/127.0.0

기본적으로 필수 레코드인 SOA 레코드가 필요하며, 127.0.0.1을 localhost로 매핑해 주는 레코드가 필요하다. 그 외의 것들이 이 파일에 있어서는 안된다. 네임서버가 바뀌거나 hostmaster 메일 주소가 바뀌지 않는 한 이 파일은 갱신할 필요가 없다.


@               IN      SOA     land-5.com. root.land-5.com. (
                                199609203       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
        
1                       PTR     localhost.

5.4 /var/named/zone/land-5.com

필수 레코드인 SOA 레코드가 필요하며, NS 레코드도 필요하다. secondary 네임 서버로 ns2.psi.net이 있음을 알수 있다. 이 서버는 백업용으로 항상 사이트 밖에 있어야 한다. 또한 다양한 인터넷 서비스를 담당하는 마스터 호스트로 lang-5를 두었고, 그러한 처리를 CNAME으로 해결하고 있음을 알 수 있다. (A 레코드를 사용한 방법도 있다.)

SOA 항목에서 알 수 있듯이, 존 파일은 origin이 land-5.com이며 관리자는 root@land-5.com이다. hostmaster는 관리자의 주소로 자주 사용되는 것이다. 시리얼 넘버는 의례적으로 yyyymmdd 형식에 그날의 시리얼 넘버를 덧붙인다. 아래서 보면 아마 이 지역 파일은 1996년 9월 20일에 6번째 수정한 버전일 것이다. 시리얼 넘버는 한방향으로만 증가해야 함을 명심하자. 여기서는 그날의 시리얼 넘버가 한자리다. 그러므로 9번을 편집하고 나서 또 편집하려면 내일을 기다려야 할 것이다. 두 자리수 사용을 고려하자.


@       IN      SOA     land-5.com. root.land-5.com. (
                        199609206       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        1W              ; expire, seconds
                        1D )            ; minimum, seconds
                NS      land-5.com.
                NS      ns2.psi.net.
                MX      10 land-5.com.  ; Primary Mail Exchanger

localhost       A       127.0.0.1

router          A       206.6.177.1
        
land-5.com.     A       206.6.177.2
ns              A       206.6.177.3
www             A       207.159.141.192

ftp             CNAME   land-5.com.
mail            CNAME   land-5.com.
news            CNAME   land-5.com.

funn            A       206.6.177.2
@               TXT     "LAND-5 Corporation"

;
;       Workstations
;
ws-177200       A       206.6.177.200
                MX      10 land-5.com.   ; Primary Mail Host
ws-177201       A       206.6.177.201
                MX      10 land-5.com.   ; Primary Mail Host
ws-177202       A       206.6.177.202
                MX      10 land-5.com.   ; Primary Mail Host
ws-177203       A       206.6.177.203
                MX      10 land-5.com.   ; Primary Mail Host
ws-177204       A       206.6.177.204
                MX      10 land-5.com.   ; Primary Mail Host
ws-177205       A       206.6.177.205
                MX      10 land-5.com.   ; Primary Mail Host
; {Many repetitive definitions deleted - SNIP}
ws-177250       A       206.6.177.250
                MX      10 land-5.com.   ; Primary Mail Host
ws-177251       A       206.6.177.251
                MX      10 land-5.com.   ; Primary Mail Host
ws-177252       A       206.6.177.252
                MX      10 land-5.com.   ; Primary Mail Host
ws-177253       A       206.6.177.253
                MX      10 land-5.com.   ; Primary Mail Host
ws-177254       A       206.6.177.254
                MX      10 land-5.com.   ; Primary Mail Host

land-5의 네임 서버를 확인해 보면 알겠지만 호스트명이 ws_number의 형식으로 되어 있다. 예전의 bind 4 버전에서는 named가 시작할 때, 호스트명으로 사용할 수 있는 문자 제한을 강제로 준수하였다. 그러나 bind-8에서는 작동하지 않으므로 '_'(underline) 대신 '-'(dash)로 바꿨다.

또 하나 주목할 사항은 웍스테이션들은 개개의 이름이 없고 IP 숫자의 끝 두부분을 이름으로 사용한다는 점이다. 이런 관례는 유지 보수를 상당히 단순화할 수 있다. 대신 조금은 비인간적이라 고객들 사이에 불만의 요인이 될수 있다.

또한 funn.land-5.com이 land-5.com에 대한 알리아스임을 알 수 있다. 그러나 CNAME 항목이 아닌 A 항목을 사용한다.

5.5 /var/named/zone/206.6.177

이 파일에 대해서는 잠시 후에 설명할 것이다.


@               IN      SOA     land-5.com. root.land-5.com. (
                                199609206       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
                        NS      ns2.psi.net.
;
;       Servers
;
1       PTR     router.land-5.com.
2       PTR     land-5.com.
2       PTR     funn.land-5.com.
;
;       Workstations
;
200     PTR     ws-177200.land-5.com.
201     PTR     ws-177201.land-5.com.
202     PTR     ws-177202.land-5.com.
203     PTR     ws-177203.land-5.com.
204     PTR     ws-177204.land-5.com.
205     PTR     ws-177205.land-5.com.
; {Many repetitive definitions deleted - SNIP}
250     PTR     ws-177250.land-5.com.
251     PTR     ws-177251.land-5.com.
252     PTR     ws-177252.land-5.com.
253     PTR     ws-177253.land-5.com.
254     PTR     ws-177254.land-5.com.

역변환 존은 재난의 대부분을 재난을 일으키는 설정 부분으로 보인다. 역변환 존은 컴퓨터의 IP 주소를 알 때 그 호스트명을 찾는데 사용된다. 예: 여러분의 컴퓨터가 IRC 서버이고 IRC 클라이언트의 접속을 허용한다. 그러나 그 컴퓨터는 노르웨이 언어 전용의 IRC 서버로 노르웨이와 다른 스칸다나비아 반도 국가에 있는 클라이언트의 접속 만을 허락하고 싶다. 클라이언트로부터 접속이 있을때 C 라이브러리는 접속하는 클라이언트 컴퓨터의 IP 주소를 알려줄 수 있다. 네트웍을 지나는 모든 패킷에 클라이언트 컴퓨의 IP 주소가 포함되어 있기 때문이다. 이제 여러분의 IRC 서버는 주어진 IP 주소로 호스트명을 찾는 gethostbyaddr 함수를 호출할 수 있다. Gethostbyaddr 함수는 DNS 서버를 찾을 것이다. 그리고는 컴퓨터를 찾는 항해를 한다. ws-177200.land-5.com에서 클라이언트가 접속했다고 가정하면 C 라이브러리가 IRC 서버에게 건네는 IP 주소는 206.6.177.200이다. 이 컴퓨터의 호스트명을 찾으려면 200.177.6.206.in-addr.arpa을 찾아야 한다. DNS 서버는 먼저 arpa. 서버를 찾는다. 그런 다음 in-addr.arpa. 서버를, 그 다음에는 206을, 그 다음에는 6을, 마지막으로 land-5에서 177.6.206.in-addr.arpa zone을 담당하는 서버를 찾는다. 거기서 마침내 200.177.6.206.in-addr.arpa라는 주소에 `PTR ws-177200.land-5.com'이라는 레코드가 매핑되어 있다는 응답을 얻을 수 있다. 그 의미는 206.6.177.200의 호스트명이 ws-177200.land-5.com이라는 것을 뜻한다. prep.ai.mit.edu의 설명에서와 마찬가지로 이 설명은 허구에 가깝다.

IRC 서버의 예로 돌아가자. 위의 IRC 서버는 *.no, *.se, *.dk와 같은 스칸다나비아 반도 주변국에서의 접속만을 허용하고자 한다. ws-177200.land-5.com는 해당 사항이 없으므로 접속을 거부할 것이다. in-addr.arpa 존에 206.2.177.200의 역변환 매핑(reverse mapping)이 없다면 서버는 이름을 알수 없을 것이고 결국은 206.2.177.200라는 숫자를 *.no, *.se, *.dk와 비교하게 될 것이다.

역변환 매핑(reverse lookup mapping)이 서버한테만 중요하다고 하는 이도 이으며, 전혀 중요하지 않다고 말하는 이도 있다. 그러나 사실은 매우 중요한다. 많은 ftp, news, IRC, 심지어 http(WWW) 서버도 몇몇은 클라이언트 컴퓨터의 이름을 찾을 수 없다면 접속을 불허할 것이다. 그러므로 컴퓨터의 역변환 매핑은 반드시 필요하다.


다음 이전 차례