<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[DHCP, BIND, and DDNS update problem]]></title><description><![CDATA[<p dir="auto">I have switched over to bind due to needing views and support for a handful of domains that I host. One thing that I can't get working reliably is DDNS.</p>
<p dir="auto">It looks like the issue is that new requests get populated into DNS properly, but if anything causes those to go away (like updating the zone through the web UI), they don't get refreshed when the DHCP address renews. The fix appears to be adding <code>update-optimization off;</code> to the dhcpd configuration, but I don't see a way to do that through the web UI as there isn't an option to add additional configuration parameters.</p>
<p dir="auto">Does anyone have any ideas on how to get DDNS to work reliably with bind?</p>
]]></description><link>https://forum.netgate.com/topic/160949/dhcp-bind-and-ddns-update-problem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 12 Jun 2026 20:38:46 GMT</lastBuildDate><atom:link href="https://forum.netgate.com/topic/160949.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Feb 2021 19:33:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DHCP, BIND, and DDNS update problem on Sun, 13 Apr 2025 16:34:56 GMT]]></title><description><![CDATA[<p dir="auto">I know it's an old post, but I've updated the way I'm managing this to patch /etc/inc/services.inc as <a class="plugin-mentions-user plugin-mentions-a" href="/user/inq">@<bdi>inq</bdi></a> mentioned above:</p>
<pre><code>--- /etc/inc/services.inc-20250320	2025-03-20 15:43:20.182559000 -0700
+++ /etc/inc/services.inc	2025-03-20 15:44:13.392591000 -0700
@@ -3096,6 +3096,7 @@
 	if ($need_ddns_updates) {
 		$dhcpdconf .= "ddns-update-style interim;\n";
 		$dhcpdconf .= "update-static-leases on;\n";
+		$dhcpdconf .= "update-optimization off;\n";

 		$dhcpdconf .= dhcpdzones($ddns_zones);
 	}
@@ -3564,6 +3565,7 @@
 	if ($nsupdate) {
 		$dhcpdv6conf .= "ddns-update-style interim;\n";
 		$dhcpdv6conf .= "update-static-leases on;\n";
+		$dhcpdv6conf .= "update-optimization off;\n";
 	} else {
 		$dhcpdv6conf .= "ddns-update-style none;\n";
 	}
</code></pre>
]]></description><link>https://forum.netgate.com/post/1212175</link><guid isPermaLink="true">https://forum.netgate.com/post/1212175</guid><dc:creator><![CDATA[wwwdrich]]></dc:creator><pubDate>Sun, 13 Apr 2025 16:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to DHCP, BIND, and DDNS update problem on Mon, 22 Mar 2021 20:34:43 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/inq">@<bdi>inq</bdi></a> While I hate it, I have a workaround for this. I have the following script that I run any time I update the DHCP config:</p>
<pre><code>#!/bin/sh

lan_int=`xmllint --xpath "//interfaces/lan/if/text()" /conf/config.xml`

if [ -z "$lan_int" ]; then
  echo "ERROR: could not determine LAN interface name!"
  exit 1
fi

# Add update-optimization paramater and restart dhcpd
# This allows DNS to refresh on DHCP lease renewals

killall -3 dhcpd
sed -i.bak '/client-updates;/a\
	update-optimization off;\
' /var/dhcpd/etc/dhcpd.conf
/usr/local/sbin/dhcpd -user dhcpd -group _dhcp -chroot /var/dhcpd -cf /etc/dhcpd.conf -pf /var/run/dhcpd.pid $lan_int

# Repeat for dhcpv6...
sed -i.bak '/client-updates;/a\
	update-optimization off;\
' /var/dhcpd/etc/dhcpd.conf
/usr/local/sbin/dhcpd -6 -user dhcpd -group _dhcp -chroot /var/dhcpd -cf /etc/dhcpdv6.conf -pf /var/run/dhcpdv6.pid $lan_int
</code></pre>
]]></description><link>https://forum.netgate.com/post/973899</link><guid isPermaLink="true">https://forum.netgate.com/post/973899</guid><dc:creator><![CDATA[wwwdrich]]></dc:creator><pubDate>Mon, 22 Mar 2021 20:34:43 GMT</pubDate></item><item><title><![CDATA[Reply to DHCP, BIND, and DDNS update problem on Fri, 19 Feb 2021 15:24:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/wwwdrich">@<bdi>wwwdrich</bdi></a><br />
Inq Jan 5, 2019, 1:02 PM<br />
My solution was to modify /etc/inc/services.inc as follows :<br />
/* write dhcpd.conf */<br />
if (!@file_put_contents("{$g['dhcpd_chroot_path']}/etc/dhcpd.conf.auto", $dhcpdconf)).<br />
After that at every boot pfsense rewrites dhcpd.conf.auto not dhcpd.conf. Manually modify dhcpd.conf as you wish, it should be persistent between reboots or service restarts.<br />
The above solution is a hack, i do not recommend using it for production systems and it could completely break your pfsense install.</p>
]]></description><link>https://forum.netgate.com/post/965411</link><guid isPermaLink="true">https://forum.netgate.com/post/965411</guid><dc:creator><![CDATA[Inq]]></dc:creator><pubDate>Fri, 19 Feb 2021 15:24:23 GMT</pubDate></item></channel></rss>