четверг, 9 октября 2008 г.

Использование SRV записей в DNS



Некоторые службы (как, например, Jabber или SIP) имеют структуру адреса, очень похожую на email адрес, например, name@domain.com

Но далеко не всегда возможно поместить эти службы на том же хосте, где, к примеру, web-сервер. А иметь, jabber-адрес и email-адрес одинаковые, как, например, сделано в Google, согласитесь, удобно.

Для email все просто - существует соотвествующая MX запись. А для jabber и sip ?


Для других служб тоже придумали выход - это SRV записи. Пусть у нас SIP сервер находится на доменном имени sip.domain.com, а jabber сервер - на имени jabber.domain.com. Тогда для достижения нужного нам результата необходимо прописать в DNS записи вида:
  • Для SIP:
    _sip._tcp.domain.com. IN SRV 1 0 5060 sip.domain.com.

  • Для Jabber (или, что то же самое, XMPP-сервер):

    _jabber._tcp.domain.com. IN SRV 1 0 5222 jabber.domain.com.
    _xmpp-server._tcp.domain.com. IN SRV 1 0 5222 jabber.domain.com.

Клиентское приложение самостоятельно посмотрит DNS и узнает, куда же следует обратиться, чтобы найти искомый ресурс. Записай может быть несколько (как, например, на том же Google) - сервер будет выбираться, исходя из весового коэффициента (см. ниже расшифровку полей SRV записи)

_jabber, _xmpp-server, _sip - это стандартные "ключевые слова", приложения будут ориентироваться на них.
_tcp - очевидно, протокол :)

Итак. Что же значит каждое поле в SRV записи ?
Структура записи:

IN SRV Приоритет Вес Порт Сервер
  • Приоритет Клиент будет использовать сервер с наименьшим значением приоритета из доступных. Т.е., если имеем список нескольких серверов (обслуживающих один сервис) с приоритетами 1 - 2 - 3 - ...., то сначала будет попытка подключиться к серверу с приоритетом 1, если тот недоступен - с приоритетом 2 и т.д.

  • Вес Частота обращения клиента к серверам с одним приоритетом должна быть пропорционально весу сервера. Если установить на двух серверах вес 5, то каждый получит 50% обращений (равномерная нагрузка)

  • Порт и Сервер Определяют, к какому серверу и порту обращаться

Комментариев нет:

Отправить комментарий