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 / 问题 / 989116
Accepted
Garret Wilson
Garret Wilson
Asked: 2019-10-24 05:44:00 +0800 CST2019-10-24 05:44:00 +0800 CST 2019-10-24 05:44:00 +0800 CST

多个 MX 值有多少资源记录?

  • 772

我正在尝试编写一个通用接口,可用于在 DNS 服务(例如 AWS Route 53)中设置资源记录。事情似乎一直在工作,直到我注意到 Route 53 将我的第一个 MX 值替换为优先级为 10 的优先级为 20 的第二个 MX 值。

然后我在一个AWS 论坛帖子中读到 AWS 将只支持一个实际的 MX 记录,并且必须将多个值组合成一个值,并用换行符分隔。这让我有点困惑,因为我认为其他 DNS 服务允许对单个 MX 条目使用不同的 TTL 值——那么如果 MX 值实际上存储为一条记录,它们怎么能做到这一点呢?

是所有 DNS 服务器都将 MX 记录存储为单个资源记录,还是将这种业务组合成一个特定于 Route 53 的资源记录?我在其他文件中找不到任何关于它的信息。是否有涵盖此内容的 RFC?

更新:事实证明这是我的错误。我忘记了 Route 53 将单个名称的多个值分组并输入到资源记录集中。显然,这种将值组合成多行的业务仅适用于 Web UI。必须通过 API 将相同名称和类型的所有值组合到同一个“资源记录集”中,并使用一个UPSERT来同时设置它们。所以 Route 53 显然仍然单独存储值,只是 Java SDK 2 API 要求将值分组到与资源记录类型和名称的“键”相关联的“集合”中。

domain-name-system
  • 2 2 个回答
  • 1234 Views

2 个回答

  • Voted
  1. Patrick Mevzek
    2019-10-24T21:42:24+08:002019-10-24T21:42:24+08:00

    除了少数情况,如CNAME类型,资源记录可以为同一个所有者多次出现,这就是为什么它被称为“资源记录集”(没有内在的顺序)。

    因此,您完全可以拥有多个具有相同或不同权重的 MX 记录。这是来自通用 DNS 规范的内容,但 DNS 提供商可以自由地做自己的限制。但是每条记录都是独立的,你不能把两条MX记录合二为一,这是没有意义的。

    至于

    其他 DNS 服务允许单个 MX 条目的不同 TTL 值

    (这适用于任何类型的记录,而不仅仅是 MX),这在 DNS 开始时大部分是正确的,但现在不再正确,特别是因为 DNSSEC。

    给定资源记录集中的所有记录必须具有相同的 TTL。

    RFC 8499(又名 BCP 19)“DNS 术语”解释它:

    RRset:一组“具有相同标签、类和类型,但数据不同”的资源记录(根据 [RFC2181],第 5 节)。在某些文档中也写为“RRSet”。作为澄清,此定义中的“相同标签”意味着“相同的所有者名称”。此外,[RFC2181] 规定“一个 RRSet 中所有 RR 的 TTL 必须相同”。

    RFC 2181 是“对 DNS 规范的澄清”:

    5.2. RRSet中RR的TTL

    资源记录也有生存时间 (TTL)。RRSet 中的 RR 可以有不同的 TTL。没有发现无法以其他方式更好地实现此功能的用途。但是,这可能会导致来自缓存服务器的部分回复(未标记为“截断”),其中 RRSet 中某些但不是所有 RR 的 TTL 已过期。

    因此,在此
    不赞成在一个 RRSet 中使用不同的 TTL,一个 RRSet 中所有 RR 的 TTL 必须相同。

    DNSSEC 中的 RRSIG 记录(RFC 4034 的§3.1)涵盖了整个 RRset,并且其中包含原始 TTL,因此 RRset 的所有记录必须共享相同的 TTL。

    • 1
  2. Best Answer
    Nikita Kipriyanov
    2019-10-24T22:31:16+08:002019-10-24T22:31:16+08:00

    您的问题已在RFC 1035标准跟踪文档第 3.3.9 节和RFC 974中得到完整解答。

    很短,我复制到这里:

    3.3.9。MX RDATA 格式

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                  PREFERENCE                   |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    /                   EXCHANGE                    /
    /                                               /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    

    在哪里:

    PREFERENCE 一个 16 位整数,它指定在同一所有者处给予此 RR 的优先级。较低的值是优选的。

    EXCHANGE A 指定愿意充当所有者名称的邮件交换的主机。

    MX 记录导致由 EXCHANGE 指定的主机的 A 类附加部分处理。[RFC-974] 中详细解释了 MX RR 的使用。

    因此,单个 MX 记录只能包含单个邮件交换的完全限定域名,该域名必须解析为一个或多个 A 或 AAAA 记录。无法在单个 MX 记录中指定多个邮件交换器名称。

    DNS 规范仅管理如何在查询时将此信息呈现给调用者。没有人说 DNS 服务器应该如何在他们的软件中存储这些数据。只要服务器的行为符合标准,任何事情都可以。所以不知道所有这些记录是如何存储的,但这根本不重要。

    如果您有一个引用名称解析为多个地址记录的 MX 记录,您将在这些地址之间获得简单的负载平衡。这是因为发送主机上的 DNS 解析器将随机选择一个地址并返回到调用者进程,在此阶段作为 SMTP 客户端工作,它搜索并连接到远程邮件交换器。

    您可以拥有多个具有相同或不同首选项值的 MX 记录。如果首选项值相同,则如何选择要连接的特定主机由发送服务器自行决定。例如,默认情况下 Postfix 将对连接进行负载平衡,而其他的可能会有不同的行为。

    • 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