A 或 CNAME 记录的顺序或优先顺序

A 或 CNAME 记录的顺序或优先顺序

我需要为同一个地址(比如说域名)发送两个地址,并根据顺序将流量发送到第一个地址,直到该地址不可用,应用程序知道这一点。它只需要 DNS 为每条记录发送一个顺序。

有人知道如何按顺序创建 A 或 CNAME 记录吗?或者这是否可行?

答案1

作为已经回答DNSA和/或CNAME记录不支持优先级机制。

但请考虑一下SRV DNS 记录,允许使用 DNS 来发布服务和服务发现。它们的主要用途是允许服务在非标准端口上轻松运行,并减少设置客户端时的配置负担。

但它们还包括优先级并允许您设置多个记录,例如首选和后备选项。

SRV 记录具有以下形式:

_Service._Protocol.Name. TTL Class SRV Priority Weight Port Target
  • 服务:服务的符号名称。

  • 协议:服务的传输协议;通常是 TCP 或 UDP。

  • 姓名:以 结尾的域名.,此记录对此有效 - 通常在 DNS 简写中省略,然后默认为区域名称。

  • 生存时间:标准 DNS 生存时间字段。

  • 班级:标准 DNS 类字段(这始终IN用于 Internet)。

  • 优先事项:目标主机的优先级,值越低,优先级越高。

  • 重量:具有相同优先级的记录的相对权重。

  • 港口:服务所在的 TCP 或 UDP 端口。

  • 目标:提供服务的机器的规范主机名。

您的应用程序需要(重新)设计以支持服务发现的 SRV 记录,这不是“适用于”所有应用程序和协议的功能。例如,另请参阅此问答SRV 记录的支持范围有多广?


来自维基百科文章

提供高服务可用性

优先级字段决定记录数据的使用优先顺序。客户端应首先使用优先级值最低的 SRV 记录,如果连接失败,则回退到优先级值较高的记录。如果服务有多个优先级值相同的 SRV 记录,客户端应根据其权重字段的值按比例对它们进行负载平衡。在以下示例中,优先级和权重字段都用于提供负载平衡和备份服务的组合。

; _service._proto.name.  TTL   class SRV priority weight port target.
_sip._tcp.example.com.   86400 IN    SRV 10       60     5060 bigbox.example.com.
_sip._tcp.example.com.   86400 IN    SRV 10       20     5060 smallbox1.example.com.
_sip._tcp.example.com.   86400 IN    SRV 10       20     5060 smallbox2.example.com.
_sip._tcp.example.com.   86400 IN    SRV 20       0      5060 backupbox.example.com.

答案2

对于这些类型的 DNS 记录,例如 A(地址)或 CNAME(规范名称)记录,没有优先级概念。这些记录只是将域或子域映射到 IP 地址或另一个域。

相关内容