18.04 忽略 DHCP 提供的 DNS 服务器

18.04 忽略 DHCP 提供的 DNS 服务器

我有一个运行 dnsmasq 的本地服务器(192.168.0.10)来为我的 LAN 提供 DHCP,还有一个 DNS 服务器来解析 DHCP 客户端的主机名。

当我运行 16.04 时,这工作得很好。任何从服务器获取 DHCP 地址的机器都会使用 DNS 服务器,并且可以解析网络上的其他主机名。

但是,自从升级到 18.04 以来,我无法再解析主机名。我知道 18.04 现在使用 systemd-resolve。它似乎知道 DNS 服务器:

mark@coachz:~$ systemd-resolve --status
Global
          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

Link 3 (wlp59s0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.0.10

Link 2 (enp58s0f1)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

但是,它似乎没有使用它来解析主机名:

mark@coachz:~$ nslookup homestar
Server:         127.0.0.53
Address:        127.0.0.53#53

** server can't find homestar: SERVFAIL

尽管如果我明确地告诉它,它可以:

mark@coachz:~$ nslookup homestar 192.168.0.10
Server:         192.168.0.10
Address:        192.168.0.10#53

Name:   homestar
Address: 192.168.0.101

我如何让它自动使用 DHCP 提供的 DNS 服务器?

答案1

我成功了,如下:

cd /etc/
mv resolv.conf resolv.conf-old
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

答案2

事实证明问题在于我没有在 dnsmasq 服务器中配置域后缀。

我添加了行: domain=lan /etc/dnsmasq.conf重新启动了服务,现在我可以正常解析homestar或的地址。homestar.lan

相关内容