<div dir="ltr"><div><div><div>Hi guys,<br><br></div>I found a problem on installing server, which has address from small ip zone, less than a class C.<br></div><br>"engine-setup" checks FQDN resolvability in "./plugins/ovirt-engine-setup/config/hostname.py".<br>
</div><div>This program requests forward & reverse query to DNS, and see if it comes back to host domain name.<br></div><div>But it does not support RFC2317("Classless IN-ADDR.ARPA delegation") type domain, and fails on FQDN check.<br>
<br>See following URLs for RFC2317 explanation.<br><a href="http://support.simpledns.com/KB/a146/how-to-sub-delegate-a-reverse-zone.aspx">http://support.simpledns.com/KB/a146/how-to-sub-delegate-a-reverse-zone.aspx</a><br>
<a href="http://www.rfc-editor.org/rfc/rfc2317.txt">http://www.rfc-editor.org/rfc/rfc2317.txt</a><br><br></div><div>I made patch to "hostname.py" to clear this problem.<br></div><div>Please check following patch, and consider upgrading on the next release.<br>
<br>--- <a href="http://hostname.py.org">hostname.py.org</a> 2013-12-13 17:22:11.000000000 +0900<br>+++ hostname.py 2014-01-28 18:01:09.514791351 +0900<br>@@ -96,15 +96,16 @@<br> flags=re.VERBOSE,<br> pattern=r"""<br>
^<br>- (?P<query>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).in-addr.arpa.<br>+ (?P<query>[\w/.-]+)<br>+ \.<br> \s+<br> \d+<br> \s+<br>
IN<br> \s+<br>- PTR<br>+ (?P<type>(PTR|CNAME))<br> \s+<br>- (?P<answer>[\w.-]+)<br>+ (?P<answer>[\w/.-]+)<br> \.<br>
$<br> """<br>@@ -171,11 +172,32 @@<br> args=args,<br> raiseOnError=False<br> )<br>+ ad=addr.split('.')<br>+ query="{3}.{2}.{1}.{0}.in-addr.arpa".format(*ad)<br>
if rc == 0:<br> for line in stdout:<br> found = self._DIG_REVLOOKUP_RE.search(line)<br>- if found:<br>- names.add(found.group('answer'))<br>+ if not found:<br>
+ continue<br>+ if query != found.group('query'):<br>+ continue<br>+ answer=found.group('answer')<br>+ if found.group('type') == 'CNAME':<br>
+ self.logger.debug(<br>+ '{query} CNAME to: {answer}'.format(<br>+ query=query,<br>+ answer=answer,<br>+ )<br>
+ )<br>+ query=answer<br>+ continue<br>+ self.logger.debug(<br>+ '{query} resolves to: {answer}'.format(<br>+ query=query,<br>
+ answer=answer,<br>+ )<br>+ )<br>+ names.add(answer)<br> return names<br><br> def _validateFQDNresolvability(self, fqdn):<br><br></div><div>
Upgrading to a better patch is greatly appreciated.<br></div><div><br></div><div>Thank you.<br><br></div><div>Regards,<br><br></div><div>Mark Kachi<br></div></div>