2007. 1. 3. 17:22

[포트설치]DNS 세팅 (djbdns)

[포트설치]DNS 세팅 (djbdns)



1.설치하기 (포트로 설치하기)



## daemontools 설치

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


## ucspi-tcp 설치

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



## djbdns 설치

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



2. 설정하기



## daemontools 설정하기

다 설치 하셨으면..
daemontools가 자동 실행이 되도록 설정을 해줍니다.

cp /usr/ports/sysutils/daemontools/files/svscan.sh.sample /usr/local/etc/rc.d/svscan.sh
chmod a+x /usr/local/etc/rc.d/svscan.sh


## 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 에 만들겠습니다.



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



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이미지
     글쓴이: 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
    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
    randy이미지
    왜 아이피는 되는데 도메인명은 안되는것일까요?
    안그래도 무지한데 안되는 이유도 모르고 해결을 하려니 어려분들이 도와주는 말로도 해결이 안되고 있습니다.
    2004-03-27







    코멘트 삭제 coolmax
    coolmax이미지
    이래도 안된다면 내임서버 오류입니다.
    내임서버 존파일이랑 올려주세요.
    2004-03-27







    코멘트 삭제 smbsd
    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
    coolmax이미지
    ns.designinside.co.kr 라는 내임서버를 운영하셔서 한통내임서버보다 위에 적은것입니다. 또한 dig나 nslookup을 이용하여 저 도메인으로 쿼리 해봐도 default네임서버는 ns.designinside.co.kr로 되어 있더군요. 또한 메일 서비스,아파치 버추얼호스팅,서브도메인 하려면 자체 내임서버가 있어야 가능하죠. 그리고 resolver도 로컬네임서버로 쿼리해야 빠르구요. 굳이 자체 내임서버 있는데 한통dns서버 쓸일이 없을듯 합니다.