ubuntu sunucusu LAN ana bilgisayar adlarını çözmüyor


14

Biraz burada sıkışmış.

/ Etc / hosts içinde belirli girişler olmadıkça, LAN ana bilgisayar adlarını çözemeyen 2 makinem var

Ancak LAN üzerindeki diğer makineler ana bilgisayar adlarını çözebilir .

LAN'ım:

  • DNSMasq etkinleştirilmiş 1 x Cisco yönlendirici çalışma DD-WRT v24-sp2. Bunu LAN'ımdaki ana bilgisayar adları ve IP'lerle yapılandırdım.
  • 1 x Kubuntu 12.10 (yönlendiricideki DNSMasq'a girildikleri sürece tüm ana bilgisayar adlarını doğru şekilde çözer)
  • 2 x NAS (ayrıca tüm adları doğru şekilde çözer)

  • 1 x Ubuntu Server 12.04 (/ etc / hosts içine girilmedikçe yerel ana bilgisayar adlarını ÇÖZMEZ)

  • 1 x XBMCLive (Dharma) (aynı - girişler / etc / hosts içinde olmadıkça çözülmez)

Yönlendiricideki DNSMasq girdilerini kullanmak için son 2'yi nasıl edinebilirim? Her makine yönlendiriciyi ad sunucusu olarak kullanacak şekilde ayarlanmıştır ve tüm birimler harici adresleri doğru bir şekilde çözer.

Teşekkürler.

biraz daha bilgi:

sunucudayken, başka bir PC'ye ping işlemi yaparsam (wstation)

$ ping wstation
PING wstation.local.domain (x.x.x.x) 

Sonra ekleme Eğer .local

$ ping wstation.local
PING wstation.local.local.domain (x.x.x.x)

ve doğrudan

$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
64 bytes from 10.0.0.4: icmp_req=1 ttl=64 time=0.387 ms
64 bytes from 10.0.0.4: icmp_req=2 ttl=64 time=0.316 ms
64 bytes from 10.0.0.4: icmp_req=3 ttl=64 time=0.312 ms
64 bytes from 10.0.0.4: icmp_req=4 ttl=64 time=0.280 ms
64 bytes from 10.0.0.4: icmp_req=5 ttl=64 time=0.322 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.280/0.323/0.387/0.038 ms                                                                       

Cevabı bilmiyorum ve bunun faydalı olup olmayacağı hakkında hiçbir fikrim yok, ancak bilmiyorsanız ... Bir makine adından sonra ".local" ifadesini eklersem, bir şekilde bulunacağını keşfettim herhangi bir yapılandırma gerektirmeden. Aslında bana yardımcı oldu çünkü adresleri belirtiyordum, ancak test etmek için kullandığım bir işletim sistemini eklediğimde veya kaldırdığımda girişleri değiştirmeye devam etmem gerekiyordu. Ancak, machinename.local belirterek, artık endişelenmem gerekmiyordu. Bunun nereden geldiğini biliyorsanız, bana söylemekten çekinmeyin. :)
Marty Fried

1
Merhaba Marty, cevabın için teşekkürler.
.Local

Yanıtlar:


15

Mevcut çıktınız hakkında

ping wstation
PING wstation.local.domain

Açıkça PC'nizin .local.domainFQDN olmayan sorgulara eklendiğini gösterir. Bu, kurulumunuzda yanlış veya en azından yanlış yapılandırılmış bir şey. ( .local.domainsoneki bilerek kullanmazsanız)

İsim çözme ve süreler

Birçok insanın bilmediği önemli bir şey, tam adın her zaman bir nokta ( .) ile bitmesi gerektiğidir . Bunu atlarsanız, makine yerel arama etki alanında (ör. Alanadim.tld) ​​çözmeye çalışacaktır. Bu durumda, için bir sorgu mypc.localolur mypc.local.mydomain.tld. Bunu önlemek için nokta ile sorgulayın .

Çözümleyici yapılandırması

Çözümleyici yapılandırması burada çok önemlidir. Ubuntu'da (ve Debian'da) bu dosyada yapılandırılmıştır /etc/network/interfaces(NetworkManager'ı çalıştırmadığınız varsayılarak):

iface eth0 inet static
   address 192.168.3.3
   netmask 255.255.255.0
   gateway 192.168.3.1
   dns-nameservers 192.168.3.45 192.168.8.10
   dns-search foo.org bar.com                      # <-- these are the search domains

Linux'ta ad çözümleme başka şekillerde de yapılabilir. Tüm bunlar için sadece yerel DNS sunucusu sorgulanmakla kalmıyor. Çözümleme yapılandırması için /etc/nsswitch.confdosyanıza bir göz atın hosts:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Bu, dosyaların önce denendiği (bu /etc/hostsdosyadır), ardından mDNS ve daha sonra gerçek DNS sunucusunun sorgulandığı anlamına gelir. mDNS, Linux'ta Avahi kullanılarak uygulanır ve Apple cihazlarda Bonjour olarak adlandırılır. .localVarsayılan olarak soneki kullanıyor ve yayın mesajları aracılığıyla çalışıyor. ARP gibi, ancak DNS için çalışır.

Tüm bu sistemler, kafa karıştırıcı olabilir ve .localmDNS cihazlarla karıştırılmış düzenli bir DNS kurulumunda kullanıldığında daha da fazla olabilir . Sanırım bu yüzden şu anda bir cihazın neden çalıştığı ve diğerinin çalışmadığı konusunda kafanız karıştı: hepsi aynı çözümleme yöntemini kullanmıyor.

Bir şeyleri sıralamak

  • .localMDNS'ye tamamen güvenmek istemiyorsanız kullanımdan kaçının . Sorunuzdan, şeyleri merkezi bir yerde yapılandırmak istediğinizi anlıyorum, bu yüzden buradaki yaklaşımım bundan kaçınmak.
  • Yerel DNS sunucunuzu (sizin durumunuzdaki DD-WRT cihazı) özel bir alan adı kullanacak şekilde yapılandırın, örn my.home. Dnsmasq için bu tek bir ayardır, ancak düzenli kurulumlarda bu hem DNS sunucusunda hem de DHCP sunucusunda yapılandırılmalıdır (DHCP aracılığıyla duyurulduğu gibi).
  • Tüm bilgisayarları basit ve benzersiz bir ana bilgisayar adına sahip olacak şekilde yapılandırın. Bunu DHCP taleplerinde kullanırlar ve bu, yönlendiricinizde çalışan dnsmasq'ta bunları çözmek için kullanılır. Alternatif olarak, DHCP'ye güvenmek zorunda kalmayacak şekilde manuel olarak yapılandırın.
  • /etc/resolv.confGeçmişte onunla uğraşmak durumunda kalan yapılandırmayı kaldırın .
  • Ağınızdaki bilgisayarları my.homeyerel arama etki alanı olarak kullanılacak şekilde yapılandırın . Bu, DHCP aracılığıyla otomatik olarak veya /etc/network/interfacesdosya üzerinden veya Ağ Yöneticisi'nde statik adresler kullanılıyorsa yapılabilir :

    resim açıklamasını buraya girin

  • Şimdi hem basit ad çözümleme ( ping hostname) hem de tam ad ( ping hostname.my.home) çalışmalıdır.

5
Vaov! Müthiş cevap gertvdijk! Çok kapsamlı. Öyle ki, söylediklerini anlamak için biraz zamana ihtiyacım olacak. Ben ana bilgisayar adından sonra bir nokta ile bir ping test ve doğru çalıştı diyebilirim. Kalıcı makineler için bu LAN'da DHCP kullanmıyorum. Ne hakkında olduğunu anlamadım çünkü herhangi bir makinede .local ayarlarını hiç yapılandırmadım. Bunu talimatlarınıza göre daha ayrıntılı bir şekilde araştıracağım ve size geri döneceğim.
teracow

Bu kapsamlı cevap için teşekkür ederim. /Etc/nsswitch.conf dosyamı, DNS'nin mDNS'den önce denenmesi için değiştirdim files mdns4_minimal [NOTFOUND=return] dns mdns4. Şimdi her şey (kötü adlandırılmış) host.foo.local adresli makinelerimle beklediğim gibi davranıyor. Bu değişiklik önce ping hostnameişe yarayacaktı ama ping hostname.foo.localbaşarısız oldu. Ne zaman dig hostnamebaşarısız oldu & dig hostname.foo.localsonuç, beklediğimin tersini dönüyordu gerçekten karışık alıyordum . Şimdi beklediğim gibi FQDN'lere ping atabiliyorum. Siparişin bu şekilde ayarlanmasının bir dezavantajı var mı?
16:14

1

Gertvdijk tarafından verilen cevaba göre ben sadece nsswitch.conf satırında yorum yaptı

sudo vim /etc/nsswitch.conf

.
.
.
hosts:          files dns # mdns4_minimal [NOTFOUND=return] dns

0

Ben bir sekme kullanarak IP ve ana bilgisayar adı arasında birden çok boşluk içeren bir / etc / hosts ile benzer sorunlar var. SEKME olarak değiştirildikten sonra ana bilgisayar adı ping ile çözümlenebilir.

127.0.0.1        test.local
         ^^^^^^^^ → Should be a TAB not multiple spaces.

ayrıca bkz. /superuser//a/938366/467479


3
Üzgünüm, bu doğru DEĞİL. Hosts dosyası boşluklarla veya sekmelerle çalışır. Ayrıca, önce 127.0.0.1'de localhost, ardından localhost.localdomain - ve kurulumunuza bağlı olarak makine ana makine adınız olmalıdır. Ben mDNS ile onlar çatışma gibi olsa da, ana dosyada herhangi .local adreslerini yükleyerek tavsiye etmem (Bazı kurulumları, Ubuntu / Debian Eğer 127.0.1.1 hattında hostnamenizi koyduk) / Avahi
Dostum

1
Etki alanınızda Windows makineleri varsa, görünüşe göre Avahi veya Zeroconf mDNS uygulamalarıyla uyumlu olmayan tek noktaya yayın DNS kullanıyor. Ayrıca, /etc/nsswitch.conf dosyasını mdns4_minimal [NOTFOUND = return] 'dan sonra kaynar olup olmadığını veya tam bir mdns4 araması yapıp yapmadığını kontrol edin (geri taşı). Ayrıca, mDNS / sd-DNS çözümleyicileri bu etki alanına yapılan aramaları maskeleyeceğinden, hiçbir DNS sunucusunu .local etki alanını kullanacak şekilde yapılandırmayın. Dahili DNS TLD'niz için .lan, .work, .home, vb. Kullanın (.biz, .xyz, .web vb. Gibi yeni TLD'lerden biri DEĞİLDİR). İyi şanslar ve DNS çözümünün eğlenceli dünyasına hoş geldiniz.
Dostum
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.