systemd-diselesaikan tidak meminta server dns untuk domain lokal

12

Sejak memutakhirkan ke 17.04 saya tidak bisa lagi menyelesaikan alamat di jaringan lokal saya (silvesternet.local). Saya mendapat respons berikut:

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

Dalam jurnal hanya ada laporan timeout untuk transaksi yang terkait dengan pencarian ini.

Saya menggunakan Wireshark untuk mengendus lalu lintas jaringan, dan tampaknya itu bahkan tidak mencoba mencari nama. Tidak ada lalu lintas dns sama sekali. Mencari domain eksternal lain berfungsi dengan baik.

Banyak masalah seputar topik yang sama menyebutkan perubahan nsswitch.conf, tetapi sepertinya tidak menyelesaikan apa pun. Pengaturan saya saat ini adalah:

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4
Rob van der Most
sumber
1
Apakah kamu sudah lari sudo apt update && sudo apt full-upgrade? Bug dalam gambar rilis diperbaiki ...
Zanna
jika Anda menggunakan systemd-networkduntuk mengkonfigurasi antarmuka, Anda mungkin perlu menambahkan UseDomains=truedi [DHCP]bagian .networkfile Anda : wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
quixotic
Memang dekat dengan domain. Sebenarnya itu adalah bug di firmware edgerouter yang tidak mengatur domain dalam respons dhcp.
Rob van der Most

Jawaban:

10

Saya percaya ini dengan desain.

Ubuntu 17.04 telah beralih ke systemd-resolved untuk resolusi nama dan hanya menggunakan LLMNR (pencarian nama multicast) untuk resolusi nama label tunggal. Lihat tautan ini untuk perincian: https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

Untuk alasan di balik keputusan ini, periksa balasan poettering dalam laporan bug ini: https://github.com/systemd/systemd/issues/2514

UPD: Masalah ini dapat diatasi dengan menggunakan domain untuk jaringan lokal. Jika antarmuka jaringan dikonfigurasi (baik secara manual atau melalui DHCP) untuk menggunakan domain pencarian maka systemd-resolved akan menambahkan domain ini ke nama-label tunggal dan kemudian mencarinya melalui DNS unicast.

Jelas server DNS lokal harus dikonfigurasi ulang untuk mengenali domain ini. Dalam kasus dnsmasq yang membaca pasangan host-to-IP lokal dari / etc / hosts, hal ini dapat dilakukan dengan menambahkan instruksi berikut ke dnsmasq.conf:

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2: Atau Anda bisa kembali ke dnsmasq seperti dijelaskan di sini /ubuntu//a/911432/692094

ish-barat
sumber
Dan satu halaman bug lagi dengan beberapa penjelasan: github.com/systemd/systemd/issues/4821
ish-west
Nama domain adalah masalah di sini. Itu sebenarnya juga disebabkan oleh bug di firmware edgerouter. Opsi nama-domain dari konfigurasi tidak disimpan dengan benar dalam konfigurasi dhcp. Jadi klien tidak mendapatkan domain untuk dicari.
Rob van der Most
8

Saya mendapat masalah yang sama pada Ubuntu 18.04, yang juga menggunakan systemd-resolved untuk DNS. Konfigurasi standarnya tidak menyelesaikan nama host label tunggal atau nama host domain lokal oleh DNS, tetapi oleh LLMNR atau mDNS.

Untuk membuat nama host label tunggal atau nama host domain lokal diselesaikan oleh DNS, saya mengaktifkan 3 dari "Empat mode penanganan /etc/resolv.conf" yang dijelaskan dalam halaman manual untuk systemd-resolved.service :

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Jawaban serupa diberikan di sini . Dan lagi, untuk alasan di balik default, lihat balasan poettering dalam laporan bug ini .

Mats Lindén
sumber
2

Apa yang berhasil bagi saya setelah naik ke 18,04 adalah mengkonfigurasi file /etc/systemd/resolved.conf mengubah parameter Domain ke domain (lokal atau seperti dalam kasus saya mydomain.local). Saya juga mengubah parameter DNS, tetapi sepertinya itu tidak relevan, tapi saya sebutkan kalau-kalau itu tidak benar. Untuk informasi lebih lanjut, kunjungi https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html .

Selain itu saya mengubah konfigurasi avahi (/etc/avahi/avahi-daemon.conf) untuk mengubah parameter domain di dalam bagian server dari lokal (default) menjadi sesuatu yang lain seperti yang ditunjukkan beberapa orang di forum ini.

Dengan perubahan yang disebutkan saya dapat mencapai mesin menggunakan nama dotless, misalnya, melakukan ping ke komputer saya mesin berhasil dihubungi. Namun, jika saya melakukan ping ke mycomputer.mydomain.local tidak berfungsi, FQDN tidak terselesaikan seperti yang diharapkan.

Berharap ini membantu untuk beberapa kasus atau mengarah ke solusi yang lebih umum.

George
sumber
0

Saya menghadapi masalah ini karena kesalahan konfigurasi nsswitch.conf. Karena 12.04string berikut berfungsi seperti yang diharapkan. Nama host tanpa penyelesaian domain berhasil.

Tetapi 17.04versi baru (dan juga versi 16.10) dari ubuntu dengan templat lama untuk mengkonfigurasi sistem nss tidak berfungsi seperti sebelumnya.

Versi salah konfigurasi hosts, dari versi ubuntu lama: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Versi kerja yang sukses hosts, misalnya dari 17.04: hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

vskubriev
sumber