[PATCH] s4:provision: Make gc._msdcs DNS entries A/AAAA records

Andrew Kroeger andrew at id10ts.net
Sun Jun 13 09:48:31 MDT 2010


When adding an additional DC as a GC server, the new DC attempts to register its
own gc._msdcs records.  If the existing gc._msdcs record is a CNAME, BIND fails
the update with the message "attempt to add non-CNAME alongside CNAME ignored",
and the new DC is not registered as a GC server.

The A & AAAA record types for gc._msdcs have been verified against the DNS
server of a W2K8 DC.
---
 source4/scripting/python/samba/provision.py |    6 ++++++
 source4/setup/provision.zone                |    3 ++-
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index dcf8462..60d7fc9 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -1516,16 +1516,20 @@ def create_zone_file(lp, logger, paths, targetdir, setup_path, dnsdomain,
     if hostip6 is not None:
         hostip6_base_line = "            IN AAAA    " + hostip6
         hostip6_host_line = hostname + "        IN AAAA    " + hostip6
+        gc_msdcs_ip6_line = "gc._msdcs               IN AAAA    " + hostip6
     else:
         hostip6_base_line = ""
         hostip6_host_line = ""
+        gc_msdcs_ip6_line = ""
 
     if hostip is not None:
         hostip_base_line = "            IN A    " + hostip
         hostip_host_line = hostname + "        IN A    " + hostip
+        gc_msdcs_ip_line = "gc._msdcs               IN A    " + hostip
     else:
         hostip_base_line = ""
         hostip_host_line = ""
+        gc_msdcs_ip_line = ""
 
     dns_dir = os.path.dirname(paths.dns)
 
@@ -1553,6 +1557,8 @@ def create_zone_file(lp, logger, paths, targetdir, setup_path, dnsdomain,
             "NTDSGUID": ntdsguid,
             "HOSTIP6_BASE_LINE": hostip6_base_line,
             "HOSTIP6_HOST_LINE": hostip6_host_line,
+            "GC_MSDCS_IP_LINE": gc_msdcs_ip_line,
+            "GC_MSDCS_IP6_LINE": gc_msdcs_ip6_line,
         })
 
     # note that we use no variable substitution on this file
diff --git a/source4/setup/provision.zone b/source4/setup/provision.zone
index 2c25fd0..2c8195b 100644
--- a/source4/setup/provision.zone
+++ b/source4/setup/provision.zone
@@ -14,7 +14,8 @@ ${HOSTIP_BASE_LINE}
 ;
 ${HOSTIP6_HOST_LINE}
 ${HOSTIP_HOST_LINE}
-gc._msdcs		IN CNAME	${HOSTNAME}
+${GC_MSDCS_IP_LINE}
+${GC_MSDCS_IP6_LINE}
 ${NTDSGUID}._msdcs	IN CNAME	${HOSTNAME}
 ;
 ; global catalog servers
-- 
1.7.0.1


--------------050705080506030409060200--


More information about the samba-technical mailing list