Linux yapamadığında Windows makineleri neden yerel adları çözebilir?


18

D-Link DIR-825 yönlendiriciye bağlı Windows ve Linux makineleri ile küçük bir ağım var.

Ağdaki Windows makineleri diğer tüm makinelere adlarıyla ulaşabilirken, Linux makineleri yalnızca diğer makinelere IP adresiyle erişebilir.

Yönlendiricilerin web yönetici arayüzündeki DHCP istemci durum listesinde adlarıyla listelenen tüm makineleri ve DHCP atanmış adreslerini görebiliyorum.

Windows Linux makineleri bulmakta sorun yaşarken, Linux makineleri neden başka bir makine bulamıyor?


2
Ad çözümlemeniz nasıl yapılır? DNS? Yapılandırılmış bir arama soneki var mı?
Shane Madden

Tüm makineler, kendilerini kaydettikleri D-Link yönlendiriciye bağlı DHCP kullanıyor ve bu muhtemelen Windows'un tüm makineleri bulması için yeterli. Ancak Linux makineleri gerçekten yönlendiriciden başka bir yerel DNS sunucusuna ihtiyaç duyuyorlar mı?
Per Salmi

Bu yönlendiriciden emin değilsiniz, ancak çoğu tüketici yönlendiricisi DHCP istemcilerini dahili DNS hizmetlerine entegre etmez. Joe'nun cevabı muhtemelen suçludur.
Shane Madden

Daha sonra Linux makineleri LLMNR mesajlarına cevap verir, ancak diğer makineleri bulmak için bunları kullanmaz mı?
Per Salmi

Yanıtlar:


32

Bir ağ uzmanı değilim ve aynı zamanda bu konudaki yanıtlar için ÇOK araştırıyorum. Mevcut bulgularım:

  • Windows NetBIOS adlarını kullanır ve yayın yapan bu protokol, herhangi bir merkezi sunucu olmadan birbirlerini bulmalarını sağlar.

  • Modern dağıtımlardaki Linux makineleri , aynı zamanda sunucudan bağımsız bir yayın protokolü olan Avahi adlı bir protokol kullanır . Yerel ağ makinelerinin bir soneki vardır .local, böylece kullanarak Linux'tan Linux'a ping atabilirping hostname.local veya avahi-discoverpaketle görebilirsiniz . Gnome'daki bazı uygulamalar ağdaki makineleri listelemek için avahi kullanır (örneğin, Uzak Masaüstü Görüntüleyici)

  • SAMBA'yı bir Linux makinesine yüklemek, ona bir NetBIOS adı atayacaktır (veya daha teknik olarak, bir Linux makinesinin, varsayılan olarak ana bilgisayar adları olan NetBIOS adlarıyla yayın isteklerinde kendini tanıtmasını sağlar) ve Windows makinelerinin Linux'u bulmasını sağlar olanlar .

  • Gotcha: Samba'lı Linux makineleri NetBIOS protokol isteklerini yanıtlasa da, Ubuntu gibi dağıtımlarda varsayılan ayarlarla NetBIOS, adları çözmek için bir yöntem olarak kullanmaz ve bu yüzden Linux makineleri birbirlerini veya Windows'ları "göremez" makineleri . Bunun için /etc/nsswitch.confdosyayı düzenlemeniz ve winsbu satırdaki listeye eklemeniz gerekir:

    hosts: files mdns4_minimal [NOTFOUND=return] dns wins mdns4

  • Sen olabilir yüklemeniz gerekir winbind(otomatik olarak yüklenir değilse ve libnss-winbind) işe yukarıdaki için paketi.

  • Bu nedenle, görünürlük sorunu için Samba'yı tüm Linux makinelerine yüklersiniz (ve ayrıca NetBIOS ad çözümlemesini etkinleştirmek için /etc/nsswitch.conf dosyasını düzenlersiniz) veya Windows makinelerine Avahi desteğini yüklersiniz.

  • Dosya paylaşımına gelince, Samba Windows ile Linux makineleri dosya paylaşım yetenekleri sağlar. Nautilus'un "Ağ" bölümünde birbirlerinin ve Windows'un (ve tam tersi) paylaşılan klasörlerini görmek için Linux makineleri için /etc/nsswitch.conf dosyasını düzenlemeye gerek yoktur.

Umarım bu yardımcı olmuştur! : D


2
için nsswitch.congbir şey: Eğer ping HOSTNAMEsize libnss-winbind paket gerekli olduğunu sinyalidir bir sistem hatası verir.
Michael Stum

18

Varsayılan olarak, DNS sunucusu olmadan, pencereler ağlarında yerel olarak bulunan diğer Windows sistemlerinin adlarını bulmak için NetBIOS'u (Microsoft ad çözümleme protokolü) kullanabilir. Bu cevapta belirtildiği gibi, Linux tarafında SAMBA (veya en azından winbind) kurmanız gerekiyor gibi görünüyor. Temel bir talimatlar dizisi :

Linux bilgisayardan Windows netbios ad çözümlemesini etkinleştirmek için, Samba'nın kurulu olduğundan emin olun (smb hizmetinin çalışması gerekmez). Samba paketi, Windows ana bilgisayar adlarının çözümlenmesini sağlayan winbind içerir. Ardından /etc/nsswitch.conf dosyasını düzenleyin ve şu satırı değiştirin:

hosts: files dns

buna:

hosts: files dns wins

Daha sonra LAN'daki Windows makinesinin bilgisayar adını pingleyerek test edin:

$ ping windowsbox

BTW, bunun doğrudan WINS ile ilgisi yoktur. WINS, genellikle daha büyük ağlarda yayın trafiğini azaltmak, eski bir merkezi ad çözümleme platformu sağlamak ve sonuçta farklı ağlardaki sistemlerin birbirlerinin NetBIOS-IP eşlemesini bilmelerini sağlamak için kullanılan bir NetBIOS sunucusudur.

SAMBA'ya bir alternatif, bir DNS sunucusu kurmak ve dinamik DNS güncellemelerinin yapılandırılmasını veya DHCP'nin DNS kayıtlarını kaydedebilmesini sağlamaktır.


3

Büyük olasılıkla LLMNR .


1
Peki, Windows makinelerinin yönlendirici DHCP kayıtlı bilgilerini kullanarak Linux kutularını bulmasını sağlar mı? Ancak Linux hiçbir şey bulmak için yönlendiricinin kayıtlı adlarını kullanmayı desteklemiyor mu?
Per Salmi

3
Bu teorik olarak soruyu cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak tercih edilir.
Mark Henderson

LLMNR, Windows'un neden Linux kutularını bulabileceğini açıklıyor gibi değil, tersini değil. Linux LLMNR kullanmazsa, Windows'un Windows bulmasına neden olur, ancak Linux'u kullanmaz mı?
Per Salmi

2

Muhtemelen Avahi / mDNS Çözünürlüğünü ayarlamanız gerekir. Windows'da LLMNR ile aynı şeyi yapar.


0

Linux gerekli adları varsayılan olarak yüklememiş olsa da yerel adları çözebilir ...

Çoğu Linux dağıtımı, çekirdeğin ötesinde yazılım gereksinimlerinizle ilgili çok az varsayım yapar ... Debian reference DNSMasq

apt-cache search dnsmasq ...

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.