【问题标题】:SRV records order retrieved from a DNS server从 DNS 服务器检索的 SRV 记录顺序
【发布时间】:2012-01-21 22:08:14
【问题描述】:

我必须在 Android 应用程序中对 SRV 记录进行 DNS 查找,然后选择其中一项。 当我向 DNS 服务器查询多个优先级和权重不同的 SRV 记录时,我在每个请求中以不同的顺序获取记录,这些记录是否按服务器排序?如果是,排序算法是什么?

我猜它尊重优先级,因为较低的优先级是最优先的,但如果优先级相等,我认为它会以循环方式尊重权重,但这并没有发生!

我有一个带有 2 个 SRV 记录的简单 bind9 DNS 服务器,如下所示:


域优先权重


aaa.example.com 1 90


bbb.example.com 2 10

当我查找时,我希望得到 aaa.example.com 9 次作为第一个结果,而 10th 我会得到 bbb.example.com 作为第一个结果,这并没有发生!服务器只是将每个请求的顺序颠倒了!

【问题讨论】:

    标签: java android dns srv


    【解决方案1】:

    如果您要查询 SRV 记录,它们的返回顺序是任意的,不应被您的客户端应用程序考虑在内。

    相反,您的应用程序负责根据RFC 2782 中指定的权重和优先级对收到的结果进行排序。

    RFC 中还规定,如果以相同的权重和优先级返回多条记录,客户端将随机选择,而不是按照这些记录的返回顺序。

    因此,使用循环 DNS 来提供 SRV 记录是多余的。

    【讨论】:

      【解决方案2】:

      由于我相信您是在 SIP 应用程序的上下文中询问的,因此应该使用一些准则来决定使用哪个 SRV 记录,请参阅http://www.ietf.org/rfc/rfc3263.txt

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-07
        • 2010-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多