Mengapa menggali melaporkan server dns sebagai 127.0.0.1 ketika saya menggunakan DNS eksternal?

12

Saya menggunakan tidak terikat dan biasanya menggunakan openDNS sebagai server DNS saya.

Ketika saya berlari dig google.comkatakan saya mengerti SERVER: 127.0.0.1#53(127.0.0.1). Apa sebenarnya yang didengar hal ini di port # 53? apakah ini tidak terikat atau ada hubungannya dengan dnsmasq (apakah saya bahkan sudah menginstal dnsmasq karena dnsmasq.confsepertinya tidak ada dalam /etc?)

Di resolv.conf ada nameserver 127.0.0.1tetapi kemudian di manajer jaringan saya memiliki server DNS menunjuk ke dua alamat openDNS. Jadi apa yang terjadi di sini? apakah server nama lokal menunjuk ke dnsmasq yang kemudian menggunakan nilai-nilai dari manajer jaringan? atau tidak terikat yang sebenarnya mendengarkan?

fpghost
sumber
apa yang ingin kamu capai?
Rahul Patil
3
benar
fpghost
apakah ini edisi server ubuntu atau apa?
Rahul Patil
bukan hanya desktop
fpghost

Jawaban:

15

Secara default, NetworkManager menggunakan Dnsmasq sebagai resolver DNS, jika itu diinstal. Yang merupakan default pada sistem berbasis Debian, jadi Dnsmasq berjalan dalam konfigurasi default di mana ia hanya menyelesaikan nama berdasarkan server upstream yang ditentukan oleh opsi baris perintah (ditambah konten /etc/hosts). Anda tidak punya /etc/dnsmasq.confkarena file itu hanya ada dalam paket opsional dnsmasq .

Untuk melihat apakah sistem Anda saat ini menggunakan dnsmasq atau Unbound untuk query DNS, jalankan netstat -ulnp | grep ":53 ".

Di Ubuntu 12.04, NetworkManager tidak bermain dengan baik dengan resolver DNS lainnya (lihat bug 959037 - ringkasan Thomas Hood mencakup semuanya). Untuk terus menjalankan Tidak Terikat bersama dengan NetworkManager, taruhan terbaik Anda adalah memberi tahu NetworkManager untuk tidak menjalankan Dnsmasq (Anda tidak membutuhkannya selain Tidak Terikat, tidak kecuali jika Anda menggunakan fitur Dnsmasq yang tidak digunakan NetworkManager). Untuk melakukannya:

  1. Edit /etc/NetworkManager/NetworkManager.confuntuk mengomentari baris yang berisi dns=dnsmasq(tambahkan #di awal baris itu).
  2. Restart NetworkManager dengan service network-manager restart.
Gilles 'SANGAT berhenti menjadi jahat'
sumber
bagaimana Ubuntu saat ini tahu untuk menggunakan Unbound? (sepertinya memang menggunakannya); apa yang saya maksudkan adalah mengapa saya tidak perlu sesuatu seperti dns=unbounddi /etc/NetworkManager/NetworkManager.conf? dan mengingat bahwa saya saat ini ada dns=dnsmasqdi file itu, mengapa Ubuntu sebenarnya menggunakan tidak terikat?
fpghost
@ fpghost Yang mana yang Anda dapatkan tergantung yang mana yang pertama kali dimulai. Jika Anda boot tanpa jaringan, Anda akan mendapatkan Tidak terikat karena akan mulai lebih dulu. Jika Anda boot dengan koneksi jaringan, saya pikir ini undian.
Gilles 'SO- berhenti bersikap jahat'
OK, tapi apa yang saya benar-benar bertanya-tanya adalah daripada sepenuhnya mengomentari dns=...baris untuk menghentikan dnsmasq sedang digunakan, bagaimana jika saya mengganti baris dengan dns=unbound? Kalau tidak, bagaimana NetworkManager tahu bahwa tidak terikat akan menjadi penyelesai lokal?
fpghost
1

Di ubuntu 12,04 dnsmasq sekarang berjalan secara default karena sulit dikodekan ke network-manager. Menggunakan dnsmasq sebagai resolver lokal secara default pada instalasi desktop Itulah perubahan besar kedua dari rilis ini. Pada instalasi desktop, server DNS Anda akan menjadi "127.0.0.1" yang menunjuk ke server dnsmasq yang dikelola NetworkManager.

SERVER: 127.0.0.1#53(127.0.0.1)

ini berarti Anda mendapatkan ans dari kueri Anda dari dns lokal yaitu DNSMASQ.

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

Anda perlu mengedit /etc/NetworkManager/NetworkManager.conffile

gksudo gedit /etc/NetworkManager/NetworkManager.conf

dan komentari baris berikut dari

dns=dnsmasq

untuk

#dns=dnsmasq

Simpan file dan keluar.

Sekarang Anda perlu me network-manager- restart menggunakan perintah berikut

sudo systemctl restart network-manager

Tautan referensi

Rahul Patil
sumber
1
OK, tapi bagaimana jika saya juga menginstal Unbound apakah ini lebih diutamakan daripada dnsmasq sebagai resolver lokal? keduanya mendengarkan di # 53? bagaimana mereka bisa bersama?
fpghost
juga mengapa tidak /etc/dnsmasq.confada?
fpghost
@ fpghost dnsmasq mendengarkan pada 127.0.1.1 sedangkan unbound mendengarkan pada 127.0.0.1, keduanya pada port 53. Anda dapat mengatur dns = tidak terikat dalam konfigurasi manajer jaringan untuk menggunakan tidak mengikat.
talonx
0

Untuk melihat apa sebenarnya server DNS yang digunakan untuk menyelesaikan alamat Anda, saat menggunakan DNSMasq, tidak dapat digunakan DIGkarena hanya melaporkan 127.0.0.1, sebagai gantinya:

Aktifkan Logging di DNSMasq:

sed -i 's/\#log-queries/log-queries/' /etc/dnsmasq.conf
systemctl restart dnsmasq

Log DNSMasq dan pantau hasilnya:

journalctl --unit dnsmasq.service -f

Ping sebuah host:

ping google.ca

Anda kemudian dapat melihat, server DNS hulu saya (192.168.1.1) menyelesaikannya:

: query[A] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: query[AAAA] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: reply google.ca is 172.217.1.3
: reply google.ca is 2607:f8b0:400b:80f::2003
: query[PTR] 3.1.217.172.in-addr.arpa from 127.0.0.1
: forwarded 3.1.217.172.in-addr.arpa to 192.168.1.1
: reply 172.217.1.3 is iad23s25-in-f3.1e100.net
: reply 172.217.1.3 is yyz10s14-in-f3.1e100.net

Ping host di belakang VPN perusahaan (selama split-tunnel) untuk * .company.com

ping box.company.com

hasil:

: query[A] box.company.com from 127.0.0.1
: forwarded box.company.com to vpn.ser.ver.ip
: query[AAAA] box.company.com from 127.0.0.1
kevinf
sumber