DNS önbelleğini ayarlamanın en iyi yolu?


28

DNS aramalarını hızlandırmak için bir DNS önbelleği veya proxy kurmak istiyorum.

İşi yapacağımı düşündüğüm en az üç program görebiliyorum: bind9, pdnsd veya dnsmasq.

Birini kurarsam, performans veya güvenlik açısından kötü yapılandırılmış bırakmadığımdan emin olmak isterim. Peki, insanlar ne önerir ve kurulumdan hemen sonra yapmam gereken herhangi bir yapılandırma değişikliği var mı?


Bir iş istasyonu için değil mi? Yoksa LAN / ISS mi konuşuyoruz?

Evet, bu bir LAN için değil, bireysel iş istasyonlarını hızlandırmak içindir.

Yanıtlar:


15
  1. Bind9'u yükleyin
  2. Resolv.conf'u 127.0.0.1

Bunu yapmak için şu adımları izleyin:

Bind9'u yüklemek için

  1. "Ubuntu Yazılım Merkezi" ni açın (Uygulamalar-> Ubuntu Yazılım Merkezi)
  2. Bind9 için ara
  3. "Teknik Öğeler" görüntülemek için kontrol edin
  4. Bind9 işaretleyin ve kurun

/Etc/resolv.conf dosyasını güncelle

  1. Ağ Yöneticisini açın (Sistem-> Tercihler-> Ağ Yöneticisi)
  2. Bağlantınızı bulun ve düzenleyin (kablolu veya kablosuz)
  3. "IPV4 yapılandırması" sekmesini aç
  4. "DNS Sunucuları" alanına 127.0.0.1 yazınız.

Bitti!

Test etmek

GNOME terminalini açın (Uygulamalar> Aksesuarlar> Terminal) ve yazın

dig ubuntu.com 

(sizde yoksa, bind9'da açıklandığı şekilde dnsutils paketini kurun)

Son cevapları örnek olarak kontrol edin:

Ubuntu.com'daki ilk sorum

;; 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

İkinci sorum:

;; 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 sunucusu, yerel olarak çözdüğünüz anlamına gelir. Sorgu süresine bir göz atın (** ile çevrili), ikincisi önbelleğe alınır.


Sağol Igor. Bu yaklaşımı denedim ve ad aramaları için iyi çalışıyor, ancak ters IP adresi aramalarını önbelleğe almıyor gibi görünüyor. Bind9 kullanarak bunu nasıl yapardım?

Bu benim kurulumumda hiçbir şey yapmadı. Sorgu süresi hala ~ 100ms
Ashfame

İkiniz de: işe yaramazsa, hangi sunucunun hangi cevabı bulduğunu kontrol edin. 127.0.0.1 yazmıyorsa, doğru şekilde ayarlamadınız. Not: resolv.conf ayar talimatları farklı Ubuntu sürümleri için farklı olabilir.
thomasrutter

Demek gui kutusunda önbellekleme sunucusu kullanıyorsunuz? Evet, elbette mümkündür. Basit sudo apt install bind9ve sudo nano /etc/resolv.confcevabınıza alternatif olarak eklenmelidir.
bshea

Her şeyi yaptım ama kurulum çalışmıyor. resolv.confSonunda 127.0.0.1'e yaptım . Bu başarısız olabilir mi? dig ubunut.com"bağlantı zaman aşımına uğradı; hiçbir sunucuya erişilemedi" diyor
Satya Prakash

9

Dnsmasq'ı tavsiye ederim

Burada güzel bir öğretici görün; http://embraceubuntu.com/2006/08/02/local-dns-cache-for-faster-browsing/

Burada bir karşılaştırma okumak isteyebilirsiniz;

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


DNS önbelleği için dnsmasq kullanıyorum. Ayrıca / etc / hosts ve
DHCP'den

Dnsmasq'ı denedim ve ad aramalarını önbelleğe almak için bind9'un yanı sıra çalışıyor, ancak IP adresi aramalarını da önbelleğe alıyor gibi görünmüyor. Bu dnsmasq kullanılarak mümkün mü?

1
Her başlatıldığında resolv.conf dosyanızın üzerine yazarken Ağ Yöneticisine dikkat edin.
daithib8

6

"DNS aramalarını hızlandırmak için bir DNS önbelleği veya proxy kurmak istiyorum."

Tamam. Ama daha kolay bir yolu var. OpenDNS ve / veya Google isim sunucularını kullanmak, OpenDNS / Google önbelleklerinde zaten mevcut olan isimler için kendi yerel önbellekten daha hızlı olacaktır. 208.67.222.222, 208.67.220.220 ve / veya 8.8.8.8 adının sunulduğu şekliyle kullanılması, neredeyse her zaman daha hızlı olacaktır. Bunu ile test edebilirsiniztime nslookup www.google.com 208.67.222.222 , OpenDNS ad sunucularından birinde, time nslookup www.google.com 8.8.8.8Google'da veya time nslookup www.google.com 127.0.0.1yerel önbellekte hızını test için ile test edebilirsiniz. Daha hızlı deyince, teknik olarak daha hızlı demek istiyorum, bir insanın kolayca farkını fark edebileceği kadar hızlı değil.

"İşi yapacağımı düşündüğüm en az üç program görebiliyorum: bind9, pdnsd veya dnsmasq."

Djbdns'in dnscache kısmına açık mısın? Aşağıdaki talimatlar. Rağmen, bir düzeltme eki olmadan önbelleği kaydetmez ...

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

O zaman sisteme önbelleğimizi kullanmasını söylememiz gerekecek.

sudo gedit /etc/resolv.conf

Bu örneğe benzeyecek şekilde dosyayı düzenleyin. Bu dosya, hangi ad sunucularının kullanılacağını, varsayılan etki alanını ve arama sonekini tanımlar. Arama soneki, tam etki alanı adının yalnızca ana bilgisayar adı bölümünü kullanarak sorgu çalıştırmayı mümkün kılar. Örneğin, example.com "search" parametresinin değeri olduğunda 'nslookup www' otomatik olarak 'nslookup www.example.com' olur.

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

Bu biraz süslü, ama en son root name server'ı almamız gerekiyor.

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

DHCP kullandığımız zaman resolv.conf dosyasının üzerine yazıldığını düşünüyorum. Kendime statik bir IP adresi vermeyi seçer ve onu durduran yazılımı silerek statik IP adresini ayarlamak için arayüzler dosyasını düzenlerim. Ancak, eğer bu tür bir eğilime sahipseniz Network Manager ile çalışmayı deneyebilirsiniz.

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

Arabirimlerim dosyası aşağıdaki gibi görünüyor, ancak sizinkini yapılandırmanıza göre değiştirin.

# 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

Şimdi yeniden başlayalım.

sudo reboot

Şimdi yerel bir çözümleyici ve en yeni kök sunucuları kullanıyorsunuz. Ancak, OpenDNS ve Google’ın aslında daha hızlı yanıt verdiğini denerseniz (önbellekte bulunan ve en popüler alanların tümü olan isimler için) fark edeceksiniz. Yazılımın, olduğundan daha güvenli olmasına neden olabilecek başka bir yapılandırma yoktur.


Teşekkürler Christopher. Google DNS’in neden yerel önbelleğimden daha hızlı olduğunu açıklayabilir misiniz? Hızlı olduğuna inanıyorum, ama yerel önbelleğime gitmekten ziyade sunucularına gitmek nasıl daha hızlı olabilir?
Eric Johnson

Çünkü şans, bir daha bakmak zorunda kalmadan zaten cevabı bulması çok iyidir.

@Christopher: Ancak yerel önbelleğiniz bir kez edindiğinde aramalar anında gerçekleşir. Google DNS kullanıyorsanız, bir sorgu yaptığınızda her seferinde 80 ms beklemeniz gerekir.
Zan Lynx,

@Zan Lynx Evet .. bu yüzden yerel önbelleğinizi Google’a sorun. İşte oldu!

6
@ User8290 bir noktaya rağmen, GoogleDNS kullanmanın yerel olandan daha hızlı olduğunu söyleyemem . Evet, google’ın sonuçları önbelleğe alınmış, ancak hadi - eğer uluslararası hızınız berbatsa, Google’ın dünyadaki tüm DNS sonuçlarına sahip olması önemli değil. Yerel ağlar genellikle 100 mbp + 'a sahiptir, bu nedenle yerel ağ dns sunucusundan bir cevap istemek 8.8.8.8/8.8.4.4'ten (uluslararası hızınıza bağlı olarak) sormaktan en az 10 kat daha hızlı olacaktır. Elbette bu, DNS sunucunuzda sonucun önbelleğe alındığı anlamına gelir.
tftd

3

" Dnscache " ( "dnscache-run" paketi ) kullanıyorum ve çok basit. Hiçbir şey yapılandırmanıza gerek yok.
DNS dilekçelerini ( 53 numaralı bağlantı noktası ) yakalar ve Linux'un bu etki alanı için bir sonraki istediği anda yanıtları önler, dnscache IP'yi hemen geri döndürür.
Bu programı geliştirmek için değiştirilebilecek iki parametre olmasına rağmen:

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

0

Hangi aracı kullanırsanız kullanın, güvenlik duvarınızda 53 numaralı bağlantı noktasının etkin olmadığından emin olun. Yalnızca önbellek giden erişimine sahip ana bilgisayara izin vermek isteyebilirsiniz.

DNSMasq'ın kurulumu kolaydır ve iyi belgelenmiştir. Bir güvenlik duvarına yüklerseniz, Internet arayüzünü hariç tutacağınız arayüzleri belirtin.

Bağlamanın yapılandırılması daha zordur ve küçük bir ağ için önbellek olarak fazla yüklenebilir. Varsayılan yapılandırmanın yalnızca önbelleğe aldığına inanıyorum. Hangi adreslerin sunucunuzu kullanabileceğini sınırlamak için bir ACL eklemek isteyebilirsiniz.


0

Dnscache tarafından çalıştırılan paket, köprü ağı ve dnsmasq kullanan libvirt gibi diğer paketlerle en az çatışmaya sahipti.

sudo apt-get install dnscache-run

Bu paket resolvconf (/etc/resolv.conf) öğesini kaldırır ve yapılandırmanızı görüntülemek için / etc / network / interfaces veya ağ yöneticisini kullanmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.