Mengapa mesin Windows dapat menyelesaikan nama lokal ketika Linux tidak bisa?

18

Saya memiliki jaringan kecil dengan mesin Windows dan Linux yang terhubung ke router D-Link DIR-825.

Mesin Windows di jaringan dapat menjangkau semua mesin lain dengan nama sementara mesin Linux hanya dapat menjangkau mesin lain dengan alamat IP.

Saya dapat melihat semua mesin terdaftar dengan nama dan alamat DHCP yang ditetapkan dalam daftar status klien DHCP di antarmuka admin web router.

Mengapa mesin Linux tidak dapat menemukan mesin lain dengan nama sementara Windows tidak memiliki masalah menemukan mesin Linux?

Per Salmi
sumber
2
Bagaimana resolusi nama Anda dilakukan? DNS? Apakah Anda memiliki akhiran pencarian yang dikonfigurasi?
Shane Madden
Semua mesin menggunakan DHCP, terhubung ke router D-Link di mana mereka tampaknya mendaftar sendiri dan itu mungkin cukup bagi Windows untuk menemukan semua mesin. Tetapi mesin Linux apakah mereka benar-benar membutuhkan server DNS lokal selain router?
Per Salmi
Tidak yakin tentang router tertentu itu, tetapi kebanyakan router konsumen tidak mengintegrasikan klien DHCP ke dalam layanan DNS internal mereka. Jawaban Joe kemungkinan adalah penyebab Anda.
Shane Madden
Maka mesin Linux akan menanggapi pesan LLMNR tetapi tidak menggunakannya sendiri untuk menemukan mesin lain?
Per Salmi

Jawaban:

32

Saya bukan ahli jaringan, dan saya juga meneliti BANYAK untuk jawaban dalam topik ini. Temuan saya saat ini adalah:

  • Windows menggunakan nama NetBIOS, dan protokol semacam itu, sebagai yang disiarkan, memungkinkan mereka untuk saling menemukan tanpa server pusat.

  • Mesin-mesin Linux di distro modern menggunakan protokol asli yang disebut Avahi , yang juga merupakan protokol broadcast server-independent. Mesin jaringan lokal memiliki akhiran .local, sehingga Anda dapat melakukan ping dari Linux ke Linux menggunakanping hostname.local , atau melihatnya dengan avahi-discoverpaket. beberapa aplikasi di Gnome menggunakan avahi ke mesin daftar di jaringan (misalnya, Remote Desktop Viewer)

  • Menginstal SAMBA pada mesin Linux akan memberinya nama NetBIOS (atau, lebih teknis, akan membuat mesin Linux mengiklankan dirinya dalam permintaan siaran dengan nama NetBIOS mereka, yang secara default nama host mereka), dan yang memungkinkan mesin Windows untuk menemukan Linux yang .

  • Gotcha: Meskipun mesin Linux dengan Samba akan membalas permintaan protokol NetBIOS, dengan pengaturan default di distro seperti Ubuntu, mesin itu tidak akan menggunakan NetBIOS sebagai metode untuk menyelesaikan nama, dan itulah sebabnya mesin Linux tidak dapat "melihat" satu sama lain atau Windows mesin . Untuk itu, Anda perlu mengedit /etc/nsswitch.conffile dan menambahkan winsdaftar di baris ini:

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

  • Anda mungkin perlu menginstal winbind(dan, jika tidak diinstal secara otomatis, libnss-winbind) paket untuk bekerja di atas.

  • Jadi, untuk masalah visibilitas, Anda menginstal Samba di semua mesin Linux (dan juga mengedit /etc/nsswitch.conf untuk mengaktifkan resolusi nama NetBIOS), atau Anda menginstal dukungan Avahi di mesin Windows.

  • Sedangkan untuk berbagi file, Samba menyediakan kemampuan berbagi file mesin Linux dengan Windows. Tidak perlu mengedit /etc/nsswitch.conf untuk mesin Linux untuk melihat folder bersama satu sama lain dan Windows (dan sebaliknya) di bagian "Network" dari Nautilus

Saya harap ini membantu! : D

MestreLion
sumber
2
untuk nsswitch.conghal: Jika ping HOSTNAMEmemberi Anda kesalahan sistem, itu sinyal bahwa paket libnss-winbind diperlukan.
Michael Stum
18

Secara default, tanpa server DNS, windows dapat menggunakan NetBIOS (protokol resolusi nama Microsoft) untuk menemukan nama-nama sistem windows lain yang lokal ke jaringan mereka. Seperti disebutkan dalam jawaban ini , sepertinya Anda perlu mengatur SAMBA (atau setidaknya winbind) di sisi Linux. Ini adalah seperangkat instruksi dasar :

Untuk mengaktifkan resolusi nama netbios Windows dari komputer Linux, pastikan Samba diinstal (meskipun layanan seseorang tidak perlu berjalan). Samba suite termasuk winbind, yang memungkinkan nama host Windows untuk diselesaikan. Kemudian edit /etc/nsswitch.conf dan ubah baris ini:

hosts: files dns

untuk ini:

hosts: files dns wins

Kemudian uji dengan mem-ping nama komputer mesin Windows pada LAN:

$ ping windowsbox

BTW, ini tidak ada hubungannya langsung dengan MENANG. WINS adalah server NetBIOS yang biasanya digunakan dalam jaringan yang lebih besar untuk mengurangi lalu lintas siaran, menyediakan platform resolusi nama terpusat yang lama, dan pada akhirnya memungkinkan sistem pada jaringan yang berbeda untuk saling mengenal pemetaan nama-ke-IP NetBIOS.

Alternatif untuk SAMBA adalah dengan mengatur server DNS dan memastikan pembaruan DNS dinamis dikonfigurasi atau bahwa DHCP dapat mendaftarkan catatan DNS.

Eric C. Singer
sumber
3

Kemungkinan besar LLMNR .

joeqwerty
sumber
1
Jadi apakah itu akan membuat mesin Windows menemukan kotak Linux menggunakan informasi DHCP router terdaftar itu? Tetapi Linux tidak mendukung menggunakan nama router terdaftar untuk menemukan sesuatu?
Per Salmi
3
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Mark Henderson
LLMNR tidak menjelaskan mengapa Windows dapat menemukan kotak-kotak Linux tetapi tidak sebaliknya. Jika Linux tidak menggunakan LLMNR itu akan menghasilkan Windows menemukan Windows tetapi bukan Linux?
Per Salmi
2

Anda mungkin hanya perlu mengatur Resolusi Avahi / mDNS. Itu tidak sama dengan LLMNR pada Windows.

juwi
sumber
0

Linux dapat menyelesaikan nama lokal meskipun perangkat lunak yang diperlukan tidak diinstal secara default ...

Sebagian besar distro Linux membuat beberapa anggapan mengenai persyaratan peranti lunak Anda di luar kernel ... Referensi Debian DNSMasq

apt-cache search dnsmasq ...

Eddie B
sumber