Назад | Перейти на главную страницу

Ввод нескольких значений DNS TXT как одной записи TXT, каждое значение в знаках ", но разделенных пробелами

Я делал это с другими поставщиками DNS, но я застрял в интерфейсе управления DNS UltraDNS. Мне нужно ввести несколько значений в TXT запись, поэтому они разрешаются как одна строка с каждым значением в знаках "и разделенными пробелом".

Пример того, что мы хотим, чтобы возвращала запись TXT, выглядит следующим образом (используя dig для Linux для проверки):

;; ANSWER SECTION:

name._avaya-ep-config._tcp.example.com. 119 IN  TXT "txtvers=1" "proto=https" "path=/acs/resources/configurations"

Однако в поддержке UltraDNS сказали, что мы должны вводить их как отдельные TXT записи - когда мы это делаем, он возвращает приведенное ниже и программное обеспечение, которое ищет это TXT value не распознает это и не работает:

;; ANSWER SECTION:

name._avaya-ep-config._tcp.example.com. 218 IN  TXT "proto=https"

name._avaya-ep-config._tcp.example.com. 218 IN  TXT "txtvers=1"

name._avaya-ep-config._tcp.example.com. 218 IN  TXT "path=/acs/resources/configurations"

Мы пробовали использовать двойные кавычки, используя \ для цитирования по RFC, используя также и по RFC - на основе RFC здесь: https://tools.ietf.org/html/rfc1464

Когда мы попробовали некоторые из предложений из примера RFC, веб-интерфейс UltraDNS не позволял нам вводить его, говоря, что мы должны вводить только символы ASCII (которые все были, но они также были кодом для других наборов символов ASCII).

Недействительный ввод: для комментария поддерживаются только символы ASCII.

При вводе, например, так:

\txtvers=1\"<sp>\"proto=https\"<sp>\"path=/acs/resources/configurations\

Программное обеспечение также использует SRV и PTR записи и эти работы - это просто не наш путь от TXT значение, как и должно быть из-за этой проблемы форматирования.

Здесь важно понимать, что TXT запись может быть многозначной, при этом данные записи содержат одну или несколько строк, каждая длиной до 255 символов.
Т.е. один TXT запись с несколькими значениями и несколькими TXT записи с одним значением - это не одно и то же, и не следует ожидать, что они будут интерпретироваться одинаково.

То, что вы показали изначально, на самом деле не TXT запись, которая имеет одна строка с каждым значением в знаках "и разделенными пробелом" а скорее TXT запись с тремя отдельными строковыми значениями, не содержащими кавычек и пробелов.
Это понимание особенно важно, так как одна из вещей, которые вы пытались сделать в своих попытках решения проблемы, заключалась в экранировании этих символов, которые используются для целей форматирования, но на самом деле не являются частью значения.

Для любого программного обеспечения, которое понимает и использует DNS формат основного файла (стандартное текстовое представление записей DNS), что вы включили изначально ... TXT "txtvers=1" "proto=https" "path=/acs/resources/configurations" будет понят и истолкован как один TXT запись с тремя отдельными строковыми значениями (txtvers=1, proto=https, path=/acs/resources/configurations).

Если у вашего поставщика услуг есть интерфейс, который не принимает эту форму ввода, и он не предоставляет никаких других средств ввода нескольких значений (полученный вами ответ предполагает, что это вполне может быть так), возможно, нет способа ввести желаемую запись. в их систему.
Если это действительно так, вам, возможно, придется рассмотреть возможность размещения этой записи в другом месте (включая такие варианты, как не перемещать всю зону, но иметь желаемый TXT запись в другой зоне, размещенной в другом месте, и только добавление CNAME указав туда, при условии, что рассматриваемое программное обеспечение каким-то образом не противоречит этому).

Тем не менее, при специализированном использовании TXT как часть других стандартов, более распространено (с широко распространенными примерами, такими как SPF и DKIM) определять использование нескольких строковых значений в TXT запись исключительно как средство разрешения длинных значений и определения того, что все строковые значения должны быть просто объединены перед дальнейшей интерпретацией, вместо этого используя некоторый внутренний разделитель (обычно ;) для многозначного содержимого внутри этой единственной потенциально длинной строки.

Вполне возможно, что ваш провайдер услуг специально рассмотрел очень распространенный сценарий «длинного значения» и так или иначе поддерживает его (особенно вероятно из-за DKIM).
В любом случае, если дизайн программного обеспечения, которое использует эти записи, зависит от вас, может быть лучше просто соответствовать норме в этом отношении и использовать тот же подход к хранению многозначного контента, который используется в эти широко распространенные TXT вместо этого специализации. (Однако такое изменение, очевидно, повлияет на совместимость с существующими записями, если эта система уже используется).