이 문서를 작성하면서 나는 내가 엄청난(?) 자만에 빠져있었다는 걸 깨닫게 되었다. 대부분의 리눅서들이 공감하듯이 네임(DNS)서버는 네트워크에 있어서 매우 중요한 서버이다. 왜냐하면 거의 대부분의 인터넷 서비스를 모두 네임서버를 거쳐서 제공되기 때문이다. 비록 나의 문서를 보고 많은 사람들이 도움이 되었으면 하는 마음 간절하다.

필자의 상황

나는 도메인은 없고 달랑 IP만 있는 동아리 방에 있다. 지금 내가 하고 싶은 것은 도메인을 하나 사서, 다른 컴퓨터에다가 이름을 지어주고 싶다. 여기서는 단순한 도메인 포워딩이 아닌 메일서버를 운영할 수 있는 서브 도메인 자체를 주고 싶다.
고민 끝에 나는 hslilo.co.kr 이라는 도메인을 샀다. 참고로 IP는 210.119.108.177다.

☞ 내가 원하는 것

210.119.108.178 (네임서버)이미 도메인(hslilo.co.kr)이 등록이 되어 있다.
210.119.108.177IP만 있고 도메인이 없다. 차후에 fat81.hslilo.co.kr로 줄 예정이다.
210.119.108.176IP만 있고 도메인이 없다. 차후에 say.hslilo.co.kr로 줄 예정이다.

☞ 주의 할 점

처음 도메인을 등록하면, 네임 서버를 어떤 것으로 할지를 정해주어야 한다. 만일 나의 경우처럼 네임서버를 만들어 운영한다면, 자기가 만든 네임서버로 지정해주어야 한다. 하지만, 만일 그렇지 않다면, 도메인 등록업체의 네임서버를 지정해준다. 네임서버를 바꾸는 데, 시간이 걸린다. 도메인마다 다를 수 있지만, 필자의 경우는 하루가 걸렸다.

설치 및 설정하기

나는 bind-9.1.2 을 레드햇 8.0에 소스로 설치했다. 설치 부분은 다른 문서를 참고하기 바란다.
설치를 마쳤다면 이제는 가장 중요한 설정을 잡아보자!

------------------------------------------
options {        
default-server  localhost; 
default-key     "key";
};
 
server localhost { 
       key     "key";
};
 
key "seckey" { 
       algorithm       hmac-md5; 
secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};
---------------------------------------------------
---------------------------------------------------
options { directory "/var/named";
};
 
zone "." IN { 
type hint;
file "named.ca";
};
 
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; };
};
 
controls {  
      inet * port 1500       
      allow { any; } keys { "seckey"; };
};
key "seckey" { 
     algorithm hmac-md5;
secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};
zone "hslilo.co.kr" IN {
        type master;   
        file "hslilo.host";    
        notify no;      
        allow-update { key "seckey"; };
};
zone "108.119.210.in-addr.arpa" IN {  
      type master;    
      file "db.108.119.210";  
      notify no;        allow-update { key "seckey"; };
};
---------------------------------------------------
---------------------------------------------------
;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC registration services
;       under anonymous FTP as
;           file                /domain/named.root
;           on server           FTP.RS.INTERNIC.NET
;       -OR- under Gopher at    RS.INTERNIC.NET
;           under menu          InterNIC Registration Services (NSI)
;              submenu          InterNIC Registration Archives
;           file                named.root
;
;       last update:    Aug 22, 1997
;       related version of root zone:   1997082200
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
;
; formerly C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
;
; formerly NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
;
; temporarily housed at ISI (IANA)
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
;
; housed in Japan, operated by WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File
------------------------------------------
------------------------------------------
$TTL    86400
@       IN 	SOA     localhost. root.localhost. (
                        2001070301      ; serial (d. adams)
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
;
        IN      NS      localhost. 
        IN      A       127.0.0.1
---------------------------------------------------
---------------------------------------------------
$TTL    86400
@       IN      SOA     localhost. admin.localhost. (
                                      2001070301 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      localhost.
;
1       IN      PTR     localhost.
---------------------------------------------------
---------------------------------------------------
$TTL    86400
$ORIGIN 108.119.210.in-addr.arpa.
@       IN 	SOA     ns.hslilo.co.kr. admin.hslilo.co.kr. (
                        2001070304      ; serial (d. adams)
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
        IN      NS      ns.hslilo.co.kr.
178	IN	PTR	ns.hslilo.co.kr.
177	IN	PTR	fat81.hslilo.co.kr.
176	IN	PTR	say.hslilo.co.kr.
---------------------------------------------------
---------------------------------------------------
$TTL    86400
$ORIGIN 108.119.210.in-addr.arpa.
@       IN 	SOA     ns.hslilo.co.kr. admin.hslilo.co.kr. (
                        2001070304      ; serial (d. adams)
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
        IN      NS      ns.hslilo.co.kr.
178	IN	PTR	ns.hslilo.co.kr.
177	IN	PTR	fat81.hslilo.co.kr.
176	IN	PTR	say.hslilo.co.kr.
---------------------------------------------------

느낀 점

아무리 잘 안다고 자부한다는 것도, 직접 실전에서 해보지 않았다면, 모를일이다 ㅡ.ㅡ;
이번 기회를 통해서 DNS에 대해서 다시 한번 공부하게 되는 계기가 된 것 같다.

☞ 위에서 도메인 등록업체에서 내가 산 도메인 네임의 네임서버를 내가 만든 서버로 바꾸어 준 뒤, 하루(필자의 경우)정도 시간을 소요했다. 그리고 나서 bind을 시작시켜보자!
테스트는 간단히 nslookup 명령어로 확인해보자!
가장 간단한 방법은 다른 네트워크에 있는 사람에게 부탁하여 테스트를 해보는 것이다.
중요한 것은 다른 네트워크에서도 내가 지정해준 호스트 네임으로 접속이 가능한지 여부이기 때문이다.

#vi /etc/resolv.conf
---------------------------------------------------
nameserver 210.119.108.178  <-- 네임서버 자신
nameserver 134.75.122.2   <-- 학교 네임서버
---------------------------------------------------
  • computer/networking/서브_도메인_사용하기.txt
  • Last modified: 4 years ago
  • by likewind