我很难配置 Fedora DHCP 服务的更新版本来替换旧版本,问题是客户端无法获取适当的 DNS 服务器信息。
我曾在早期的 Fedora 版本上使用 dhcpd 成功服务过内部网络并为客户提供以下功能:
1)未知客户仅收到 IP 地址,但没有提供外部路由或 DNS 服务器信息。
2)通过 MAC 地址识别的客户端被映射到特定的 IP,并给出了正确的出站路由和外部 DNS 服务器。
但是,该系统遭遇了硬件故障,因此我一直在尝试转换到具有较新操作系统(FC 21)的备用服务器。(较旧的配置是未知版本,但不是很旧。)我似乎无法让已知或未知客户端获得正确的 DNS 服务器信息来解析主机名;它们可以路由,但无法解析名称。
新软件 dhcp-4.3.1-12.fc21 的配置细节与旧软件不同。相反,它具有更新友好 DNS 服务器的功能 - 此处不需要此功能。我搜索了所有有关如何正确配置它的信息,但结果却显示有关使用服务主机信息更新友好 DNS 服务器的详细信息 - 当然,这与我尝试执行的操作无关。
这些说明仅提到了所谓的域名服务器,其示例如下:
# option domain-name-servers ns1.example.org, ns2.example.org;
我目前的条目适用于所有客户端,并使用 IP 地址而不是域名,如下所示
option domain-name-servers 67.100.88.26, 64.105.172.26;
domain-name-servers
如果有人可以确认其目的是用于指向该 DHCP 服务器应该连接的协作 DNS 服务器,以便更新有关该 DHCP 服务器的客户端的信息,那就太好了。
我很难找到与 dhcpd 服务器和协作 dns 服务器之间的身份验证无关的任何其他名称服务器相关配置设置。
值得注意的是,对于一个位置中的条目来说,提供名称而不是 IP 地址来告诉客户端如何从名称中查找 IP 地址,这对我来说似乎比较疯狂,但也许该策略仅取决于主机自己的 /etc/resolv.conf。
难道新系统只是将系统的 resolv.conf 数据交给所有客户端?!太可怕了!这意味着无法向未知客户端隐藏这些数据!但是,这不可能,因为我的客户端没有收到 DNS 服务器数据!
答案1
事实证明,我测试的系统有两个接口,两个接口都由不同的服务器提供 dhcp 服务(另一个是硬件路由器),所以我的测试没什么帮助。然而,一旦我意识到这个问题,我就能让它工作,并确认一些在官方文档中远没有明确说明的事实:
domain-name-servers
确实将客户端指向他们的 DNS 服务器,并且它既可以全局工作,也可以逐个主机工作。并且;domain-name-servers
必须以单词“option
”开头,以空格分隔,多个服务器之间以逗号分隔,以分号终止。并且;- 如果在适当的位置没有
domain-name-servers
条目,则无法进行 DNS 翻译。
学到的教训是:测试时要更加小心!(“每次只测试一件事”也意味着不要意外引入非托管变量。)
如果文档更清晰一些就更好了。