윈도우서버과 관련된 정보를 제공합니다.
일산님이 수고해 주고 계십니다.
[ 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 설치의 핵심이 되는 가장 중요한 부분입니다. 이 설정의 글자나 기호 하나라도 틀리면 정상적인 동작을
기대할 수 없을 것입니다. 꼼꼼히 살펴보시기 바라며, 모르는 부분은 서로 같이 연구해 봅시다.
[주의] 분명 모든 구문을 이상 없이 입력해 주었는데도 설정 파일을 정상적으로 읽어 들이지 못해
동작이 되지 않는 경우가 있을 수 있습니다. 아마 텍스트 에디터로 편집하면서 파일의 끝에 들어가는 보이지 않는
코드 때문이지 않았나 하는 짐작만 할 뿐입니다.
아래와 같은 에러 메시지가 나올 경우에는 그 설정 파일을 아예 삭제하시고
메모장을 이용하여 에러난 파일을 처음부터 다시 입력하여 만드시길 바랍니다.
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 지정을 마칩니다.
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>_
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의 내용
algorithm hmac-md5;
secret "InYa8q5UR9FpUqUHRvEQKg==";
};
C:\APM_Setup\Server\DNS\etc\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 파일의 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 파일을 수정하고, 아무런 표시가 없을 때까지 검사합니다.
[ 에러 메시지 예 ]
named.conf:35: missing ';' before end of file
named.conf 파일의 35행 문장 끝에 ';'이 없다는 메시지입니다.
즉,
allow-update { key "rndc-key"; };
}
으로 되어 있다는 내용이므로 }를 }; 로 수정하고 다시 검사해 봅니다.
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'
현재 잡다한은 페도라 돌리고 있는데요 (인건 친구넘이 봐주는거라..)
목적이, 쇼핑몰 및 zb5 테스팅을 목적으로 하고 있구요 아마 테스팅 서버도 페도라를 사용하지 않을까 합니다.
SULinux도 좋다는 평을 많이 들었습니다.
근데 현재 제가 구매해 놓고 공부하는 책이 페도라를 가지고 설명을하고 있어서..
초보자들은 응용력이 부족해서 그냥 따라하기 식으로 공부하다 보니.ㅋㅋ
제가 보는 책은
슈퍼유저코리아에서 만든 "리눅스 서버관리 실문바이블" 입니다.
www.superuser.co.kr 이지요.
일산님에게 리눅스 공부하면서 많이 여쭙겠습니다. ^^
점심 시간 다 되어 가네요. 점심 맛있게 드세요.
개인 소유의 도메인으로 네임서버를 만들려면
jobdahan.dnip.net 만 개인 도메인을 입력하면 되는건가요?
(무료로 신청한 도메인도 개인 소유로 볼 수 있으니까요.)
유료 도메인을 신청할 때 네임서버 도메인(또는 IP 주소)를 입력하게 되어 있는데,
그 곳에 입력할 때 도메인 대신에 자신의 IP 주소를 입력하면 됩니다.
그렇지만, 집에 있는 컴퓨터는 유동 IP를 사용하고 있기 때문에 IP가 변동될 수 있고 변동될 때마다
수동으로 네임서버 IP주소를 바꾸어서 등록해야 하며, 등록해도 즉시 반영이 되지 않고 일정한 시간이 흐른 뒤
반영되기 때문에 실용적으로 약간의 문제가 있을 수 있습니다.
물론 고정 IP를 사용하신다면 문제가 없습니다만 고정 IP를 사용하려면 사용료가 엄청 비싼 편입니다.
그러나 DNIP 사이트에서 무료로 배포하고 있는 네임서버 도메인(예 : ns.comstudy.dnip.net)을 이용하면
자신의 서버 컴퓨터의 IP가 변동되더라도 소프트웨어를 이용해 원격으로 쉽게 IP를 수정할 수 있으며
경험상 변경된 IP가 적용되는 시간도 비교적 짧은 편이었습니다.
"jobdahan.dnip.net 만 개인 도메인을 입력하면 되는건가요?"라는 말은 제가 잘 이해하지 못하겠습니다.
jobdahan.dnip.net이라는 도메인 대신에 자신이 소유하고 있는 도메인을 입력하면 되는 것인지를 묻는 질문인가요?










서버관리

윈도우 




위의 내용 중에서 한 가지 수정해야 되겠음~다!
죄송함~다~!
named.conf 파일의 내용 중 맨 아래 부분에 있는
내용이 틀려서가 아니고 BIND9 강좌 뒷부분에서 nsupdate 유틸리티를 설명하려고 했었는데
강좌 내용이 길어지고,
복잡해 지고,
이해의 혼란을 가져 올까봐서 수정하도록 하겠습니다.
수정하지 않으면 어떠냐고요?
수정하지 않으면 nsupdate라는 유틸리티를 사용할 수 있게 되지만 보안에 신경 쓰셔야 할 것임~다!