DNS 캐싱을 설정하는 가장 좋은 방법은 무엇입니까? 프로그램이 3 개

DNS 조회 속도를 높이기 위해 DNS 캐시 또는 프록시를 설치하고 싶습니다.

bind9, pdnsd 또는 dnsmasq와 같이 작업을 수행 할 것으로 생각되는 프로그램이 3 개 이상 있습니다.

설치 중 하나를 성능 또는 보안 관점에서 잘못 구성하지 않도록하십시오. 그렇다면 사람들이 무엇을 추천하고 설치 직후에 구성을 변경해야합니까?



답변

  1. bind9 설치
  2. resolv.conf를 127.0.0.1로 지정하십시오.

이렇게하려면 다음 단계를 수행하십시오.

Bind9를 설치하려면

  1. “Ubuntu Software Center”(응용 프로그램-> Ubuntu Software Center)를 엽니 다.
  2. bind9 검색
  3. “기술 항목”이 표시되는지 확인
  4. bind9를 표시하고 설치하십시오.

/etc/resolv.conf 업데이트

  1. 네트워크 관리자를 엽니 다 (시스템-> 환경 설정-> 네트워크 관리자)
  2. 연결을 찾아서 편집 (유선 또는 무선)
  3. “IPV4 구성”탭 전환
  4. “DNS 서버”필드에 127.0.0.1을 작성하십시오.

끝났다!

테스트

그놈 터미널을 열고 (응용 프로그램> 액세서리> 터미널) 유형

dig ubuntu.com

(없는 경우, bind9에 설명 된대로 dnsutils 패키지를 설치하십시오)

예를 들어 마지막 답변을 확인하십시오.

ubuntu.com의 첫 번째 쿼리

;; Query time: **209 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:20:12 2011
;; MSG SIZE  rcvd: 196

내 두 번째 질문 :

;; Query time: **0 msec**
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jan 22 12:18:23 2011
;; MSG SIZE  rcvd: 156

서버 127.0.0.1은 로컬에서 해결 중임을 의미합니다. 쿼리 시간 (**으로 둘러 싸여 있음)을 살펴보면 두 번째 시간이 캐시됩니다.


답변

dnsmasq를 추천합니다.

여기에 좋은 튜토리얼을보십시오; http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/

여기에서 비교를 읽고 싶을 수도 있습니다.

http://en.wikipedia.org/wiki/Comparison_of_DNS_server_software


답변

“DNS 조회 속도를 높이기 위해 DNS 캐시 또는 프록시를 설치하고 싶습니다.”

승인. 그러나 더 쉬운 방법도 있습니다. OpenDNS / Google 캐시에 이미 존재하는 이름에 대해서는 OpenDNS 및 / 또는 Google 네임 서버를 사용하는 것이 자신의 로컬 캐시보다 빠릅니다. 이름 제공으로 208.67.222.222, 208.67.220.220 및 / 또는 8.8.8.8을 사용하면 거의 항상 더 빠릅니다. time nslookup www.google.com 208.67.222.222OpenDNS 네임 서버 중 하나, time nslookup www.google.com 8.8.8.8Google 또는 time nslookup www.google.com 127.0.0.1로컬 캐시에서 속도를 테스트하기 위해이 기능 을 테스트 할 수 있습니다 . 내가 더 빨리 말할 때, 나는 기술적으로 더 빠르며 너무 빠르지 않다는 것을 의미합니다.

“제 생각에 bind9, pdnsd 또는 dnsmasq의 세 가지 프로그램을 볼 수 있습니다.”

djbdns의 dnscache 부분에 열려 있습니까? 아래 지침. 그러나 패치없이 캐시를 저장하지는 않습니다 …

sudo apt-get remove bind9 dnsmasq-base
sudo apt-get install djbdns dnscache-run
sudo killall -9 dnsmasq
sudo update-rc.d -f bind9 remove

그런 다음 시스템에 캐시를 사용하도록 지시해야합니다.

sudo gedit /etc/resolv.conf

이 예제와 같이 파일을 편집하십시오. 이 파일은 사용할 이름 서버, 기본 도메인 및 검색 접미사를 정의합니다. 검색 접미어를 사용하면 정규화 된 도메인 이름의 호스트 이름 부분 만 사용하여 쿼리를 실행할 수 있습니다. 예를 들어 example.com이 “search”매개 변수의 값인 경우 ‘nslookup www’는 자동으로 ‘nslookup www.example.com’이됩니다.

nameserver 127.0.0.1      # Use the local resolver first.
nameserver 208.67.222.222 # OpenDNS
nameserver 8.8.8.8        # Google
domain example.com
search example.com

이것은 약간의 공상이지만 최신 루트 이름 서버를 가져와야합니다.

sudo dnsip $(dnsqr ns . | sed -e '/answer/!d;s/\(.*\)NS \(.*\)/\2/') | sudo tee /etc/dnscache/root/servers/@

DHCP를 사용할 때 resolv.conf 파일을 덮어 씁니다. 정적 IP 주소를 지정하고이를 스쿼시하는 소프트웨어를 제거하고 정적 IP 주소를 설정하기 위해 인터페이스 파일을 편집합니다. 그러나 너무 기울어지면 Network Manager와 함께 작업을 시도 할 수 있습니다.

sudo apt-get purge network-manager network-manager-gnome
sudo gedit /etc/network/interfaces

내 인터페이스 파일은 다음과 같지만 사용자 구성을 수정하십시오.

# Loopback
#
auto lo
iface lo inet loopback

# First network card (attached to NAT router, attached to cable internet)
#
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

이제 다시 시작하겠습니다.

sudo reboot

이제 로컬 리졸버와 최신 루트 서버를 사용하고 있습니다. 그러나 OpenDNS와 Google이 실제로 응답 속도가 더 빠르다는 것을 알게 될 것입니다 (캐시에있는 이름, 가장 인기있는 도메인). 소프트웨어가 더 안전한 상태로 만들 수있는 추가 구성이 없습니다.


답변

dnscache “( 패키지 “dnscache-run” )를 사용하고 있으며 매우 간단합니다. 아무것도 구성 할 필요가 없습니다.
DNS 청원 ( 포트 53 )을 캡처하고 다음에 Linux가 해당 도메인을 요청할 때 dnscache는 IP를 즉시 반환합니다.
이 프로그램을 개선하기 위해 변경할 수있는 두 가지 매개 변수가 있지만 :

echo 16000000 > /etc/sv/dnscache/env/CACHESIZE
echo 16777216 > /etc/sv/dnscache/env/DATALIMIT


답변

어떤 도구를 사용하든 방화벽에서 포트 53이 수신되지 않도록하십시오. 캐시 아웃 바운드 액세스 권한이있는 호스트 만 허용 할 수 있습니다.

DNSMasq는 설정이 쉽고 문서화가 잘되어 있습니다. 방화벽에 설치하는 경우 인터넷 인터페이스를 제외하고 바인딩 할 인터페이스를 지정하십시오.

바인드는 구성하기가 더 어려우며 소규모 네트워크의 캐시로 인해 과도 할 수 있습니다. 기본 구성은 캐싱 전용이라고 생각합니다. 서버를 사용할 수있는 주소를 제한하기 위해 ACL을 추가 할 수 있습니다.


답변

dnscache-run 패키지는 브리지 네트워킹과 dnsmasq를 사용하는 libvirt와 같은 다른 패키지와 충돌이 가장 적었습니다.

sudo apt-get install dnscache-run

이 패키지는 resolvconf (/etc/resolv.conf)를 제거하며, 구성을 보려면 / etc / network / interfaces 또는 네트워크 관리자를 사용해야합니다.


답변