@by_EL

Как получаются ответ на DNS запроса рекорда SRV?

Немного перепутал пожалуйста помогите разобраться, если отправляется SRV запрос для домена например example.com и на этом домене есть несколько srv рекордов разные приоритетами и весами ,мой вопрос в том что как днс сервер будет отвечать этому запросу будет отправлять все SRV записи не зависимо от приоритета и веса и днс клиент сам будет выбирать разобрав по приоритету и весу? или днс сервер сам будет разобрав по приоритету и весу отправить ответ по одному? Ps:анологичный вопрос касается и MX рекорду
Буду очень благодарен!
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 2
suffix_ixbt
@suffix_ixbt
https://www.babai.ru/
host -t mx google.com
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.


или

dig google.com mx +short
20 alt1.aspmx.l.google.com.
30 alt2.aspmx.l.google.com.
50 alt4.aspmx.l.google.com.
10 aspmx.l.google.com.
40 alt3.aspmx.l.google.com.


Если запрос от приложения то также отдаётся весь список а клиент сам выбирает по весу если умеет или берёт первый в списке.
Ответ написан
DNS сервер всегда отдает все записи запрошенного типа для данного имени, в тч все MX/SRV записи.

_Клиентом_ выбирается MX с минимальным весом, в случае его недоступности или нефатальной ошибке отправки - с более высоким весом и тд, если у нескольких mx одинаковый вес - порядок между ними выбирается случайно. Поэтому клиенту нужны все MX записи. Примерно так же и с SRV, но там приоритет обеспечивается порядком priority и в рамках одного приоритета выбор между хоставми производится случайно, распределение вероятности задается весом. Т.е. берутся все хосты с минимальным priority и среди них выбирается случайный, но не равновероятно а в соответствии с весом (например если у одного вес 100 а у другого 200 то вероятность выбора второго вдвое выше). Плюс клиент может еще и рассматривать альтернативы между разными сервисами (например между _smtp._tcp и _smtps._tcp) или отдавать предпочтение определенному порту или сети.

На стороне сервера может быть лишь реализован round robin - случайное перемешивание записей, при перемешивании веса и приоритеты не учитываются. round robin требуется стандартом но по факту делается не всеми, например гугловые резолверы (которые 8.8.8.8) его не делают.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы