systemd-resolved不会向dns服务器查询本地域


12

由于升级到17.04,因此我无法再解析本地网络(silvesternet.local)中的地址。我得到以下回应:

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

在日志中,仅存在与此查询相关的事务超时报告。

我使用Wireshark来嗅探网络流量,似乎它甚至没有尝试查找名称。没有任何dns流量。查找另一个外部域就可以了。

围绕同一主题的许多问题都提到更改nsswitch.conf,但这似乎无济于事。我当前的设置是:

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

1
你跑了sudo apt update && sudo apt full-upgrade吗?发布图像中的错误已得到修复...
Zanna

如果您使用的systemd-networkd配置界面,你可能需要添加UseDomains=true[DHCP]你的部分.network文件:wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
堂吉诃德式的

确实,与领域紧密联系。实际上,这是Edgerouter固件中的一个错误,并未在dhcp响应中设置域。
罗伯·范德

Answers:


10

我相信这是设计使然。

Ubuntu 17.04已切换到systemd-resolved进行名称解析,并且仅将LLMNR(多播名称查找)用于单标签名称解析。有关详细信息,请参见此链接:https : //www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

对于此决定背后的原因,请在此错误报告中查看poettering的回复:https : //github.com/systemd/systemd/issues/2514

UPD:可以通过将域用于本地网络来解决此问题。如果将网络接口配置为(手动或通过DHCP)以使用搜索域,则systemd-resolved会将此域添加到单标签名称中,然后通过单播DNS查找它们。

显然,应该将本地DNS服务器重新配置为识别这些域。如果dnsmasq从/ etc / hosts读取本地主机到IP对,则可以通过向dnsmasq.conf添加以下指令来实现:

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

UPD2:或者您可以按照此处所述还原到dnsmasq /ubuntu//a/911432/692094


还有一个带有一些解释的错误页面:github.com/systemd/systemd/issues/4821
ish-west

域名是这里的问题。实际上,这也是由于edgerouter固件中的错误引起的。配置中的域名选项未正确存储在dhcp配置中。因此,客户没有要搜索的域。
罗伯·范德

8

我在Ubuntu 18.04上遇到了同样的问题,它也对DNS使用systemd-resolved。其默认配置不会通过DNS解析单标签主机名或.local域主机名,而是分别通过LLMNR或mDNS解析。

为了使本地单标签主机名或.local域主机名通过DNS解析,我启用了手册页中systemd-resolved.service中描述的“四种处理/etc/resolv.conf的模式”的第3种:

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

这里给出类似的答案。同样,出于默认原因,请参阅此错误报告中的 poettering回复。


2

升级到18.04后,对我有用的是配置文件/etc/systemd/resolved.conf,将Domains参数更改为域(本地或在我的情况下为mydomain.local)。我还更改了DNS参数,但是似乎它并不相关,但是我提到它只是为了以防万一。有关更多信息,请访问https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

另外,我更改了avahi配置(/etc/avahi/avahi-daemon.conf),将服务器部分中的domain参数从本地(默认值)更改为其他参数,如本论坛中的某些人所指出的那样。

通过上述更改,我可以使用无点名访问计算机,例如,将计算机ping通到我的计算机成功。但是,如果我对mycomputer.mydomain.local进行ping操作不起作用,则无法按预期解析FQDN。

希望这在某些情况下有所帮助或导致更通用的解决方案。


0

由于配置错误,我遇到了这个问题nsswitch.conf。由于12.04以下字符串按预期工作。没有域的主机名成功解析。

但是17.04带有用于配置nss系统的旧模板的ubuntu的新版本(以及版本16.10)无法像以前那样工作。

hosts从旧版ubuntu版本配置错误的版本: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

的成功工作版本hosts,例如从17.04开始: hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.