AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 549078
Accepted
F21
F21
Asked: 2013-10-29 00:03:28 +0800 CST2013-10-29 00:03:28 +0800 CST 2013-10-29 00:03:28 +0800 CST

具有 A 记录和 NS 记录的子域是否有效?

  • 772

假设我拥有example.com.

然后我在to上创建一个A记录。test.example.com1.1.1.1

然后我在to上创建一个NS记录。test.example.comns1.anotherdnshost.com

在另一个 DNS 主机上,我将A根 ( test.example.com) 的记录添加到2.2.2.2.

客户端查询时,会返回test.example.com哪条记录?A哪个会是更“主导”的A记录?这样的设置有效吗?

domain-name-system
  • 5 5 个回答
  • 14070 Views

5 个回答

  • Voted
  1. Sandman4
    2013-10-29T12:49:40+08:002013-10-29T12:49:40+08:00

    这个问题有点微妙,我来一一解释。

    正确的配置当然是只有两者之一 - NS或任何其他记录。

    当您添加 NS 记录时test.example.com,您将来自和下面的所有内容委托test.example.com给另一个名称服务器。A 记录的正常位置test.net-me.net是 on ns1.anotherdnshost.com。

    现在您的问题可能会被改写 - 是否可以在另一个主机上设置test.example.comA ...in the "parent" example.com zone ? The same question may be asked regardless of any records which may exist or not in the委派区域。

    我的回答是辩证的:) 1. 是的,在“父”区有这样的记录是可以的。但是 2. 由于test.example.com 委托给ns1.anotherdnshost.com,test.example.com以及以下的记录,这些记录碰巧(出于任何原因)存在于任何服务器上,而不是不再ns1.anotherdnshost.com具有权威性。

    父区域服务器,当它回复test.example.com查询时,a)必须发送指向的 NS 记录ns1.anotherdnshost.comb)可能会或可能不会发送 A 记录,因为test.example.com它恰好有,c) 即使它确实发送了记录,它也不能标记它作为“权威”答案,d)即使它撒谎并将此类答案标记为权威,接收此类回复的解析器,因为它知道这test.example.com是延迟的,应该只考虑来自它的权威服务器的答案 - ns1.anotherdnshost.com)。

    我用bind9测试了这样的配置:

    • named 和 named-checkzone 都不会抱怨这样的区域——显然这个区域被认为是正确的。
    • 当我查询 test.example.com 的父服务器时,它只返回NS记录,就像test.example.com A 1.1.1.1根本不存在一样。

    其他 DNS 服务器软件的行为可能不同,但无论如何都必须遵守上述一般规则。

    Verisign 的这篇相关文章帮助我理解了这个问题。

    我为所有的胡说八道感到抱歉

    • 7
  2. Best Answer
    Regan
    2013-10-29T01:47:15+08:002013-10-29T01:47:15+08:00

    这是无效的,不。它可能会返回 1.1.1.1,因为它将由第一个解析的服务器返回,但“正确”值应该是 SOA 记录注册为主服务器的任何名称服务器。但是,返回的内容可能取决于运行的名称服务器软件的版本。见下文,它只会将其转发到下一个名称服务器,并且永远不会显示 1.1.1.1。

    现在在您的区域中列出其他 NS 记录是正确的,但其他 NS 应该是具有相同区域的名称服务器。但是,您可以将子域指向备用名称服务器。

    因此,您的注册商的 example.com 使用来自注册商名称服务器(胶水)的 1.2.3.4 和 2.3.4.5 IP 指向 ns1.example.com 和 ns2.example.com。

    然后,您将拥有一个 SOA 选择 ns1 或 ns2 作为主要区域的区域,然后您将拥有两个指向 ns1.example.com 和 ns2.example.com 的 NS 记录以及该域的 A 记录(以及 mx、txt , cname 等)。

    NS1 和 NS2.example.com 都应该具有相同的区域,并且它们应该自动相互复制。

    现在它是有效的,将 test.example.com 指向 ns1.somethingelse.com 和 ns2.somethingelse.com 但在 ns1 和 ns2.example.com 的名称服务器上没有 test.example.com 的记录,除了 ns1 和ns2.example.com 应该自动发送 ns1 和 ns2.somethingelse.com 的 IP,如果它有胶水的话。(如果 TLD 不同,即 .com 和 .org,则不会)

    我希望一切都说得通,如果有任何令人困惑的地方,我可以澄清更多。

    这是对发生的情况的测试:

    在 shadowrpg.net 的名称服务器上:

    $ttl 38400
    @   IN  SOA shell2.reganw.com. root.shell2.reganw.com. (
                1298345653
                10800
                3600
                604800
                38400 )
    @   IN  NS  shell2.reganw.com.
    test.shadowrpg.net.     IN  A   127.0.0.1
    test.shadowrpg.net. IN  NS  saber.reganw.com.
    

    在 test.shadowrpg.net 的名称服务器(军刀)上:

    $ttl 38400
    @   IN  SOA saber.reganw.com. root.shell2.reganw.com. (
                1298345653
                10800
                3600
                604800
                38400 )
    @   IN  NS  saber.reganw.com.
    test.shadowrpg.net.     IN  A   127.0.0.2
    test.shadowrpg.net. IN  NS  saber.reganw.com.
    

    第一个结果是未配置 saber 以显示推荐。

    [regan@gamma ~]$ dig +trace test.shadowrpg.net
    
    ; <<>> DiG 9.7.3-P1-RedHat-9.7.3-2.P1.fc13 <<>> +trace test.shadowrpg.net
    ;; global options: +cmd
    .           518400  IN  NS  G.ROOT-SERVERS.NET.
    .           518400  IN  NS  C.ROOT-SERVERS.NET. (snip)
    ;; Received 512 bytes from 127.0.0.1#53(127.0.0.1) in 2 ms
    
    net.            172800  IN  NS  a.gtld-servers.net.
    net.            172800  IN  NS  m.gtld-servers.net. (snip)
    ;; Received 493 bytes from 199.7.83.42#53(199.7.83.42) in 55 ms
    
    shadowrpg.net.      172800  IN  NS  ns1.reganw.com.
    shadowrpg.net.      172800  IN  NS  ns2.reganw.com.
    shadowrpg.net.      172800  IN  NS  ns3.reganw.com.
    ;; Received 232 bytes from 192.35.51.30#53(192.35.51.30) in 54 ms
    
    test.shadowrpg.net. 38400   IN  NS  saber.reganw.com.
    ;; Received 110 bytes from 209.161.6.3#53(209.161.6.3) in 2123 ms
    
    test.shadowrpg.net. 38400   IN  NS  saber.reganw.com.
    ;; BAD (HORIZONTAL) REFERRAL
    ;; Received 110 bytes from 173.45.238.245#53(173.45.238.245) in 81 ms
    
    test.shadowrpg.net. 38400   IN  NS  saber.reganw.com.
    ;; BAD (HORIZONTAL) REFERRAL
    ;; Received 110 bytes from 173.45.238.245#53(173.45.238.245) in 82 ms
    
    test.shadowrpg.net. 38400   IN  NS  saber.reganw.com.
    ;; BAD (HORIZONTAL) REFERRAL
    ;; Received 110 bytes from 173.45.238.245#53(173.45.238.245) in 112 ms
    

    并配置了军刀:

    ^C[regan@gamma ~]$ dig +trace test.shadowrpg.net
    
    ; <<>> DiG 9.7.3-P1-RedHat-9.7.3-2.P1.fc13 <<>> +trace test.shadowrpg.net
    ;; global options: +cmd
    .           518400  IN  NS  L.ROOT-SERVERS.NET.
    .           518400  IN  NS  J.ROOT-SERVERS.NET. (snip)
    ;; Received 512 bytes from 127.0.0.1#53(127.0.0.1) in 2 ms
    
    net.            172800  IN  NS  m.gtld-servers.net.
    net.            172800  IN  NS  a.gtld-servers.net. (snip)
    ;; Received 493 bytes from 198.41.0.4#53(198.41.0.4) in 129 ms
    
    shadowrpg.net.      172800  IN  NS  ns1.reganw.com.
    shadowrpg.net.      172800  IN  NS  ns2.reganw.com.
    shadowrpg.net.      172800  IN  NS  ns3.reganw.com.
    ;; Received 232 bytes from 192.12.94.30#53(192.12.94.30) in 165 ms
    
    test.shadowrpg.net. 38400   IN  NS  saber.reganw.com.
    ;; Received 110 bytes from 209.161.6.3#53(209.161.6.3) in 38 ms
    
    test.shadowrpg.net. 38400   IN  A   127.0.0.2
    test.shadowrpg.net. 38400   IN  NS  saber.reganw.com.
    ;; Received 126 bytes from 173.45.238.245#53(173.45.238.245) in 80 ms
    
    [regan@gamma ~]$ 
    

    因此,一旦您添加了 NS 记录,它就会引用它,并且它会忽略对自身的任何查询。现在,如果您为名称服务器添加 A 记录,它将与 NS 记录一起作为胶水传递(因此解析器不必再查找新名称服务器的 IP)。

    • 3
  3. Sandman4
    2013-10-29T18:33:13+08:002013-10-29T18:33:13+08:00

    test.example.com A 2.2.2.2应该返回,因为它是权威的(“主导”)。

    此设置不违反 RFC。

    推理请参阅我在这里的更长答案。

    • 1
  4. Ander2
    2013-10-29T01:47:40+08:002013-10-29T01:47:40+08:00

    这不是一个有效的设置,你永远不会知道你将被重定向到哪里。

    当您在域上定义 NS 记录时,该 DNS 成为权威。如果有人询问您的域的 IP,它会检查他的缓存,如果没有记录,那么它会询问您的 NS 记录中列出的 DNS。

    如果您在另一个 DNS 中为您的域创建另一个 A 记录 (2.2.2.2),现在会发生什么?然后,所有使用该 DNS 的客户端都会获得您的“新”IP (2.2.2.2),而不是真正的 IP。

    • 0
  5. MadHatter
    2013-10-29T03:19:05+08:002013-10-29T03:19:05+08:00

    这是完全有效的,但不是你的想法。

    一旦您将子域委托给另一组名称服务器,它们就具有权威性。 他们可以非常合法地宣传该域的 A 记录;实际上,这样做是正常的做法,请参阅,例如dig google.com。

    我不知道如果您在委派名称服务器上宣传 A 记录会发生什么 - 我怀疑这没什么好,因为其他人都在正确地建议您。但是在委托的服务器上宣传这样的记录是完全有效的,这可能就是为什么您在 RFC 中找不到禁止的原因。

    所以问题不在于域的 A 和 NS 记录都存在;它试图从相同的名称服务器宣传这两个记录。

    • 0

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve