SRV记录从DNS服务器检索的订单

时间:2012-01-21 22:08:15

标签: java android dns srv

我必须在Android应用程序中对SRV记录进行DNS查找,然后选择其中一个。 当我在DNS服务器上查询多个SRV记录的优先级和权重不同时,我会在每个请求中获得不同顺序的记录,这些记录是由服务器订购的吗?如果是,订单算法是什么?

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

我有一个简单的bind9 DNS服务器,其中包含2条SRV记录,如下所示:


域名优先权


aaa.example.com 1 90


bbb.example.com 2 10

当我查找时,我希望第一次得到 aaa.example.com 9 次,而第10次我会得到< em> bbb.example.com 作为第一个结果,没有发生!,服务器只是反转每个请求的顺序!

2 个答案:

答案 0 :(得分:1)

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

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

在RFC中还指出,如果返回的多个记录具有相同的权重和优先级,则客户端将随机选择,而不是根据返回这些记录的顺序。

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

答案 1 :(得分:1)

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