Что такое запись 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, иначе клиенты её не найдут.