http://jobdahan.net/server_window/17286


DNS 서버는 자신의 컴퓨터 인터넷 연결 IP Address와 밀접한 관계가 있습니다.

다른 서버들(웹 서버, 데이타베이스 서버, FTP 서버 등)은 자신의 컴퓨터 연결 IP Address가 변경되더라도
각 설정 파일들에 대해 별다른 수정없이 서비스 받고 있는 도메인의 IP Address만 Update 해주면 해결되지만
DNS 서버의 경우에는 그렇지 않습니다.

DNS 서버(BIND9, Windows에서는 ISC BIND 서비스)의 경우에는 서비스 받고 있는 도메인의 IP Address Update
뿐만이 아니라 설정 파일도 변경된 IP Address로 수정해서 BIND9을 재시작 해주어야만 합니다.

가정에 설치된 PC에 서버를 구축하였을 경우 유동 IP를 사용하기 때문에 IP 주소가 자주 변동될 수 있으므로
그에 대한 대책을 마련해야만 합니다.

그 대책의 하나는 자신의 IP 주소가 변경되면 DNIP 사이트에서 서비스 받고 있는 네임서버 도메인
(예 : ns.jobdahan.dnip.net)의 IP 주소를 업데이트 해주어야 하며,

둘째로 DNS 서버가 구축되어 있다면 개별 도메인 zone 파일(예 : jobdahan.dnip.net.zone)에 설정된
각 도메인에 대한 IP 주소도 업데이트 해주어야만 합니다.

우리는 네임서버 도메인을 DNIP 사이트에서 서비스 받고 있으므로 자신의 IP 주소가 변경되었을 경우
DNIP 사이트에 IP 주소를 업데이트 해주면 되는데 그 방법은 이미 “유동 IP를 고정 IP처럼 사용하기” 강좌에서
DNIP.exe를 이용하여 자동으로 업데이트하는 방법을 자세히 설명했었습니다.

DNS 서버는 원래 고정 IP인 곳에 설치하여야만 합니다만 지금 우리는 고정 IP가 아닌 유동 IP인 곳에
DNS 서버를 설치하였습니다. 그렇기 때문에 인터넷 연결 IP 주소가 변경되면 DNS 설정 파일에 있는 IP 주소도
변경시켜 주어야만 하는 약간의 불편함은 감수해야 합니다.

DNS 설정 파일에 있는 IP 주소를 업데이트 해주는 방법으로는 직접 수동으로 설정 파일의 IP 주소를 수정하는 방법과
\bin 디렉터리에 들어가 있는 nsupdate.exe를 이용하는 방법,
그리고 자체 제작한 소프트웨어로 IP 업데이트에 관련된 모든 작업을 자동으로 하는 방법이 있습니다.

여기에서는 수동으로 설정 파일의 IP 주소를 수정하는 방법에 대해서 설명하기로 하겠습니다.


[ 직접 IP Update ]

1) 변경된 인터넷 연결 IP 확인하여 서비스되고 있는 네임서버 도메인 IP 업데이트
 ~ 공유기를 사용하고 있을 때 내 컴퓨터 인터넷 연결 IP 주소를 확인하는 가장 간단한 방법으로는
     FTP 서버인 Hub FTP 창을 열어 [IP 확인] 도구를 클릭해서 자신의 인터넷 연결 IP 주소를 알아 보거나
     Port_Check.exe 같은 소프트웨어를 이용해서 알아 보는 방법이 있습니다.

     (cmd 창의 ipconfig 명령은 공유기를 사용하지 않고 있을 때 인터넷 연결 IP 주소 확인이 가능하지만,
     공유기를 사용하고 있을 때는 공유기의 사설 IP Address(192.168.xxx.xxx)가 표시됩니다.)

     내 컴퓨터의 인터넷 연결 IP Address와 서비스 되고 있는 ns.ID.dnip.net의 IP Address가 서로 다를 경우
     DNIP.exe를 이용하거나 http://www.dnip.net/update.cgi에서 IP Address를 업데이트 해 줍니다.

2) 개별 도메인 설정 zone 파일 수정
 ~ 자신의 IP 주소가 변경되었을 때 설정 파일 중 수정해 주어야 할 부분은 개별도메인 설정 파일인
     HostName.zone(HostName : ns.ID.dnip.net에서 "ns."을 제외한 이름, HostName.zone ⇒ 예:jobdahan.dnip.net.zone)
     파일만 수정하면 됩니다.

     C:\APM_Setup\Server\DNS\etc\ 디렉터리에 있는 jobdahan.dnip.net.zone 파일을 메모장이나 텍스트 에디터로
     열어 설정되어 있는 IP 주소를 모두 변경된 IP 주소로 수정하고 저장합니다.

     예를 들어 자신의 외부 IP 주소가 210.95.205.15에서 210.95.205.105로 변경되었다면
     아래의 내용과 같이 IP 주소가 들어간 부분만 210.95.205.15 ⇒ 210.95.205.105로 수정하고 저장합니다.

C:\APM_Setup\Server\DNS\etc\jobdahan.dnip.net.zone 파일의 내용

$TTL 43200
@ IN SOA ns.jobdahan.dnip.net. root.jobdahan.dnip.net. (
                   2007042710 ;                 ⇒ 이 네임서버의 데이타 버전, 현재 년월일시간으로 수정함
                   3H  ;
                   15M  ;
                   1W  ;
                   1D )  ; 
; Name Server
    IN NS ns.jobdahan.dnip.net.  ;
    IN A 210.95.205.15  ;                       ⇒   IN A 210.95.205.105  ;
; Host name
ns IN A 210.95.205.15  ;                       ⇒   ns IN A 210.95.205.105  ;
; Virtual Host
www IN A 210.95.205.15  ;                   ⇒   www IN A 210.95.205.105  ;
mail IN A 210.95.205.15  ;                    ⇒   mail IN A 210.95.205.105  ;
ftp IN A 210.95.205.15  ;                       ⇒   ftp IN A 210.95.205.105  ;
shop IN A 210.95.205.15  ;                   ⇒   shop IN A 210.95.205.105  ;


3) zone 파일의 Reload 또는 DNS 서버(ISC BIND 서비스)의 재시작
 ~ [시작]-[실행]-cmd 입력하여 cmd 창을 열고, rndc reload 명령을 입력하고 [Enter] 키를 치면
    C:\APM_Setup\Server\DNS\etc\ 디렉터리에 있는 모든 구성 파일들과 zone 파일들이 다시 읽혀져서
    변경시킨 내용들이 DNS 서버에 적용되어 집니다.

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats> rndc reload
server reload successful

C:\Documents and Settings\hats> _


    여기에서 한 가지 알아 두셔야 할 점이 있습니다.
    위와 같이 cmd 창에서 rndc reload 명령을 사용해서 named 데몬을 제어할 수 있는 이유는
    앞서 name.conf 내용 설정에서 named 데몬이 rndc.key 파일의 key 값을 사용하고 있고,

    named 데몬을 제어하는 rndc는 rndc.conf 파일에서 불러온 key 값을 사용하는데
    rndc.key 파일과 rndc.conf 파일의 key 값을 동일하게 해 주었기 때문에 rndc로 named 제어가 가능한 것입니다.


[ DNS 서버(ISC BIND 서비스)의 재시작 ]

설정 파일이 수정되었을 때 rndc reload 명령을 이용하지 않고
DNS 서버 자체를 재시작 해주어도 수정한 업데이트 내용이 DNS 서버에 적용됩니다.

윈도우에서 DNS 서버(BIND9)를 재시작하여 주는 방법에는 다음의 두 가지가 있습니다.

첫째, [시작]-[제어판]-[성능 및 유지관리]-[관리 도구]를 선택, [서비스]를 더블클릭하여 열린 서비스 창에서
ISC BIND 라는 이름의 서비스를 찾아 오른쪽 클릭, 단축메뉴에서 [다시 시작]을 선택하면 ISC BIND 서비스가
중지되었다가 다시 시작됩니다.

둘째, cmd 창에서 다음의 명령 실행에 의해서도 DNS 서버(BIND9)를 재시작 할 수 있습니다.
       net stop "ISC BIND" : DNS 서버(BIND9)의 중지
       net start "ISC BIND" : DNS 서버(BIND9)의 시작

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats>net stop "ISC BIND"
ISC BIND 서비스를 잘 멈추었습니다.

C:\Documents and Settings\hats>net start "ISC BIND"
ISC BIND 서비스를 시작합니다..
ISC BIND 서비스가 잘 시작되었습니다.


C:\Documents and Settings\hats>_


[ nsupdate.exe를 이용한 개별도메인 zone 파일 설정 Update 하기 ]

nsupdate.exe를 이용하는 방법에 대해서는 설명을 생략하기로 하겠습니다.
처음에는 이 부분에 대한 설명도 하려고 했었지만 이 방법 역시 수동적인 방법에 속하고
DNS 서버에 대해서 익숙치 않은 분들에게는 오히려 혼란만 줄 것 같아서 과감히(?) 생략했습니다.^^;

꼭 알아야 겠다는 분들이 계시다면 댓글을 달아 주시거나
관련 전문 서적을 참고하시기 바랍니다.


위와 같이 수동으로 작업을 해 주어도 되지만 이러한 일련의 작업들 즉, 외부 인터넷 연결 IP 주소가 변경되었는지
부팅할 때 마다 검사하고, 변경되었으면 개별 도메인 설정 zone 파일인 jobdahan.dnip.net.zone 파일의 내용 중
설정되어 있는 IP Address만 수정시켜 저장한 후 그 zone 파일을 reload 해주게 할 수 있는 소프트웨어를 만들어
동작하게 하면 아주 유용하겠지요?

BIND9의 설정파일들을 생성하거나 IP Address를 업데이트하는 소프트웨어를
PHP나 Delphi, C++ 등으로 만들 수 있을 것입니다.

여러분들께는 윈도우 명령 셸을 이용하여 BIND9의 모든 설정 파일들을 쉽게 생성하고 IP Update를 할 수 있는 배치 파일
(BINDzSet.cmd)을 배포하도록 하겠습니다.


아래의 기능 소개를 읽어보시고 유용하다는 생각이 드시면 이 글의 댓글로

"BINDzSet.cmd 신청합니다."라고 반드시 신청한 다음에
쪽지 보내 주시기 바랍니다.

그런데요...
DNS 서버가 설치되지 않았다면 이 배치 파일은 아무 소용없지 않겠습니까?
그래서 현재 자신의 서버에 BIND9이 설치되어 있어서 서브 도메인이 설정된 분들께만 드리고자 합니다.
(현재 이 강좌를 통해 DNS 서버를 구축한 분들이 몇 분이나 되는지 파악하고 싶어서이니 널리 양해 해주시길!^^;)

배치 파일 신청 방법은 먼저 앞서 설명한 방법으로 댓글을 올리신 다음 자신의 FTP 서버에 사용자 계정을 하나 만들고
아래의 내용을 저(ID : hats)에게 쪽지로 보내 주시기 바랍니다.

 1) FTP 사용자 계정 ID와 Password( 예 : 아이디 named, Password 2345 )
 2) 접속할 FTP 주소( 예 : ftp.xxx.dnip.net )
 3) 접속할 수 있는 시간대( 예 : 18:00~19:00 )
(파일이 업로드된 것을 확인 후 FTP 계정은 삭제하거나 Password를 변경하시기 바랍니다.)

사용방법은 아래에도 설명되어 있지만 BINDzSet.cmd 파일을 시스템 Path를 지정해 놓았던
C:\APM_Setup\Server\DNS\bin\ 디렉터리에 넣은 다음 cmd 창을 열고 BINDzSet만 입력하십시오.
그러면 아래 내용과 같은 도움말이 나올 것입니다.

BINDzSet.cmd를 사용해 보시면 아시겠지만
명령 중 옵션 입력이 잘못되었을 때에는 그 상황에 맞는 도움말이 자세히 나오게 되어 작성되어 있습니다.
사용법을 익히시지 않더라도 도움말만 보면 쉽게 사용할 수 있을 것입니다.(저의 생각일 뿐...)

Windows OS에 DNS 서버(BIND9)을 설치한 후 설정 파일들을 만들어야 할 때
BINDzSet 명령 한 줄 입력할 때마다 입력한 설정 파일이 자동으로 만들어 질 것입니다.
그리고 곧 바로 그 설정 파일의 내용을 확인해 보실 수 있으며,
BIND9을 재시작시켜 변경 내용을 적용시킬 수 있습니다.

혹시, 좀 더 자세한 사용법 설명이 필요하시다면 댓글 달아 주십시오.
BINDzSet.cmd 사용법 설명 글 올리도록 하겠습니다.

BINDzSet.cmd는 여러분의 환경에 맞게 수정하시고 사용하셔도 됩니다.
단, 다른 곳에 올리지는 말아 주세요.-.-;
윈도우 명령 셸을 공부하시는데에도 도움이 될 것이라 여겨집니다.

앞에서 설명한 [ 직접 IP Update ]의 [2]와 [3] 항목은 BINDzSet.cmd를 사용한다면
다음과 같이 2번의 명령 실행으로 간단히 해결될 것입니다.

BINDzSet Dzone jobdahan.dnip.net 210.95.205.105 2007062015 shop
BINDzSet restart


배포 받는 과정이 귀찮으시다구요?
에~구!
그럼, 저도 할 수 없죠!^^;


[ BINDzSet 사용법 ]
*****************************************************************************************
  명령 형식 : BINDzSet [설정파일명] [HostName] [IP] [Serial] [subD1 [subD2...[subD5]]]
*****************************************************************************************
  ㅇ [설정파일명] : rndc, named.ca, localhost.zone, named.local, named.conf, Dzone 중 하나
  ㅇ [Host Name]  : 네임서버도메인(ns.ID.dnip.net)에서 "ns."을 제외한 이름 ID.dnip.net
  ㅇ [IP]         : 내 컴퓨터의 인터넷 연결 IP 주소  ex) 210.95.205.15
  ㅇ [Serial]     : 이 네임서버의 데이타 버전, 현재 년월일시간으로 정함  ex) 2007050101
  ㅇ subD1 subD2  : 설정할 서브도메인 이름(공백으로 구분해서 5개까지 추가 가능)
                     www, mail, ftp, pds, blog는 기본으로 설정됨  ex) shop cafe commu 등
---------------------------------------------------------------------------------------------------
[ 실행 예 ]
[1] rndc.key, rndc.conf 파일 생성하기
     BINDzSet rndc           ⇒rndc.key 파일과 rndc.conf 파일을 생성
     BINDzSet rndc view   ⇒ 생성되어 있는 rndc.key, rndc.conf 파일 내용 보기

[2] named.ca 파일 생성하기
     BINDzSet named.ca           ⇒ named.ca 파일을 생성
     BINDzSet named.ca view   ⇒ 생성되어 있는 named.ca 파일 내용 보기

[3] localhost.zone 파일 생성하기
     BINDzSet localhost.zone           ⇒ localhost.zone 파일을 생성
     BINDzSetlocalhost.zone view   ⇒ 생성되어 있는 localhost.zone 파일 내용 보기

[4] named.local 파일 생성하기
     BINDzSet named.local           ⇒ named.local 파일을 생성
     BINDzSet named.local view   ⇒ 생성되어 있는 named.local 파일 내용 보기

[5] named.conf 파일 생성하기
     BINDzSet named.conf ID.dnip.net           ⇒ named.conf 파일을 생성
     BINDzSet named.conf view                   ⇒ 생성되어 있는 named.conf 파일 내용 보기

[6] 개별도메인 Zone 파일 생성하기
     BINDzSet Dzone ID.dnip.net xxx.xxx.xxx.xxx 2007050215 shop cafe commu
          ⇒ "ID.dnip.net.zone"이라는 파일명을 갖는 개별도메인 Zone 파일을 생성
               xxx.xxx.xxx.xxx : 인터넷 연결 IP Address, 2007050215 : Serial,
               shop, cafe, commu : 생성시킬 2차 도메인(www, mail, ftp, pds, blog는 기본으로 생성됨)
     BINDzSet Dzone ID.dnip.net view     ⇒ 생성되어 있는 개별도메인 Zone 파일 "ID.dnip.net.zone"의 내용 보기

[ 부가 기능 ]
(1) 내 컴퓨터 인터넷 연결 IP 확인
     BINDzSet ipcheck

(2) BIND9 재 시작
     BINDzSet restart
---------------------------------------------------------------------------------------------------
[ 사용 환경 ]
 1. 이 파일의 이름은 BINDzSet.cmd 이며, Windows용 배치 파일이므로 cmd창에서 실행합니다.
 2. BINDzSet.cmd 파일과 bindzset 폴더를 시스템 Path가 설정되어 있는 C:/APM_Setup/Server/DNS/bin/
    디렉터리에 넣어두고 사용하십시오.
    - bindzset 폴더에는 named.root, Port_Check.exe 파일이 들어가 있어야 합니다.

 3. BIND9이 C:/APM_Setup/Server/DNS/ 디렉터리에 설치되어 있는 환경에 맞게 배치 파일 스크립트가
    작성되어 있으므로 환경이 다를 경우 BINDzSet.cmd를 수정하여 사용하면 됩니다.
    또한 C:/APM_Setup/temp/ 디렉터리도 사용하고 있음을 참고하십시오.
    물론 이 강좌의 내용대로 하셨다면 수정 없이 그대로 사용하시면 됩니다.
 4. BINDzSet의 실행하는 위치는 시스템 Path가 설정되어 있으므로 아무 디렉터리에서나 실행하면 됩니다.

http://jobdahan.net/server_window/17274


현재는 BIND9이 설치되면서 윈도우즈 서비스에 ISC BIND라는 이름으로 등록은 되어 있지만
실행이 되지 않고 있는 상태입니다. 이 ISC BIND 서비스를 시작시켜 주어야 Windows XP가 부팅되면서
named 데몬이 자동으로 실행되게 됩니다.
(Windows XP에서 BIND9의 프로세스 이름은 named.exe이며 서비스 이름은 ISC BIND입니다.)

[시작]-[제어판]-[성능 및 유지관리]-[관리 도구]를 선택하여 관리 도구 창이 열리면
그 곳에서 [서비스]를 더블클릭하여 서비스 창을 엽니다.

그 서비스 창에서 ISC BIND 라는 이름의 서비스(상태 필드에 “시작됨”이라는 글자가 표시되지 않은 상태입니다.)를 찾아
오른쪽 클릭하여 단축메뉴에서 [속성]을 선택하면 ISC BIND 속성 창이 열립니다.
(이 속성 창을 여는 경로를 잘 기억해 두시기 바랍니다.)

아래의 그림과 같이 ISC BIND 속성 창의 [로그온] 탭을 클릭합니다.

BIND9을 설치하면서 로그온 계정 이름을 named라 하고 암호를 입력했을 것입니다.
그렇기 때문에 현재는 .\named 사용자 계정으로 선택되어져 있습니다.

이 .\named 라는 사용자 계정을 다음의 방법으로 로컬 시스템 계정으로 변경시켜 주어야만
named 데몬을 시작할 수 있게 됩니다.

아래의 왼쪽 그림과 같이 .\named 사용자 계정으로 선택되어 있는 상태를 [로컬 시스템 계정]으로 변경시키고
반드시 [적용] 버튼을 클릭합니다. 적용이 되면 [적용] 버튼은 비활성화 상태로 표시됩니다.

그 다음 오른쪽 그림과 같이 [일반] 탭을 클릭하고 “서비스 상태 :”라는 글자 바로 아래에 있는 [시작] 버튼을 클릭합니다.
서비스를 시작 상태를 나타내는 아래와 같은 서비스 제어 창이 열렸다가 자동으로 닫힐 것입니다.

서비스 제어 창이 닫히고 [시작] 버튼이 비활성화 상태가 되면 [ISC BIND 서비스]가 시작된 것입니다.

만약, 아래 그림과 같은 메시지가 나오면서 ISC BIND가 시작되지 않을 경우
[로그온] 탭에서 로컬 시스템 계정으로 변경시킨 다음 [적용] 버튼을 누르지 않은 채로 [일반] 탭에서 [시작] 버튼을
눌렀기 때문입니다.(저는 이 것 때문에 스트레스 엄청 받았었는뎅... 여러분들은 저 같은 실수 안 하시겠죠?)


이제 지속적인 서비스 실행이 되었으니 [확인] 버튼을 눌러 ISC BIND 속성 창을 닫고,
서비스 창에서 ISC BIND가 서비스되고 있는 상황을 보면
아래 그림과 같이 “시작됨”, “로컬 시스템”이라는 글자가 보일 것입니다.

[Ctrl+Alt+Del] 키를 눌러서 Windows 작업관리자 창의 [프로세스] 탭에서도 확인할 수 있습니다.
Windows 작업관리자 창의 프로세스 탭에서 named.exe라는 프로세스가 보일 것입니다.


현재 DNS 서버가 구동되어 네임 서비스를 하고 있는 중이며,
다음부터는 부팅하게 되더라도 자동으로 ISC BIND 서비스가 시작될 것입니다.
즉, DNS 서버가 동작하게 된다는 말이 되겠지요?


이제 ISC BIND를 서비스로 등록했으므로 실제 동작을 확인하기 위해서 서버 컴퓨터를 재부팅하여
다시 동작을 확인해 보도록 하십시오.

[6. BIND9 동작 테스트]의 3) 네임서버 질의 명령어 nslookup으로 확인, 4) ping 명령으로 전송 응답 테스트 과정을
다시 시도하여 마무리 동작 테스트하시길 바랍니다.


드디어 Windows XP에 DNS 서버(BIND9)을 모두 설치하고 설정한 다음
정상적인 동작까지 될 수 있도록 서비스 등록까지 하여
네임서버를 구동시켰으며 현재 네임 서비스를 하고 있는 중입니다.

http://jobdahan.net/server_window/17272


DNS 서버인 BIND9을 본격적으로 구동시키기에 앞서 지금까지 설치/설정한 모든 사항들이 실제적으로 정상적인
동작을 하고 있는지 테스트 해 볼 것입니다.

DNS 서버의 데몬(named.exe)을 명령 창(cmd)에서 임시 실행시켜서 에러 유무 확인,
프로세스 창에서 실행된 데몬 확인,
네임서버 질의 명령어 nslookup으로 서브 도메인의 IP 주소 확인 및 ping 명령어로 전송 응답 테스트를 하여
DNS 서버(BIND9의 named)가 정상적으로 동작하고 있는지 확인합니다.


 1) 명령 창(cmd)에서의 named.exe 실행

   C:\APM_Setup\Server\DNS\bin\ 디렉터리에 named.exe 파일이 있는데
   그 디렉터리는 미리 Path를 설정해 주었으므로 cmd 창에서 현재 디렉터리를 이동시키지 않고
   곧 바로 named.exe를 실행할 수 있습니다.

   [시작]-[실행]-cmd 입력하여 cmd 창을 열어서 named.exe -g 라는 명령어를 입력하고 Enter 키를 치면
   아래와 같은 실행 상태가 보여 지고 C:\Documents and Settings\hats>라는 프롬프트가 표시되지 않은 채
   맨 아래에 커서가 깜박거리면서 named 데몬이 실행됩니다.

명령 프롬프트(cmd) 창(에러없이 실행된 예)

C:\Documents and Settings\hats>named -g

30-4-2007 13:58:28.986 starting BIND 9.4.0 -g
30-4-2007 13:58:29.002 found 2 CPUs, using 2 worker threads
30-4-2007 13:58:29.002 loading configuration from 'C:\APM_Setup\Server\DNS\etc\named.conf'
30-4-2007 13:58:29.002 listening on IPv4 interface Loopback Interface 1, 127.0.0.1#53
30-4-2007 13:58:29.002 listening on IPv4 interface TCP/IP Interface 2, 192.168.2.12#53
30-4-2007 13:58:29.017 automatic empty zone: 127.IN-ADDR.ARPA
30-4-2007 13:58:29.017 automatic empty zone: 254.169.IN-ADDR.ARPA
30-4-2007 13:58:29.017 automatic empty zone: 2.0.192.IN-ADDR.ARPA
30-4-2007 13:58:29.017 automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
30-4-2007 13:58:29.017 automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
.0.0.0.0.IP6.ARPA
30-4-2007 13:58:29.017 automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
.0.0.0.0.IP6.ARPA
30-4-2007 13:58:29.017 automatic empty zone: D.F.IP6.ARPA
30-4-2007 13:58:29.017 automatic empty zone: 8.E.F.IP6.ARPA
30-4-2007 13:58:29.017 automatic empty zone: 9.E.F.IP6.ARPA
30-4-2007 13:58:29.017 automatic empty zone: A.E.F.IP6.ARPA
30-4-2007 13:58:29.017 automatic empty zone: B.E.F.IP6.ARPA
30-4-2007 13:58:29.033 command channel listening on 127.0.0.1#953
30-4-2007 13:58:29.033 ignoring config file logging statement due to -g option
30-4-2007 13:58:29.049 zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
30-4-2007 13:58:29.049 zone localhost/IN: loaded serial 42
30-4-2007 13:58:29.049 zone jobdahan.dnip.net/IN: loaded serial 2007042710
30-4-2007 13:58:29.049 running
_

   실행 상태를 보고 에러가 있는지 확인합니다. 만약 에러가 있으면 그 메시지를 확인하시고 설정 파일을 꼼꼼히 확인해 주시기
   바랍니다. 위의 경우는 에러가 없이 실행된 상태의 한 예입니다.

   [주의] 이 때 cmd 창을 닫으면 named 데몬의 실행이 중지되어 버립니다.
              그러므로 동작 테스트가 끝날 때까지 반드시 cmd 창을 닫지 않도록 합니다.
              커서가 깜박거리고 있는 그대로 그냥 놔 두십시오.^^;

   [참고] 분명 모든 구문을 이상 없이 입력해 주었는데도 zone 파일을 정상적으로 읽어 들이지 못해 동작이 되지 않는 경우가
   있을 수 있습니다. 아마 텍스트 에디터로 편집하면서 파일의 끝에 들어가는 보이지 않는 코드 때문이지 않았는지 짐작만 할
   뿐입니다. 그렇지만 스트레스는 받지 마십시오. 해결 방법이 없겠습니까?

   아래와 같은 에러 메시지가 나올 경우에는 해당되는 파일을 아예 삭제하시고,
   에러난 파일을 이번에는 메모장을 이용하여 처음부터 다시 입력하여 만드시길 바랍니다.

named.local:11: file does not end with newline
dns_rdata_fromtext: jobdahan.dnip.net.zone:17: unexpected end of input
one jobdahan.dnip.net/IN: loading from master file jobdahan.dnip.net.zone failed: unexpected end of input

   저도 처음 DNS 서버 구축할 때 이 것 때문에 스트레스 엄청 받았습니다.
   혹시라도 설정 파일 내용을 이상 없이 입력했는데도 에러 메시지가 나올 경우 댓글로 에러 메시지와 함께
   에러가 발생된 설정파일 내용도 올려 주시면 같이 해결해 보기로 하겠습니다.


 2) named 데몬 프로세스 확인

   에러가 없을 경우 [Ctrl+Alt+Del] 키를 눌러서 Windows 작업관리자 창을 연 다음
   [프로세스] 탭을 클릭하여 아래 그림과 같이 named.exe가 실행되고 있는지 확인합니다.


 3) 네임서버 질의 명령어 nslookup으로 확인

   named 데몬이 동작되고 있음을 확인했으니 네임서버 질의 명령어(nslookup)를 이용해서
   서브 도메인의 IP 주소를 확인해 볼 차례입니다.

   [시작]-[실행]-cmd 입력하여 cmd 창을 하나 더 열어 놓습니다.
   (왜냐구요? 아까 열어 놓았던 cmd 창은 named 데몬을 실행 중인데 그 창에서 다른 명령을 실행시키기 위해 프롬프트가
    나오게 하려면 named를 중지시켜야 하고, 글케되믄 named 동작을 확인해 볼 수 없게 되기 땜시...)

   새로 열린 cmd 창에서 아래와 같이 nslookup[Enter]을 입력하여 nslookup 모드로 들어갑니다.
   프롬프트가>로 바뀌었을 것입니다.

   이제 생성시킨 서브 도메인들을 각각 입력하여 질의 했을 때 IP 주소가 표시되면
   그 주소가 위에서 작성했던 zone 파일인 jobdahan.dnip.net.zone에서 설정했던 주소인지 확인합니다.
   210.95.205.15 이면 정상적으로 잘 설정되어 동작되고 있는 것입니다.

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats>nslookup
Default Server:  cns3.bora.net
Address:  203.248.252.2

www.jobdahan.dnip.net
Server:  cns3.bora.net
Address:  203.248.252.2

Name:    www.jobdahan.dnip.net
Address:  210.95.205.15

jobdahan.dnip.net
Server:  cns3.bora.net
Address:  203.248.252.2

Name:    jobdahan.dnip.net
Address:  210.95.205.15

mail.jobdahan.dnip.net
Server:  cns3.bora.net
Address:  203.248.252.2

Name:    mail.jobdahan.dnip.net
Address:  210.95.205.15

ftp.jobdahan.dnip.net
Server:  cns3.bora.net
Address:  203.248.252.2

Name:    ftp.jobdahan.dnip.net
Address:  210.95.205.15

shop.jobdahan.dnip.net
Server:  cns3.bora.net
Address:  203.248.252.2

Name:    shop.jobdahan.dnip.net
Address:  210.95.205.15

exit
C:\Documents and Settings\hats> _

   확인이 끝났으면 exit 명령으로 nslookup 모드를 빠져 나옵니다.


 4) ping 명령으로 전송 응답 테스트

   이 번에는 설정된 도메인으로 패킷 데이터(Packet Data)를 보내고 그 응답 상태를 확인하기 위해 방금 nslookup 명령을
   사용했던 cmd 창에서 ping 서브도메인[Enter]의 명령 형식으로 각 도메인들을 테스트합니다.
   nslookup으로 확인이 잘 되었다면 ping 테스트 결과도 정상적일 것입니다.

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats>ping jobdahan.dnip.net

Pinging jobdahan.dnip.net [210.95.205.15] with 32 bytes of data:

Reply from 210.95.205.15: bytes=32 time=1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255

Ping statistics for 210.95.205.15:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

C:\Documents and Settings\hats>ping www.jobdahan.dnip.net

Pinging www.jobdahan.dnip.net [210.95.205.15] with 32 bytes of data:

Reply from 210.95.205.15: bytes=32 time<1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255

Ping statistics for 210.95.205.15:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Documents and Settings\hats>ping shop.jobdahan.dnip.net

Pinging shop.jobdahan.dnip.net [210.95.205.15] with 32 bytes of data:

Reply from 210.95.205.15: bytes=32 time<1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255
Reply from 210.95.205.15: bytes=32 time<1ms TTL=255

Ping statistics for 210.95.205.15:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Documents and Settings\hats> _

   ping 검사 결과 모두 Packets: Sent = 4, Received = 4, Lost = 0 (0% loss) 임을 알 수 있습니다.
   즉, 4개의 패킷 데이터를 보내서 4개 모두 받아 손실이 0 이라는 의미입니다.

   여기의 예에서는 3개 도메인에 대해서만 확인해 보았지만 여러분들은 설정한 서브 도메인 모두 확인해 보시기 바랍니다.


이제 DNS 서버(BIND9)의 동작 확인이 끝났으니 cmd 창을 두 개 모두 닫아도 좋습니다.
named가 실행되었던 cmd 창을 닫은 다음
Windows 작업관리자 창의 [프로세스] 탭을 보면 named 데몬의 실행이 중지되어 사라지고 없음을 알 수 있습니다.


자, 지금까지의 작업이 순조롭게 잘 되었습니까?

혹시라도 문제가 있으면 글을 올려 주시기 바랍니다.

작업이 잘 되었다면 이제는 임시가 아닌 정상적인 서비스가 되게 설정할 차례입니다.

 설정 파일의 마지막으로 개별 도메인에 대한 zone 파일을 만들어 주어야 합니다.
 만들 zone 파일의 이름은 zone "jobdahan.dnip.net"에서 정의한 zone 이름(Zone Name)에 “.zone"을 붙여 주는 것이
 일반적인 방법입니다.

 물론 이 zone 파일 역시 \etc 디렉터리 즉, C:\APM_Setup\Server\DNS\etc\ 디렉터리에 위치하고 있어야 합니다.
 named.conf 파일의 options 블록에서 directory "C:\APM_Setup\Server\DNS\etc";로 정의했기 때문이지요.

 바로 이 zone 파일에서 실제 사용하게 되는 도메인과 서브 도메인들을 설정해 주게 됩니다.
 도메인 설정의 핵심이라고 할 수 있겠지요?
 그래서 이 부분은 조금 더 자세하게 설명하기로 하겠습니다.

 앞에서 설명한 named.conf 파일의 맨 아래 부분에 다음과 같은 zone 블록이 있었을 것입니다.

zone "jobdahan.dnip.net" IN {
 type master;
 file "jobdahan.dnip.net.zone";
 allow-update { none; };
};


 위의 구문에서 file "jobdahan.dnip.net.zone";은 jobdahan.dnip.net.zone 파일로 네임 서비스를 하겠다는 설정이므로
 아래의 설명과 같은 내용의 jobdahan.dnip.net.zone 파일을 만들어 주어야 합니다.

[ 예 1] C:\APM_Setup\Server\DNS\etc\jobdahan.dnip.net.zone 파일의 내용

$TTL 43200
@    IN    SOA    ns.jobdahan.dnip.net.    root.jobdahan.dnip.net. (
                        2007042710  ; 시리얼 값 (년월일시간)으로 대부분 셋팅
                        3H              ; 2차 네임서버가 1차 네임서버에 접속하는 시간
                        15M            ; 접속 실패 시 다시 시도할 시간 간격
                        1W              ; 1차 네임서버에서 데이터가 없다면 1주 이후에 지워진다.
                        1D )            ; 위에서 설정한 TTL 값과 같은 의미
;
; Name Server
      IN     NS      ns.jobdahan.dnip.net. ; 도메인을 소유한 DNS의 도메인
      IN     MX 10  mail.jobdahan.dnip.net. ; 메일을 보낼 도메인 또는 주소
      IN     A         210.95.205.15  ; 도메인이 찾아갈 IP 주소
;
; Host name
ns   IN    A         210.95.205.15  ;
;
; Virtual Host
www    IN    A   210.95.205.15  ; www.도메인이 찾아갈 IP주소
mail     IN    A   210.95.205.15  ; 메일서버 아이피
ftp        IN    A   210.95.205.15  ; FTP서버 아이피
*          IN    A   210.95.205.15  ; 모든 서브 도메인이 찾아갈 서버 ip 주소

 다음은 위의 내용에 대한 설명입니다.

  a) SOA ns.jobdahan.dnip.net. : 해당 도메인(ORIGIN : jobdahan.dnip.net)에 대하여 이 곳에 설정한 네임서버
     (ns.jobdahan.dnip.net : DNIP 사이트에서 무료 서비스 받은 도메인)가 모든 정보를 가지고 있음을 선언하고 있습니다.
     도메인 끝 부분에 마침표 “.”을 붙이고 있는 것에 유의하십시오.

  b) root.jobdahan.dnip.net. :  jobdahan.dnip.net이라는 도메인의 관리자 Email 주소에 해당합니다.
     이 구문은 root@jobdahan.dnip.net을 의미하는 것으로 @기호 대신에 .(dot)을 사용하여
     root.jobdahan.dnip.net.으로 입력합니다.

  c) IN NS ns.jobdahan.dnip.net.;
     해당 도메인(jobdahan.dnip.net)의 네임서버(ns.jobdahan.dnip.net)를 지정하는 곳입니다.

  d)IN MX 10 mail.jobdahan.dnip.net.;
     MX는 Mail eXchanger의 약어로서 해당 도메인(jobdahan.dnip.net)의 메일서버를 지정하는 곳입니다.
     (지금은 메일서버가 구축되어 있지 않아 이 부분은 삭제해도 되지만 나중에 메일서버를 사용하게 될 때에는
     삽입하여야 합니다.)

  e) IN A 210.95.205.15 ;
    해당 도메인(jobdahan.dnip.net)의 IP 주소가 210.95.205.15(자신의 컴퓨터 외부 인터넷 연결 IP 주소)임을 설정합니다.

  f) ns IN A 210.95.205.15 ;
    ns.jobdahan.dnip.net의 IP 주소가 210.95.205.15임을 설정합니다.

  g) 서브 도메인 설정 ~ 각 서브 도메인들에 해당하는 IP 주소를 설정합니다.

www     IN    A     210.95.205.15 ;
mail      IN    A     210.95.205.15 ;
ftp         IN    A     210.95.205.15 ;
*           IN    A     210.95.205.15 ;

ㅇ www IN A 210.95.205.15; : www.jobdahan.dnip.net의 IP 주소가 210.95.205.15 임을 설정합니다.

ㅇ mail  IN A 210.95.205.15; : mail.jobdahan.dnip.net의 IP 주소가 210.95.205.15 임을 설정합니다.
    (이 부분은 현재 메일서버를 사용하고 있지 않으므로 사용하지 않을 것이지만 나중에 메일서버를 사용하게 될 때에는
     삽입하여야 합니다.)

ㅇ ftp  IN A 210.95.205.15; : ftp.jobdahan.dnip.net의 IP 주소가 210.95.205.15 임을 설정합니다.
    (이 부분 역시 반드시 들어가야 할 부분은 아니며 ftp.jobdahan.dnip.net이라는 도메인이 필요할 경우에 삽입하면
     됩니다.)

ㅇ *   IN A 210.95.205.15; : 앞에서 정의하지 않은 나머지 모든(*) 서브 도메인들의 IP 주소가 210.95.205.15임을 설정합니다.
    이 방법은 특정 이름의 도메인이 정해지지 않았을 경우 무조건 기본 도메인으로 사용하고 있는 jobdahan.dnip.net으로
    매핑(mapping) 처리되도록 한다든지, 또는 오타로 인한 도메인은 특정 도메인으로 처리하도록 할 때에 유용한 방법이
    될 수 있을 것입니다.(여기에서는 사용하지 않도록 하겠습니다.)

  위의 설명을 참고하여 자신의 환경에 맞게 내용을 메모장이나 텍스트 에디터로 작성한 다음 이 파일 역시 다른 zone 파일들이
  있는 C:\APM_Setup\Server\DNS\etc\ 디렉터리에 jobdahan.dnip.net.zone 이라는 파일명으로 저장합니다.
  (작성할 때 아래의 [예 2] 내용을 샘플로 하시기 바라며, 주홍색 글자만 수정하시면 될 것입니다.)

  [작성 시 주의사항]  1. 도메인 뒤에 붙어 있는 .(점)을 필히 입력하시고,
                              2. 모든 공백 라인은 “;” 문자로 주석 처리하시길 바랍니다.

  여기에서는 ORIGIN 인 jobdahan.dnip.net을 비롯하여 www.jobdahan.dnip.net, mail.jobdahan.dnip.net,
  ftp.jobdahan.dnip.net, shop.jobdahan.dnip.net이라는 jobdahan.dnip.net의 서브 도메인들을 생성하게 하는
  jobdahan.dnip.net.zone 파일 작성하는 예를 들어 보겠습니다.

[ 예 2] C:\APM_Setup\Server\DNS\etc\jobdahan.dnip.net.zone 파일의 내용

$TTL 43200
@            IN    SOA       ns.jobdahan.dnip.net.    root.jobdahan.dnip.net. (
                                   2007042710  ; 시리얼 값 (년월일시간)으로 대부분 셋팅
                                   3H  ; 2차 네임서버가 1차 네임서버에 접속하는 시간
                                   15M  ; 접속 실패 시 다시 시도할 시간 간격
                                   1W  ; 1차 네임서버에서 데이터가 없다면 1주 이후에 지워진다.
                                   1D )  ; 위에서 설정한 TTL 값과 같은 의미
; Name Server
              IN     NS     ns.jobdahan.dnip.net. ; 도메인을 소유한 DNS의 도메인
              IN     A       210.95.205.15  ; 도메인이 찾아갈 IP 주소
; Host name
ns           IN    A        210.95.205.15  ;
; Virtual Host
www       IN    A       210.95.205.15  ; www.도메인이 찾아갈 IP주소
mail        IN    A       210.95.205.15  ; mail.도메인이 찾아갈 IP주소
ftp           IN    A       210.95.205.15  ; ftp.도메인이 찾아갈 IP주소
shop       IN    A       210.95.205.15  ; shop.도메인이 찾아갈 IP주소


 [ 개별도메인 zone 파일의 유효성 검사(zone file validity checking) ]

  BIND9의 동작 테스트를 하기 전에 먼저 etc 디렉터리에 있는 jobdahan.dnip.net.zone 파일이 유효한지 검사해 보기로
  하겠습니다.

  이 작업은 DNS 서버 구축의 성공 여부를 가늠할 수 있는 마지막 과정이기 때문에 이 검사에서 에러 메시지가
  하나도 나오지 않아야만 합니다.
 만약 에러 메시지가 나오면 그 에러메시지 내용을 잘 살펴본 후 반드시 그 부분을
  해결하시기 바랍니다.

  [시작]-[실행]-cmd 입력하여 cmd 창을 열고, 현재의 디렉터리를 C:\APM_Setup\Server\DNS\etc\ 디렉터리로
  이동시킨 후 다음 형식과 같은 명령을 입력합니다.

형식 : named-checkzone {zonename} {filename}

  예) named-checkzone  jobdahan.dnip.net  jobdahan.dnip.net.zone

아래와 같이 에러 메시지가 없이 표시되면 모든 설정이 잘 되었음을 나타냅니다.

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats>cd\APM_Setup\Server\DNS\etc[Enter]

C:\APM_Setup\Server\DNS\etc>named-checkzone jobdahan.dnip.net jobdahan.dnip.net.zone[Enter]
zone jobdahan.dnip.net/IN: loaded serial 2007042710
OK

C:\APM_Setup\Server\DNS\etc>

다음은 에러 메시지의 예입니다. 참고하시기 바랍니다.

에러 메시지 [예 1]

C:\APM_Setup\Server\DNS\etc>named-checkzone jobdahan.dnip.net jobdahan.dnip.net.zone
zone jobdahan.dnip.net/IN: NS 'ns.jobdahan.dnip.net.jobdahan.dnip.net' has no address records (A or
AAAA)
zone jobdahan.dnip.net/IN: loaded serial 2007042710
OK
[설명] IN NS ns.jobdahan.dnip.net 구문에서 끝부분에 점(.)이 없기 때문에 표시되는 메시지

에러 메시지 [예 2]

C:\APM_Setup\Server\DNS\etc>named-checkzone jobdahan.dnip.net jobdahan.dnip.net.zone
zone jobdahan.dnip.net/IN: NS 'ns.jobdahan.dnip.net' has no address records (A or AAAA)
zone jobdahan.dnip.net/IN: loaded serial 2007042710
OK
[설명] ns IN A 210.95.205.15 ; 라는 구문이 없기 때문에 표시되는 메시지

에러 메시지 [예 3]

C:\APM_Setup\Server\DNS\etc>named-checkzone jobdahan.dnip.net jobdahan.dnip.net.zone
jobdahan.dnip.net.zone:20: pc_book.jobdahan.dnip.net: bad owner name (check-names)
zone jobdahan.dnip.net/IN: loaded serial 2007042710
OK
[설명] zone 파일의 20번 행에서 pc_book IN A 210.95.205.15 ;이라 설정하여 서브 도메인 이름으로 사용할 수 없는 언더바(underbar, “_”)를 사용했기 때문에 표시되는 메시지. 하이픈(hyphen, "-")은 사용 가능함


이제 마지막 설정 파일인 jobdahan.dnip.net.zone 파일이 추가 되었습니다.
C:\APM_Setup\Server\DNS\etc\ 디렉터리에 모두 7개의 설정 파일들이 있을 것입니다.

수고 많이 하셨습니다...!

 a) named.ca 파일 만들기

   강좌 첫 부분 DNS 개념에서 설명했듯이 모든 네임서버는 반드시 최상위 도메인인 루트도메인에 대한 정보를
   가지고 있어야 하는데 바로 named.ca 파일에 루트도메인에 대한 정보가 들어가 있어야 합니다.

   아래 링크된 INTERNIC 사이트에 접속해 보면 여러 개의 파일들이 보이는데, 그 중에서 루트도메인에 대한 정보가
   들어가 있는 named.root 파일만을 다운로드하여 C:\APM_Setup\Server\DNS\etc\ 디렉터리에 저장 한 뒤에
   파일명을 named.ca로 바꾸어주면 됩니다.(클릭한 뒤 쪼께 기다리셔야 창이 열립니다...-.-;)

루트도메인파일 다운로드 링크 : ftp://ftp.rs.internic.net/domain/

   루트도메인 파일(named.root => named.ca)은 1년에 2번 정도 위의 URL에서 다운받아 업그레이드 해주는 것이 좋습니다.


 b) localhost.zone 파일 생성

   localhost라는 도메인의 IP 주소는 127.0.0.1임을 설정한 파일로써
   이 주소는 외부가 아닌 내부 즉, 자기 자신을 가리키는 것으로써 루프 백(loop-back)을 의미합니다.
   각 지시자들과 항목들에 대한 자세한 설명은 리눅스 전문서적의 도메인네임서버 항목을 참고하시기 바랍니다.

   어느 네임서버에서나 localhost는 127.0.0.1이라는 IP 주소를 가리켜야 하므로 아래의 내용과 똑같이 입력하여
   localhost.zone 파일을 작성하면 됩니다.

   작성을 마친 다음 C:\APM_Setup\Server\DNS\etc\ 디렉터리에 localhost.zone 이라는 파일명으로 저장합니다.

C:\APM_Setup\Server\DNS\etc\localhost.zone 파일의 내용

$TTL 86400
@    IN   SOA     @       root (
       42          ; serial (d. adams)
       3H         ; refresh
       15M       ; retry
       1W         ; expiry
       1D )       ; minimum

       IN    NS     @
       IN    A       127.0.0.1


 [ localhost.zone 파일의 유효성 확인 ]

   파일 내용 입력 과정에서 실수하지 않았는지 named-checkzone.exe 유틸리티를 이용하여
   내용의 유효성을 검사해 보기로 합니다.

   cmd 창을 열고 cd 명령으로 현재 디렉터리를 유효성 검사 대상 파일 localhost.zone이 있는
   C:\APM_Setup\Server\DNS\etc로 이동시킨 후 아래와 같은 명령으로 localhost.zone 파일의 유효성을 검사합니다.


   현재 디렉터리를 \etc 디렉터리로 이동시키는 명령 cd C:\APM_Setup\Server\DNS\etc(Enter)

   ( 현재 디렉터리를 \etc 디렉터리로 이동시키지 않으면 localhost.zone 파일이 존재하고 있는 경로를 다음과 같이 명령에
     포함시켜 입력해야 되겠지요?
     C:\Documents and Settings\hats>named-checkzone localhost C:\APM_Setup\Server\DNS\etc\localhost.zone )

   다른 에러 메시지가 나오지 않고 아래와 같이 표시되면 정상적으로 잘 작성되었음을 나타냅니다.

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats>cd C:\APM_Setup\Server\DNS\etc

C:\APM_Setup\Server\DNS\etc>named-checkzone localhost localhost.zone
zone localhost/IN: loaded serial 42
OK


 c) named.local 파일 생성

   localhost 도메인의 Inverse Domain에 대한 정보를 설정한 파일로써
   IP 127.0.0.1은 localhost 도메인을 가리키게 설정하고 있습니다.
   각 지시자들과 항목들에 대한 자세한 설명은 리눅스 전문서적의 도메인네임서버 항목을 참고하시기 바랍니다.

   이 파일 역시 별도로 수정할 필요가 없으며, 이 내용 그대로 입력하여 작성한 뒤
   C:\APM_Setup\Server\DNS\etc\ 디렉터리에 named.local 이라는 파일명으로 저장합니다.
   (주의 : localhost 뒤에 있는 “.”을 반드시 넣도록 하십시오.)

C:\APM_Setup\Server\DNS\etc\named.local 파일의 내용

$TTL  86400
@    IN    SOA        localhost.    root.localhost. (
                            1997022700 ; Serial
                            28800         ; Refresh
                            14400         ; Retry
                            3600000      ; Expire
                            86400 )       ; Minimum
       IN      NS        localhost.

1     IN      PTR       localhost.


[ named.local 파일의 유효성 확인 ]

  cmd 창을 열고 cd 명령으로 현재 디렉터리를 C:\APM_Setup\Server\DNS\etc로 이동시킨 후
  다음과 같은 명령으로  named.local 파일의 유효성을 검사합니다.

  아래와 같이 표시되면 정상적으로 잘 작성되었음을 나타냅니다.

명령 프롬프트(cmd) 창

C:\APM_Setup\Server\DNS\etc>named-checkzone named.local named.local
zone named.local/IN: loaded serial 1997022700
OK


   이제 C:\APM_Setup\Server\DNS\etc\ 디렉터리에 named.ca, localhost.zone, named.local 파일 3개가 추가되어
   6개가 되었을 것입니다.

   앞으로 개별 도메인 설정 zone 파일(예 : jobdahan.dnip.net.zone) 1개만 더 만들면 됩니다.

'Programming > tool' 카테고리의 다른 글

06) BIND9 동작 테스트  (0) 2010.03.19
05) 개별 도메인 zone 파일 만들기  (1) 2010.03.19
03) named.conf 파일 만들기  (0) 2010.03.19
02) [DNS for XP] BIND9에서 named.conf, zone 파일 설정  (0) 2010.03.19
01) XP에 DNS 설치  (0) 2010.03.19

 named.conf 파일은 DNS 서버 데몬인 named의 기본 설정 파일입니다.

 즉, 각종 설정 파일들이 어디에 있는지,
 rndc로 named 제어를 허용 할 것인지 여부와 key 값은 어떻게 되는지,
 루트도메인(.)들을 지정하고 있는 파일은 무엇인지,
 localhost의 IP 주소를 지정한 파일은 무엇인지,
 또 127.0.0.1이 가리키는 도메인을 설정한 파일은 무엇인지,
 하부 도메인(서브 도메인)들이 가리키고 있는 IP 주소를 지정한 파일은 무엇인지를
 기록해둔 파일입니다.

 이 파일은 rndc.key, rndc.conf 파일과 같이 자동 생성되는 것이 아니라
 여러분이 사용하고자 하는 네임서버의 용도에 맞게 메모장이나 텍스트 에디터를 이용하여 직접 만들어 주어야 합니다.

아래의 named.conf 파일 샘플을 참고하여 메모장이나 텍스트 에디터(Edit Plus, Ultra Edit 등)로
자신의 컴퓨터 C:\APM_Setup\Server\DNS\etc\ 디렉터리에 named.conf 파일을 만들기 바랍니다.
이 때 유의할 점은 공백 한 자만을 제외하고 두 자 이상은 탭(Tab) 키를 이용하여 입력하시기 바라며 주석문은 // 입니다.

한글로 설명된 주석 부분(청색 글자)은 모두 입력하지 마시고, 주홍색 글자만 자신의 환경에 맞게 수정하고
나머지는 그대로 입력하시면 됩니다.
.(dot), ;(semicolon) 하나라도 잘못 입력하면 에러가 발생하게 되니 유의해서 작성하시기 바랍니다.

C:\APM_Setup\Server\DNS\etc\named.conf 파일의 내용

options {
 directory "C:\APM_Setup\Server\DNS\etc";       // 네임서버의 zone 파일들이 위치한 경로
};

controls {
 inet 127.0.0.1 allow { localhost; } keys { rndc-key; };    // 로컬(localhost, 127.0.0.1)에서 인증키(rncd-key)를 이용해
};                                                                             // named 데몬 제어를 허용한다는 설정

zone "." IN {
 type hint;
 file "named.ca";                            // 이 네임서버의 루트도메인(.)에 대한 정보는 named.ca라는 파일에 있다는 설정
};                                                   // 그러므로 위의 directory에서 지정한 경로에 named.ca 파일이 존재해야 됨

zone "localhost" IN {
 type master;
 file "localhost.zone";                // 이 네임서버의 localhost 도메인에 대한 정보는 localhost.zone 파일에 있다는 설정
 allow-update { none; };               // etc 디렉터리에 localhost.zone 파일이 존재해야 됨
};

zone "0.0.127.in-addr.arpa" IN {
 type master;
 file "named.local";                    // localhost의 Inverse Domain에 대한 정보는 named.local 파일에 있다는 설정
 allow-update { none; };               // named.local 파일 역시 /etc 디렉터리에 존재해야 됨
};

include "C:\APM_Setup\Server\DNS\etc\rndc.key";
                                                 // rndc.key 파일이 존재하고 있는 경로와 파일명

zone "jobdahan.dnip.net" IN {   // 여기에서 jobdahan.dnip.net은 zone Name 에 해당하며, zone Name은
 type master;                              // www.dnip.net 사이트에서 무료 서비스 받은 도메인에서 ns를 제외한 도메인 명
 file "jobdahan.dnip.net.zone";
                                       // 서비스 받고 있는 도메인에서 ns를 제외하고 확장자로 .zone을 붙인 명칭 사용이 일반적임
                                       // jobdahan.dnip.net.zone 파일을 zone 파일로 하여 네임서비스를 하겠다는 설정
 allow-update { key "rndc-key"; };
};                                    //rndc-key 값으로jobdahan.dnip.net.zone 파일의 업데이트를 허용하겠다는 설정 



[ named.conf 파일의 문법 확인 ]

자, 이제 named.conf 파일을 다 작성하였으니 문법에 틀림이 없는지 검사해 봅시다.

이 문법이 틀리면 DNS 서버가 아예 동작하지 않게 됩니다. 그 만큼 중요한 것이므로 문법 검사하는 툴(tool)까지 있는 것
아니겠습니까?

named.conf 내용의 문법을 검사해주는 유틸리티는 C:\APM_Setup\Server\DNS\bin\named-checkconf.exe 파일
입니다. 검사하는 방법은 아래와 같으며, 이상이 있을 때만 잘못된 곳을 알려주는 메시지가 표시되고 이상이 없을 때는
아무런 표시가 되지 않습니다.

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats>named-checkconf C:\APM_Setup\Server\DNS\etc\named.conf

C:\Documents and Settings\hats>_

(named.conf 파일의 문법이 틀리지 않았을 경우 임)


에러 메시지가 표시되면 그 내용에 따라 named.conf 파일을 수정하고, 아무런 표시가 없을 때까지 검사합니다.

[ 에러 메시지 예 ]

C:\APM_Setup\Server\DNS\etc>named-checkconf named.conf
named.conf:35: missing ';' before end of file

named.conf 파일의 35행 문장 끝에 ';'이 없다는 메시지입니다.
즉,
 allow-update { key "rndc-key"; };
}
으로 되어 있다는 내용이므로 }를 }; 로 수정하고 다시 검사해 봅니다.

C:\APM_Setup\Server\DNS\etc>named-checkconf named.conf
named.conf:7: unknown key 'rndckey'

named.conf 파일의 7행에 입력되어 있는 rndckey 키를 알 수 없다는 메시지입니다.
rndc.key 파일의 내용을 확인해 보면 key 이름이 key "rndc-key"로 정의되어 있음을 알 수 있습니다.
named.conf의 7행 inet 127.0.0.1 allow { localhost; } keys { rndckey; };의 rndckey를 rndc-key로 수정하고
다시 검사해 봅니다.


이제 C:\APM_Setup\Server\DNS\etc\ 디렉터리에 rndc.key, rndc.conf, named.conf 파일 3개가 되었을 것입니다.
앞으로 4개의 파일이 더 있어야 합니다.

 named.ca
========================================================
ftp://ftp.rs.internic.net/domain으로 접속한다.
named.cache 파일을 받아서 확장자를 named.ca로 바꿔준다.
접속이 잘 되지 않으면 첨부 파일을 사용한다.

named.zip - Last update : 2004년 01월 28일 ← 첨부파일========================================================

☆ named.conf
- 빨간색 부분을 변경하여 저장
========================================================
options {
directory "c:\dns\etc"; <- 설치 경로명
};

zone "." IN {
type hint;
file "named.ca"; 
};
zone "localhost" IN {
type master;
file "scmlab.zone";
allow-update {none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update {none; };
};
key "key" {
algorithm hmac-md5;
secret "+vjvsrwnJ54fRgQjDqxe+A=="; <-rndc.key 에서 생성 된 값 입력
};
zone "scmlab.com" IN {  <-자신이 사용할 도메인 이름 저는 scmlab.com 으로 설정
type master;
file "scmlab.zone";
allow-update {none ;};
};
zone "24.241.203.in-addr.arpa" IN { <-IP주소 ex; 203.241.24.78 인 경우
type master;
file "scmlab.rev";   <- 도메인 이름
allow-update {none; };
};
========================================================


☆ named.local
- default 값으로 저장
========================================================
$ORIGIN .
$TTL 1D
localhost 86400 IN SOA localhost. local.localhost. (
    2001061401 ;Serial
    28800  ;Refresh (8 hours)
    7200  ;Retry (2 hours)
    604800  ;Expire (1 week)
    86400  ;Minimum (1 day)
                                )
IN NS localhost.     
IN A 127.0.0.1
========================================================


☆ scmlab.zone
- 빨간색 부분을 변경하여 자신의 도메인 이름.zone으로 저장
========================================================
$TTL 43200
@  IN SOA ns.scmlab.com. root.scmlab.com.(     <- 자신의 도메인명, 끝에 콤마 주의
   20010504 ;Serial
   10800  ;Refresh
   3600  ;Retry
   3600000  ;Expire
   43200 )  ;Minumum
IN NS ns.scmlab.com<- 자신의 도메인명, 끝에 콤마 주의
IN A 203.241.24.78 <-IP주소 ex; 203.241.24.78 인 경우
IN HINFO "Intel Pentium" "Windows XP"
ns  IN A 203.241.24.78 <-IP주소 ex; 203.241.24.78 인 경우
www  IN A 203.241.24.78 <-IP주소 ex; 203.241.24.78 인 경우
========================================================


☆ scmlab.rev
빨간색 부분을 변경하여 자신의 도메인 이름.rev으로 저장
========================================================
$TTL 43200
@  IN SOA ns.scmlab.com. root.scmlab.com.(    <- 자신의 도메인명, 끝에 콤마 주의
   20010504 ;Serial
   10800  ;Refresh
   3600  ;Retry
   3600000  ;Expire
   43200 )  ;Minumum
IN NS ns.scmlab.com<- 도메인명, 끝에 콤마 주의
78  IN PTR scmlab.com<- 자신의 도메인명, 끝에 콤마 주의
========================================================

위의 파일들을 생성 후 bind9를 실행시키면 됩니다.


출처 : 리룩스포털

출처 : http://gag.aaa.tohttp://gagstory.aaa.to

'Programming > tool' 카테고리의 다른 글

04) named.ca, localhost.zone, named.local 파일 만들기  (0) 2010.03.19
03) named.conf 파일 만들기  (0) 2010.03.19
01) XP에 DNS 설치  (0) 2010.03.19
IIS, FTP 설치  (0) 2010.03.19
VS2008로 작성한 프로젝트를 VS2005열기  (0) 2010.03.18

☆ 1. 다운로드(http://www.isc.org)
- 아래 그림처럼 윈도용 최신버전을 다운받는다.

dns01.jpg

- BIND9.3.2.zip를 다운받았으면 압축을 풀고 폴더를 확인한다.다음과 같을 것이다.
dns02.jpg


☆ 2. 설치
- BINDinstall.exe를 실행시킨다.

dns03.gif
① 설치할 경로를 지정한다. 없다면 생성할것인가라는 창이뜬다. 필자는 C:\dns로 지정했다.
② 패스워드를 적는다..솔직히 왜 적는지 모르겠다. 3번은 확인차 적는것이다.
④ install을 클릭하면 자동으로 설치가 완료된다.


☆ 3. 설정
- 설치후 c:\dns 폴더를 확인하면 bin과 etc폴더가 생성되어 있음을 알수있다.
dns04.gif
- bin 폴더에는 프로세서를 실행할수 있는 파일들이 있고, etc 폴더는 비어있다.
- 이상태로는 아무것도 실행을 할 수 없다.
- 기본적으로 local.zone named.conf 파일과 domain.zone 파일 domain.rev파일 named.ca파일은 존재해야한다.
- 필자는 위 파일 모두를 etc폴더에 위치시켰다.
- 어떤 경로에서 프로세서를 실행할 수 있도록 Path에 C:\dns\bin 을 추가하자.

[path추가]
- 시스템등록정보 -> 고급 -> 환경변수로 들어간다.
- 편집클릭
dns05.gif

- 다음을 추가한다.
dns06.gif
- 확인 -> 확인 -> 확인
- 이젠 도스창 어느경로에서든 DNS관련 프로세서를 실행시킬 수 있다.


[etc 폴더 살펴보기]
- 여기까지 필자의 폴더를 한번 살펴보겠다.
- bin 폴더는 설치때 생성된것이라 모두 같을 것이다.
- etc 폴더에는 필자가 5개의 파일을 생성했다.
5개의 파일 생성 샘플 보기
Snap21.png

[rndc.key생성 rndc.conf설정]
- rndc.key 생성
- 시작 -> 실행 -> cmd 도스창을 띄운후 아래와 같이 실행한다.


Snap2.png
- rndc-confgen 까지는 띄우지 말고 붙여서 작성하고 -a 는 한칸 띄워서 적는다.

- rndc.conf 생성

Snap5.png

- 위와 똑같이 rndc-confgen > c:\dns\etc\rndc.conf 를 적어 준다.


- c:\dns\etc 폴더에 rndc.key와 rndc.conf 가 생성되었다.

Snap3.png 


-rndc.key를 메모장으로 열어보자.

Snap4.png

-밑줄친 부분을  named.conf에 넣어 주면 된다.


☆ 4. 실행
모든 설정이 완료된 후에 실행을 한다. (5개의 파일 생성 샘플 보기)
- 실행은 아래와 같이 한다.(command창에서)

dns12.gif
- 프로세서가 실행되었는지 확인한다.
dns13.gif

- 윈도우 작업관리자에 네임서버 프로세서가 활성화 되었음이 확인된다.
- 모든것이 이상없이 실행이 되었다.


☆ 5. 기타
- zone파일과 zone.rev파일을 잘 설정하면 여러가지 도메인을 사용할 수 있을것이다.
- 위 두 파일에 서브도메인을 추가한 후 프로세서를 다시 시작하려면...
- 이때 rndc를 사용하면 아주 편리하다.
- 네임서버가 가동된 상태에서 프로세서를 다시구동하려면 rndc reload 해주면 만사 OK

[rndc reload]
dns14.gif
- 위와 같이 server reload successful 메세지가 출력되면 새로운내용이 적용된 것이다.
- 이렇게 해서 모든 설명이 끝났다.


☆ 6. 프로세서 서비스 설정
- 시스템이 시작하면 프로세서가 자동으로 작동되어야 한다.
- DNS서버를 인스톨할때 서비스에 자동으로 ISC BIND가 등록이된다.


dns15.gif

- 현재는 서비스가 중지된 상태이다.

- 서비스를 자동 시작되도록 설정한다.
dns16.gif

- 로컬 시스템 계정 선택한다.
dns17.gif

- 서비스 시작 클릭
dns18.gif

- 서비스가 자동 시작으로 설정된것을 확인한다.

dns19.gif
- 시스템을 재시작후 윈도우 작업관리자에 named.exe 프로세서가 가동중임을 확인한다.



출처 : welchsjam blog

출처 : http://gag.aaa.tohttp://gagstory.aaa.to

'Programming > tool' 카테고리의 다른 글

03) named.conf 파일 만들기  (0) 2010.03.19
02) [DNS for XP] BIND9에서 named.conf, zone 파일 설정  (0) 2010.03.19
IIS, FTP 설치  (0) 2010.03.19
VS2008로 작성한 프로젝트를 VS2005열기  (0) 2010.03.18
Visual Studio 2008 설정  (0) 2010.03.18

+ Recent posts