Разбиение TXT-записи DNS
Разрежьте длинное значение TXT на строки по 255 байт, готовые для файла зоны.
Инструмент разбиения TXT-записи работает полностью в браузере: ключи и токены режутся на вашем устройстве и никуда не отправляются.
Создать запись DKIM
Об инструменте Разбиение TXT-записи DNS
TXT-запись — это не одна длинная строка. RFC 1035 хранит её как последовательность символьных строк, каждая не длиннее 255 байт, а резолвер склеивает их без чего-либо между ними. Именно поэтому ключ DKIM на 2048 бит приходится отдавать в файл зоны несколькими строками в кавычках, и поэтому разрез в неверном месте — или склейка кусков пробелом — ломает подпись почты так, что искать причину мучительно. Инструмент режет по границам байтов и никогда не разрывает символ.
Возможности
- Режет по границам 255 байт, считая байты, а не символы
- Никогда не разрывает многобайтовый символ или суррогатную пару
- Форматы: BIND одной строкой, в скобках, только строки в кавычках или массив JSON
- Число байтов в каждом куске, чтобы видеть заполненные строки
- Предупреждения о лишних пробелах, уже проставленных кавычках и записях больше 512 байт
- Собирает строки из файла зоны или ответа dig обратно
- Примеры ключа DKIM на 2048 бит, длинной SPF и токена подтверждения
Как использовать Разбиение TXT-записи DNS
- Вставьте значение TXT целиком — кавычки добавятся сами
- Укажите имя записи и TTL, если нужна полная строка зоны
- Выберите формат вывода, который ждёт ваш DNS-провайдер
- Скопируйте запись либо соберите разрезанное значение на вкладке склейки
Пример
Ввод
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A… (392 bytes)
Результат
default._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIja…" "…QIDAQAB"
Две строки в кавычках, которые резолвер склеит без чего-либо между ними.
Частые ошибки и устранение неполадок
- DNS-провайдер отклоняет запись как слишком длинную. — Он применяет предел 255 байт к одной строке. Вставьте разрезанный вариант, где каждый кусок взят в кавычки отдельно.
- После разбиения перестала проходить проверка DKIM. — Почти всегда виноват пробел между кусками. Резолверы склеивают строки без разделителя, поэтому любой добавленный пробел становится частью ключа.
- В значении уже есть кавычки. — Вставьте исходное значение. Кавычки добавляются при форматировании, а уже закавыченное значение окажется закавыченным дважды.
- Куски короче 255 символов. — Предел измеряется в байтах, а не в символах. Любой не-ASCII символ занимает от двух до четырёх байтов.
Часто задаваемые вопросы
- Почему TXT-запись ограничена 255 символами?
- Каждой строке внутри записи предшествует байт длины, который и ограничивает одну строку 255 байтами. Вся запись может содержать много строк, поэтому настоящий предел — размер DNS-сообщения.
- Как резолвер собирает разбитые строки TXT?
- Он склеивает их по порядку вообще без разделителя. На этом поведении и держатся DKIM, SPF и токены подтверждения.
- Где резать ключ DKIM?
- Где угодно, лишь бы каждый кусок не превышал 255 байт. Для проверяющей стороны после склейки ключ — это одна строка Base64.
- Насколько большой может быть вся TXT-запись?
- На практике несколько килобайт, но ответы больше примерно 512 байт требуют EDNS или повтора по TCP, а часть резолверов справляется с этим плохо.
- Нужно ли так же разбивать запись SPF?
- Только если одна строка выходит за 255 байт, что случается при множестве include. У SPF есть и собственный предел в десять DNS-запросов, и разбиение здесь не помогает.
Связанные инструменты
Все инструменты ArrayKit