laenge von txt records im dns

beim rumspielen mit dkim bin ich auf zwei probleme gestossen. nachdem alles eingerichtet war, schickte ich ein paar test emails an verschiedene, sogenannte “reflectors”, welche die dkim signatur ueberpruefen und das ergebnis zurueckschicken. alle ergebnisse waren unterschiedlich, aber aehnlich:
– PEM format error
– Signature verification failed; signature is missing or key could not be found
– bad signature format
– public key: OpenSSL error: too long

nach einigem suchen bin ich darauf gestossen, dass das feld in der mysql datenbank, aus dem die zonefiles fuer den bind generiert werden, mit 255 zeichen zu kurz ist. ich wollte es naemlich mal schon machen und habe eine “note” in den eintrag gepackt, so dass ich auf 293 zeichen kam:

—————
v=DKIM1; g=*; k=rsa; t=y; n=http://www.mydomain.de/index.php?dkim;
s=email; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1L3yI7UYV
hxI/zbGhUPtQhyuGEQdVFyhjEJgxyUAOmIXuXRfOFQyLW5/93Nvp0HfeAjuUG//VQdzd426iA13toyShcZQmV+IrwF4NIOq6keoTHpFaLzB+NEpM76Mz/ouKfIw9hpUDpPTTC2dYhpzFl6gcLrmvDzXQsg8Obrl3/wIDAQAB
—————

dementsprechend wurde der record bei 255 zeichen abgeschnitten und der public key war zu kurz. ruckzuck habe ich das in der datenbank geaendert, das zonefile neu geschrieben und siehe da: der eintrag steht in voller laenge im zonefile.

aber nach dem neu laden der zonefiles im bind tauchten diese fehlermeldungen im logfile auf:
Oct 20 22:52:31 ns01 named[20308]: dns_rdata_fromtext: mydomain.de.dns:17: ran out of space
Oct 20 22:52:31 ns01 named[20308]: zone mydomain.de/IN: loading master file mydomain.de.dns: ran out of space

von google und der bind faq habe ich mich in die irre fuehren lassen und analysierte alles auf syntaxfehler und fehlende “quotes”, bis ich dann auf dieses posting gestossen bin: http://www.isc.org/sw/bind/bind8-9_migration.php

2.6. TXT records are no longer automatically split.
Some versions of BIND accepted strings in TXT RDATA consisting of more than 255 characters and silently split them to be able to encode the strings in a protocol conformant way. You may now see errors like this dns_rdata_fromtext: local.db:119: ran out of space if you have TXT RRs with too longs strings. Make sure to split the string in the zone data file at or before a single one reaches 255 characters.

die fehlersuche war so anstrengend, dass ich mich erstmal auf das entfernen der url aus dem txt record beschraenkt habe. somit komme ich auf 253 zeichen und bin im gruenen bereich. wie man die records “splitted” interessiert mich heute nicht mehr. hauptsache, es funktioniert. es hat sicherlich sinn gemacht, dass das feld in der datenbank auf 255 zeichen beschraenkt war 😉

Share:

Author: sd

Leave a Reply

Your email address will not be published. Required fields are marked *