DHCPD 分配错误的 DNS 服务器

DHCPD 分配错误的 DNS 服务器

我刚刚安装了两台 Ubuntu 14.04LTS 服务器。第一台我安装了 bind9 和 isc-dhcp-server。第二台保留原样以使用 DHCP。我使用 VMware fusion 创建了一个新的专用网络,以防止 DHCP 服务器进入我的网络的其余部分,并将两台机器连接到该网络。这个专用网络是仅主机网络,不允许主机连接到网络或让 VMware 分配地址。没有互联网连接或任何其他网络连接。只有两个独立的虚拟机。

正向和反向 DNS 均解析。DHCP 成功为客户端服务器添加正向和反向记录。第二台服务器从 DHCP 服务器获取除 DNS 服务器要使用的信息之外的所有正确信息。无论我在域名服务器中输入什么,客户端服务器始终会获取 127.0.1.1。

我确实觉得 127.0.1.1 是由 dhcp 服务器发送的,不会被客户端服务器上的任何东西覆盖,因为该值显示在 /var/lib/dh​​cp/dhclient.eth0.leases 中。我觉得如果它被客户端服务器上的某些东西覆盖,它会在该文件中显示正确的值,但我可能是错的。

服务器配置

/etc/dhcp/dhcpd.conf

root@srv1:~# cat /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ddns-domainname "example.net.";
ddns-rev-domainname "in-addr.arpa.";

log-facility local7;

subnet 172.16.163.0 netmask 255.255.255.0 {

    range 172.16.163.10 172.16.163.20;

    option domain-name-servers 172.16.163.1;
    option domain-name "example.net";
    option routers 172.16.163.1;
    option broadcast-address 172.16.163.225;

    default-lease-time 600;
    max-lease-time 7200;

}

key DHCP_UPDATER {
    algorithm HMAC-MD5.SIG-ALG.REG.INT;
    secret "xxxxxxxxxxxxxxxxxx==";
};

zone example.net. {
    primary 127.0.0.1;
    key DHCP_UPDATER;
}

zone 163.16.172.in-addr.arpa. {
    primary 127.0.0.1;
    key DHCP_UPDATER;
}

/etc/resolv.conf

root@srv1:~# cat /etc/resolv.conf
nameserver 172.16.163.1
search example.net

/etc/网络/接口

root@srv1:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0

iface eth0 inet static
    address 172.16.163.1
    netmask 255.255.255.0
    gateway 173.16.163.1

就像我说的,一切似乎都运行良好,只是第二台服务器没有获得正确的 DNS 条目。如果我手动选择正确的 DNS 服务器,它就可以正常解析。

如果我的配置看起来很简单,这只是在 VM 实验室环境中进行的测试,尚未暴露给外界。

谢谢

答案1

我不喜欢发帖后立即发布自己的答案,但当我正在获取 DHCP 客户端配置和租约文件时,我注意到大约有六个租约条目。为了创建一个干净的文件来发布在这里,我删除了该文件并重新启动。之后它获取了正确的 DNS 服务器信息。

虽然我觉得还有更多问题,但我的解决方案是删除客户端上的 /var/lib/dh​​cp/dhclient.eth0.leases 并重新启动。

答案2

由于无法在现实中看到任何东西,所以很难猜测。但首先我想说,因为 example.net 是子网域名中的域,然后您指定一个“从哪里”的地方通过 127.0.0.1 更新区域 example.net,我猜这就是你的问题所在。

答案3

在我的情况下,/etc/resolv.conf 中设置了 1.1.1.1,因为我有一个包含 DNS 配置行的 Wireguard 隧道。我通过在所有配置文件中搜索 DNS 服务器找到了它:

grep -RIl "1.1.1.1" /etc

相关内容