在一些工作职责的过程中,我需要了解SRV记录,并且我正在尝试将Wikipedia声明与我在DNS挖掘中看到的内容进行协调.
根据Wikipedia’s SRV record entry,
the target in SRV records must point to hostname with an address record (A or AAAA record). Pointing to a hostname with a CNAME record is not a valid configuration.
但我看到记录,其中dig返回指向名称的SRV记录,该名称是CNAME记录中的别名.
就是这样的:
> dig _https._tcp.alpha.domain.com SRV ;; QUESTION SECTION: ;_https._tcp.alpha.domain.com. IN SRV ;; ANSWER SECTION: _https._tcp.alpha.domain.com 59 IN SRV 30 30 4443 alias.domain.com > dig alias.domain.com ;; QUESTION SECTION: ;alias.domain.com. IN A ;; ANSWER SECTION: alias.domain.com. 35 IN CNAME canonical.name.amazonaws.com. canonical.name.amazonaws.com. 35 IN A 52.78.234.189 canonical.name.amazonaws.com. 35 IN A 107.21.179.88 canonical.name.amazonaws.com. 35 IN A 52.12.126.92
似乎SRV记录的配置与Wikipedia条目所说的不完全相同.我有什么误会?是不是它显示SRV记录指向alias.domain.com,它具有CNAME记录,而不是地址记录?
解决方法
您引用的维基百科文章报告了SRV记录的相关
RFC 2782的内容:
Target
The domain name of the target host. There MUST be one or more address records for this name,the name MUST NOT be an alias (in the sense of RFC 1034 or RFC 2181).
你所看到的是明显违反规则;但是,如果任何客户端应用程序正在寻找SRV记录足够智能以正确处理CNAME记录,它可能会起作用(通常会这样),即使它只应该在响应中期望A记录.
但它也可能根本不起作用:它不受支持并且完全依赖于客户端应用程序;因此应该避免,因为它没有遵循适当的规则,可能导致错误和/或不可预测的结果.
这类似于将MX记录指向CNAME,这不仅在one而且在two RFC中被定义为错误,但这是很常见的做法(并且没有邮件服务器似乎有问题).