Debian
DNS 서버 돌려보자
toybsd
2007. 1. 4. 15:30
- daemontools - ucspi-tcp - djbdns 수동으로 설치하기
- daemontools + ucspi-tcp + djbdns 패키지로 설치하기..
자신의 데비안 버전(우디, 사지)에 따라 소스 리스트를 추가한후 업데이트 해준다...
소스리스트가 우디와 사지만 있다.
You can download the packages, or add
# apt-get install daemontools daemontools-doc
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-src http://smarden.org/pape/Debian/ sarge unofficial
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 deb-src http://smarden.org/pape/Debian/ woody unofficial
# apt-get update
1.## daemontools 설치# apt-get install daemontools daemontools-doc
2.## ucspi-tcp 설치
# apt-get install ucspi-tcp ucspi-tcp-doc
# apt-get install ucspi-tcp ucspi-tcp-doc
3.## djbdns 설치
# apt-get install djbdns djbdns-doc
# apt-get install djbdns djbdns-doc
이로써, 머쉰에 daemontools + ucspi-tcp + djbdns 를 성공적으로 설치하였다.
설치가 끝나면 /service 와 /command 디렉토리가 추가로 만들어진 것을 볼수 있으며, /etc/inittab 에는 재부팅시 데몬툴이 시동되도록 다음과 같은 라인이 추가된 것을 볼수 있다:
설치가 끝나면 /service 와 /command 디렉토리가 추가로 만들어진 것을 볼수 있으며, /etc/inittab 에는 재부팅시 데몬툴이 시동되도록 다음과 같은 라인이 추가된 것을 볼수 있다:
SV:123456:respawn:/command/svscanboot
이제 dns 세팅에 들어가겠다..
5. 설치될 프로그램들이 안전하게 운영되도록 다음 유저를 추가해 준다. 이 유저의 권한으로 각 데몬들이 실행되게 할것이다.
useradd -M dns useradd -M dnslog
6. 우리의 리눅스 박스가 도메인 이름을 가지고 있으며, 네임 서버를 운영해야 한다면 tinydns를 사용한다.
tinydns-conf를 사용하여 서비스 디렉토리를 다음과 같이 만든다.
tinydns-conf를 사용하여 서비스 디렉토리를 다음과 같이 만든다.
tinydns-conf dns dnslog /var/dns 1.2.3.4
7. svscan 으로 하여금 새로 만든 서비스를 시작하도록 /service에 링크를 걸어준다.
ln -s /var/dns /service5초 이내에 tinydns 데몬이 시작될 것이다.
8.
1.2.3.4는 자기 해당 아이피입니다.
이제 var/dns 에 가보시면
root라는 디렉토리가 보일겁니다.
안에 들어가시면
이제 var/dns 에 가보시면
root라는 디렉토리가 보일겁니다.
안에 들어가시면
add-childns
add-mx
add-alias
add-host
add-ns
add-mx
add-alias
add-host
add-ns
등이 보일겁니다.
도메인설정을 하겠습니다.
예로 저의 아이피는 1.2.3.4이고
도메인은 domain.com 입니다.
예로 저의 아이피는 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
./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
./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
@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
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가 작동되게 될겁니다.
절대로 죽지 않는 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)사용할 경우에만)
./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 는 서버 아이피 이다.
도메인을 여러개 사용중이고 각각 가상메일을 사용중이다.
즉, 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
위의 진하게 보이는 부분이 추가되는 도메인에 대한 한 묶음이다.. 유심히, 살펴보면 유형을 알 수 있을것이다.
.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에까지 설정이 완전히 미쳐야 올바로 동작한다.
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)
- 임은재님의 은재의 리눅스 페이지 ( 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)