Порядок записи SRV, полученный с DNS-сервера - PullRequest
1 голос
/ 22 января 2012

Я должен выполнить поиск DNS для SRV-записей в приложении Android и выбрать один из них. Когда я запрашиваю DNS-сервер для нескольких записей SRV, различающихся по приоритету и весу, я получаю записи в различном порядке по каждому запросу, эти записи заказываются сервером? если да, то каков алгоритм заказа?

Я догадался, что он уважает приоритет, так как более низкий приоритет является наиболее предпочтительным, но в случае, если приоритет равен, я предполагал, что он будет учитывать вес в стиле циклического перебора, чего не было!

У меня был простой DNS-сервер bind9 с двумя записями SRV следующим образом:


Вес приоритета домена


aaa.example.com 1 90


bbb.example.com 2 10

При поиске я ожидал получить aaa.example.com 9 раз как первый результат, а 10th я бы получил bbb .example.com как первый результат, которого не произошло !, сервер просто меняет порядок при каждом запросе!

Ответы [ 2 ]

1 голос
/ 30 января 2012

Поскольку я полагаю, что вы спрашиваете в контексте приложения SIP, существуют рекомендации, которые необходимо использовать для определения используемой записи SRV, см. http://www.ietf.org/rfc/rfc3263.txt.

1 голос
/ 24 января 2012

Если вы запрашиваете записи SRV, порядок, в котором они возвращаются, является произвольным и не должен учитываться вашим клиентским приложением.

Скорее, ваше приложение отвечает за упорядочение полученных результатовв соответствии с весом и приоритетом, указанными в RFC 2782 .

В RFC также указано, что если несколько записей возвращаются с одинаковыми весами и приоритетами, клиент будет выбирать случайным образом, а не в соответствии с порядком, в котором эти записи возвращаются.В результате использование циклического DNS для обслуживания записей SRV является излишним.

...