Problem mit DNS Zonen WebInterface

Hallo,

scheint als hätte ich eine komische interne DNS Zone ( 11.apo )

Auf jeden Fall behaupted das Webinterface laufen das ich : Value may not contain other than numbers, letters and dots!

Ich denke mal das Regex kommt mit der 11 nicht klar.

Execution of command ‘udm/query dns/dns’ has failed:

Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/notifier/threads.py", line 82, in _run
    tmp = self._function()
  File "/usr/lib/pymodules/python2.7/notifier/__init__.py", line 104, in __call__
    return self._function( *tmp, **self._kwargs )
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/udm/__init__.py", line 570, in _thread
    entry['$value$'] = [module.property_description(obj, column['name']) for column in module.columns]
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/udm/udm_ldap.py", line 630, in property_description
    value = [description_property.syntax.tostring(x) for x in value]
  File "/usr/lib/pymodules/python2.7/univention/admin/syntax.py", line 265, in tostring
    res = self.subsyntaxes[i][1]().parse(texts[i])
  File "/usr/lib/pymodules/python2.7/univention/admin/syntax.py", line 1443, in parse
    raise univention.admin.uexceptions.valueError(_("Value may not contain other than numbers, letters and dots!"))
valueError: Value may not contain other than numbers, letters and dots!

Der Fehler passiert an verschiedenen Stellen, aber auch in DNS im Sidebar auf der linken Seite.

Unter all DNS Zones auf das + vor 11.apo klicken.

Dann auf 11.apo klicken… bums.

Die Skripte laufen meistens durch, aber halt nicht immer. Ich will jetzt nicht manuell das Skript ändern.

4.1-4 errata406

Hallo,

Auf einem Testsystem habe ich 11.apo gerade erfolgreich als zusätzliche Zone eingerichtet, einen A-Record dort definiert und sehe erstmal keine Fehler.

aus syntax.py mit eingeblendeten Zeilennummern, im Traceback ist die Zeile 1443 erwähnt:

1406 class dnsHostname(dnsName): 1407 """ 1408 RFC 1123: a '.' separated FQHN 1409 1410 # A host name (label) can start or end with a letter or a number 1411 >>> dnsHostname.parse('a') 1412 'a' 1413 >>> dnsHostname.parse('A.') 1414 'A.' 1415 >>> dnsName.parse('0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz') 1416 '0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 1417 >>> dnsName.parse('0.example.com') 1418 '0.example.com' 1419 1420 # A host name (label) MUST NOT consist of all numeric values 1421 >>> dnsHostname.parse('0') 1422 Traceback (most recent call last): 1423 ... 1424 valueError: Full name must not be all numeric! 1425 1426 # A host name (label) MUST NOT start or end with a '-' (dash) 1427 >>> dnsHostname.parse('-') 1428 Traceback (most recent call last): 1429 ... 1430 valueError: Value may not contain other than numbers, letters and dots! 1431 """ 1432 1433 LABEL = re.compile(r'^(?![0-9]+$|[_-])[a-zA-Z0-9_-]{1,63}(?<![_-])$') 1434 NUMERIC = re.compile(r'^[0-9.]+$') 1435 1436 @classmethod 1437 def parse(self, text): 1438 text = super(dnsHostname, self).parse(text) 1439 if self.NUMERIC.match(text): 1440 raise univention.admin.uexceptions.valueError(_("Full name must not be all numeric!")) 1441 labels = (text[:-1] if text.endswith('.') else text).split('.') 1442 if not all(self.LABEL.match(label) for label in labels): 1443 raise univention.admin.uexceptions.valueError(_("Value may not contain other than numbers, letters and dots!")) 1444 return text

Meine Python-Fähigkeiten sind begrenzt, aber das ist die Klasse “dnsHostname”. Vielleicht sollte man auch dort mal schauen.

Viele Grüße,
Dirk Ahrnke

EDIT: mit “dort mal schauen” meine ich bei den Records in der Zone.

Hi, danke für den Test.
Meine Hostnamen haben keine Sonderzeichen oder nur Nummern.
Ich muss mir mal den RegEx für LABEL anschauen.
Der Fehler kommt auch erst nachdem man die Zone angelegt hat, und nun sich den Inhalt der Zone anzeigen lassen will.
Mal schauen ob ich ein paar Screenshots machen kann.

hmm… könnte doch einen dns hostnamen mit - haben, das ist aber eigentlich egal und damit dann das regex falsch:

Im Gegensatz zu Domainnamen dürfen Hostnames nur aus den ASCII-Zeichen a–z bzw. A–Z (zwischen Groß- und Kleinbuchstaben wird nicht unterschieden), den Ziffern 0–9 und dem Bindestrich-Minus - bestehen. (https://de.wikipedia.org/wiki/Hostname)

werde mal schauen ob das das Problem ist.

Mastodon