当dnsmasq
为了服务器 DNS 和 DHCP 而进行部署时,我很难理解各种设置的优先级。
就 DHCP 而言,网络由各种设备组成:
- 宣传其主机名的
- 那些没有的,我需要访问它们(提前知道它们的 IP)
- 那些没有但我不关心他们会得到IP的人
我通常的方法是使用两组设备:一组我为其固定一个地址(通过它们的 MAC 地址),另一组获取任何可用(且易失性)的信息。
dnsmasq
似乎提供了另一种方法:根据主机名分配 IP。因此,我会遇到以下情况:
配置文件中任何地方都未定义提供其主机名并获取 IP 的设备。
这些是否也会在 DNS 部分自动注册/可用,dnsmasq
以便我ping host1.example.com
不需要知道它的 IP,只需要知道它的主机名?
未通告主机名且存在于/etc/hosts
这些会在那里定义 IP 吗?还是我也需要dhcp-host=
在 中设置一个条目dnsmasq.conf
?
我之所以问这个问题是因为我在启动时收到一条建议消息dnsmasq
:
not giving name rpi2 to the DHCP lease of 10.100.10.212 because the name exists in /etc/hosts with address 10.100.10.202
但是,rpi2
收到了10.100.10.212
(这正是它dnsmasq
所说的不会给出的)。或者这只是一个警告,它/etc/hosts
定义的 IP 与 DHCP 实际分配的 IP 不匹配?
或者是/etc/hosts
一个严格的 DNS 参考并且从未在 DHCP 分配决策中使用过?
答案1
我通常的方法是使用两组设备:一组我为其固定一个地址(通过它们的 MAC 地址),另一组获取任何可用(且易失性)的信息。
dnsmasq 配置行用于为 DHCP 绑定主机名、IP 地址和 MAC:
dhcp-host=88:88:88:88:88:88,192.168.0.123,uncle-tompkin
对于 DNS,主机名也必须位于 /etc/hosts 中:
192.168.0.123 uncle-tompkin.trickster.gods uncle-tompkin