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

Формат (zone-файл):

_service._proto.name. TTL IN SRV priority weight port target.

Пример:

_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sip1.example.com.
_sip._tcp.example.com. 3600 IN SRV 20 20 5060 sip2.example.com.

Как работает:

  • Клиент делает DNS-запрос SRV-записи для сервиса.
  • В ответ получает список хостов и портов.
  • priority указывает порядок выбора (меньше = выше приоритет).
  • weight распределяет нагрузку между серверами с одинаковым приоритетом.
  • port задаёт порт, куда подключаться.
  • target — имя сервера (резолвится через A/AAAA).

Сценарии использования:

  • SIP (VoIP), XMPP (Jabber), LDAP, Minecraft и др.
  • В Active Directory — для поиска контроллеров домена.

Ограничения и особенности:

  • Нельзя использовать CNAME в target.
  • Поддержка зависит от клиента/протокола.
  • Уровень приоритета и веса должны быть согласованы — иначе поведение клиентов может быть непредсказуемым.

Диагностика:

  • dig SRV _sip._tcp.example.com
  • nslookup -q=SRV _ldap._tcp.dc._msdcs.example.com.