Перейти к содержимому
IPeek

Поиск SRV

Записи расположения сервисов

Проверка…

Что такое запись SRV?

Запись SRV (Service) объявляет имя хоста и порт для конкретной службы — такой как SIP, XMPP, LDAP или autodiscover от Microsoft — вместе с приоритетом и весом для распределения нагрузки. В отличие от записи A, она сообщает клиентам не только где находится служба, но и на каком порту, так что приложения могут находить службы без жёстко прописанной конфигурации. Запрашивайте их в форме _service._proto.domain.

Как устроен формат записи SRV

Запись SRV именуется по характерному шаблону: _service._proto.domain, например _sip._tcp.example.com. Подчёркивания предотвращают коллизии с обычными именами хостов. Данные записи содержат четыре значения: приоритет, вес, порт и цель. Приоритет работает как MX — меньшие числа пробуются первыми. Вес распределяет нагрузку между целями одинакового приоритета, причём цели с большим весом получают пропорционально больше трафика. Порт — это TCP- или UDP-порт, на котором слушает служба, а цель — это имя хоста, который её предоставляет и который должен иметь собственную запись A или AAAA.

Как читать результаты запроса SRV

IPeek возвращает приоритет, вес, порт и целевой хост каждой записи SRV для запрошенного имени службы. Сначала читайте приоритет: клиенты используют цели с наименьшим приоритетом, прежде чем откатиться к более высоким. Среди равных приоритетов вес определяет долю трафика, которую получает каждая цель. Убедитесь, что порт соответствует ожидаемой службе — 5060 для SIP, 389 для LDAP, 443 для многих настроек autodiscover. Проверьте, что каждая цель разрешается в валидный хост. Пустой результат означает, что служба не объявлена под этим именем на домене.

Когда нужны записи SRV

Записи SRV важны всякий раз, когда клиенты должны обнаруживать службу автоматически, а не полагаться на фиксированные настройки. Microsoft Teams, Skype for Business и SIP-провайдеры используют их, чтобы находить серверы голоса и присутствия. Чат XMPP, поиск в каталоге LDAP, серверы Minecraft и Kerberos — все зависят от обнаружения через SRV. Большое преимущество — гибкость: перенесите службу на новый хост или порт либо распределите её между несколькими серверами, и клиенты последуют за записями SRV без перенастройки. Если служба требует определённого имени _service._proto, опубликуйте соответствующую запись SRV, иначе клиенты её не найдут.

Часто задаваемые вопросы

Что означает формат именования _service._proto.domain?

Этот шаблон именует запись SRV по службе и протоколу, которые она описывает. _service — это метка службы (например, _sip или _ldap), _proto — транспорт (_tcp или _udp), а domain — ваш домен. Например, _sip._tcp.example.com объявляет SIP по TCP. Ведущие подчёркивания не дают этим меткам сталкиваться с обычными именами хостов.

Как работают приоритет и вес в записи SRV?

Приоритет и вес определяют, какую цель выбирает клиент. Приоритет работает как у записей MX: клиенты сначала пробуют цели с наименьшим приоритетом и откатываются к большим числам. Среди целей с одинаковым приоритетом вес задаёт долю трафика, которую получает каждая, так что больший вес притягивает больше соединений. Вместе они обеспечивают и переключение при сбое, и распределение нагрузки.

В чём разница между записью SRV и записью A?

Запись A сопоставляет имя хоста с IP-адресом, тогда как запись SRV дополнительно указывает порт и добавляет приоритет и вес для именованной службы. SRV позволяет клиентам обнаружить и где, и на каком порту работает служба, а также как балансировать нагрузку, чего простая запись A выразить не может. Цели SRV всё равно полагаются на записи A для разрешения.

Какие службы обычно используют записи SRV?

Системы SIP и VoIP, чат XMPP, LDAP и Active Directory, Kerberos, Microsoft Teams и Skype for Business и даже серверы Minecraft обычно используют записи SRV. Кандидат — любой протокол, которому выгодно автоматическое обнаружение службы без жёстко прописанных настроек хоста и порта. Клиент должен быть написан так, чтобы запрашивать соответствующее имя _service._proto.

Почему мой запрос SRV не возвращает результатов?

Пустой результат SRV обычно означает, что под этим точным именем _service._proto.domain не опубликована запись. Проверьте, что метка службы, протокол и домен написаны правильно, включая подчёркивания. Служба может использовать не то имя, что ожидается, или запись может просто не существовать. Уточните точное имя, которое требует клиентское приложение.