nslookup bekerja dengan /etc/resolv.conf, ping dan ssh tidak

12

Di jaringan universitas lokal kami, saya telah (memperoleh oleh DHCP) pengaturan berikut di /etc/resolv.conf:

search a.domain.com b.domain.com domain.com
nameserver x.x.x.x
nameserver y.y.y.y

Pengaturannya juga sama dalam Preferensi Sistem. Masalah berikut terjadi:

nslookup server

berfungsi, dan menggunakan salah satu server nama untuk meminta server.a.domain.com dengan benar. Namun jika saya mencoba melakukan ping,

ping server

gagal dengan host yang tidak terjangkau.

ping server.a.domain.com

bekerja. Secara manual menambahkan server dengan alamat ip yang diperoleh oleh nslookup ke / etc / hosts membuat ping berfungsi juga, tetapi "solusi" ini mengelak dari nameserver dan karenanya tidak ideal (dan saya harus menambahkan sekitar 20 entri lain juga). Adakah yang menyebabkan ini? Mengapa ping tidak menggunakan hasil dari nslookup / the searchdomains?

ssh server

juga gagal, yang merupakan masalah / ketidaknyamanan yang sebenarnya.

Saya sudah menambahkan AlwaysUseSearchDomains ke mDNSResponder, tetapi perbaikan ini hanya membantu masalah ketika menggunakan server.foo.

Saya menggunakan OS X Lion 10.7.3.

tholu
sumber
Paket ping dapat diblokir oleh peralatan jaringan. Hal yang sama dengan paket ssh - mereka mungkin tidak ingin Anda melakukan apa yang Anda lakukan.
Thorbjørn Ravn Andersen
Lihat solusi di bawah, bukan itu masalahnya.
tholu
"Tuan rumah yang tidak terjangkau" berarti masalah konektivitas jaringan (atau ICMP diblokir), bukan masalah resolusi DNS
Daniel Serodio

Jawaban:

2

Nah, apakah Anda membaca komentar di bagian atas /etc/resolv.conf?

# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.

Solusi yang benar adalah dengan menambahkan domain pencarian melalui panel Jaringan di System Preferences seperti yang dijelaskan di sini .

Pro tua
sumber
Aku melakukannya. Domain pencarian secara otomatis dimasukkan dalam panel Jaringan di System Preferences per konfigurasi DHCP (dan dengan demikian diklik dan tidak dapat diubah). Nilai / konfigurasi yang sama persis ditemukan di /etc/resolv.conf.
tholu
Saya tidak tahu harus mengatakan apa kepada Anda. Saya mendapatkan pengaturan Ethernet dan WiFi melalui DHCP dan dapat mengubah domain pencarian saya melalui panel System Preferences.
Old Pro
Domain pencarian sudah benar di System Preferences dan /etc/resolv.conf - masalahnya adalah, ping dan ssh tidak menggunakannya. Jika mereka akan menggunakan output dari nslookup, semuanya akan berfungsi dengan baik, tetapi entah bagaimana, mereka tidak melakukannya. Mereka mencari / etc / hosts.
tholu
Saya secara manual menambahkan domain pencarian (meskipun mereka diklik) satu per satu melalui System Preferences dan sekarang berfungsi. Terima kasih!
tholu
4

Saya memiliki masalah yang sama. Solusi yang saya gunakan adalah membuat direktori / etc / resolver. Di dalam direktori itu, buat file bernama untuk setiap domain yang ingin Anda selesaikan. Di dalam setiap file harus ada dua baris

nameserver 10.0.100.2
domain  home.cainmanor.com

File di atas akan dinamai / etc / resolver / home. Mungkin perlu dinamai home.cainmanor.com, tapi saya tidak bisa mengujinya sekarang.

Semoga berhasil!

Greg Cain
sumber
Saya membuatnya bekerja dengan mengatur domain pencarian melalui System Preferences satu per satu, mengesampingkan pengaturan DHCP yang gagal diurai dengan benar oleh OS X. Saya tidak bisa mencoba solusi Anda, tetapi terima kasih!
tholu
Pendekatan ini bekerja dengan baik ketika klien VPN korporat Anda melakukan hal yang salah sehubungan dengan preferensi sistem sementara.
Peter
1

Saya percaya, masalahnya ada di dalam konfigurasi domain pencarian: ping / ssh mencoba menggunakan gethostbyname2()yang gagal karena nama tidak berjalan lagi (setidaknya di Lion) dan /etc/resolv.confdengan domain pencarian yang dikonfigurasi dengan demikian diabaikan. /etc/hostsadalah upaya terakhir untuk gethostbyname2()dan dengan demikian ssh bekerja lagi dengan entri yang tepat dalam /etc/hosts. Harus diperbaiki oleh Apple imho.

Secara manual menambahkan domain pencarian satu demi satu memperbaikinya, lihat solusi di atas.

tholu
sumber
Ketika saya menambahkan domain pencarian ke koneksi WiFi saya (yang dikonfigurasi melalui DNS) di OS 10.7.3 melalui System Preferences -> panel Network, itu digunakan oleh ping dan ssh seperti yang saya harapkan. Saya tidak menyentuh /etc/resolv.conf atau / etc / hosts secara manual / langsung, tetapi perubahan dari System Preferences tercermin dalam /etc/resolv.conf secara otomatis. OS X melakukan banyak hal berbeda dari sistem Unix lain dan ini adalah salah satunya.
Old Pro
1
Terima kasih, ini berfungsi dengan menambahkan domain pencarian secara manual satu per satu, lihat komentar saya pada solusi yang disarankan di atas.
tholu
Menambahkan domain pencarian tidak memperbaiki masalah ... Ada orang lain yang punya solusi lain?
Bagaimana Anda menambahkannya?
tholu
1

Saya sering mengalami masalah ini, ketika Mac Book Pro saya (OS X versi 10.10.1) tertidur. Bangun & saya tidak bisa ssh menggunakan nama host mesin di jaringan saya (dan ping juga tidak berfungsi). nslookup berfungsi dengan baik. Tidak dapat melihat pesan yang relevan di / var / log. Biarkan saja beberapa menit & hei presto itu berfungsi lagi .....

Ian Ellis
sumber
0

Saya menjawab ini di tempat lain, karena itu adalah perbaikan sederhana untuk saya, dan saya tidak dapat menemukan jawaban yang cocok untuk saya di tempat lain.

Setelah memulai ulang mDNSResolver puluhan kali seperti yang disarankan pada utas lainnya:

sudo killall -HUP mDNSResponder

Saya akhirnya mencoba sesuatu yang lain. Saya menonaktifkan Wi-Fi dan menghapus semua jaringan pilihan saya. Lalu saya membangun kembali koneksi Wi-Fi dan semuanya bekerja dengan baik:

  1. Menu Apple -> System Preferences -> Wi-Fi (di sebelah kiri)
  2. 'Matikan Wi-Fi' lalu pilih 'Lanjutan'
  3. Hapus koneksi Wi-Fi yang bermasalah dengan Anda (atau semuanya jika Anda mau). Lakukan ini dengan memilih jaringan Wi-Fi yang ingin Anda hapus dan menekan "-"
  4. Klik 'Terapkan' dan 'OK'
  5. Hidupkan Wi-Fi kembali.
  6. Pilih jaringan Wi-Fi Anda dan masuk lagi.

Inilah yang akhirnya berhasil untuk saya. Mungkin seharusnya hal pertama yang saya coba, tapi saya seorang pria Linux dan saya melihat perbaikan konsol pertama.

Joel Griffiths
sumber