서버 설정 · 2 min read · Oct 02, 2025

CentOS에서 깨끗한 djbDNS DNS 서버 - dnscache 및 tinydns - A부터 Z까지

CentOS에서 깨끗한 djbDNS DNS 서버 - dnscache 및 tinydns - A부터 Z까지

djbDNS란 무엇인가요? 그리고 우리는 왜 djbDNS를 사용할까요? DNS 서비스를 제공하는 새로운 관점이 있습니다. 각 DNS 서버 기능은 권한, 캐시, 포워드 등과 같은 별도의 서비스입니다. 또 다른 차이점은 서비스가 좀비를 방지하기 위해 신속하게 재시작하는 데몬 도구입니다.

요구 사항:

CentOS 5.4 클린 설치

루트로 로그인합니다.

# yum update
# yum install gcc
# mkdir pkg
# cd pkg

첫 번째 단계는 데몬 도구를 설치하는 것입니다:

# cd ~/pkg
# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# gunzip daemontools-0.76.tar
# tar -xpf daemontools-0.76.tar
# rm -f daemontools-0.76.tar
# cd admin/daemontools-0.76
# vi src/conf-cc

gcc 줄 끝에 다음 줄을 추가합니다:

-include /usr/include/errno.h
# ./package/install

djbdns가 작동하기 위해 준비해야 할 또 다른 패키지는 ucspi입니다:

# cd ~/pkg
# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
# gunzip ucspi-tcp-0.88.tar
# tar -xf ucspi-tcp-0.88.tar
# cd ucspi-tcp-0.88
# vi src/conf-cc

gcc 줄 끝에 다음 줄을 추가합니다:

-include /usr/include/errno.h
# make
# make setup check

다음 단계는 문서 게시입니다:

# cd ~/pkg
# wget http://cr.yp.to/djbdns/doc.tar.gz

다음으로 /doc 아래에 docs를 압축 해제합니다:

# gunzip < doc.tar.gz | (cd /; tar -xf -)

시스템 문서에 병합하기 위해 다음 스크립트를 사용합니다:

#!/bin/sh
for i in packages commands cfunctions fileformats
do
  sort -f /dev/null `find /doc/merge -name $i.html` > /doc/$i.new
  mv /doc/$i.new /doc/$i.html
done

스크립트를 파일에 저장합니다: script.sh

# chmod +x script.sh
# ./script.sh
# cd ~/pkg
# wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
# gunzip djbdns-1.05.tar
# tar -xf djbdns-1.05.tar
# cd djbdns-1.05
# vi src/conf-cc

gcc 줄 끝에 다음 줄을 추가합니다:

-include /usr/include/errno.h
# make
# make setup check

모든 컴파일이 완료되었습니다.

다음 단계는 DNS 서버 구성입니다.

DNSCACHE

두 개의 시스템 사용자 계정을 생성합니다:

# useradd -d /var/dnscache -s /bin/false dnscache
# useradd -d /var/dnscache -s /bin/false dnslog

캐시를 구성합니다:

# dnscache-conf dnscache dnslog /var/dnscache/dnscache 

예: dnscache-conf dnscache dnslog /var/dnscache/dnscache 192.168.20.1

네트워크의 나머지 부분이 dnscache에 쿼리할 수 있도록 허용합니다:

# touch /var/dnscache/dnscache/root/ip/

예: touch /var/dnscache/dnscache/root/ip/192.168

dnscache를 svscan에 의해 모니터링되는 서비스 목록에 추가합니다:

# ln -sf /var/dnscache/dnscache /service/

ms-windows를 좋아하신다면… 모든 것이 제자리에 있는지 확인하기 위해 재부팅할 수 있습니다.

여기서 한 가지 점은 여전히 캐시 서버에서 쿼리를 할 수 없다는 것입니다. 왜냐하면 클라이언트가 이제 역 모드로 해결될 수 있기 때문입니다.

앞서 언급했듯이 이는 DNS 캐시 보안 기능 중 하나로 클라이언트를 역 체크하는 것입니다. 따라서 다음 단계에서는 우리를 위해 작동할 tinydns를 작업할 것입니다.

DNSTINY

다시 한 번, 두 개의 시스템 사용자 계정이 필요합니다:

# useradd -d /var/dnscache -s /bin/false tinydns
# useradd -d /var/dnscache -s /bin/false tinylog
# tinydns-conf tinydns tinylog /var/dnscache/tinydns 127.0.0.1

이제 DNS 데이터베이스에 노드를 추가할 시간입니다:

# cd /var/dnscache/tinydns/root
# ./add-ns internal 192.168.20.1
# ./add-ns 20.168.192.in-addr.arpa 192.168.20.1
# ./add-mx internal 192.168.20.2
# ./add-host ns.internal 192.168.20.1
# ./add-host mail.internal 192.168.20.2
# ./add-alias unagi.internal 192.168.20.2
# make

이 노드는 수동으로 편집할 수 있는 데이터베이스 파일 /var/dnscache/tinydns/root/data로 이동합니다.

마지막 단계는 DNS 서비스 시작입니다:

# ln -sf /var/dnscache/tinydns /service
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.