isc-dhcp-server 上使用 ddns 和 bind9 的多个子网

isc-dhcp-server 上使用 ddns 和 bind9 的多个子网

我的网络上有两个子网:

  • 10.100.1.0/24 -> 有线/无线
  • 10.100.7.0/24->VPN

两个子网均由在 Debian VM 上运行的 isc-dhcp-server 提供服务。同一台 VM 为我的 DNS 运行 bind9。ISC-DHCP-SERVER 配置为使用 DDNS 并使用主机/IP 更新 BIND9。

一切运行良好,直到设备脱离有线/无线网络并接入 VPN。在 VPN 上连接时,会在新子网上发出 DHCP 租约,但 DDNS 不会更新 BIND9。由于设备具有 A/TXT/PTR 记录,因此 ISC-DHCP-SERVER 似乎不会将它们切换到新 IP。日志显示:

连接到无线:

Nov  6 20:55:13 core-server named[2417]: client 127.0.0.1#57697: updating zone 'internal.mydomain.com/IN': adding an RR at 'demo-iphone.internal.mydomain.com' A
Nov  6 20:55:13 core-server named[2417]: client 127.0.0.1#57697: updating zone 'internal.mydomain.com/IN': adding an RR at 'demo-iphone.internal.mydomain.com' TXT
Nov  6 20:55:13 core-server dhcpd: DHCPACK on 10.100.1.160 to FF:FF:FF:FF:FF:FF (demo-iphone) via eth0
Nov  6 20:55:13 core-server dhcpd: Added new forward map from demo-iphone.internal.mydomain.com to 10.100.1.160
Nov  6 20:55:13 core-server dhcpd: Added reverse map from 160.49.21.172.in-addr.arpa. to demo-iphone.internal.mydomain.com

切换到VPN:

Nov  6 20:56:34 core-server dhcpd: DHCPOFFER on 10.100.7.101 to BB:BB:BB:BB:BB:BB (demo-iphone) via 10.100.7.0
Nov  6 20:56:34 core-server named[2417]: client 127.0.0.1#57697: updating zone 'internal.mydomain.com/IN': update unsuccessful: demo-iphone.internal.mydomain.com: 'name not in use' prerequisite not satisfied (YXDOMAIN)
Nov  6 20:56:34 core-server dhcpd: DHCPREQUEST for 10.100.7.101 (10.100.1.2) from BB:BB:BB:BB:BB:BB (demo-iphone) via 10.100.7.0
Nov  6 20:56:34 core-server dhcpd: DHCPACK on 10.100.7.101 to BB:BB:BB:BB:BB:BB (demo-iphone) via 10.100.7.0
Nov  6 20:56:34 core-server named[2417]: client 127.0.0.1#57697: updating zone 'internal.mydomain.com/IN': update unsuccessful: demo-iphone.internal.mydomain.com/TXT: 'RRset exists (value dependent)' prerequisite not satisfied (NXRRSET)
Nov  6 20:56:34 core-server dhcpd: Forward map from demo-iphone.internal.mydomain.com to 10.100.7.101 FAILED: Has an address record but no DHCID, not mine.

需要注意的一点是,通过 VPN 连接时设备的 MAC 是我的 Cisco ASA5512X 的 MAC,而不是实际设备的 MAC。ASA 正在将 VPN 客户端的 DHCP 请求中继到运行 ISC-DHCP-SERVER 的 VM。

在这种情况下有没有办法让 DDNS 正常工作?

答案1

租约时间应仅用于动态地址预留。当同一设备出现不同的租约时,无论租约时间如何,都应更新记录。

当 DHCP 服务器提供新地址时,DDNS 应该更新记录。

以下错误显示了真正的问题:

Nov  6 20:56:34 core-server named[2417]: client 127.0.0.1#57697: updating zone 'internal.mydomain.com/IN': update unsuccessful: demo-iphone.internal.mydomain.com/TXT: 'RRset exists (value dependent)' prerequisite not satisfied (NXRRSET)

Nov  6 20:56:34 core-server dhcpd: Forward map from demo-iphone.internal.mydomain.com to 10.100.7.101 FAILED: Has an address record but no DHCID, not mine.

是由于缺少表明记录是由 DHCP 服务器创建的资料所致。这样做是为了防止删除不是由 DHCP 服务器创建的记录。一种情况可能是多个 DHCP 服务器更新单个区域文件。

尝试冻结区域并手动删除客户端的记录 A 和 TXT。增加序列号。解冻区域。尝试让客户端续订租约。然后让客户端连接到其他网络并在那里续订租约。

如果这不起作用,则可能有其他原因发生,但这就是我开始的地方。

答案2

根据您的日志,可以看到相同的 DNS 主机名 (demo-iphone.internal.mydomain.com) 绑定到不同的 IP (ip1=10.100.1.160, ip2=10.100.7.101)。

看起来您正在尝试利用 dhcp+ddns 来实现 dns 级别的故障转移。我不确定 ISC-DHCP-SERVER 是否设计为以这种方式工作。

将多宿主主机接口绑定到不同的 DNS 名称,希望对您有所帮助。

相关内容