.Foo.local alan adları çözümlenemiyor


15

Benim işyeri gibi alan adları ile bir intranet vardır server01.foo.local, server02.foo.localvb Geçenlerde bunu test etmek Fedora 16 canlı ortam başlattım ve bu alan adları kararlılığını yok olduğunu keşfetti.

Örneğin:

$ ping server01.foo.local
ping: bilinmeyen ana sunucu01.foo.local
$ ping server01
PING sunucusu01.foo.local (XXXX) ...

Neden server01çözülecek (ve adı şu şekilde yazdırılacak server01.foo.local), ancak server01.foo.localolmayacak?


VMBox içinde çalışan Ubuntu ile tam olarak aynı sorun vardı. @ adam820'nin çözümü de benim için çalıştı.
jimbo

Yanıtlar:


22

Neden beklendiği gibi çalışmadığının ardında yatan neden% 100 olmasa da, mDNS hizmeti (Linux'ta Avahi, Mac / Windows'ta Bonjour / Zeroconf) ve Windows ağları ile çok büyük bir çatışma var gibi görünüyor. alan adları için dahili yönlendirme adı olarak .local kullanın. Sunucu01'e ping işlemi yaparken, çözünürlük için mDNS kullanarak atlanıyor ve daha sonra arama etki alanını (foo.local) isteğe ekliyor ve server01.foo.local için DNS sunucusunu başarıyla sorgulıyor. Ancak, mDNS (varsayılan makine adı uzantısı olarak .local kullanan) kullanırken, server01.foo.local'a ping işlemi yapmaya çalıştığınızda, aslında "server01.foo" adında bir makine arayan mDNS üzerinden yayın yapar; başarısız olduğunda, herhangi bir nedenle DNS'yi düzleştirmez. Bunun büyük bir çözümü, büyük olasılıkla çoğu Windows yöneticisinin etki alanı yapılandırması eğitimine aykırı olan etki alanı .local adını vermemek. Söyleniyor ki:

Eğer mDNS ağınızda bir sonuç vermiyorsa (mDNS'nin bazen kullanıldığı ev ağına karşı özel DNS sunucuları çalıştırma eğilimi gösteren kuruluşta yaygın olduğu gibi), arama sırasını değiştirmek en kolay çözümdür.

Bu, /etc/nsswitch.conf adresinde bulunabilir. Ana makineler bölümünde, Fedora 16 varsayılanı için sipariş listelenir:

hosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname

Bunu şu şekilde değiştirirseniz:

hosts:      files dns mdns4_minimal [NOTFOUND=return] myhostname

dns'i arama sırasına göre ilerlettiğinizde, şimdilik düzeltilmesi gerekir. Alternatif olarak, mDNS'ye ihtiyacınız olmayacağını biliyorsanız "mdns4_minimal [NOTFOUND = return]" bölümünü kaldırın.

Red Hat'ın izleyicisindeki bu hataya baktığımızda , bunun şu anda belirgin bir düzeltmesi olmayan uzun süredir devam eden bir sorun olduğu görülüyor. Birisi bunun neden böyle olduğu hakkında daha fazla fikir verebilirse, takdir edilecektir.


mdns bölümünü kaldırmak sorunu çözdü
rhollencamp

Bunu eklediğiniz için çok teşekkür ederim. Tam olarak aynı sorunu vardı ve dns girişini taşımak ilk çözüldü. Benim durumumda, Fedora'yı değil, en son Ubuntu'yu kullanıyorum, ancak çözüm tamamen aynıydı.
jimbo

hiçbir şey değmez, ben sadece denedim ve cisco VPN kullanarak satırındaki vpncbu girişleri kaldırdıktan sonra bağlanamıyor hosts: .*bulundu /etc/nsswitch.conf. Bu ayarların değiştirilmesi sorunu çözdü.
dobbs

"Başarısız olduğunda, herhangi bir nedenle DNS'yi düzleştirmez." . Sebep oldukça açık. [NOTFOUND=return]"mDNS size bir .local adının bulunamadığını söylüyorsa, bu otoriterdir ve daha fazla sormanın bir anlamı yoktur" anlamına gelir. DNS'yi mDNS'den önce taşımak bir çözümdür, ancak yalnızca mDNS hatalarını yetkili olmayan hale getirmek zaten yeterlidir.
MSalters

Evet, bu geçerli bir yorum; Bu 7 yıl önceydi ve o zamanlar bunu bilmiyordum. Ancak evet, kaldırmak, paketi aşağıda belirtildiği gibi kaldırmak veya siparişi değiştirmek geçerli geçici çözümler / çözümlerdir.
adam820

2

.localEtki alanını kullanmanız durumunda başka bir çözüm öneririm . İlk olarak .local, bazı çok noktaya yayın dinamik keşif için kullanılacak bir standart / kural gibi göründüğü için iyi bir fikir değildir .

Ancak ısrar ederseniz, dağıtımınıza bağlı olarak nss-mdnspaketi veya libnss-mdnspaketi kaldırmak da daha kolaydır ve sorunun çözülmesini sağlarsınız. Bu işlevselliğe ihtiyacınız yoksa, o zaman neden orada kalıyor?

İşte yum info nss-mdns:

Summary     : glibc plugin for .local name resolution
URL         : http://0pointer.de/lennart/projects/nss-mdns/
License     : LGPLv2+
Description : nss-mdns is a plugin for the GNU Name Service Switch (NSS)
            : functionality of the GNU C Library (glibc) providing host name
            : resolution via Multicast DNS (aka Zeroconf, aka Apple Rendezvous,
            : aka Apple Bonjour), effectively allowing name resolution by common
            : Unix/Linux programs in the ad-hoc mDNS domain .local.
            : 
            : nss-mdns provides client functionality only, which means that you
            : have to run a mDNS responder daemon separately from nss-mdns if
            : you want to register the local host name via mDNS (e.g. Avahi).

1

Kontrol edebileceğiniz bazı şeyler:

  • /etc/host.conf içinde DNS sorgulamadan önce / etc / hosts komutunu kontrol etmeyi belirten bir emir var mı?

  • / etc / hosts içindeki sunucu01 nedir?

  • Bir var search foo.local/ etc / resolv, conf? Bu, aradığınız herhangi bir ana bilgisayar adına foo.local ekler

İsim sunucunuzun doğru ayarlanıp ayarlanmadığını merak ediyorum. Hala nslookup varsa, bu için ne çıkmıyor server01, server01.foo.localve ip-adresi (arama ters)?


* host.conf sipariş hakkında hiçbir şey yoktur * server01 / etc / hosts içinde değildir * arama foo.local /etc/resolv.conf içinde (NetworkManager oraya koydu), ancak kaldırmak yardımcı olmaz. NM'nin üzerine yazamayacağı ve yeniden başlayamadığı için yazma korumalı /etc/resolv.conf'u denedikten sonra denedim; zar yok
rhollencamp

@rhollencamp: Sisteminizde nslookup var mı?
ott--
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.