Мелкие заметки по администрированию и не только. Используются в личных целях в качестве памятки

BIND и длинные строки

Если попытаться добавить TXT-запись длиннее 255 символов, то мы получим сообщение вида

dns_rdata_fromtext: buffer-0x820a564e0:1: near '"v=DKIM1;': syntax error

или

dns_rdata_fromtext: /path/to/zone.file:22: syntax error
zone sitename.local/IN: loading from master file /path/to/zone.file failed: syntax error
zone sitename.local/IN: not loaded due to errors

Из формулировки «syntax error» совсем неочевидно что проблема заключается в слишком длинной строке.
Обойти данное ограничение довольно просто. Достаточно разбить длинную строку на несколько подстрок не превышающих 255 символов(байт). Можно набор подстрок обрамить круглыми скобками «(» и «)». В таком случае станет возможным каждую подстроку в файле зоны разместить на новой строке.
Например:

dkim._domainkey	TXT	("v=DKIM1; k=rsa; t=s; s=email; "
	"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAplBJr4PrtMx4rP99lo8dz2xQsDwPTqytBzuDyGNhIsKcCm9zldjFp1otgAj/Bd+ggFuRW5sr4HTB+NW1FzzDVXjBN72z8EsA1l9sKw6YbNoVtqJma4/x85bhKHZRTipdM3+gY8Fo0RVQL50S50KjaaPnLdAkircIRWCiEY10Lj1x9f8Ab3WxT6jGygl0Vt3w/C7BOffJ7ZYXaLcDQ"
	"y3l+Fh1Wp8QaQpoY4K6QcJnnOUansZbTmmXODvFWI6UHsW+lTWGgW4REF3W0JEC6QCTh2Gl09SYtAzjoG7sjs1HzxG3/7VZlVVaryDjjSj/HnhDRRVOEZHt3N9hD9YNmjw+ynAFZ5sXuLkWt9DL7TmiTd/fu9labDetidvEHOEAYVaGKUsN7UGMgyzo20Qucij72Qh3Qr/QSlk5mo2ZfAgKbmED1z/Z0I9c+UVfxwoBq4YfPUuuUXDwYfOZaOLP"
	"SLwqdvMbH7Cr9uDj6scX0a32cXz9W3LPUMmvdcTp079/h49EC5w+kWMtj6ARtEMcN+n/EfGu7qGADHIVUWB1F6xt90Kt4jI60FHrh0PqwMRTlDtm1tKeyDvUqpga5N5gtQburjPLeLjgpgk1+2vvLK0LHYafHyMTV5rGPjqm81GDMsrdRhjcKTsjvMGpH/b85MMyxDPzeQASKAD+RTj5wjTM70UCAwEAAQ=="
)

При динамическом обновлении зоны в вызов nsupdate потребутеся добавить параметр «-v»

# nsupdate -k /path/to/example.com.key -v
> server localhost
> zone sitename.local.
> update add dkim._domainkey.sitename.local.	21600	IN TXT "part 1"	"part 2"	…	"part n"
Отправить