Yerel 'hosts' dosyalarındaki girişler hem ileri hem de geri ad aramalarını geçersiz kılar mı?


16

Bir hosts dosyasında aşağıdaki girişler varsa:

192.168.100.1    bugs
192.168.100.2    daffy.example.com
192.168.100.3    elmer.example.com.

Yerel yardımcılar tarafından IP-> ad çözümleme girişimleri ('gethostbyaddr' veya Windows eşdeğerini kullandığımı varsayıyorum) bu girişleri onurlandırır mı? Bu davranış yapılandırılabilir mi? İşletim sistemleri arasında nasıl bir fark vardır? 'Hosts' dosya girişlerinin tam olarak nitelenip nitelenmemesi önemli midir?

EDIT: Russell yanıt olarak, test Linux sistemim RHEL 4 çalıştırıyor. /Etc/nsswitch.conf aşağıdaki 'hosts' satırını içerir:

hosts:      files dns nis

Ana bilgisayarlarımdan birine adıyla (örneğin, hata, daffy) ping atıyorsam, ileri çözünürlük doğru çalışıyor. Bunlardan herhangi birini IP adresine göre izlersem, geriye doğru arama beklendiği gibi çalışır. Ancak, IP ile ping işlemi yaparsam, ping ana bilgisayar adlarını çözümleyecek gibi görünmez. Anladığım kadarıyla Linux ping, aksi belirtilmedikçe IP'leri her zaman isimlere çözümlemeye çalışacaktı. Traceroute ana bilgisayar dosyalarında geriye doğru aramaları işleyebiliyordu, ancak ping yapamıyor?

Yanıtlar:


16

Genellikle hosts dosyası hem ileri hem de geri aramalar için kullanılır. Unix sistemindeki tercih, nsswitch.conf dosyanızdaki girişlerin sırasına bağlı olacaktır.

örneğin, aşağıdaki satır hosts dosyasının DNS'yi geçersiz kılmasını sağlayacaktır. Girişleri tersine çevirmek DNS, hosts dosyasını geçersiz kılar.

hosts: dosyalar dns

Bir windows sisteminde tercih sırasına ayarlanıp ayarlanamayacağından emin değilim.

Inetutils-20071127'de (Ubuntu 9.04 kutumda yüklü olan sürüm) ping kaynağına bir göz attım ve bir ana bilgisayar adı yerine bir IP adresine ping attığınızda kaynak yalnızca sayısal modu etkinleştiriyor gibi görünüyor:

                if (inet_aton (hedef, & whereto.sin_addr) == 1) {
                        hostname = hedef;
                        eğer (argc == 1)
                                seçenekler | = F_NUMERIC;

Bu, ana makinenize IP adresine göre ping attığınızda neden geriye doğru arama almadığınızı açıklayabilir.


Bu benim düşüncemdi, ama durum böyle görünmüyor. Ayrıntılar için güncellenmiş soruya bakın.
Murali Suriar

Henüz kaynağa bakma şansım olmadı; ancak ldd çıkışına hızlı bir bakış sistemimde ping doğrudan libresolv DNS çözümleyici kütüphanesine bağlı olduğunu gösterir, bu nsswitch dosyasını atlıyor ve doğrudan geriye doğru aramalar yapıyor anlamına gelebilir ...
Russell Heilling

ISC hostyardımcı programını kullanırken, / etc / hosts komutunun düzenlenmesinin bir etkisi olmadığı izlenimi edinilebilir. host 10.0.0.1DNS sorgusu yapar ve hosts dosyasını yoksayar. Bu, sistem çözümleyicisini kontrol perl -MSocket -le '$a=inet_aton(shift); $_=gethostbyaddr $a, AF_INET; print' 10.0.0.1
etmenizi

8

Windows'ta ad çözümleme sırasını değiştirmek için kayıt defteri girdilerini değiştirme başvurusu buldum:

http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=963485

Oradan alıntı yapılıyor:

Varsayılan olarak, Windows ad çözümleme sağlayıcılarını aşağıdaki sırayla denetler:

Yerel, (NetBT yerel ad önbelleği), Ana Bilgisayarlar, DNS, NetBT (WINS).

Siparişin Hosts, DNS, Local, NetBT olmasını istiyorsunuz.

Aşağıda, daha düşük sayılar daha yüksek önceliğe sahiptir.

Aşağıdaki kayıt defteri anahtarları

HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\ServicessTcpip\ServiceProvider

değiştirilmesi gerekiyor.

DnsPriority= 0x3e8 (Decimal: 1000)
HostsPriority= 0x1f4 (Decimal: 500)
LocalPriority= 0x5dc (Decimal: 1500)
NetbtPriority= 0x7d1 (Decimal: 2001)

Bu tür “iç işler” bilgisini nasıl alıyorlar?
Pacerier

1

/etc/host.confHangi sırayla dosyasının belirttiği IP adreslerini keşfetmek için kullanılır. Mine varsayılan olarak aşağıdakileri içerir:

#
# /etc/host.conf
#

order hosts,bind
multi on

Bu, hosts dosyasının her zaman önce ve ardından DNS (bağlama) olarak kontrol edildiği anlamına gelir.

Eğer nisburada belirtilmemiş o zaman hiç bakmazlar /etc/nsswitch.conf.

Dokümantasyon bağlantısı: http://tldp.org/LDP/nag/node82.html


/Etc/host.conf yöntemi bazı sistemlerde güncel değildir, yalnızca nsswitch.conf kullanılır (glibc ve eglibc tabanlı sistemler gibi). Bu glibc sürümleri '/etc/host.conf' u uyarı yapmadan ayrıştırır ve 'order' satırını atar.
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.