为什么 SOA 文件中的电子邮件以 . 而不是 @

为什么 SOA 文件中的电子邮件以 . 而不是 @

当我检查 cloudflare.com 的 SOA 时,我得到

cloudflare.com has SOA record ns3.cloudflare.com. dns.cloudflare.com. 2027217413 10000 2400 604800 300

它返回的电子邮件为 dns.cloudflare.com,而不是[电子邮件保护]

为什么是这样 ?

答案1

首先,DNS是一种二进制协议,每个字段都有不同的数据类型,它不是自由格式的文本。

就其数据类型而言,该SOA RNAME字段(其中包含代表电子邮件地址的内容)是域名

域名类型与电子邮件地址并不完全匹配,但大概字段的一次性需求SOA RNAME并不需要引入额外的数据类型。

A域名DNS 由一系列标签组成,这些标签在文本格式中以点分隔(就像您习惯看到的那样)。

如果不引入某种新类型,例如,如果您要编写[email protected].,则会有一个标签dns@cloudflare、一个标签com和末尾的空(根)标签。
虽然这在文本格式中看起来很合理,但它也会很奇怪(只是方式不同),因为电子邮件地址的两个截然不同的部分现在不自然地融合在一起,只有文本表示才有意义。

另一个选择可能是使用字符串(例如TXT),但它将完全没有结构并且可以具有任何类型的字符串值。

我认为我们的解决方案可能是最不奇怪的方法(至少从技术角度来看),用于表示电子邮件地址而无需为此目的添加专门的数据类型。

相关内容