2012-01-21 4 views
1

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

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

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


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


aaa.example.com 1 90


ГЭБ .example.com 2 10

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

ответ

1

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

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

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

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

1

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

Смежные вопросы