Samba 内部 DNS - Systemd 解析可以安全禁用吗?

Samba 内部 DNS - Systemd 解析可以安全禁用吗?

所以我有一个运行 samba ad dc 的 Ubuntu 16.04 实例,我升级到 18.04 并且在启动 samba 时出现错误;

[2018/12/27 11:09:56.483755, 0]../source4/dsdb/dns/dns_update.c:290(dnsupdate_nameupdate_done)
../source4/dsdb/dns/dns_update.c:290: DNS 更新失败 - 错误代码为 110

经过一番挖掘和运行,sudo lsof -i :53我可以看到

systemd-r  767 systemd-resolve   12u  IPv4  18656      0t0  UDP 127.0.0.53:domain 
systemd-r  767 systemd-resolve   13u  IPv4  18657      0t0  TCP 127.0.0.53:domain (LISTEN)
samba     1594            root   36u  IPv6  23058      0t0  TCP *:domain (LISTEN)
samba     1594            root   38u  IPv6  23059      0t0  UDP *:domain 

这导致我禁用systemd-resolve使用说明这里,这解决了我网络中的所有问题(其他域机器无法运行apt-get update等等)但我想知道禁用是否systemd-resolve安全?

编辑

这是在 vsphere 6.0 上运行的虚拟机,它是一个桥接网络。升级后,Netplan 文件夹为空(我刚想起来应该设置一下),旧的网络详细信息/etc/network/interfaces设置为;

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens160
iface ens160 inet static
address 192.168.2.23
netmask 255.255.255.0
gateway 192.168.2.254

dns-nameservers 192.168.2.23
dns-search MYDOMAINNAME.co.uk

我可以手动设置resolv.conf(删除符号链接后)如下,它可以工作

nameserver 192.168.2.23
nameserver 127.0.0.53
search MYDOMAIN.co.uk
DNSStubListener=no

答案1

重新启用 systemd-resolve。

两种可能性……

  1. 关于dnsmasqsystemd-resolved...

执行ps auxc | grep -i dnsps auxc | grep -i resolv并查找dnsmasqsystemd-resolved,如果两者都在运行,则需要systemd-resolved通过编辑/etc/systemd/resolved.conf和禁用的 DNS 部分......

改变:

#DNSStubListener=yes

到:

DNSStubListener=no

然后重新启动 systemd-resolve 和 dnsmasq,或者重新启动。

  1. 您可能需要重置 /etc/resolv.conf 的符号链接如果 dnsmasq 没有运行)...

sudo mv /etc/resolv.conf /etc/resolv.conf.OLD# 保存旧的符号链接

sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf# 创建新的符号链接

更新#1:

关于此安装的许多细节都在评论中提出,但我们仍未找到最终的解决方案。以下是需要注意的几点...


DNSStubListener=no不属于/etc/resolv.conf。(/etc/resolv.conf(通常)不应直接编辑)。这是对 的编辑/etc/systemd/resolved.confDNS=也可以在那里编辑以添加 DNS 服务器地址。


/etc/resolv.conf应该是一个符号链接,链接到 /run 中的两个可能位置之一。

NEW -> /run/systemd/resolve/resolv.conf
OLD -> ../run/resolvconf/resolv.conf

并且应该包含 127.0.0.53 (如果 dnsmasq 正在运行,则为 127.0.0.1)、DNS 名称服务器地址或路由器地址(例如:192.168.1.1


如果您要使用 NetworkManager 而不是 netplan,那么/etc/netplan应该至少包含一个包含以下内容的 .yaml 文件...

network:
  version: 2
  renderer: NetworkManager

其次是...

sudo netplan generate# 生成配置文件

sudo netplan apply# 应用配置


如果您正在使用 NetworkManager,那么/etc/NetworkManager/NetworkManager.conf应该存在...并且应该看起来像......

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

如果dnsmasqANDsystemd-resolve正在运行,那么您应该按照我的回答执行 #1。

如果dnsmasq没有运行,并且systemd-resolve正在运行,那么您应该执行我的答案中的#2。


相关内容