为什么systemd-resolved不使用我的本地DNS服务器?


13

我正在使用本地BIND9服务器托管一些本地dns记录。尝试挖掘本地域名时,如果我未明确告诉dig使用我的本地BIND9服务器,则找不到该域名。

user@heimdal:~$ dig +short heimdal.lan.se
user@heimdal:~$ dig +short @192.168.1.7 heimdal.lan.se
192.168.1.2

使用Ubuntu 17.04和systemd-resolved。这是我的/ etc / resolved的内容

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

以及systemd-resolve --status的输出

Global
         DNS Servers: 192.168.1.7
                      192.168.1.1
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

DNS服务器部分似乎确实正确配置了192.168.1.7作为主要DNS服务器(我的本地BIND9实例)。我不明白为什么不使用它?


我还记得如何systemd使用Google DNS作为后备路线……
William Edwards

systemd-resolve heimdal.lan.se说什么?

Answers:


8

因此,更改要管理的有线eth0接口可以为我解决此问题。

在/etc/NetworkManager/NetworkManager.conf中将ifupdown更改为managed = true

[ifupdown]
managed=true

然后重新启动NetworkManager

sudo systemctl restart NetworkManager

在此之后,它可以完美地工作。

这不是100%。我还应用了这些更改来尝试杀死分解器

sudo service resolvconf disable-updates
sudo update-rc.d resolvconf disable
sudo service resolvconf stop

非常感谢这篇关于该主题的博客文章:https : //ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd-resolved/

让我们祈祷一下。.整个systemd-resolve业务真是太丑了。


晚发表评论,但systemd-networkd有关的另一件事是检查是否eth0enX设备有一个*.network文件`/ lib中/ systemd /网络/`看info systemd-networkdinfo systemd.networkinfo resolved.conf
jmunsch

5

我的猜测是您的systemd-resolved服务配置正确,但是却无法看到请求。运行mDNS的系统.local进行了特殊处理avahi-daemon可以将提供mDNS / DNS-SD服务(在Apple产品上又称为“ Bonjour”)配置为在名称解析期间优先于DNS;看来Ubuntu会这样做。

您可以从以下几个选项中进行选择:

  1. 将您的.local域重命名为其他名称(可能是.internal.lan)。在实践中,这可能是最简单的方法,因为您只需要在DNS服务器上更改几件事,并且它与Avahi一起使用效果最佳。我会推荐这种方法。

  2. /etc/nsswitch.conf通过将dns条目放在条目前面来更改文件mdns

  3. 更改Avahi的配置,.local通过编辑/etc/avahi/avahi-daemon.conf和更改(或添加)domain-name=.something(在本[server]节中)将mDNS域从其他域更改。您需要在使用mDNS的每台计算机上执行此操作,以使它们仍然可以协同工作。


很抱歉,我在这里混淆了真实域名。这不是.local域。最高域名实际上是.se。但是,我将跟进您的情况,并检查nsswitch的内容。如有任何混淆
敬请见谅

0

似乎将其作为评论会更好,但信誉不足。

Civing的自我回答最符合我的需求。

我还必须添加dns=none到的[main]部分/etc/NetworkManager/NetworkManager.conf,所以它看起来像这样:

[main]
plugins=ifupdown,keyfile
dns=none

我刚刚从14.04更新到xubuntu 18.04,并且我的LAN早于该版本,并且多年来进行了许多小的调整。因此,我希望我的DNS能够完成我想做的事情(是的,多年来,从第二版开始,我已经购买了许多Cricket Lius的书)。

顺便说一句,我以前一直在将要查看的DNS解析信息添加到文件中/etc/resolvconf/resolv.conf.d/head

简而言之,一旦我以root身份运行了/etc/resolv.conf,就可以:

cat /etc/resolv.conf >> /etc/resolvconf/resolv.conf.d/head

但是现在,我只是直接编辑/etc/resolv.conf,它仍然存在。使用systemd / resolvconf的局域网访问者是SOOL。它们不存在。

阅读有man 8 resolvconf帮助。很多。我并没有遵循把事情在ifup的程序可以找到它们的说明。主要是因为在GUI中有一个完整的上层结构,在升级过程中所做的任何操作都已将其忽略。这似乎是一个更大的问题(WTF,Ubuntu?)。

所以这很丑,而且仍然存在一个问题,即我(很久以前)输入到网络控制面板GUI的内容并没有被新升级的系统遵循,但这是一个完全不同的问题,一旦我弄清楚了如何问一下。


0

对我来说,运行最近安装的18.04,我做了@Civing引用的第一个更改:

[ifupdown]
managed=true

然后,注意到/etc/resolv.conf始终指向stub-resolv.conf,并且正在生成具有正确的LAN DNS服务器的合理的resolv.conf,更改了符号链接:

/etc/resolv.conf -> /run/systemd/resolve/resolv.conf

然后本地所有通过ping解析的主机名。

它能持续多长时间还有待观察。

最初安装时,无线网络设置失败,我不禁怀疑安装是否将/etc/resolv.conf保留为初始状态。

因此,一个建议是查看解决方案正在生成的内容。您可能已经有了工作基础。

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.