Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a small network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP/TFTP for network booting of diskless machines.
DNSMASQ 는 리눅스용 Local DNS Cache Server 이다.
리눅스 웹서버에 Reverse DNS Query 옵션을 켜두었다거나, 메일 서버에서 메일 송수신 양이 많다면 접속 요청이 올 때마다 DNS 쿼리를 하게 된다. 보통 많은 수의 웹서버나 메일서버를 운영하더라도 네임서버는 2~3대 정도만 운영하기 때문에 네임서버에 많은 쿼리 요청으로 인해 부하가 발생할 가능성이 있다.
이런 경우에 DNSMASQ 를 설치해서 Local 에 DNS 쿼리를 임시 저장 (캐싱) 하도록 하면 네임 서버의 부하를 줄일 수 있다.
RPM 버전은 여기에서 다운로드 받는다.
물론 RPM 명령으로 설치한다.
rpm –Uvh dnsmasq-xxxx.rpm
설치 후에 /etc/dnsmasq.conf 파일에서 Listen-Address 항목을 수정한다.
Local host 만 사용하게 하려면 127.0.0.1을 적어둔다.
listen-address=127.0.0.1
설정을 저장했으면 DNSMASQ 데몬을 시작한다.
service dnsmasq restart
이제 서버에서 /etc/resolv.conf 를 편집해서 사용하는 DNS 서버를 수정한다.
Nameserver 127.0.0.1
기존 항목 위에 위의 항목을 추가하면 된다.
이렇게 하면 DNS 쿼리가 필요한 경우 맨 먼저 127.0.0.1 (로컬호스트) 의 DNSMASQ 에 요청하게 된다.
Dnsmasq라는 DNS 포워딩과 DHCP 서버가 있습니다.
설명은 위를 참조하시구요. Ubuntu에서 아래와 같이 설치할 수 있습니다.
andrew@andrew-ubuntu:~$ sudo apt-get install dnsmasq
andrew@andrew-ubuntu:~$ sudo vi /etc/dnsmasq.conf
위 파일을 열어서 아래 라인의 주석을 풀면 됩니다.
listen-address=127.0.0.1
andrew@andrew-ubuntu:~$ sudo vi /etc/dhcp3/dhclient.conf
위 파일을 열어서 아래 라인의 주석을 풀면 됩니다.
prepend domain-name-servers 127.0.0.1;
andrew@andrew-ubuntu:~$ sudo vi /etc/resolv.conf
등록된 네임서버의 최상단에 아래를 추가합니다.
nameserver 127.0.0.1
andrew@andrew-ubuntu:~$ sudo /etc/init.d/dnsmasq restart
andrew@andrew-ubuntu:~$ dig google.com
(제 경우엔)결과를 보면 140msec나왔습니다.
;; Query time: 140 msec
andrew@andrew-ubuntu:~$ dig google.com
두 번째 수행시에는 0 msec라는 고무적인 결과가 나옵니다.
;; Query time: 0 msec
References
http://ubuntu.wordpress.com/2006/08/02/local-dns-cache-for-faster-browsing/
댓글