首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从主区域引用另一个DNS条目(绑定9)

如何从主区域引用另一个DNS条目(绑定9)
EN

Unix & Linux用户
提问于 2022-05-09 12:07:20
回答 1查看 62关注 0票数 0

我有两个分区让我们说:

代码语言:javascript
复制
zone "first.com" {                      type master; file "/etc/bind/zones/first.com.primary";};
zone "second.com" {                      type master; file "/etc/bind/zones/second.com.primary";};

首先,我定义

代码语言:javascript
复制
$TTL 300
@   IN SOA ns1.org.com. postmaster.org.com. (
    2022050902  ; serial
    14400        ; refresh
    1800         ; retry
    604800       ; expire
    86400 )      ; minimum

@                        IN NS      ns1.org.com.
subdomain                IN A       127.0.0.1

第二,我想先参考一下

代码语言:javascript
复制
$TTL 86400
@   IN SOA ns1.org.com. postmaster.org.com. (
    2019032601   ; serial
    14400        ; refresh
    1800         ; retry
    604800       ; expire
    86400 )      ; minimum

@                        IN NS      ns1.org.com.

@                        IN CNAME       subdomain.first.com.
www                      IN CNAME       @

localhost                IN A       127.0.0.1
loopback                 IN CNAME   localhost

这有可能吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-05-09 19:30:13

CNAME记录指定CNAME记录左侧的名称是右侧名称的别名-- for所有类型的A记录,而不仅仅是D2记录。粗体位是造成此处问题的原因,因为“所有记录类型”还包括区域的SOANS记录。

您正在尝试在second.com区域的顶点使用D6记录,SOA记录也位于该区域的顶点。因此,你的第一个CNAME是以完全合格的形式写成的:

代码语言:javascript
复制
second.com.  IN CNAME subdomain.first.com.

因此,当请求second.com的SOA时,应该返回subdomain.first.com的SOA。但是,second.com的实际SOA将无法访问,如果没有该SOA,整个second.com域将被破坏--这意味着指向subdomain.first.comCNAME记录实际上是无效的。

此外,如果subdomain.first.com不是其自己区域的顶点,而只是较高级别区域中的子域,那么它就没有自己的SOA记录:按照CNAME映射将意味着second.com's SOA记录的请求必须以“绝对不存在这样的记录”来回答。但是,如果second.com区域没有SOA记录,那么这个区域就不存在。

同样,当请求second.com的NS记录时,CNAME将要求使用subdomain.first.com的NS记录进行响应。但是subdomain.first.com的名称服务器根本不需要知道关于second.com的任何信息。

为了防止出现这种自相矛盾的情况,RFC 1034第3.6.2节规定

如果节点上存在CNAME RR,则不应出现其他数据;这将确保规范名称及其别名的数据不会有所不同。此规则还确保可以使用缓存的CNAME,而无需向权威服务器检查其他RR类型。

(请注意,RFC 1034在约定日期之前就使用了应该、必须和可能严格按照需求级别如RFC 2119所定义的那样一词。虽然它说“不应该有其他数据”,但这是一个要求,而不是一个建议,因为DNS缓存的正确性取决于它。)

此规则使CNAME记录不可能驻留在区域的顶点,因为SOANS记录必须位于区域的顶点才能有意义地存在,任何CNAME记录连同它们一起都将违反此规则。

有关更多详细信息,请参见:https://www.isc.org/blogs/cname-at-the-apex-of-a-zone/

代码语言:javascript
复制
@                        IN CNAME       subdomain.first.com.
www                      IN CNAME       @

另外,将CNAME记录指向另一个CNAME记录是低效和糟糕的风格,尽管它在技术上是有效的。您应该始终直接使用链尾的规范名称:

代码语言:javascript
复制
@                        IN CNAME       subdomain.first.com.
www                      IN CNAME       subdomain.first.com.
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/701917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档