Я пытаюсь ввести 4028-битный ключ DKIM в DNS, и мне кажется, что я превышаю предел 512 байт для UDP, а также максимальный размер записи для записи TXT.
Как правильно создать большой ключ (с предполагаемым большим закодированным размером) и импортировать его в DNS?
Вам нужно разделить их в текстовом поле. Я считаю, что 2048 - это практический предел размера ключа. Разделите текстовое поле на части размером 255 символов или меньше. Для каждого сплита есть накладные расходы.
Есть два формата длинных полей.
TXT "часть первая" \ "часть вторая"
TXT («часть первая» «часть вторая»)
Оба из них будут объединены как «часть первая, часть два». Подробнее от Zytrax.
Чтобы создать запись в dkim, я вставляю свой файл открытого ключа и заключаю его в кавычки.
Мой файл открытого ключа содержит следующее:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB
После редактирования ключ в моем файле зоны DNS выглядит следующим образом:
dkim3._domainkey IN TXT ("v=DKIM1; t=s; p="
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3"
"q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0"
"ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB")
DNS возвращает его следующим образом:
bill:~$ host -t TXT dkim3._domainkey.systemajik.com
dkim3._domainkey.systemajik.com descriptive text "v=DKIM1\; t=s\; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3" "q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0" "ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB"
DNS рассматривает его как одну длинную строку без лишних пробелов в местах соединения строк. Все " "
последовательности игнорируются.
Если вы используете интерфейс poweradmin для pdns, вы можете просто ввести всю строку dkim в поле ввода.
v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxtR3bw1Kbh1B7q4+5aWjTj2YEFwv230gcv+NMp4KouOSLdIr0mCMiwDZpY+7zCdks0zMXtz+F5TPij/NkSAxIKBbJqbIO3mvAhgeI0Vy5aQ5prwnIyXUj54po6AsXbv5Ud2tFbGSsdIhvWiC755d3WaFs8mdWFkpSxprlW6PobCzOWDayWGCvsNfHpjmTxHZinkd3TmLQqE/O6Nb1YnRwQwUCLioSyudV+5Bd2+rXZ2V9FYAOiK2aQi2aSTiUaLCVxft9H6xen3JDaKsuu43QMBrhydoJOCV2QaY82IxqE3GgZrlADu6YEOfotdwD2aA9GRwVB88GqdXL8HwgEGTbwIDAQAB;
Если это Амазонский маршрут 53 тогда не используйте символы новой строки (только пробелы) между фрагментами.
"do it" "this way"
"not like"
"this"
Ничего страшного, если размер записи превышает предел UDP в 512 байт, потому что DNS будет использовать TCP.
Это должно быть прозрачно для пользователя, но иногда устройства межсетевого экрана с ошибками (например, Cisco PIX / ASA) будут фильтровать / блокировать эти более крупные запросы.
Я знаю, что это древний пост, но я нашел его сегодня, когда запросил «2048-битный ключ DKIM с UltraDNS». Моя команда DNS попыталась разделить ключ на две части, заключив их в кавычки и пробел между ними. Это заставляло UltraDNS обслуживать 3 пакета (один в центре был пустым), что приводило к несогласованным результатам проверки.
Что сработало для меня в панели управления UltraDNS, так это просто отправить всю запись в кавычках без множественных наборов кавычек, разделителей и т. Д. Теперь работает, как ожидалось.
Если вы используете MySQL / MariaDB в качестве серверной части DNS, например PowerDNS, вы можете изменить размер столбца содержимого.
Длина содержимого PowerDNS по умолчанию - VARCHAR (255).
Таким образом, ваша подпись DKIM будет обрезана до 255 символов.
чтобы исправить это
просто измените размер содержимого через MySQL CLI / MariaDB CLI
mysql -u root -p
USE powerdns;
alter table records modify column content text not null;
перезапустите службу DNS (например, PowerDNS)
service pdns restart