윈도우서버과 관련된 정보를 제공합니다.
일산님이 수고해 주고 계십니다.

XP에서도 DNS서버를 돌려보자!(3)-설정파일 만들기1

조회 수 17240 추천 수 0 2007.05.07 23:58:41
[ XP에서도 DNS 서버를 돌려보자! ]

[ DNS 서버의 개념 이해 ]

[ Windows XP Professional에 네임 서버(BIND9) 구축하기 ]

1. ns.jobdahan.dnip.net으로 서비스 받기
2. 네임서버 구축 환경 설명
3. Windows용 DNS 서버 소프트웨어 BIND9.4.0 다운받기
4. BIND9 설치하기

5. BIND9 설정 파일 만들기

1) 윈도우 시스템 변수의 Path 지정
2) rndc.key, rndc.conf 파일 생성
3) named.conf 파일 만들기

4) named.ca, localhost.zone, named.local 파일 만들기
5) jobdahan.dnip.net.zone 파일 만들기

6. BIND9 동작 테스트
7. BIND9의 named 데몬을 서비스에 등록하기
8. IP 주소가 변경되었을 때의 DNS 서버관리

이번 강좌 차례는 위 목차의 5. 1)~3) 까지 입니다.

 

[ XP에서도 DNS 서버를 돌려보자! (3) - BIND9 설정 파일 만들기 ]

5. BIND9 설정 파일 만들기

   BIND9 설치의 핵심이 되는 가장 중요한 부분입니다. 이 설정의 글자나 기호 하나라도 틀리면 정상적인 동작을
 기대할 수 없을 것입니다. 꼼꼼히 살펴보시기 바라며, 모르는 부분은 서로 같이 연구해 봅시다.

[주의] 분명 모든 구문을 이상 없이 입력해 주었는데도 설정 파일을 정상적으로 읽어 들이지 못해
동작이 되지 않는 경우가 있을 수 있습니다. 아마 텍스트 에디터로 편집하면서 파일의 끝에 들어가는 보이지 않는
코드 때문이지 않았나 하는 짐작만 할 뿐입니다.

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

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

 1) 윈도우 시스템 변수의 Path 지정

 윈도우의 Path 지정은 BIND9과 직접적인 관계는 없지만 나중에 각 파일 실행의 편리함을 갖기 위해서 입니다.

 BIND9을 설정하기 전에 어떠한 경로에서든지 C:\APM_Setup\Server\DNS\bin\ 디렉터리에 있는 파일들을
 실행할 수 있게 시스템 변수의 Path를 지정해 주기로 합니다. 이렇게 Path를 지정해 주면 cmd 창에서 현재 디렉터리를
 변경하지 않고도 bin 디렉터리에 있는 파일을 실행시킬 수가 있겠지요?

   a) 바탕화면의 [내 컴퓨터] 아이콘 오른쪽 클릭 -[속성]-[고급] 탭-[환경 변수] 버튼을 눌러 [환경 변수] 창을 열고
 아래 쪽 시스템 변수Path를 선택한 다음 [편집] 버튼을 눌러 [시스템 변수 편집] 창을 엽니다.

   b) 시스템 변수 편집 창의 [변수 값] 입력상자의 맨 뒷부분에 세미콜론 “;”을 입력하여 앞부분의 Path들과 구분시켜 주고
 계속해서 C:\APM_Setup\Server\DNS\bin\을 입력, [확인] 버튼을 눌러 Path 지정을 마칩니다.

 Bind9_06_1.gif

 

 2) rndc.key, rndc.conf 파일 생성

  먼저 아래의 방법으로 rndc.key 파일과 rndc.conf 파일을 생성해 줍니다.

   a) [시작]-[실행]-cmd 입력하여 cmd 창을 열고, rndc.key 파일을 생성시키기 위해 rndc-confgen -a 명령을
 입력하고 [Enter] 키를 칩니다. C:\APM_Setup\Server\DNS\etc\ 디렉터리에 rndc.key 파일이 만들어 졌다는
 메시지가 표시됩니다.

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats> rndc-confgen -a[Enter]
wrote key file "C:\APM_Setup\Server\DNS\etc\rndc.key"

C:\Documents and Settings\hats> type C:\APM_Setup\Server\DNS\etc\rndc.key(생성된 rndc.key 파일 내용 확인 명령)
key "rndc-key" {
 algorithm hmac-md5;
 secret "InYa8q5UR9FpUqUHRvEQKg==";
};

C:\Documents and Settings\hats>_

C:\APM_Setup\Server\DNS\etc\rndc.key 파일 내용을 확인해 봅니다.
여러분의 key 값은 이 곳의 내용과는 다르게 되어 있을 것입니다.
(위 명령 창에서 type 명령은 리눅스의 cat 명령과 같이 파일 내용을 화면에 보여 줍니다.)

  b) 다음은 rndc.conf 파일을 C:\APM_Setup\Server\DNS\etc\ 디렉터리에 생성하기 위해
 아래와 같은 명령을 입력하고 [Enter] 키를 칩니다.
 C:\APM_Setup\Server\DNS\etc\ 디렉터리에 rndc.conf 파일이 만들어 집니다.

명령 프롬프트(cmd) 창

C:\Documents and Settings\hats>rndc-confgen > C:\APM_Setup\Server\DNS\etc\rndc.conf
C:\Documents and Settings\hats>_

Bind9_08.gif


  c) 메모장이나 텍스트 에디터로 rndc.key 파일과 rndc.conf 파일을 열어놓은 다음
 rndc.key 파일의 secret에 있는 key 값을 복사하여 rndc.conf 파일의 secret에 있는 key 값에 붙이기를 하여
 덮어씌워서 rndc.key 파일과 rndc.conf 파일이 같은 key 값을 갖게 만들어 줍니다.

C:\APM_Setup\Server\DNS\etc\rndc.key의 내용

key "rndc-key" {
 algorithm hmac-md5;
 secret "InYa8q5UR9FpUqUHRvEQKg==";
};

C:\APM_Setup\Server\DNS\etc\rndc.conf의 내용

# Start of rndc.conf
key "rndc-key" {
 algorithm hmac-md5;
 secret "InYa8q5UR9FpUqUHRvEQKg==";              # rndc.key 파일에 있는 키 값을 이 곳에 덮어 씀
};

options {
 default-key "rndc-key";
 default-server 127.0.0.1;
 default-port 953;
};
# End of rndc.conf

탐색기를 열고 C:\APM_Setup\Server\DNS\etc\ 디렉터리 내에 있는 파일들을 확인합니다.
rndc.key, rndc.conf 파일 2개가 있을 것입니다.

[rndc.key, rndc.conf 파일의 용도]

rndc.key 파일의 key 값은 뒤에 설명할 named.conf 파일에서 사용, 즉 네임서버의 데몬인 named에서 사용 되어지며,
rndc.conf 파일의 key 값은 rndc에서 named를 제어하는데 사용됩니다.

rndc가 원격지의 named를 제어(reload, stop, status 등)하려고 할 때
원격지의 named에도 동일한 key 값이 존재해야만 제어를 할 수 있게 됩니다.

이렇게 서로 용도가 다르기 때문에 rndc.key 파일의 key 값과 rndc.conf 파일의 key 값은 서로 다를 수도 있고
같은 값을 지정하여 사용할 수도 있습니다만 여기에서는 서로 동일하게 설정했습니다.
동일하게 설정했을 경우 cmd 창에서 rndc reload 명령을 사용할 수 있게 됩니다.

아~고! 머리 아포요~!
더 이상의 자세한 내용을 알고 싶은 분은 리눅스 전문서적의 도메인 네임서버를 참고하시기 바랍니당~!^^;

 

 3) named.conf 파일 만들기

 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개의 파일이 더 있어야 합니다.

 

이 것으로 이 번 강좌를 마치기로 합니다.

지금까지

5. BIND9 설정 파일 만들기

1) 윈도우 시스템 변수의 Path 지정
2) rndc.key, rndc.conf 파일 생성
3) named.conf 파일 만들기

에 대해서 알아보았습니다.

 

다음은

4) named.ca, localhost.zone, named.local 파일 만들기

에 대해서 알아보기로 하겠습니다.

 

다음 강좌를 기다려 주시길...

다음 강좌에서 뵙도록 하겠습니다.

질문이 있으면 댓글로 올려 주시면 성의껏 답변 드리겠습니다.

 

그럼, 다음 강좌까지

안~뇽~!

 

 

댓글 '11'

[레벨:19]일산

2007.08.12 19:52:37
*.92.203.13

위의 내용 중에서 한 가지 수정해야 되겠음~다!
죄송함~다~!

named.conf 파일의 내용 중 맨 아래 부분에 있는

allow-update { key "rndc-key"; };을 allow-update { none; };으로 수정해 주시기 바랍니다.

내용이 틀려서가 아니고 BIND9 강좌 뒷부분에서 nsupdate 유틸리티를 설명하려고 했었는데
강좌 내용이 길어지고,
복잡해 지고,
이해의 혼란을 가져 올까봐서 수정하도록 하겠습니다.

수정하지 않으면 어떠냐고요?
수정하지 않으면 nsupdate라는 유틸리티를 사용할 수 있게 되지만 보안에 신경 쓰셔야 할 것임~다!

[레벨:30]똑띠

2007.08.12 19:52:37
*.53.232.34

오늘 구매한 외장형 하드 드라이버가 오는데 그럼 이젠 서버 셋팅을 해볼수 있을것 같네요.

윈도,리눅스 멀티부팅으로 셋팅해서 학습용으로 돌릴텐데... 일산님의 강좌 열공 하겠습니다.

[레벨:19]일산

2007.08.12 19:52:37
*.92.203.13

리눅스는 어떤 것을 설치하시려는지요?

잘 아시겠지만, 저 개인적으로는 SULinux 1.5 Server를 추천합니다.

현재 저도 테스트용 서버로 Windows XP Professional, SULinux 1.5 Server를 설치하여
운영 중에 있습니다.

[레벨:30]똑띠

2007.08.12 19:52:37
*.53.232.34

현재 잡다한은 페도라 돌리고 있는데요 (인건 친구넘이 봐주는거라..)

목적이, 쇼핑몰 및 zb5 테스팅을 목적으로 하고 있구요 아마 테스팅 서버도 페도라를 사용하지 않을까 합니다.

SULinux도 좋다는 평을 많이 들었습니다.

근데 현재 제가 구매해 놓고 공부하는 책이 페도라를 가지고 설명을하고 있어서..

초보자들은 응용력이 부족해서 그냥 따라하기 식으로 공부하다 보니.ㅋㅋ

제가 보는 책은

슈퍼유저코리아에서 만든 "리눅스 서버관리 실문바이블" 입니다.

www.superuser.co.kr 이지요.

일산님에게 리눅스 공부하면서 많이 여쭙겠습니다. ^^

점심 시간 다 되어 가네요. 점심 맛있게 드세요.

[레벨:0]RulruRalra

2008.04.24 16:40:46
*.37.3.173

개인 소유의 도메인으로 네임서버를 만들려면

jobdahan.dnip.net 만 개인 도메인을 입력하면 되는건가요?

[레벨:19]일산

2008.04.25 19:05:48
*.177.35.5

개인 소유의 도메인이라면 개인이 도메인을 유료로 신청해서 받은 도메인을 말씀하시는 것이지요?
(무료로 신청한 도메인도 개인 소유로 볼 수 있으니까요.)
유료 도메인을 신청할 때 네임서버 도메인(또는 IP 주소)를 입력하게 되어 있는데,
그 곳에 입력할 때 도메인 대신에 자신의 IP 주소를 입력하면 됩니다.

그렇지만, 집에 있는 컴퓨터는 유동 IP를 사용하고 있기 때문에 IP가 변동될 수 있고 변동될 때마다
수동으로 네임서버 IP주소를 바꾸어서 등록해야 하며, 등록해도 즉시 반영이 되지 않고 일정한 시간이 흐른 뒤
반영되기 때문에 실용적으로 약간의 문제가 있을 수 있습니다.
물론 고정 IP를 사용하신다면 문제가 없습니다만 고정 IP를 사용하려면 사용료가 엄청 비싼 편입니다.

그러나 DNIP 사이트에서 무료로 배포하고 있는 네임서버 도메인(예 : ns.comstudy.dnip.net)을 이용하면
자신의 서버 컴퓨터의 IP가 변동되더라도 소프트웨어를 이용해 원격으로 쉽게 IP를 수정할 수 있으며
경험상 변경된 IP가 적용되는 시간도 비교적 짧은 편이었습니다.

"jobdahan.dnip.net 만 개인 도메인을 입력하면 되는건가요?"라는 말은 제가 잘 이해하지 못하겠습니다.
jobdahan.dnip.net이라는 도메인 대신에 자신이 소유하고 있는 도메인을 입력하면 되는 것인지를 묻는 질문인가요?

[레벨:1]wushu

2008.09.13 20:45:51
*.161.24.212

그럼 자신이 소유하고 있는 도메인 경우에 jobdahan.dnip.net 이부분을 어떻게 넣어야 하나요?

[레벨:1]hook

2008.05.02 17:24:35
*.33.52.43

에러없이 잘 적용하였습니다.^0^

[레벨:1]wushu

2008.09.13 20:58:44
*.161.24.212

에러.gif
이런 에러가 나옵니다. 무엇이 문제인지 알려주세요.
첨부

[레벨:19]일산

2008.12.30 10:23:58
*.128.189.253

named.conf 파일을 작성하실 때 option 이라는 Text의 o자 앞에 보이지 않은 제어코드가 들어가 있는 것 같습니다.
option 글자가 들어가 있는 줄을 모두 지우고 다시 작성해 보시기 바랍니다.
아니면 BINDzSet 파일을 이용해서 named.conf 파일을 생성하시든지...
(참, BINDzSet 파일에 관련된 사항은 24.XP에서도 DNS 서버를 돌려보자(8) 글에 있습니다.)
그리고.....명령조의 말이 읽기 거북스럽네요!^^;

[레벨:1]오피러스닷컴

2009.07.28 07:30:19
*.125.52.147

배치파일이 아니라고 나옵니다. 도와주세요 왜 그런가요...
문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 글을 읽기 전에 잠깐! file [13] [레벨:19]일산 2007-03-29 19821
27 phpMyAdmin으로 MySQL root 계정 비밀번호 바꾸기 file [레벨:19]일산 2008-03-30 22980
26 개인 서버에 zbxe 설치하기 file [19] [레벨:19]일산 2007-08-29 22464
25 두 개의 도메인으로 두 개의 사이트 운영 file [25] [레벨:19]일산 2007-07-17 26497
24 XP에서도 DNS서버를 돌려보자!(8)-IP Update file [25] [레벨:19]일산 2007-06-20 20969
23 XP에서도 DNS서버를 돌려보자!(7)-named 등록 file [7] [레벨:19]일산 2007-05-14 19050
22 XP에서도 DNS서버를 돌려보자!(6)-BIND9 동작테스트 file [5] [레벨:19]일산 2007-05-12 17671
21 XP에서도 DNS서버를 돌려보자!(5)-설정파일 만들기3 [6] [레벨:19]일산 2007-05-11 18058
20 XP에서도 DNS서버를 돌려보자!(4)-설정파일 만들기2 [16] [레벨:19]일산 2007-05-09 18473
» XP에서도 DNS서버를 돌려보자!(3)-설정파일 만들기1 file [11] [레벨:19]일산 2007-05-07 17240
18 XP에서도 DNS서버를 돌려보자!(2)-BIND9 설치하기 file [2] [레벨:19]일산 2007-05-06 19520
17 XP에서도 DNS서버를 돌려보자!(1)-네임서버 도메인 받기 file [10] [레벨:19]일산 2007-05-05 18977
16 홈디렉터리 외부에 있는 디렉터리를 이용해 보자! file [5] [레벨:19]일산 2007-05-02 18056
15 서버의 포트변경 설정과 DMZ 설정 방법 file [12] [레벨:19]일산 2007-03-18 24585
14 웹하드보다 더 좋은 기능을 내 품안에! file [17] [레벨:19]일산 2007-03-09 20558
13 phpMyAdmin으로 zb5용(또는 zbxe용) DB만들기 file [22] [레벨:19]일산 2007-03-06 19783
12 DB/Table/Field/Record 개념정리 file [8] [레벨:19]일산 2007-03-05 19393
11 phpMyAdmin의 외부접속 설정 및 확인 file [13] [레벨:19]일산 2007-03-04 22862
10 DB 생성/관리는 phpMyAdmin과 함께! file [9] [레벨:19]일산 2007-03-03 19184
9 내부접속(localhost)과 외부접속의 의미 file [4] [레벨:19]일산 2007-03-02 21750
8 개인서버구축 실전 체험기 댓글달기 [22] [레벨:19]일산 2007-03-01 18233
7 유동 IP를 고정 IP처럼 사용하기 file [10] [레벨:19]일산 2007-03-01 23119
6 무료 도메인(Domain)을 받아 사용하자! file [15] [레벨:19]일산 2007-02-28 19333
5 서버 구축을 위한 사전점검 내용 file [9] [레벨:19]일산 2007-02-27 18566
4 웹/데이터베이스 서버의 구동과 동작 확인 file [11] [레벨:19]일산 2007-02-26 19592
3 Window XP에 APM 한 방에 설치하기...! file [5] [레벨:19]일산 2007-02-24 19410
2 개인서버 구축용 소프트웨어 다운받기 [11] [레벨:19]일산 2007-02-24 20628
1 XP에 APM_DNS 설치 강좌 게제 순서 [10] [레벨:19]일산 2007-02-23 18008