systemd-giải quyết không truy vấn máy chủ dns cho tên miền cục bộ


12

Kể từ khi nâng cấp lên 17.04, tôi không còn có thể giải quyết các địa chỉ trong mạng cục bộ của mình (silvesternet.local). Tôi nhận được phản hồi như sau:

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

Trong tạp chí chỉ có báo cáo về thời gian chờ giao dịch liên quan đến việc tra cứu này.

Tôi đã sử dụng Wireshark để đánh hơi lưu lượng mạng và có vẻ như nó thậm chí không cố gắng tra cứu tên. Không có giao thông dns nào. Nhìn lên một tên miền bên ngoài hoạt động tốt.

Nhiều vấn đề xung quanh cùng một chủ đề đề cập đến việc thay đổi nsswitch.conf, nhưng điều đó dường như không giải quyết được gì. Cài đặt hiện tại của tôi là:

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4

1
Bạn đã chạy sudo apt update && sudo apt full-upgradechưa Lỗi trong hình ảnh phát hành đã được sửa ...
Zanna

nếu bạn đang sử dụng systemd-networkdđể giao diện cấu hình, bạn có thể cần phải thêm UseDomains=truevào [DHCP]phần của bạn .networktập tin: wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
anh hùng rơm

Thật vậy, gần với tên miền. Đây thực sự là một lỗi trong phần mềm edgerouter không đặt tên miền trong phản hồi dhcp.
Rob van der Hầu hết

Câu trả lời:


10

Tôi tin rằng đây là do thiết kế.

Ubuntu 17.04 đã chuyển sang phân giải systemd để phân giải tên và nó chỉ sử dụng LLMNR (tra cứu tên multicast) cho độ phân giải tên nhãn đơn. Xem liên kết này để biết chi tiết: https://www.freedesktop.org/software/systemd/man/systemd-resolve.service.html

Để biết lý do đằng sau quyết định này, hãy xem phản hồi của poettering trong báo cáo lỗi này: https://github.com/systemd/systemd/issues/2514

CẬP NHẬT: Vấn đề này có thể được giải quyết bằng cách sử dụng tên miền cho mạng cục bộ. Nếu giao diện mạng được định cấu hình (bằng tay hoặc bằng DHCP) để sử dụng miền tìm kiếm thì systemd-phân giải sẽ thêm tên miền này vào tên nhãn đơn và sau đó tra cứu chúng qua DNS unicast.

Rõ ràng máy chủ DNS cục bộ nên được cấu hình lại để nhận ra các miền này. Trong trường hợp dnsmasq đọc các cặp máy chủ-IP cục bộ từ / etc / hosts, nó có thể được thực hiện bằng cách thêm các hướng dẫn sau vào dnsmasq.conf:

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

CẬP NHẬT2: Hoặc bạn chỉ có thể trở lại dnsmasq như được mô tả ở đây https://askubfox.com/a/911432/692094


Và thêm một trang lỗi với một số giải thích: github.com/systemd/systemd/issues/4821
ish-west

Tên miền là vấn đề ở đây. Nó thực sự cũng được gây ra bởi một lỗi trong phần mềm edgerouter. Tùy chọn tên miền từ cấu hình không được lưu trữ đúng cách trong cấu hình dhcp. Vì vậy, khách hàng đã không nhận được một tên miền để tìm kiếm.
Rob van der Hầu hết các

8

Tôi gặp vấn đề tương tự trên Ubuntu 18.04, cũng sử dụng systemd được giải quyết cho DNS. Cấu hình mặc định của nó không phân giải tên máy chủ nhãn đơn hoặc tên miền tên miền .local bằng DNS, nhưng bằng LLMNR hoặc mDNS tương ứng.

Để đặt tên máy chủ nhãn đơn cục bộ hoặc tên máy chủ tên miền .local được phân giải bằng DNS, tôi đã bật thứ 3 trong "Bốn chế độ xử lý /etc/resolv.conf" được mô tả trong trang man cho systemd-yet.service :

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

Một câu trả lời tương tự đã được đưa ra ở đây . Và một lần nữa, với lý do đằng sau mặc định, hãy xem câu trả lời của poettering trong báo cáo lỗi này .


2

Điều làm việc cho tôi sau khi tăng lên đến 18.04 là định cấu hình tệp /etc/systemd/resolve.conf thay đổi tham số Miền thành tên miền (cục bộ hoặc như trong trường hợp của tôi mydomain.local). Tôi cũng đã thay đổi tham số DNS, nhưng có vẻ như nó không liên quan, nhưng tôi đề cập đến nó chỉ trong trường hợp không đúng. Để biết thêm thông tin, hãy truy cập https://www.freedesktop.org/software/systemd/man/systemd-resolve.service.html .

Ngoài ra, tôi đã thay đổi cấu hình avahi (/etc/avahi/avahi-daemon.conf) để thay đổi tham số miền bên trong phần máy chủ từ cục bộ (mặc định) thành một thứ khác như một số người đã chỉ ra trong diễn đàn này.

Ví dụ, với các thay đổi được đề cập, tôi có thể tiếp cận các máy bằng cách sử dụng các tên không có dấu chấm, ví dụ, ping đến máy tính của tôi, máy được liên hệ thành công. Tuy nhiên, nếu tôi ping đến mycomputer.mydomain.local thì nó không hoạt động, FQDN không được giải quyết như mong đợi.

Hy vọng điều này sẽ giúp cho một số trường hợp hoặc dẫn đến một giải pháp tổng quát hơn.


0

Tôi phải đối mặt với vấn đề này vì cấu hình sai nsswitch.conf. Kể từ 12.04sau chuỗi làm việc như mong đợi. Tên máy chủ không có tên miền giải quyết thành công.

Nhưng 17.04phiên bản mới (cũng như phiên bản 16.10) của Ubuntu với mẫu cũ để định cấu hình hệ thống nss không hoạt động như trước.

Phiên bản cấu hình sai của hosts, từ các phiên bản Ubuntu cũ: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Phiên bản làm việc thành công của hosts, ví dụ từ 17.04: hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.