Saat menyelesaikan FQDN atau nama mesin ke alamat IP di jaringan lokal saya (mycompany.internal) saya bisa menggunakan menggali di baris perintah (linux / mac) atau nslookup (windows) untuk meminta server yang dikonfigurasi dan mendapatkan respons. Tetapi mencoba memasukkan FQDN atau bahkan hanya nama mesin dalam perintah ping atau dalam browser web menghasilkan kesalahan 'Host Tidak Dikenal' atau DNS. Ini contohnya, ini dari Mac:
mac:~ atroon$ dig server.mycompany.internal
; <<>> DiG 9.6.0-APPLE-P2 <<>>
server.mycompany.internal ;; global
options: +cmd ;; Got answer: ;;
->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5219 ;; flags: qr aa rd
ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0,
ADDITIONAL: 0
;; QUESTION SECTION:
;server.mycompany.internal. IN A
;; ANSWER SECTION:
server.mycompany.internal. 1200 IN A 172.16.254.36
;; Query time: 0 msec ;; SERVER:
172.16.254.8#53(172.16.254.8) ;; WHEN: Wed Dec 16 11:39:15 2009 ;; MSG SIZE
rcvd: 55
mac:~ atroon$ ping server.mycompany.internal<br>
ping: cannot resolve server.mycompany.internal: Unknown host
Saya tidak bisa seumur hidup saya mencari tahu hal ini. Server DNS adalah kotak SBS 2003 yang menangani AD, beberapa file / cetak, dll untuk jaringan perusahaan kecil. Masalah ini terjadi pada saya sekitar tiga kali seminggu, dan ketika saya terhubung ke jaringan lokal secara langsung, saklar yang sama seperti server genap. Saya dapat membuat koneksi yang saya inginkan dengan alamat IP, saya hanya tidak bisa membuat DNS berfungsi. Selain itu, pada saat yang sama saya mengalami ini, pengguna lain baik-baik saja, yang membuat saya berpikir itu masalah pada Mac saya. Tapi masalah macam apa? Bagaimana cara menggali mengirim kueri dan mendapatkan balasan, dan ping mengatakan 'host tidak dikenal'?
Saya memposting di sini vs serverfault karena saya pikir ini adalah masalah lokal bukan masalah server ... tetapi jika ada yang bisa mengarahkan saya ke server, saya kira kita akan menuju jalan satu atau dua domain.
sumber
lookupd
, 10,5 DNS disimpan dengan Layanan Direktori Informasi, sedangkan 10,6 itu dikelola melaluimDNSResponder
untuk sebagian besar item.Jawaban:
Tergantung pada versi Mac OS X Anda menggunakan cara DNS ditangani oleh sistem telah berubah.
Pada dasarnya ada dua mekanisme penyelesaian DNS di Mac OS X. Pendekatan UNIX standar (
/etc/resolv.conf
) yang digunakan olehdig
dan kemudian pendekatan yang digunakan oleh seluruh sistem.Dalam Mac OS X 10.4 dan 10.5 kedua pendekatan itu lebih erat diikat bersama; menyegarkan satu cenderung menyegarkan keduanya. Namun dalam 10.6 dan pada tingkat yang jauh lebih rendah 10.5 dimungkinkan untuk
dig
memberi Anda nilai yang tepat sementara mekanisme penyelesaian sistem masih memiliki nilai buruk.Untuk membersihkan cache DNS untuk masing-masing versi Mac OS X:
lookupd -flushcache
dscacheutil -flushcache
sudo dscacheutil -flushcache
atausudo killall -HUP mDNSResponder
(Perintah pertama harus melakukan perintah kedua untuk Anda sekarang, tetapi dalam versi 10.6 yang lebih lama tidak muncul)ping
jika saya ingat menggunakan sistem pencarian - mekanisme penyelesaian sangat berbeda./etc/resolv.conf
akan selalu menggunakan server DNS secara berurutan, sedangkanmDNSResponder
mencoba menjadi 'pintar' yang dapat menggigit Anda di belakang tergantung pada pengaturan Anda.Juga, apakah Anda memiliki beberapa server DNS yang ditentukan pada Mac Anda dan / atau melalui DHCP? Snow Leopard telah memperkenalkan perilaku berbeda (bug?) Di mana urutan server DNS akan berubah. Ini memainkan malapetaka pada DNS split (secara internal Anda menggunakan satu IP, tetapi secara eksternal yang berbeda) karena ada kalanya ia akan berhenti menanyakan server DNS internal terlebih dahulu sebelum menanyakan server kedua (eksternal kali ini) sejalan. Ini seharusnya merupakan metode untuk menghubungi server DNS tercepat untuk menghindari keterlambatan terkait DNS. Perbaikan termudah sebelum 10.6.3 adalah hanya melayani server DNS internal melalui DHCP dan pastikan pengaturan penerusan Anda pada server DNS diatur sesuai.
Sekarang pada 10.6.3 dimungkinkan untuk memberi tahu mDNSResponder untuk selalu menggunakan urutan yang tepat dan tidak mencoba dan mengoptimalkan waktu permintaan DNS. Anda dapat melakukan ini dengan menambahkan kunci
StrictUnicastOrdering
dan menyetelnya ke true ke plist Daemon Launch mDNSResponder (dan muat ulang seperlunya).(Sumber: support.apple.com dan terima kasih kepada Yar yang memasang ini sebelum saya melakukannya.)
Anda dapat mengotomatiskan ini (sedikit lebih cepat dan lebih mudah daripada perintah Apple) dengan menjalankan perintah berikut:
sudo /usr/libexec/PlistBuddy -c "Add :StrictUnicastOrdering bool true" /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
dan balikkan dengan menjalankan:
sudo /usr/libexec/PlistBuddy -c "Delete :StrictUnicastOrdering" com.apple.mDNSResponder.plist
Setelah salah satu atau Anda harus memuat ulang pekerjaan di launchd untuk me-restart mDNSResponder dengan menjalankan:
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
lalu
sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sumber
Akhirnya, perbaikan berkat 10.6.3 dan sedikit mengutak-atik . Pada dasarnya Anda memodifikasi
com.apple.mDNSResponder.plist
dan kemudian restart dnsresponder.Saya bisa saja salah, tetapi saya pikir instruksinya tidak aktif, dan harus mengatakan di
sudo cp
mana mereka mengatakansudo mv
di awal.sumber
Lihat apa yang ada di dalam
/etc/resolv.conf
untuk melihat server nama yang digunakan Mac Anda. Anda juga dapat menambahkan server nama di preferensi jaringan - pilih adaptor yang Anda gunakan, klik tombol "Advanced ..." dan kemudian klik pada tab "DNS".Pada mac alat baris perintah untuk menyiram cache DNS adalah:
Perbarui :
Saya menemukan banyak hal bagus di utas ini di diskusi.apple.com . Sebagai contoh:
Anda dapat melihat apa yang telah di-cache dengan menjalankan
sudo killall -INFO mDNSResponder
dan kemudian melihat ke dalam/var/log/system.log
sumber
Sebagian besar aplikasi akan bergantung pada layanan Klien DNS (well, mereka bergantung pada OS yang menggunakan layanan ...) - Saya akan memeriksa ulang apakah masih berjalan. Mungkin bahkan me-restart layanan ketika Anda mengalami masalah.
Anda juga dapat mencoba membersihkan cache DNS Anda, tetapi perlu diketahui bahwa beberapa aplikasi (khususnya browser web) akan men-cache entri DNS secara internal, jadi Anda mungkin perlu me-restart mereka juga.
Terakhir, ada kemungkinan malware menyebabkan hal-hal menjadi berantakan. Banyak malware akan membajak DNS atau host tertentu. Mungkin perlu memeriksa itu juga.
sumber