Когда я проверяю SOA для cloudflare.com, я получаю:
cloudflare.com has SOA record ns3.cloudflare.com. dns.cloudflare.com. 2027217413 10000 2400 604800 300
он возвращает адрес электронной почты как dns.cloudflare.com, а не[email protected].
Почему это ?
решение1
Прежде всего, DNS — это двоичный протокол с различными типами данных для каждого поля, это не текст в свободной форме.
Поле SOA
RNAME
(которое содержит что-то, что должно представлять адрес электронной почты), с точки зрения его типа данных, являетсядоменное имя.
Theдоменное имятип не идеально подходит для адреса электронной почты, но, по-видимому, разовые потребности в SOA
RNAME
поле не оправдывают введение дополнительного типа данных.
Адоменное имяв DNS состоят из последовательности меток, которые в текстовом формате разделены точками (как вы привыкли видеть).
Без введения нового типа, если бы вы написали eg [email protected].
, то была бы одна метка dns@cloudflare
, одна com
и пустая (корневая) метка в конце.
Хотя это выглядело бы разумно в текстовом формате, это также было бы странно (просто по-другому), учитывая, как две совершенно разные части адреса электронной почты теперь неестественно слиты вместе, и только текстовое представление имеет смысл.
Другим вариантом могло бы быть использованиесимвольная строка(как в eg TXT
), но тогда он был бы совершенно неструктурированным и мог бы иметь любое строковое значение.
Я думаю, что наше решение, вероятно, является наименее странным подходом (по крайней мере, с технической точки зрения) к представлению адреса электронной почты без добавления специализированного типа данных для этой цели.