Mengapa hasil nslookup selalu berasal dari server 127.0.0.1

11

Saya menemukan cukup bingung bahwa nslookup selalu mendapatkan hasil dari Server 127.0.0.1

Apakah karena Ubuntu menggunakan cache DNS lokal oleh dnsmasq ? Tetapi saya telah menutupnya dan mem-flush cache dns saya, lalu nslookup sebuah host yang belum pernah saya kunjungi, maka outputnya masih 127.0.0.1.

Itu membuat saya agak bingung. Adakah yang bisa menjelaskan ini untuk saya? Omong-omong, server DNS saya diatur ke 8.8.8.8.

47dev47null
sumber

Jawaban:

11

Secara default Ubuntu memang melakukan cache entri DNS dengan Dnsmasq. Dnsmasq melakukan pencarian ketika entri DNS tidak ada dalam cache, itulah sebabnya Anda akan selalu melihat localhost( 127.0.0.1) alamat IP ketika melakukan pencarian DNS tanpa menentukan nameserver.

Di manual itu dijelaskan sebagai berikut:

Dnsmasq menerima permintaan DNS dan menjawabnya dari cache kecil, lokal, atau meneruskannya ke server DNS nyata, rekursif,. Itu memuat konten / etc / hosts sehingga nama host lokal yang tidak muncul dalam DNS global dapat diselesaikan dan juga menjawab pertanyaan DNS untuk host yang dikonfigurasi DHCP.

Perilaku ini dapat ditimpa dengan mengedit /etc/NetworkManager/NetworkManager.confdan mengubah dns=dnsmasqke #dns=dnsmasq, setelah itu Anda harus memulai kembali layanan manajer jaringan ( sudo service network-manager restart).

Informasi lebih lanjut dapat ditemukan di dokumentasi komunitas dan di manual .

Silke
sumber
1
Terima kasih balasannya. Saya belum menyadari bahwa itu Dnsmasq melakukan pencarian ketika entri DNS tidak ada dalam cache. Terima kasih banyak!
47dev47null
apa yang harus dilakukan jika sudah tidak ada dns=dnsmasqgaris?
Douglas Gaskell
@DouglasGaskell: jawaban ini sudah usang: Saya percaya Ubuntu beralih ke systemd-resolveddalam versi 17.04. Lihat: askubuntu.com/questions/907246/…
Silke
2

periksa apakah

cat /etc/NetworkManager/NetworkManager.conf

[utama]

plugins = ifupdown, keyfile

dns = dnsmasq

[ifupdown]

dikelola = salah

hash (#) out dns = dnsmasq

simpan file dan mulai ulang jaringan.

Jika Anda tidak ingin resolver lokal, Anda dapat mematikannya DNSMASQ menggunakan prosedur berikut

Anda perlu mengedit file /etc/NetworkManager/NetworkManager.conf

gksudo gedit /etc/NetworkManager/NetworkManager.conf

dan komentari baris berikut dari

dns=dnsmasq

untuk

#dns=dnsmasq

Simpan dan keluar dari file

Sekarang Anda perlu manajer jaringan menggunakan perintah berikut

sudo restart network-manager

Ref: http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

Sourav Mishra
sumber