Ad çözümlemem neden anasistemler dosya girdisinde bile DNS'ye ulaşıyor?


15

Ubuntu 10.04.2 LTS Masaüstü kullanıyorum. Bir web geliştiricisi olarak, doğal olarak dosyamda bir "me.com" oluşturdum /etc/hosts. Ne yazık ki, yerel ana bilgisayar girişimi kontrol etmeden önce isim çözümüm DNS'ye gidiyor ve nedenini bulamıyorum.

Sonuç olarak, eğer /etc/resolv.conf dosyam nameserver 127.0.0.1önce içerdiyse, bir saniyeden daha kısa bir sürede web tarayıcımda me.com'dan (yerel) bir yanıt alırım. Ancak bu girişe sahip değilsem, ISS'm biraz yavaşsa yanıtım bazen 5 saniye kadar sürer.

Sorun o kadar zahmetliydi ki, aslında bu girişi otomatik olarak nasıl ekleyeceğime dair bir soru dosyalamam gerekiyordu (ve birisi bunu çözdü)/etc/resolv.conf . Ama burada kullanıcılardan biri (@shellholic) bu soruyu dosyalamamı şiddetle tavsiye etti (ve benimle bu konuda yorum yaptı).

/etc/hostsDosya girişime basmadan önce iş istasyonumun ad çözümlemesinin neden DNS sunucusuna vurması gerektiğini biliyor musunuz ? Şimdilik, resolv.conf hilesini kullanıyorum .


1
Bakmayı deneyebilirsin /etc/nsswitch.conf. Sistemimdeki girişler biraz açık değil, ancak aramaları yalnızca filesbir seçenek olarak test edebilir ve bunun bir fark yaratıp yaratmadığını görebilirsiniz.
belacqua

Evet, bize çıktısını verebilir cat /etc/nsswitch.confve cat /etc/host.conf? Ayrıca: bunu nasıl test ediyorsunuz (ping, tarayıcı, paket koklama vb. Yoluyla)?
düzenleme

@Arrange sürümünü tamamlamak için sonucunu ekleyebilir misiniz time getent hosts me.com; hostname --fqdn; grep 'me.com' /etc/hosts; grep hosts /etc/nsswitch.conf; netstat -uln | grep ':53'; cat /etc/host.conf; wc -l /etc/hosts? Rasyonaliteyi gizlemek için tereddüt etmeyin.
shellholic

@shellholic ^ rasyonalite ^ rasyonel olarak? heh.
belacqua

@jgbelacqua: gerçekten
shellholic

Yanıtlar:


15

Dosya /etc/nsswitch.conf, ad çözümlemesinin sırasını yeniden yapılandırmanıza izin verir. Varsayılan olarak, ana bilgisayar dosyası ilk önce yapılandırılmış DNS'dir. Daha fazla seçenek olabilir.

Dosyada /etc/hostsyalnızca IP adresleri ve ana bilgisayar adları listelenir (isterseniz bir IP için birden çok ad)

Dosya /etc/resolv.confvarsayılan arama alanlarını listeler ve ayrıca kullanılacak sunucuları sırayla listeler.


4
Ayrıca, adınız Linux kutunuzdaki bir uygulama veya hizmet tarafından çözüldüğünde, TTL (yaşam süresi) olarak bilinen bir süre için önbellekte kalacağını unutmayın. Çözünürlük sırasını değiştirirseniz, sisteminizi yeniden başlatmanız veya önbelleği temizlemeniz daha iyi olur.
jfmessier

'önbelleği' nasıl temizlersiniz?
Eric Johnson

Emin değilim, ancak ifup ve ifdown komutları ile bir ağ bağlantısını yeniden başlatabilir. Tabii ki, yeniden başlatma önbelleği temizlemelidir, ancak Linux kullanıyoruz, değil mi?
jfmessier

nscdad çözümleme sorgularını önbelleğe alabilir, ancak ttl'ye uymaz (ve bu nedenle ana makinelerin önbelleğe alınması varsayılan olarak devre dışıdır). systemd-resolvedayrıca girişleri önbelleğe alır. Bunların hiçbiri yapılandırılmazsa, Linux ana bilgisayarları DNS yanıtlarını önbelleğe almaz . (Tarayıcılar muhtemelen uygulama katmanında yapıyor)
Gert van den Berg
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.