diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php b/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php
new file mode 100755
index 000000000..329f21ac3
--- /dev/null
+++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php
@@ -0,0 +1,72 @@
+internalValue != null) {
+ $validators[] = new CallbackValidator([
+ "callback" => function($data) {
+ if (substr($data, 0, 6) == '_msdcs') {
+ $subdomain = substr($data, 7);
+ if (substr($data, 6, 1) != '.' || !Util::isDomain($subdomain)) {
+ return [gettext("A valid domain must be specified after '_msdcs', prefixed with a dot")];
+ }
+ } elseif (!Util::isDomain($data)) {
+ return [gettext("A valid domain must be specified")];
+ }
+ return [];
+ }
+ ]);
+ }
+
+ return $validators;
+ }
+}
diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml
index 1cf57ff90..6223507b2 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml
@@ -226,9 +226,8 @@
1
Y
-
+
Y
- /^(?:(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$/i
A valid domain must be specified.