LAN üzerinde ağ işlemlerini yavaşlatan ters DNS aramaları


9

çevre

LAN kurulumum oldukça basit:

  • ISS'nin modemine ve internete bağlı bir yönlendirici
  • Geliştirme bilgisayarım doğrudan yönlendiriciye bağlı

Yönlendirici DHCP sağlar, ancak kendi DNS sunucusunu çalıştırmaz. Aslında, LAN'ımın herhangi bir yerinde barındırılan DNS sunucusu yok (tipik ev ağı kurulumu). Yönlendirici, DHCP kiralama bilgilerinin bir parçası olarak ISS'nin DNS sunucularını gönderecek şekilde yapılandırılmıştır.

Geliştirme bilgisayarımda bir VirtualBox makinesi kurdum ve üzerine Debian Squeeze (6.0.4) yükledim. VirtualBox ağ modu, LAN'ımda Bridged Adapterbağımsız bir sunucuyu simüle etmektir. Fiziksel bir sunucu yerine bir VirtualBox sunucusu olmak gerçekten önemli değil, ama tamlık için bundan bahsediyorum.

Sorun

Bir ağ işlemi yürütülmeden önce bir LAN ip'in DNS geri aramasını her çalıştırdığında, sunucunun uzun gecikmeleri olur. Yavaş ağ işlemlerine bazı örnekler:

  • Geliştirme bilgisayarımdan sunucuya SSH bağlantısı
  • Glassfish sunucusunun yönetici portuna bağlantı
  • netstat -l( netstat -nlçok hızlı)
  • Starting MTA: exim4 önyüklemenin tamamlanması uzun zaman alıyor

Bunlardan bazıları benim dev pc's Ip eklemek /etc/hostsveya DNS ters aramalar yapmaktan kaçınmak için komuta özgü bir seçenek eklemek gibi geçici çözümler var . Açıkçası, /etc/hostssadece DHCP ile çeliştiği için kullanmak şimdiye kadar devam ediyor.

Ancak, yardım edemem ama bir şeyleri kaçırdığımı düşünüyorum. Ben musunuz gerçekten kurulum için benim LAN üzerindeki bir DNS sunucusu bir yere ihtiyacın var mı? Bu, ihtiyaçlarım için büyük ve işe yaramaz bir çaba gibi görünüyor ve benim gibi bir DHCP ortamında başka bir seçenek olmadığına inanamıyorum.

Bunun için ağı çok aradım ve belki de doğru arama terimlerine sahip değilim, ama çözümü bulamıyorum ...

BillThor'un cevabını takiben güncelleme 1

Ana makineyi kullanma (dig aynı sonuçları verir):

# ip of stackoverflow.com
$ time host -v 64.34.119.12
Trying "12.119.34.64.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15537
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;12.119.34.64.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
12.119.34.64.in-addr.arpa. 143  IN      PTR     stackoverflow.com.

Received 74 bytes from 192.168.1.1#53 in 15 ms

real    0m0.020s
user    0m0.008s
sys     0m0.000s

# ip of dev pc
$ time host -v 192.168.1.50
Trying "50.1.168.192.in-addr.arpa"
;; connection timed out; no servers could be reached

real    0m10.004s
user    0m0.004s
sys     0m0.000s

/Etc/resolv.conf (yükleme sırasında otomatik olarak oluşturuldu)

nameserver 192.168.1.1

Hem host hem de dig, genel bir ip için çok hızlı geri döner, ancak LAN ip için zaman aşımına uğrayarak 10 saniye sürer. Sanırım şu anki zaman aşımı değerim 10'dur.

güncelleme 2

İle dev-pc/ etc / hosts dosyasında:

$ time getent hosts 192.168.1.50
192.168.1.50    dev-pc

real    0m0.001s
user    0m0.000s
sys     0m0.000s

dev-pc/ Etc / hosts dosyası olmadan :

$ time getent hosts 192.168.1.50

real    0m10.012s
user    0m0.004s
sys     0m0.000s

Her biri için ters DNS aramaları yapmaya çalışan parça parça program seçeneklerini veya parametrelerini bulmam gerekecek gibi görünüyor! Makinelerin hiçbiri (sanal ya da değil), her zaman açık olmadıklarından LAN'ımda DNS sunucusu olarak işlev göremez. Ne yazık ki, yönlendiricinin ürün yazılımı bir DNS sunucusu içermiyor.

Yanıtlar:


3

192.168.1.1 yönlendiricinizin IP adresi mi?

nameserver 192.168.1.1 yönlendiricinizin "ISS'nin DNS sunucularını göndermek" yerine kendisini bir DNS sunucusu olarak tanıttığını önerir.

Hangi marka ve model yönlendiriciniz var? Web arayüzü günlük mesajlarını gösteriyor mu?

Yönlendiricinizin isteği ISS'nizin ad sunucularına iletip iletmediğini merak ediyorum, ancak ISS'nizin ad sunucuları isteği bırakıyor, çünkü IP ile makinelerinin ne olduğunu bilmenizi istemiyorlar 192.168.1.50.

Öneriler:

  • Yönlendiricinizin ayarlarını iki kez kontrol edin. Kendi özel ağınız için istekleri yanıtlamalıdır . Belki yönlendiricinizin web arayüzüne statik bir ana bilgisayar girişi ekleyebilirsiniz?
  • Avahi'yi ağınızdaki tüm sistemlere kurmayı deneyin .
  • Yönlendiricinize Google Herkese Açık DNS ( 8.8.8.8ve 8.8.4.4) veya OpenDNS kullanmasını söyleyin

Yönlendiricim 192.168.1.1 @ "NETGEAR Yönlendirici WNR3500L" dir. Günlükler yalnızca DHCP kiralamalarını ve yönetici arabiriminde oturum açmayı gösterir. Haklısınız, yönlendirici DHCP kiralamalarını gerçekleştirirken (Wireshark ile onaylandı) 192.168.1.1'i dns sunucusu olarak gönderir. Yönelticinin yönetici arayüzünde, DNS adresleri için "ISS'den Otomatik Olarak Al" kullanıyorum. Diğer seçenek, doğrudan DNS sunucularını IP ile belirtmektir. Sanırım bu, DNS isteklerinin aslında yönlendirici tarafından yönlendirildiği anlamına gelir.
bernie

Evet, sanırım DNS isteklerini iletiyor. Bunun yerine Google Herkese Açık DNS'yi ( 8.8.8.8ve 8.8.4.4) kullanacak şekilde değiştirirseniz ?
Mikel

Vay be bu aslında BÜYÜK bir fark yaratıyor! Görünüşe göre bu DNS sunucuları (Google ve OpenDNS ') özel bir IP adresi verildiğinde hızlı bir şekilde başarısız oluyor. Birkaç test daha yapacağım, ama bence bu sorunumu çözdü!
bernie

Bunu kabul edilen cevap olarak işaretlemek. 3 cevap yardımcı oldu, ancak dns sunucularını değiştirmek "büyük" sorunu çözdü.
bernie

4

Başarısız olan DNS aramaları hızlı bir şekilde başarısız olmalıdır. Ancak, genellikle hosts dosyasını okuyacak ve ileri ve geri aramalar için bu girişleri sunacak dnsmasq çalıştırın. Ayrıca, yukarı akış DNS sunucularınızdaki yükü azaltmak için bir DNS önbellek sunucusu görevi görür.

Hangi aramaların yavaş olduğunu görmek için hostveya digkomutunu kullanmak isteyebilirsiniz . DNS çalıştırmayan bir DNS sunucusuna yönlendirilirseniz başarısız olmanız biraz zaman alacaktır. /etc/resolv.confArızaları hızlandırmak için zaman aşımlarını ayarlayabilir ve tekrar deneyebilirsiniz .

EDIT: Çözümleyici yanıtını test etmek için kullanmayı deneyin time getent hosts 192.168.1.50. Bu /etc/hosts, DNS'nin yanı sıra dosyanızdaki aramaları da döndürmelidir . hostVe digkomutlar sadece DNS kontrol edin. Bu döner ama birkaç saniye sürer ise, sırasını değiştirmek isteyebilirsiniz hostsgirişin /etc/nsswitch.conflistenin başına hareket dosyaları.

dnsmasqBirincil DNS ad sunucunuz olarak ayarlanması ve kullanılması, /etc/resolve.confyalnızca ad aramaları için yalnızca DNS'ye dayanan herhangi bir programınız varsa sorunu çözmelidir. Exim çözümleyici için temel aramaları kullanmalıdır. /etc/hostsYönlendiricinizdeki DHCP sunucusunu devre dışı bırakmadığınız sürece, DHCP için kullanabileceğiniz bir dosyaya ihtiyacınız olacaktır dnsmasq. dnsmasqisimleri, işlediği DHCP taleplerinde verildiyse otomatik olarak kaydeder.

EDIT2: Bilgisayarlarınızın hiçbiri her zaman açık değilse, samba'yı yüklemeye ve winsnsswitch yapılandırmanızda kullanmaya bakmak isteyebilirsiniz . Hızlı olmalı, bu nedenle dnsana bilgisayar girişinin önüne koyarsanız işe yarayabilir .

avahiBağlantı yerel ağlarında otomatik keşfi etkinleştirecek yardımcı programları yüklemeye de bakabilirsiniz . IPv6 tarafında çalışıyorum, ancak IPv4 adresleri yayınlamıyor. Ana bilgisayarlar için varsayılan etki alanı ".local" dır. Bu sizin durumunuz için uygun olmayabilir, ancak geçersiz kılınabilir. Aynı zamanda daha aramalarını yaparak yavaş görünüyor winskoyarak böylece mdnsöncesinde dnsnsswitch yapılandırmasında uygun olmayabilir.


Bence tüm (ve sadece) LAN görünüyor yavaş ve tamamen bir hosts dosya kaçınmaya çalışıyor dedi.
ckhan

Bu sadece bir test sunucusu (ve sanal bir de!) Olduğundan, tüm LAN için bir DHCP sunucusu olarak ona güvenemiyorum. Dev bilgisayarım ve bu nedenle test sunucusu çalışmadığında bile IP'ye ihtiyaç duyan diğer kablosuz istemciler de var.
bernie

Yazımı tekrar güncelledim. Şimdilik yardımlarınız için teşekkürler.
Bernie

3

Ev ağınız için yerel bir DNS (ve muhtemelen DHCP) sunucusu kurma alıştırmasından geçmek istemiyorsanız, hizmetlere mümkün olan yerlerde ters DNS aramaları yapmamalarını söyleyebilirsiniz.

Örneğin, SSHD için ters dns aramasını devre dışı bırakmak için, sshd_configdosyaya aşağıdakileri ekleyin (veya dağıtıma bağlı olarak benzer):

UseDNS no

Bu satırı Exim yapılandırmasından kaldırabilirsiniz, ancak bunun başlatma hızı üzerinde etkisi olup olmayacağı net değil, istemcileri bağlarken ters dns aramasını önleyecektir:

host_lookup = *

Glassfish işlemini başlatan kullanıcı için bu ortam değişkenini dışa aktarabileceğiniz anlaşılıyor:

export AS_NO_REVERSE_DNS=true


Keşke sahip olduğum gerçek ekipmanla bir DNS sunucusu kurabilseydim, ancak yönlendiriciye alternatif bir ürün yazılımı yüklemediğimde gerçekten mümkün değil. Yapılandırma seçenekleri için teşekkürler; AS_NO_REVERSE_DNSGlassfish için bir seçenek bulamamıştım .
bernie

1

Dinamikten statik IP'ye geçtikten sonra aynı sorunla karşılaştık. Ağım şimdi yapılandırıldı: STATIC - NO IPv6 ve posta sunucusu kullanmayı düşünmüyor.

Sorunu yaparak çözdüm:

1: dpkg-reconfigure exim4-config komutunu çalıştırın

2: DNS arama sorusuna ulaştığınızda -> DNS aramalarını en aza indirin (Çevirmeli)

Bana bu tür aramalar işe yaramayacak bir hata verdi ve / etc / hosts - düzenleme önerisi ama / etc / hosts ile yaptığım tek şey ip6-allnodes ve ip6-allrouters satırları yorum oldu.

Yeniden başlatma şimdi hızlı olmalı (benim için en azından).

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.