Agak macet di sini.
Saya memiliki 2 mesin yang tidak dapat menyelesaikan nama host LAN, kecuali ada entri khusus di / etc / hosts
Tetapi mesin lain di LAN dapat mengatasi nama host.
LAN saya:
- 1 x Router Cisco runnning DD-WRT v24-sp2 dengan DNSMasq diaktifkan. Saya sudah mengkonfigurasi ini dengan nama host dan IP di LAN saya.
- 1 x Kubuntu 12.10 (menyelesaikan semua nama host dengan benar selama dimasukkan ke DNSMasq pada router)
2 x NAS (juga selesaikan semua nama dengan benar)
1 x Ubuntu Server 12.04 (ini TIDAK menyelesaikan nama host lokal kecuali jika dimasukkan ke / etc / hosts)
- 1 x XBMCLive (Dharma) (sama - tidak menyelesaikan kecuali entri ada di / etc / hosts)
Bagaimana cara mendapatkan 2 terakhir untuk menggunakan entri DNSMasq pada router? Setiap mesin diatur untuk menggunakan router sebagai server nama, dan semua unit menyelesaikan alamat eksternal dengan benar.
Terima kasih.
beberapa info lebih lanjut:
sementara di server, jika saya melakukan ping ke PC lain (wstation)
$ ping wstation
PING wstation.local.domain (x.x.x.x)
Jika saya menambahkan .local
$ ping wstation.local
PING wstation.local.local.domain (x.x.x.x)
dan secara langsung
$ 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
Jawaban:
Tentang output Anda saat ini
Jelas menunjukkan bahwa komputer Anda menambahkan
.local.domain
permintaan non-FQDN. Ini adalah sesuatu yang dikonfigurasi dengan tidak benar atau setidaknya salah dalam pengaturan Anda. (kecuali jika Anda benar-benar menggunakan.local.domain
sufiks dengan sengaja)Penyelesaian nama dan titik
Satu hal penting yang tidak diketahui banyak orang adalah bahwa nama lengkap harus selalu diakhiri dengan titik (
.
). Jika Anda menghilangkannya, maka mesin akan mencoba menyelesaikannya dalam domain pencarian lokal (mis. Mydomain.tld). Jadi dalam hal itu, permintaan untukmypc.local
akan menjadimypc.local.mydomain.tld
. Untuk mencegahnya, kueri dengan tanda titik.Konfigurasi penyelesai
Konfigurasi resolver sangat penting di sini. Di Ubuntu (dan Debian) ini dikonfigurasi dalam file
/etc/network/interfaces
(dengan asumsi Anda tidak menjalankan NetworkManager):Penyelesaian nama di Linux juga dapat dilakukan dengan cara lain. Bukan hanya server DNS lokal sedang ditanyai untuk semua ini. Lihatlah
/etc/nsswitch.conf
file Anda untukhosts
konfigurasi penyelesaian:Ini berarti bahwa file dicoba terlebih dahulu (ini adalah
/etc/hosts
file), kemudian mDNS dan hanya kemudian server DNS yang sebenarnya ditanyai. mDNS diimplementasikan menggunakan Avahi di Linux dan disebut Bonjour di perangkat Apple. Itu menggunakan.local
suffix secara default dan berfungsi melalui pesan broadcast. Mirip seperti ARP bekerja, tetapi kemudian untuk DNS.Semua sistem ini bisa sangat membingungkan dan bahkan lebih ketika menggunakan
.local
pengaturan DNS biasa yang dicampur dengan perangkat mDNS. Saya kira inilah sebabnya Anda bingung sekarang mengapa satu perangkat bekerja dan yang lainnya tidak: mereka tidak semua menggunakan metode penyelesaian yang sama.Untuk menyelesaikan masalah
.local
kecuali jika Anda ingin bergantung sepenuhnya pada mDNS. Dari pertanyaan Anda, saya mengerti Anda ingin menjaga hal-hal yang dikonfigurasi sendiri di tempat sentral, jadi pendekatan saya di sini adalah untuk menghindarinya.my.home
. Untuk dnsmasq ini adalah pengaturan tunggal, tetapi dalam pengaturan reguler ini harus dikonfigurasi pada server DNS maupun server DHCP (seperti yang diumumkan melalui DHCP)./etc/resolv.conf
jika Anda memain-mainkannya di masa lalu.Konfigurasikan PC di jaringan Anda untuk digunakan
my.home
sebagai domain pencarian lokal. Ini dapat dilakukan melalui DHCP secara otomatis, atau jika menggunakan alamat statis melalui/etc/network/interfaces
file atau di Network Manager:ping hostname
) dan nama lengkap (ping hostname.my.home
) harus berfungsi.sumber
files mdns4_minimal [NOTFOUND=return] dns mdns4
. Sekarang semuanya berperilaku lebih seperti yang saya harapkan dengan mesin host.foo.local saya (nama buruk). Sebelum perubahan iniping hostname
akan berhasil tetapiping hostname.foo.local
gagal. Saya menjadi sangat bingung ketikadig hostname
gagal &dig hostname.foo.local
sedang mengembalikan hasil, kebalikan dari apa yang saya harapkan. Sekarang saya bisa melakukan ping FQDN seperti yang saya harapkan. Apakah ada kerugian memiliki pesanan diatur seperti ini?Berdasarkan jawaban oleh gertvdijk saya baru saja berkomentar di nsswitch.conf
sumber
Saya mendapat masalah serupa dengan / etc / hosts yang mengandung banyak spasi antara IP dan hostname, alih-alih menggunakan TAB. Setelah mengubah ke TAB, nama host dapat diatasi dengan ping.
lihat juga di /superuser//a/938366/467479
sumber