16.10 gagal menyelesaikan DNS

34

Setelah memutakhirkan instalasi 16,04 saya ke 16,10, saya mengalami masalah dengan DNS.

Pertama, saya mendapat masalah beberapa kali ketika terhubung ke WiFi, sementara itu bekerja pada ethernet. Sekarang sepertinya berfungsi pada WiFi juga. Tidak yakin mengapa, dan jika itu terkait dengan masalah yang saya hadapi sekarang:

Saat menghubungkan ke host VPN dengan Cisco Anyconnect VPN , ia menambahkan baris di '/etc/resolv.conf' . Saya mengerti bahwa Ubuntu sekarang menggunakan systemd-resol , dan halaman manual mengatakan bahwa ada tiga mode berbeda untuk menangani /etc/resolv.conf. /Etc/resolv.conf saya bukan symlink, dan tidak mencantumkan 127.0.0.53 sebagai server DNS, jadi sejauh yang saya mengerti systemd-resolved harus "membacanya untuk data konfigurasi DNS". Namun, sepertinya tidak peduli.

menggali

Yang aneh (bagi saya) adalah bahwa dig host.customer.tld, mengembalikan jawaban yang bagus dengan BAGIAN JAWABAN yang menunjukkan ip dari host yang diminta, dan mengacu pada server dns yang ditambahkan ke /etc/resolv.conf oleh vpn client sebagai SERVER. Ketika koneksi vpn dinonaktifkan, saya tidak mendapat jawaban. Yaitu menggali membaca /etc/resolv.conf .

ping

Browser, di sisi lain, tidak bisa ke /etc/resolv.conf, dan tidak dapat menyelesaikan nama host. Omong-omong, tidak juga ping / curl.

nmcli

Saya menemukan pos terkait , dan mencoba berjalan

nmcli device show <interfacename> | grep IP4.DNS

tetapi tidak mencantumkan dns untuk perangkat cscotun0. (Tidak juga di 16.04.) Juga, nmcli mendaftar server dhcp saya (router saya) sebagai host IP4.DNS untuk koneksi eth / wlan saya. Penggunaan dig @192.168.0.1 xxxuntuk domain publik apa pun berfungsi dengan baik.

konfigurasi

Ada beberapa server DNS lain yang terdaftar di /run/systemd/resolve/resolv.conf saya:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844

Ini tidak dilayani oleh server DHCP saya. file /etc/systemd/resolved.conf hanya berisi baris yang dikomentari, kecuali header bagian:

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

Halaman manual untuk resolved.conf mengatakan itu

DNS = Daftar alamat IPv4 dan IPv6 yang dipisahkan oleh ruang untuk digunakan sebagai server DNS sistem. ... Untuk alasan kompatibilitas, jika pengaturan ini tidak ditentukan, server DNS yang terdaftar di /etc/resolv.conf digunakan sebagai gantinya, jika file itu ada dan server mana pun yang dikonfigurasi di dalamnya. Pengaturan ini default ke daftar kosong.

FallbackDNS = Daftar alamat IPv4 dan IPv6 yang dipisahkan oleh ruang untuk digunakan sebagai server DNS cadangan. Server DNS per-tautan apa pun yang diperoleh dari systemd-networkd.service (8) lebih diutamakan daripada pengaturan ini, seperti halnya server mana pun yang diatur melalui DNS = di atas atau /etc/resolv.conf. Pengaturan ini karenanya hanya digunakan jika tidak ada informasi server DNS lainnya yang diketahui. Jika opsi ini tidak diberikan, daftar server DNS yang dikompilasi digunakan sebagai gantinya.

Sepertinya fallback berakhir di / run/systemd/resolve/resolv.conf dalam kasus saya.

EDIT: Saya tidak yakin apa masalahnya, dan sejujurnya saya masih tidak tahu persis bagaimana ini bekerja, tetapi setidaknya ternyata solusi dalam kasus saya adalah menonaktifkan systemd-resolvedlayanan. Saya pikir layanan diperlukan, bahwa itu adalah komponen yang menyediakan layanan DNS untuk semua aplikasi lokal, tetapi ternyata ada sesuatu yang lain di sana melakukan pekerjaan itu.

aweibell
sumber
Apakah Anda memiliki masalah dengan DNS jika Anda tidak menggunakan VPN?
Mark Stosberg
Apakah Anda mencoba solusi ini untuk masalah AnyConnect pada 16.04 yang mungkin berlaku?
Mark Stosberg
3
Hanya ingin mencatat bahwa saya mengalami masalah yang sama persis dengan Anyconnect pada 16.10. Menghubungkan beberapa kali ke layanan VPN sepertinya memperbaikinya untuk sementara, tetapi pada beberapa titik dns tidak berfungsi lagi.
jmartinez
2
Saya memiliki masalah penyelesaian DNS yang serupa yang tidak ada pada 16.04. Saran saya adalah mulai dengan menghapus (cadangan) /etc/resolv.conf; uninstall paket resolvconf; reboot; dan gunakan penggalian, penyelesaian sistem dengan dan tanpa VPN untuk melihat apa yang berfungsi atau tidak.
philcolbourn
1
Bandingkan laporan bug ini: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
jdthood

Jawaban:

15

Saya mengalami masalah yang serupa, misalnya dengan menambahkan dongle wifi USB tambahan. Pertama saya menonaktifkan dnsmasq di networkmanager seperti yang dijelaskan di atas dan saya menghentikan dnsmasq (service dnsmasq stop)

Saya perhatikan bahwa ketika pemecahan rusak saat menghubungkan VPN saya, tabel routing terlihat sedikit berbeda (output dari perintah rute). Nama Gateway adalah DD-WRT dalam kasus itu tidak berfungsi dan hanya 'gateway' ketika itu berfungsi. Output dari ini tidak berubah:

nmcli device show wlp1s0 | grep IP4.DNS

Itu terus menunjukkan IP router saya. Solusi untuk mengaktifkannya untuk sementara waktu adalah memulai ulang systemd-resolvd:

sudo service systemd-resolved restart

Karena dnsmasq berada di luar persamaan, itu adalah systemd-resolvd yang menjadi penyebab masalah, atau apa pun yang mengubah tabel routing.

Jadi ini satu-satunya perbedaan yang saya lihat:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    601    0        0 

yang bekerja Dan ini ketika itu TIDAK bekerja:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    601    0        0 wlp1s0

Dan perbedaan nama yang sama pada jalur VPN:

vpn-dns.name gateway         255.255.255.255 UGH   0      0        0 wlp1s0

Siapa yang tahu apa yang dapat memengaruhi tabel routing? Alangkah baiknya jika kita bisa mengidentifikasi ini sehingga laporan bug dapat diajukan. Saya sakit parah dan lelah mengejar semua bug ini, tetapi saya ingin memperbaikinya sehingga pengguna di masa depan dan kami akan senang :).

[pembaruan] Tampaknya menghentikan penyelesaian sistemd dapat memperbaikinya dan tidak berdampak negatif pada hal-hal lain. Anda dapat mencobanya dan beri tahu jika itu merusak barang. Saya melihat ketika menjalankan systemd-resolvd di debug ketika rusak:

Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *

Untuk menonaktifkan:

sudo systemctl disable systemd-resolved.service

Saya memperbarui laporan Ubuntu dengan saran. [/ perbarui] Tambahkan: Catatan: laporan bug: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317 memiliki tambalan untuk 17,04 untuk beberapa masalah. Silakan periksa laporan bug dan jika mungkin uji tambalan. Terima kasih!

[memperbarui]

Silakan periksa laporan bug yang disebutkan di atas, masalah ini tampaknya diselesaikan untuk 17.10 dan dengan perintah sederhana kebocoran DNS dapat dinonaktifkan juga.

[/memperbarui]

Vincent Gerris
sumber
Terima kasih atas laporan lengkap Anda! Saya melihat perubahan yang berbeda dalam tabel routing daripada Anda - VPN saya tampaknya menambahkan banyak rute, secara dinamis saat mereka sedang digunakan, saya kira. Namun, menonaktifkan systemd-resolved berfungsi dengan baik untuk masalah saya juga!
aweibell
Saya pikir akhirnya nama dalam tabel routing tidak masalah, itu adalah systemd-resolved mengacaukan DNS resolving entah bagaimana. Saya juga harus menonaktifkan layanan dnsmasq untuk mencegahnya mulai tetapi semuanya berfungsi sekarang. Mari kita berharap seseorang akan memperbaiki set dependensi yang tepat antara paket-paket yang dibutuhkan untuk membuat semuanya berfungsi dengan baik. Itu adalah bug yang menjengkelkan untuk diatasi.
Vincent Gerris
Perlu dicatat Saya berjuang selama sehari penuh dengan masalah ini, memulai kembali layanan yang diselesaikan dengan systemd tidak melakukan apa pun untuk saya, tetapi menonaktifkannya sepenuhnya dan tidak ada masalah lagi!
fd8s0
Hanya untuk mengulangi, saya telah memiliki masalah jaringan selama beberapa hari sejak meningkatkan ke 17,04 dari 16,10 Saya telah mencoba sebagian besar jawaban di sini, sebagian besar bekerja untuk sementara waktu dan kemudian muncul lagi masalah yang akhirnya berhasil adalah menonaktifkan systemd yang diselesaikan dengan menggunakan sudo systemctl disable systemd-resolved.service dan mengatur dns. ke 8.8.8.8 di /etc/resolv.conf
Japheth Ongeri - inkalimeva
Baris sederhana ini terpecahkan untuk saya: sudo service systemd-resolved restart, terima kasih!
Sergio Abreu
36

Perilaku DNS selama koneksi OpenVPN membaik segera ketika saya mengikuti saran tentang ubuntuforums:

  1. Buka /etc/NetworkManager/NetworkManager.confdi editor dengan hak root.
  2. Hapus (atau komentari dengan hash #) baris yang bertuliskandns=dnsmasq
  3. Mulai ulang NetworkManager via sudo service NetworkManager restart
krlmlr
sumber
Terima kasih. Sudah mencoba ini sekarang, tetapi tidak berhasil. Sebenarnya, DNS berfungsi dengan baik, kecuali ketika saya memulai klien Cisco VPN, yang menggantikan symlink /etc/resolve.conf dengan file teks biasa.
aweibell
1
Perbaikan ini berhasil bagi saya, saya mengalami masalah DNS dengan OpenVPN. Setelah perubahan ini, /etc/resolve.conf saya telah berubah. Ini sangat aneh karena saya bahkan tidak menginstal dnsmasq.
postfuturist
Ini mungkin bekerja untuk masalah dengan NM dan openvpn, tetapi setidaknya memperlambat koneksi. Seperti yang ditebak di sini .
BairDev
3

Berlari ke masalah yang sama. Entah bagaimana saya harus menginstal DNSmasq dengan beberapa aplikasi. Cukup menghapus dnsmasq memecahkan masalah untuk saya.

sudo apt-get remove dnsmasq 

Sejak itu, tidak ada lagi terputus atau beberapa situs tidak dapat memuat lagi (saya punya masalah memuat gmail, yaitu tiba-tiba tidak dapat terhubung ke gmail, meskipun situs lain berfungsi).

Nitai
sumber
Ketika mencoba untuk menghapus paket dnsmasq-base , aptitude memberitahu saya bahwa itu diperlukan oleh network-manager dan ubuntu-fan , dan menghapusnya akan menghasilkan banyak paket tambahan yang dihapus ..
aweibell
Apa distro dan versinya? Saya di Ubuntu 16.10 dan tidak memiliki masalah untuk menghapusnya. Saya tidak akan mempostingnya :)
Nitai
Saya juga di Ubuntu 16.10! Aneh. apt remove dnsmasq-base...The following packages will be REMOVED: account-plugin-ubuntuone checkbox-converged checkbox-gui dnsmasq-base indicator-network network-manager network-manager-gnome network-manager-openconnect network-manager-openconnect-gnome network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome network-manager-vpnc pay-service plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop ubuntu-fan ubuntu-push-client ....
aweibell
Sama di sini dengan 16.10. Ia ingin menghapus semua paket lainnya juga.
Dave Kincaid
Saya baru saja memutuskan koneksi lagi hari yang lalu. Entah bagaimana satu aplikasi harus menginstal ulang dnsmasq lagi. Bagaimanapun, kali ini saya cukup menonaktifkannya dengan systemd. Sejauh ini tidak berjalan lagi dan saya juga tidak mendapatkan koneksi.
Nitai
1

Edit /etc/nsswitch.confdan ubah

hosts:          files mdns4_minimal [NOTFOUND=return] dns

untuk

hosts:          files dns mdns4_minimal [NOTFOUND=return]

Edit:

Saya mendapat masalah yang sama untuk beberapa waktu. Saya dapat menyelesaikan nama domain dari vpn tetapi saya tidak dapat melakukan ping atau meringkuknya atau menggunakannya di aplikasi lain. Perubahan yang dijelaskan di atas memecahkannya untuk saya.

Sahabat
sumber