如何理解我是否需要放 . DNS SOA rname 记录中标签末尾的符号或@ 符号?
How to understand whether I need to put . sign or @ sign at the end of label in DNS SOA rname record?
我在解析 SOA 记录 RNAME 字段时是否遗漏了任何约定?
例如amazon.com SOA rname 是:root@amazon.com
但是当程序解析它时没有 @
符号,它被视为常规域标签。
问题是我如何理解我是否需要在标签末尾放置 .
符号或 @
符号?
For example amazon.com SOA rname is: root@amazon.com
不,不是:
$ dig SOA amazon.com +noall +ans
amazon.com. 14m50s IN SOA dns-external-master.amazon.com. root.amazon.com. (
2010155050 ; serial
180 ; refresh (3 minutes)
60 ; retry (1 minute)
3024000 ; expire (5 weeks)
60 ; minimum (1 minute)
)
MNAME
(“名称服务器的
此区域的原始或主要数据源。”) 是 dns-external-master.amazon.com.
和 RNAME
(“A 指定邮箱
该区域的负责人。
") 是 root.example.com
(在引号中,来自 RFC 1035 的定义,这是规范的)。
RNAME
中永远不会有 @
(更不用说应该对应主机名的 MNAME
中了)。这是因为 @
在 DNS 中具有特殊含义,它早于我们今天所知道的电子邮件在全球范围内的使用。
您有 RFC 1035 中的示例来解释事情:
@ IN SOA VENERA Action\.domains (
20 ; SERIAL
7200 ; REFRESH
600 ; RETRY
3600000; EXPIRE
60) ; MINIMUM
[..]
Note the use of the \ character in the SOA RR to specify the responsible
person mailbox "Action.domains@E.ISI.EDU".
在 RFC 1034 的 §3.3 中进一步解释:
For mailboxes, the mapping is slightly more complex. The usual mail
address <local-part>@<mail-domain> is mapped into a domain name by
converting <local-part> into a single label (regardles of dots it
contains), converting <mail-domain> into a domain name using the usual
text format for domain names (dots denote label breaks), and
concatenating the two to form a single domain name. Thus the mailbox
HOSTMASTER@SRI-NIC.ARPA is represented as a domain name by
HOSTMASTER.SRI-NIC.ARPA.
请注意,如果您围绕 DNS 做任何事情,特别是任何类型的客户端或服务器,您绝对必须阅读 RFC 1034 和 1035 并多次。是的,它们充满了 holes/ambiguities 和后来发生变化的东西。
但它们一定是你耳中的福音,否则你会遇到很多 DNS 问题。
之后,作为现代资源,RFC 8499 应该是您的圣经,因为它包含与 DNS 术语和资源指针相关的所有内容。
我在解析 SOA 记录 RNAME 字段时是否遗漏了任何约定?
例如amazon.com SOA rname 是:root@amazon.com
但是当程序解析它时没有 @
符号,它被视为常规域标签。
问题是我如何理解我是否需要在标签末尾放置 .
符号或 @
符号?
For example amazon.com SOA rname is: root@amazon.com
不,不是:
$ dig SOA amazon.com +noall +ans
amazon.com. 14m50s IN SOA dns-external-master.amazon.com. root.amazon.com. (
2010155050 ; serial
180 ; refresh (3 minutes)
60 ; retry (1 minute)
3024000 ; expire (5 weeks)
60 ; minimum (1 minute)
)
MNAME
(“名称服务器的
此区域的原始或主要数据源。”) 是 dns-external-master.amazon.com.
和 RNAME
(“A 指定邮箱
该区域的负责人。
") 是 root.example.com
(在引号中,来自 RFC 1035 的定义,这是规范的)。
RNAME
中永远不会有 @
(更不用说应该对应主机名的 MNAME
中了)。这是因为 @
在 DNS 中具有特殊含义,它早于我们今天所知道的电子邮件在全球范围内的使用。
您有 RFC 1035 中的示例来解释事情:
@ IN SOA VENERA Action\.domains (
20 ; SERIAL
7200 ; REFRESH
600 ; RETRY
3600000; EXPIRE
60) ; MINIMUM
[..]
Note the use of the \ character in the SOA RR to specify the responsible
person mailbox "Action.domains@E.ISI.EDU".
在 RFC 1034 的 §3.3 中进一步解释:
For mailboxes, the mapping is slightly more complex. The usual mail
address <local-part>@<mail-domain> is mapped into a domain name by
converting <local-part> into a single label (regardles of dots it
contains), converting <mail-domain> into a domain name using the usual
text format for domain names (dots denote label breaks), and
concatenating the two to form a single domain name. Thus the mailbox
HOSTMASTER@SRI-NIC.ARPA is represented as a domain name by
HOSTMASTER.SRI-NIC.ARPA.
请注意,如果您围绕 DNS 做任何事情,特别是任何类型的客户端或服务器,您绝对必须阅读 RFC 1034 和 1035 并多次。是的,它们充满了 holes/ambiguities 和后来发生变化的东西。 但它们一定是你耳中的福音,否则你会遇到很多 DNS 问题。
之后,作为现代资源,RFC 8499 应该是您的圣经,因为它包含与 DNS 术语和资源指针相关的所有内容。