diff --git a/dns/ddclient/src/opnsense/mvc/app/controllers/OPNsense/DynDNS/forms/dialogAccount.xml b/dns/ddclient/src/opnsense/mvc/app/controllers/OPNsense/DynDNS/forms/dialogAccount.xml
index 2ee8e7271..9aad7678b 100644
--- a/dns/ddclient/src/opnsense/mvc/app/controllers/OPNsense/DynDNS/forms/dialogAccount.xml
+++ b/dns/ddclient/src/opnsense/mvc/app/controllers/OPNsense/DynDNS/forms/dialogAccount.xml
@@ -30,6 +30,13 @@
add a DNS wildcard CNAME record that points to the configured host.
+
+ account.zone
+
+ text
+
+ Zone containing the host entry.
+
account.hostnames
diff --git a/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.xml b/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.xml
index e6f4ea2a2..756d13c0d 100644
--- a/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.xml
+++ b/dns/ddclient/src/opnsense/mvc/app/models/OPNsense/DynDNS/DynDNS.xml
@@ -54,6 +54,7 @@
A service type is required.
Changeip
+ Cloudflare
DynDNS.com
DnsPark
DslReports
@@ -87,6 +88,10 @@
0
Y
+
+ N
+ N
+
N
/^([\t\n\v\f\r 0-9a-zA-Z.,_\x{00A0}-\x{FFFF}]){1,255}$/u
diff --git a/dns/ddclient/src/opnsense/service/templates/OPNsense/ddclient/ddclient.conf b/dns/ddclient/src/opnsense/service/templates/OPNsense/ddclient/ddclient.conf
index fc221b782..a506db3ec 100644
--- a/dns/ddclient/src/opnsense/service/templates/OPNsense/ddclient/ddclient.conf
+++ b/dns/ddclient/src/opnsense/service/templates/OPNsense/ddclient/ddclient.conf
@@ -46,7 +46,10 @@ use=web, web=http://dynamic.zoneedit.com/checkip.html
{% if helpers.exists('OPNsense.DynDNS.accounts.account') %}
{% for account in helpers.toList('OPNsense.DynDNS.accounts.account') %}
{% if account.enabled|default('0') == '1' %}
-{% if account.service == 'nsupdatev4' %}
+{% if account.service == 'cloudflare' %}
+protocol=cloudflare
+zone={{account.zone}}
+{% elif account.service == 'nsupdatev4' %}
protocol=dyndns2
ssl=yes
server=ipv4.nsupdate.info