Ubuntu 17,04 pencarian systemd-resolved DNS gagal secara acak

38

Saya memutakhirkan ke Ubuntu 17.04 dan sekarang tampaknya memiliki mekanisme penyelesai DNS yang pertama kali diperkenalkan di Ubuntu 16.10.

Saya sekarang mendapatkan kegagalan pencarian DNS 50% dari waktu. Setiap panggilan lain ke nslookup gagal, dengan setengah panggilan diselesaikan dengan baik dan setengah memberikan ini:

watch -n 1 nslookup google.com

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL

Dari apa yang saya mengerti, bahwa alamat IP server DNS sekarang digunakan untuk mewakili systemd-resolved, yang melakukan semacam pencarian meta untuk menghindari permintaan DNS yang lebih lambat (atau sesuatu ...). Saya melihat perilaku yang sama persis pada dua mesin saya telah ditingkatkan menjadi 17,04 dalam seminggu terakhir.

Adakah yang tahu apa masalahnya di sini, dan cara yang benar untuk mengatasinya?

Segala sesuatunya berjalan dengan baik sebelum peningkatan (dari 16.04 atau 16.10, saya tidak ingat yang mana, maaf). Saya pikir 17,04 adalah rilis LTS tetapi sekarang saya melihat bahwa saya melompat pistol dan itu tidak akan dianggap stabil sampai April. Jadi ... inilah saya.

Juga perlu dicatat ... browser tampaknya tidak menunjukkan masalah, tetapi nslookup, ping, git, dll.

moodboom
sumber
2
Kiat untuk masa depan: Versi Ubuntu adalah tahun keluarnya .bulan itu akan dirilis. (Jadi dalam kasus Anda akan berada di 04/ 17)
timotree
Kedengarannya seperti systemd-resolving mendapatkan linggis ke distribusi menyebabkan masalah orang lain juga.
moodboom

Jawaban:

46

Ubuntu 17.04 tidak dapat menyelesaikan server DNS dengan dukungan DNSSEC pada 2017-04-18. Nonaktifkan DNSSEC dengan daemon ini:

sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf

Konfigurasi ulang resolvconf secara opsional jika Anda mengacaukannya (katakan ya untuk "mempersiapkan /etc/resolve.conf untuk pembaruan dinamis?"):

sudo dpkg-reconfigure resolvconf

Mulai ulang systemd-diselesaikan:

sudo systemctl restart systemd-resolved

DNS Anda harus mulai bekerja. Anda dapat memeriksa dengan mencoba systemd-resolve www.google.comdan melihat respons.

Sajad Bahmani
sumber
Terima kasih atas jawabannya - dapatkah Anda menjelaskan apa fungsinya?
bertieb
Ubuntu 17.04 tidak dapat (sampai di sini) menyelesaikan server DNS dengan dukungan DNSSEC. Saya menonaktifkan DNSSEC dengan daemon ini.
Sajad Bahmani
Terima kasih, bisakah Anda mengedit penjelasan itu menjadi jawaban Anda? :)
bertieb
Solusi ini tidak berfungsi untuk saya - setelah mengatur ini, masih kapanpun saya melakukan pencarian pertama kali, saya mendapatkan kesalahan SERVFAIL, setelah beberapa percobaan berhasil dan kemudian hasilnya di-cache.
Guss
1
@SamuelL. mengenai tee, itu hanya cara mewah untuk mencetak sesuatu dan mengirimkannya ke file pada saat yang sama. Biasanya Anda dapat mengarahkan output ke file dengan> [karakter lebih besar dari], tetapi kemudian Anda tidak akan melihat output. Tee memungkinkannya pergi ke kedua tempat. Resolvconf "mengonfigurasi tekad".
moodboom
12

Saya telah bolak-balik antara manajemen systemd-diselesaikan dan manual /etc/resolv.conf dan belum menemukan mekanisme resolver systemd DNS untuk menjadi stabil.

Rupanya setidaknya ada satu bug libns di Ubuntu 16.10 dan tampaknya masih di 17.04. Ada banyak orang dengan masalah DNS sejak Ubuntu 16.10 dihidupkan systemd-diselesaikan, disini adalah salah satu analisis dan di sini adalah solusi orang lain. Tidak ada dari mereka yang bekerja untuk saya sampai saya secara manual menimpa /etc/resolv.conf dengan server DNS Google.

nameserver 8.8.8.8   << or another if you don't trust google
nameserver 8.8.4.4

Ini adalah solusi yang sangat valid , jika Anda tidak memerlukan konfigurasi DNS dinamis. Pastikan Anda berhenti dan menonaktifkan systemd-resolved:

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop
moodboom
sumber
Mengubah ke resolveconf tidak membantu masalah saya, bagaimana saya kembali menggunakan systemd-resolved? (Terima kasih)
Edward Moffett
1
Coba:systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
moodboom
1
Sobat, kamu baru saja menyelamatkan sistem ma !! BRAVO
revolusioner
Bekerja dengan baik di 18,04
André M. Faria
4

Ubuntu 17.04 dan distro lainnya menggunakan systemd, yang mencakup systemd-resolved, yang menjadikan pengguna resolusi DNS yang agak berat.

  • Seperti disebutkan dalam jawaban SjB, dukungan DNSSEC dapat menyebabkan masalah.
  • systemd-diselesaikan Ping semua resolvers DNS sehingga dapat menggunakan tercepat. Ini dapat menyebabkan masalah dengan VPN, dll. Di lingkungan yang lebih kompleks.
  • Sertifikat server DNS diverifikasi, saya mengalami kesalahan jika jam saya miring.

Saya tidak berpikir itu pasti perubahan BURUK, itu hanya BANYAK perubahan. Saya akan mencoba memperbarui dan memperluas jawaban ini karena saya belajar lebih banyak.

moodboom
sumber
4

Sederhananya Anda hanya perlu memiliki baris "DNSSEC = no" di bagian [Putuskan] dari /etc/systemd/resolved.conf.

https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1682499/

John Ball
sumber
Terima kasih atas tautan perbaikan bug. Default akan diubah kembali ke DNSSEC = tidak di rilis pembaruan yang akan datang, yang akan membuat masalah tertentu hilang.
moodboom
1

tambahkan saja server nama /etc/systemd/resolved.conf DNS = 194.109.xxx.xxx (di router Anda, nameserver eksternal)

systemctl restart systemd-diselesaikan

tidak perlu mengubah rand dari 3 ke 2, tidak perlu mengubah pengaturan dnssec ke off

henk
sumber
Sayangnya ini saja tidak menyelesaikan masalah "permintaan lain-gagal" bagi saya.
moodboom
Setuju dengan @moodboom, ini tidak menyelesaikan untuk saya juga.
André M. Faria