2007. 1. 4. 15:30

DNS 서버 돌려보자

http://www.smarden.org/pape/Debian/djbdns.html
자신의 데비안 버전(우디, 사지)에 따라 소스 리스트를 추가한후 업데이트 해준다...
소스리스트가 우디와 사지만 있다.

You can download the packages, or add
deb http://smarden.org/pape/Debian/ sarge unofficial
deb-src http://smarden.org/pape/Debian/ sarge unofficial

to /etc/apt/sources.list on Debian/sarge, or
deb http://smarden.org/pape/Debian/ woody unofficial
deb-src http://smarden.org/pape/Debian/ woody unofficial

to /etc/apt/sources.list on Debian/woody, and run
# apt-get update


1.## daemontools 설치
# apt-get install daemontools daemontools-doc

2.## ucspi-tcp 설치
# apt-get install ucspi-tcp ucspi-tcp-doc

3.## djbdns 설치
# apt-get install djbdns djbdns-doc

이로써, 머쉰에 daemontools + ucspi-tcp + djbdns 를 성공적으로 설치하였다.
설치가 끝나면 /service 와 /command 디렉토리가 추가로 만들어진 것을 볼수 있으며, /etc/inittab 에는 재부팅시 데몬툴이 시동되도록 다음과 같은 라인이 추가된 것을 볼수 있다:

SV:123456:respawn:/command/svscanboot

이제 dns 세팅에 들어가겠다..

5. 설치될 프로그램들이 안전하게 운영되도록 다음 유저를 추가해 준다. 이 유저의 권한으로 각 데몬들이 실행되게 할것이다.


useradd -M dns
useradd -M dnslog

6. 우리의 리눅스 박스가 도메인 이름을 가지고 있으며, 네임 서버를 운영해야 한다면 tinydns를 사용한다.
tinydns-conf를 사용하여 서비스 디렉토리를 다음과 같이 만든다.

tinydns-conf dns dnslog /var/dns 1.2.3.4

7. svscan 으로 하여금 새로 만든 서비스를 시작하도록 /service에 링크를 걸어준다.

ln -s /var/dns /service
5초 이내에 tinydns 데몬이 시작될 것이다.

8.

1.2.3.4는 자기 해당 아이피입니다.
이제 var/dns 에 가보시면
root라는 디렉토리가 보일겁니다.
안에 들어가시면

add-childns
add-mx
add-alias
add-host
add-ns

등이 보일겁니다.

도메인설정을 하겠습니다.
예로 저의 아이피는 1.2.3.4이고
도메인은 domain.com 입니다.


./add-ns domain.com 1.2.3.4
./add-ns 3.2.1.in-addr.arpa 1.2.3.4


메일,웹,ftp 설정을 하겠습니다.



./add-host www.domain.com 1.2.3.4
./add-alias ns.domain.com 1.2.3.4
./add-alias domain.com 1.2.3.4
./add-alias ftp.domain.com 1.2.3.4
./add-mx domain.com 1.2.3.4



기타 alias 시킬것이 있으면... 해주시구요..
끝나셨으면



make



해주시구요..

만약 mx 레코드가 여러개라면..



@domain.com:1.2.3.4:a::86400
@mail.domain.com:1.2.3.5:b::86400
@mail2.domain.com:1.2.3.6:c::86400
@mail3.domain.com:1.2.3.7:d::86400



이런형태로 data파일을 수정해주시면 됩니다.

제대로 설정을 했는지 확인하실려면..



tinydns-get a domain.com



하시면 다음과 같이 나오게 됩니다.



1 domain.com:
77 bytes, 1+1+1+1 records, response, authoritative, noerror
query: 1 domain.com
answer: domain.com 86400 A 1.2.3.4
authority: domain.com 259200 NS a.ns.domain.com
additional: a.ns.domain.com 259200 A 1.2.3.4


다 끝났습니다. 리부팅 한번해주시면..
절대로 죽지 않는 dns가 작동되게 될겁니다.

기본세팅 이외에 추가 도메인이 있을땐..

./add-ns test.com 111.222.333.444
./add-alias test.com 111.222.333.444
./add-mx test.com 111.222.333.444 (mx(mail server)사용할 경우에만)

등만 추가로 설정해주시고

make 하시면 적용이 된답니다.


현재 나의 data 내용이다...
도메인을 여러개 사용중이고 각각 가상메일을 사용중이다.
즉, domain.com을 도메인 등록업체에 등록하였고, 이 도메인을 가지고
네임서버 호스트 등록을 ns.domain.com 으로 한상태이다.
domain1.com, domain2.com .... 여러개 추가되엇을 때의 상황이다.
xxx.xx.xxx.xxx 는 서버 아이피 이다.

vi /var/service/dns/root/data

.domain.com:xxx.xx.xxx.xxx:a:259200
.144.77.220.in-addr.arpa:xxx.xx.xxx.xxx:a:259200
=www.domain.com:xxx.xx.xxx.xxx:86400
+ns.domain.com:xxx.xx.xxx.xxx:86400
+domain.com:xxx.xx.xxx.xxx:86400
+ftp.domain.com:xxx.xx.xxx.xxx:86400
+qmail.domain.com:xxx.xx.xxx.xxx:86400
+mrtg.domain.com:xxx.xx.xxx.xxx:86400
+jungkiri.domain.com:xxx.xx.xxx.xxx:86400
@domain.com:xxx.xx.xxx.xxx:a::86400
.domain1.com:xxx.xx.xxx.xxx:a:259200
+www.domain1.com:xxx.xx.xxx.xxx:86400
+domain1.comr:xxx.xx.xxx.xxx:86400
+mail.domain1.com:xxx.xx.xxx.xxx:86400
@domain1.com:xxx.xx.xxx.xxx:a:86400
.domain2.com:xxx.xx.xxx.xxx:a:259200
+domain2.com:xxx.xx.xxx.xxx:86400
+www.domain2.com:xxx.xx.xxx.xxx:86400
@domain2.com:xxx.xx.xxx.xxx:a::86400

위의 진하게 보이는 부분이 추가되는 도메인에 대한 한 묶음이다.. 유심히, 살펴보면 유형을 알 수 있을것이다.




DNS 동작 확인
1. /var/service/dns/root/data에 이상이 없는지 확인
2. tinydns-get을 이용하여 data.cdb의 이상이 없는지 확인
tinydns-get a 도메인이름
3. 현재 컴퓨터의 IP 확인
cat /var/service/dns/env/IP
netstat -n -i
4. tinydns가 동작중인지 확인
svstat /var/service/dns
5. tinydns에 DNS 쿼리를
dnsq a 도메인이름 IP주소
6. DNS cache에 쿼리
dnsq a 도메인이름
※컴퓨터의 설정이 올바르다면 5번까지는 바로 동작할 것이다. 6번은 상위 name server에까지 설정이 완전히 미쳐야 올바로 동작한다.



3.참고한 글


- D.J 번스타인의 djbdns 웹사이트 ( http://cr.yp/to/djbdns.html)
- 임은재님의 은재의 리눅스 페이지 ( http://kldp.org/~eunjea/)
- ienfant님의 djbdns를 이용한 dnscache 설정 ( http://club.shinbiro.com/clb/bbs/sbrClbBbs_View.jsp?bbsid=66828&method=TITLE&keyword=djbdns&pg=1&artno=534)
- 디망쉬님의 qmail, djbdns 의 매력 ( http://club.shinbiro.com/clb/bbs/sbrClbBbs_View.jsp?bbsid=66828&method=TITLE&keyword=djbdns&pg=1&artno=532)