众所周知,NetworkManager不能很好地发挥作用dnsmasq
(参考:here)。我在这里冗长的讨论中已略过,但仍不确定建议的处理方式是什么。
我要做的就是使用dnsmasq
DNS向我的本地网络提供DHCP。在这种情况下,推荐的方法是什么?
即使对于Ubuntu 14.04,问题似乎仍然存在,甚至该错误也被称为已修复。
作为解决方法,人们正在禁用由NM奴役的人,dnsmasq-base
原因如下:
NM奴隶dnsmasq
使用的硬编码选项(用C语言编写)提供了极其有限的功能。
- 它不会在ethX(
--listen-address=127.0.0.1
)上监听。因此,我们不能将我们的服务器用作本地网络PC的DNS服务器,即,它对于LAN完全没有用。 - 它不缓存请求(
--cache-size=0
)。没有缓存==>没有DNS查询加速。这对于LAN来说非常重要,因为有许多并发用户。 - 最后,我们还需要dnsmasq的DHCP和TFTP功能,因此,即使NM + dnsmasq包括一个真实的DNS服务器,我们也必须运行另一个dnsmasq
但是我不确定它们是否仍然有效和/或该修复程序如何解决问题。此外,他们都不十分清楚他们做了什么以及如何解决问题。即,冗长的讨论中缺少解决方案部分。有人可以填补空白吗?即
由于dnsmasq
上述原因,Ubuntu提供的开箱即用在服务器端不起作用。而且,在客户端,“在那些Ubuntu笔记本电脑上安装的dnsmasq无法从我的DNS服务器执行LAN DNS查询”,因为“((Ubuntu笔记本电脑))NetworkManager导致它们具有奇怪的127.0.1.1名称服务器设置”(参考:LAN或本地家庭网络的DNS解决方案)
如何使dnsmasq与NetworkManager顺利工作,以便在服务器和客户端上为我的本地网络提供DNS和DHCP(和TFTP)?
'
对于那些寻求答案的人。在下面的所有答案中,我发现对于服务器端,最简单的解决方案是@brad的解决方案(对于客户端,仍然没有好的答案):
解决该问题的唯一方法是禁用NM驱动器dnsmasq ...,然后安装“标准” dnsmasq,然后通过其标准
/etc/dnsmasq.conf
配置文件对其进行配置。