2007. 7. 3. 15:27

DNS 세팅(djbdns)

[포트설치]DNS 세팅 (djbdns)
 
 
1.설치하기 (포트로 설치하기)


## daemontools 설치

cd /usr/ports/sysutils/daemontools
make install clean

If you get a pop-up window when you do this, Just hit TAB and then click OK.

We now need to create the /service directory to get svscan running. We do that by:


# mkdir /service

You will now want to start the svscan server by running:


# csh -cf '/usr/local/bin/svscanboot &'

If you run ps -auxw | grep svscan, you will or should see something like this:


root 384 0.0 0.0 1652 8 con- I 16Jul05 0:00.01 /bin/sh /command/svscanboot
root 404 0.0 0.0 1244 140 con- S 16Jul05 9:04.68 svscan /service

We now need to tell FreeBSD to start daemontools on startup. Here is the command that tells freebsd to do that:


# echo "csh -cf '/usr/local/bin/svscanboot &'" >> /etc/rc.local

Before we continue on, we want to delete the startup script thats created when we installed daemontools:


# rm /usr/local/etc/rc.d/svscan

Now that daemontools is running, we are all done!




## ucspi-tcp 설치

cd /usr/ports/sysutils/ucspi-tcp
make install clean


## djbdns 설치

cd /usr/ports/net/djbdns
make install clean


2. 설정하기


## dns 설정하기

dns를 실행할 유저를 만들어줍니다.


pw groupadd -n djbdns
pw useradd -n dnslog -g djbdns -d /noexistent -s /sbin/nologin -c “dnslog” -w random
pw useradd -n dns -g djbdns -d /noexistent -s /sbin/nologin -c “dns” -w random


리눅스에서는 /servie 아래에 dns를 만들어주지만.. 프비는 메인테너의 권유대로..
/var/service 에 만들겠습니다.


리눅스에서는 /service 아래에 dns를 만들어주지만, FreeBSD는 메인테니의 권유대로, /var/service/에 만들겠습니다.
/var/service를 만들어 그곳에 dns를 생성시킨후, /service 와 /var/service/dns 를 ln -s 할 것입니다.

mkdir /var/service
tinydns-conf dns dnslog /var/service/dns 1.2.3.4

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

 # ln -s /var/service/dns /service  
 
tinydns 데몬이 시작 될 것이다. (확인은 # ps ax )


1.2.3.4는 자기 해당 아이피입니다.
이제 var/service/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)



 
 ping 명령시 도메인명은 에러나는 문제.
 
  글쓴이: randy [홈페이지]
 글쓴시간: 04/03/23 14:02
 읽은수: 87
 
 
 
아래 주신 답변을 참고하여 수정을 해보았으나 잘 되지 않아 다시 한번 글을 올리게 됩니다.

nslookup 명령시에는 아이피든 도메인이든 상관없이 잘 되는데
ping 명령시에 도메인은 에러가 납니다.
에러 문구는

root ~] ping yahoo.co.kr
ping: cannot resolve yahoo.co.kr: Unknown host

root ~] ping designinside.co.kr
PING designinside.co.kr (220.95.231.67): 56 data bytes
64 bytes from 220.95.231.67: icmp_seq=0 ttl=64 time=0.061 ms

이렇게 하면 됩니다.

설정 내용은..

root ~] hostname
designinside.co.kr

root ~] cat /etc/ hosts
127.0.0.1 localhost localhost
220.95.231.67 designinside.co.kr localdomain

root ~] cat /etc/resolv.conf
search localdomain
nameserver 168.126.63.1
nameserver 220.95.231.67

이렇게 되어있습니다.
 
 
 
 
 coolmax
 
 참고 하시라고 적습니다. 서버로 하실거니까 4.x겠죠?
내임서버도 운영하시던데요. 그 상황을 참고해서 만들면…

/etc/hosts
127.0.0.1 localhost localhost.designinside.co.kr

/etc/resolv.conf
domain designinside.co.kr
nameserver 220.95.231.67
nameserver 168.126.63.1

/etc/rc.conf
hostname=”xxx.designinside.co.kr” xxx ->호스트이름
ifconfig_kk0=”inet 220.95.231.67 netmask 255.255.255.0″
kk0 ->첫번째 nic 이름
defaultrouter=”220.95.230.10″

이정도면 되지 않을까 생각합니다.
 2004-03-23
 
 
 
 
 randy
 
 왜 아이피는 되는데 도메인명은 안되는것일까요?
안그래도 무지한데 안되는 이유도 모르고 해결을 하려니 어려분들이 도와주는 말로도 해결이 안되고 있습니다.
 2004-03-27
 
 
 
 
 coolmax
 
 이래도 안된다면 내임서버 오류입니다.
내임서버 존파일이랑 올려주세요.
 2004-03-27
 
 
 
 
 smbsd
 
 /etc/resolv.conf 에
nameserver 168.126.63.1 을 맨 위로 올려서 다시 함 해보세요

168.126.63.1 은 한통 dns 서버 입니다.

요즘은 61.77.63.1 은 요 dns 서버를 주로 쓰는것 같더라구요..

아이피로는 핑은 간다는것은 네트웍은 무자게 잘되는데
도메인 명은 안간다는건 도메인(컴터이름)을 아이피 주소로
바꾸어 주는 서버(dns) 를 컴터에게 알려 주어야 하는디
안알려줘서 컴터가 화가 나가 나서 그런겁니다.

알려줄려믄 /etc/resolv.conf 에 알려 주믄 컴터가 순차 적으로
이 화일에 적혀 있는 네임서버를에게 yahoo.co.kr 이란 놈의
IP 가 무엇인고 물어 볼라고 하는디 님 께선 님 자신의 네임 서버
를 resolv.conf 에 적어 놔서 물어 볼껀 자기도 모르면서
자기 자신한테 물어보니 모를수 밖에요 ~!
 2004-03-28
 
 
 
 coolmax
 
 ns.designinside.co.kr 라는 내임서버를 운영하셔서 한통내임서버보다 위에 적은것입니다. 또한 dig나 nslookup을 이용하여 저 도메인으로 쿼리 해봐도 default네임서버는 ns.designinside.co.kr로 되어 있더군요. 또한 메일 서비스,아파치 버추얼호스팅,서브도메인 하려면 자체 내임서버가 있어야 가능하죠. 그리고 resolver도 로컬네임서버로 쿼리해야 빠르구요. 굳이 자체 내임서버 있는데 한통dns서버 쓸일이 없을듯 합니다.