====== 네임서버 구축하기 ======
====== 네임 서버란 ======
솔직히 내가 여기서 네임서버에 대해서 잘못 얘기하는 것일 수도 있다. 100%로 믿지 말기를..(99% 믿어도 좋다...1%는 나도 장담 못함!!) 네임서버란!! 네임서버를 설명하기 위해서는 DNS란 것을 알야야 한다. 예를 들어 203.241.128.94는 컴퓨터가 이해하는 IP이지만 사람은 이를 일일이 외운다는 것은 정말 힘든 일이다. 그래서 사람들이 이해하기 쉽도록 myfeel.hoseo.ac.kr 과 같이 이름을 정해준 것을 말한다. 네임서버는 IP를 인간이 알기 쉽게 도메인네임으로 바꾸어 주는 서버라 하면 이해하기가 쉬울 것이다.
====== Bind 설치하기 ======
네임서버를 구축하기 위해서는 bind가 반드시 필요하다. 될 수 있으면 최신버전을 받도록한다. 참고로 필자는 ftp://linux.sarang.net/mirror/network/daemon/isc/bind/src/ 여기서 받았다. 그리고 bind-src.tar.gz 파일을 받는다. 압축을 풀고 ./configure , make , make install을 해준다. 제대로 설치되었다면 /etc 디렉토리에다가 아래와 같이 named.boot, named.conf 파일을 만들어 준다. 설정은 아래와 같다. 그리고 /var/named 디렉토리에다 역시 아래와 같이 나머지 파일들을 만들어 준다. 만일 named 디렉토리가 없다면 만들어 주어야 한다.
====== 설정하기 ======
여기서는 내가 실제로 설정했던 설정 파일들을 예제로 들겠다. 아무래도 직접 사용했던 설정파일을 보는 게 가장 이해하기가 쉬울 것이다.
---------------------------named.boot-------------------------------
;
; caching only nameserver config
;
directory /var/named
cache . named.ca
primary 0.0.127.in-addr.arpa named.local
primary 128.241.203.in-addr.arpa zone-128.241.203
primary myfeel.hoseo.ac.kr zone-myfeel.hoseo.ac.kr
-------------------------------------------------------------------
--------------------------named.conf--------------------------------
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "128.241.203.in-addr.arpa" {
type master;
file "zone-128.241.203";
};
zone "myfeel.hoseo.ac.kr" {
type master;
file "zone-myfeel.hoseo.ac.kr";
};
----------------------------------------------------------
-----------------------named.ca----------------------------
; 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 . "
; 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
----------------------------------------------------------------
----------------------named.local---------------------------------
@ IN SOA localhost. root.localhost. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
IN NS localhost.
1 IN PTR localhost.
-----------------------------------------------------------------
-----------------------zone-128.241.203-----------------------------
@ IN SOA ns1.myfeel.hoseo.ac.kr. master.myfeel.hoseo.ac.kr. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
IN NS ns1.myfeel.hoseo.ac.kr.
94 IN PTR myfeel.hoseo.ac.kr.
91 IN PTR info.hoseo.ac.kr.
-------------------------------------------------------------------
------------------------zone-myfeel.hoseo.ac.kr------------------------
@ IN SOA ns1.myfeel.hoseo.ac.kr. master.myfeel.hoseo.ac.kr. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
IN NS ns1.myfeel.hoseo.ac.kr.
IN A 203.241.128.94
IN HINFO "x86 Pentium III Dual" "Wow Linux"
IN MX 10 myfeel.hoseo.ac.kr.
localhost IN A 127.0.0.1
;ns IN CNAME @
ns1 IN CNAME @
ns2 IN A 211.180.229.51
--------------------------------------------------------------------
위와 같이 설정해 주었다면
#/usr/bin/named
실행시키고 nslookup을 실행시켜 제대로 설정이 되었는지 확인해보자!
'※ in-addr.arpa 란?'
솔직히 지금 글을 쓰고 있는 필자도 아직 잘 이해가 안가는 부분이다. 그래도 아는 한도내에서 설명하겠다. 부디 99% 믿기를.... 1%는.. 믿거나 말거나..
원래 네임서버의 역할은 클라이언트가 호스트네임을 물어보면 그에 맞는 IP를 반환해준다. (zone-linux.com, zone-fat81.com 파일을 참조한다.) 하지만 네임서버는 이와 반대되는 기능도 서비스 한다. IP주소를 호스트네임으로 바꾸어 준다.(named.local, zone-128.241.203 파일을 참조한다.) 다시 말해, IP에 대해 해당 도메인을 역으로 찾을 수 있도록 하는 서비스이다. 아래의 예를 보자!!
$ nslookup -type=ns 79.105.210.in-addr.arpa (C Class 210.105.79.x를 할당 받았을 경우)
Server: ns.nobreak.com
Address: 0.0.0.0
79.105.210.in-addr.arpa nameserver = ns.nobreak.com
79.105.210.in-addr.arpa nameserver = ns2.nobreak.com
ns.nobreak.com internet address = 210.105.79.2
ns2.nobreak.com internet address = 210.105.79.3
위의 예를 보면 알 수 있듯이 네임서버를 이용할 때 호스트네임으로 IP를 알고 싶을 때는 'yahoo.co.kr' 처럼 차례대로 입력해주면 된다는 것을 알수 있다. 하지만 IP주소로 호스트네임을 역으로 찾기 위해서는 IP주소를 반대로 적어주어야 한다. 그래서 위와 같이 반대로 적어주고 뒤에다 in-addr.arpa를 적어준다. 참고로 위의 예는 210.105.97.x 에서의 네임서버를 찾아서 출력하고 있다.
----
{{indexmenu>:#1|skipns=/^(wiki|etc|diary|playground)$/ skipfile=/^(about|guestbook|todays)$/ }}
----