Difference between revisions of "DNS SRV"
(→Практическое использование) |
(→Как добавить (пример настройки): - изменено название раздела на "Спецификация", уточнено описание полей в DNS-записи) |
||
Line 25: | Line 25: | ||
Очевидным минусом использования SRV является тот, что нельзя явно адресовать пользователя на веб-страницу, где описывается сервис. | Очевидным минусом использования SRV является тот, что нельзя явно адресовать пользователя на веб-страницу, где описывается сервис. | ||
− | === | + | ===Спецификация=== |
− | Пусть jabber-сервер физически находится на хосте xmpp-provider.ru, а my-personal-jabber.ru будет тем доменом, который будет использоваться при формировании JID и для указания в настройках клиентов. | + | Пусть jabber-сервер физически находится на хосте xmpp-provider.ru, а my-personal-jabber.ru будет тем доменом, который будет использоваться при формировании JID и для указания в настройках клиентов. Тогда записи будут выглядеть так: |
− | + | ||
− | Тогда записи | + | |
_xmpp-server._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5269 xmpp-provider.ru. | _xmpp-server._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5269 xmpp-provider.ru. | ||
_xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5222 xmpp-provider.ru. | _xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5222 xmpp-provider.ru. | ||
+ | |||
+ | Формат записи следующий: | ||
+ | _xmpp-server._tcp.domain.tld. TTL_number IN SRV priority_number weight_number port host | ||
Описание полей записи: | Описание полей записи: | ||
− | * _xmpp-server - имя сервиса | + | * '''_xmpp-server''' |
− | * _tcp | + | * '''_xmpp-client''' <br> имя сервиса согласно RFC-1918, предварённое подчёркиванием; для межсерверных соединений используется '''_xmpp-server''', для подключений клиентов к серверу - '''_xmpp-client'''; |
− | * | + | * '''_tcp''' <br> протокол, для jabber используется только протокол TCP (значение поля - '''_tcp'''); |
− | * | + | * '''domain.tld.''' <br> доменное имя, правая часть JID (пользователи будут иметь JID вида user@domain.tld); точка в конце '''''обязательна''''', иначе к имени будет автоматически добавлен домен используемой зоны. |
− | * Класс | + | * '''TTL_number''' <br> время жизни записи DNS на кеширующих серверах (TTL) в секундах |
− | * Тип DNS-записи | + | * '''IN''' <br> Класс - неизменяемое поле, IN означает "internet" |
− | * | + | * '''SRV''' <br> Тип DNS-записи |
− | * Вес | + | * '''priority_number''' <br> Число приоритета записи DNS, аналогично записям типа MX: чем меньше значение, тем выше приоритет |
+ | * '''weight_number' <br> Вес записи DNS. Учитывается в случае наличия нескольких SRV-записей с одинаковым приоритетом. Посредством этого значения осуществляется балансировка: значение определяет, какая доля запросов направляется на хост. В примере на сервер experimental.xmpp-provider.ru будет идти 10% подключений клиентов: | ||
_xmpp-server._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5269 xmpp-provider.ru. | _xmpp-server._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5269 xmpp-provider.ru. | ||
_xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 ''90'' 5222 xmpp-provider.ru. | _xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 ''90'' 5222 xmpp-provider.ru. | ||
_xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 ''10'' 5222 experimental.xmpp-provider.ru. | _xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 ''10'' 5222 experimental.xmpp-provider.ru. | ||
− | * | + | * '''port''' <br> |
− | Для _xmpp-server порт всегда будет 5269, а в случае _xmpp-client указывается реальный порт, на котором сервер принимает соединения от клиентского ПО. Если при подключении пользователь указывает порт отличный от указанного в записи, то {{todo|.....}}. | + | Порт сервера. Для '''_xmpp-server''' порт всегда будет '''5269''', а в случае '''_xmpp-client''' указывается реальный порт, на котором сервер принимает соединения от клиентского ПО. Если при подключении пользователь указывает порт, отличный от указанного в записи, то {{todo|.....}}. |
− | * Хост, где физически запущен сервер | + | * '''host''' <br> |
+ | Хост, где физически запущен сервер. Если указано полное доменное имя, оно должно завершаться точкой. Если точка в конце не поставлена, к имени будет добавлен домен используемой зоны. | ||
Если не указывать название хоста (номер), то будет использован хост из текущей зоны. | Если не указывать название хоста (номер), то будет использован хост из текущей зоны. |
Revision as of 11:19, 6 June 2008
Информации мало или она отсутствует Пока в данной статье мало информации. Приносим извинения. Если вы хотите написать по теме, — . |
Особый вид DNS-записи, который позволяет указывать хост, на котором размещен тот или иной сервис. В грубом приближении это аналог MX-записи, которая указывает, куда должна доставляться электронная почта, которая адресована определенному домену.
Формат и использование специфицированы в RFC 2782. Штатно поддерживается такими протоколами как XMPP(Jabber), SIP, LDAP.
За счет использования этого вида записи можно разместить Jabber-сервер на отдельной машине, а не на той же, куда указывает A-запись DNS. Также за счет этого можно осуществлять так называемый Xmpp-хостинг, когда сервер работает у поставщика, а клиент прозрачно использует его возможности.
Поясним на примере. Имеется домен company.ru, который разрешается в IP-адрес 200.100.50.33. Если не использовать SRV, то сам демон сервера физически придется размещать на том же хосте, где выполняется веб-сервер. Это не всегда удобно или даже технически возможно.
...
До принятия RFC в записях фигурировало ключевое слово jabber. Если требуется обратная совместимость со старыми серверами, то следует добавлять записи и с данным ключевым словом.
Contents
Практическое использование
Большая часть популярных jabber-клиентов поддерживает работу с SRV-записями.
Jabber-сервера скорее всего все поддерживают работу с этой записью. В противном случае S2S-взаимодействие может быть недоступно.
Пережитки прошлого и выбор доменного имени
Несколько лет назад, когда поддержка на стороне клиентов была не такой распространенной, сервера поднимали на отдельном хосту. Например, jabber.tushino.com или jabber.corbina.ru. Очевидно, что это вело к неоправданному увеличению длины JID.
Некоторые администраторы так продолжают поступать и сейчас, но это, по нашему мнению, подход неправильный: никто же не выделяет для электронной почты отдельный домен mail (mail.company.ru), а просто обслуживают прием и отправку почты непосредственно на домене второго уровня.
Очевидным минусом использования SRV является тот, что нельзя явно адресовать пользователя на веб-страницу, где описывается сервис.
Спецификация
Пусть jabber-сервер физически находится на хосте xmpp-provider.ru, а my-personal-jabber.ru будет тем доменом, который будет использоваться при формировании JID и для указания в настройках клиентов. Тогда записи будут выглядеть так:
_xmpp-server._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5269 xmpp-provider.ru. _xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5222 xmpp-provider.ru.
Формат записи следующий:
_xmpp-server._tcp.domain.tld. TTL_number IN SRV priority_number weight_number port host
Описание полей записи:
- _xmpp-server
- _xmpp-client
имя сервиса согласно RFC-1918, предварённое подчёркиванием; для межсерверных соединений используется _xmpp-server, для подключений клиентов к серверу - _xmpp-client; - _tcp
протокол, для jabber используется только протокол TCP (значение поля - _tcp); - domain.tld.
доменное имя, правая часть JID (пользователи будут иметь JID вида user@domain.tld); точка в конце обязательна, иначе к имени будет автоматически добавлен домен используемой зоны. - TTL_number
время жизни записи DNS на кеширующих серверах (TTL) в секундах - IN
Класс - неизменяемое поле, IN означает "internet" - SRV
Тип DNS-записи - priority_number
Число приоритета записи DNS, аналогично записям типа MX: чем меньше значение, тем выше приоритет - weight_number'
Вес записи DNS. Учитывается в случае наличия нескольких SRV-записей с одинаковым приоритетом. Посредством этого значения осуществляется балансировка: значение определяет, какая доля запросов направляется на хост. В примере на сервер experimental.xmpp-provider.ru будет идти 10% подключений клиентов:
_xmpp-server._tcp.my-personal-jabber.ru. 3600 IN SRV 20 0 5269 xmpp-provider.ru. _xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 90 5222 xmpp-provider.ru. _xmpp-client._tcp.my-personal-jabber.ru. 3600 IN SRV 20 10 5222 experimental.xmpp-provider.ru.
- port
- host
Хост, где физически запущен сервер. Если указано полное доменное имя, оно должно завершаться точкой. Если точка в конце не поставлена, к имени будет добавлен домен используемой зоны.
Если не указывать название хоста (номер), то будет использован хост из текущей зоны.
Пример
Данный пример базируется на бесплатных сервисах, самостоятельно осуществлять поддержку и сопровождения сервисов не требуется. Оптимально для случаев, когда бюджет ограничен либо хочется просто поэспериментировать.
Регистрация домена
Бесплатно можно зарегистрировать домен в зона типа PUBLIC и GEO. В РФ поддержку таких доменов осуществляет ООО Релком.
ДНС-сервер
Если у вас нет собственного сервера, а платить провайдеру за услугу ДНС вы не хотите, то можно воспользоваться одним из бесплатных сервисов. Например xname.org.
XMPP-сервер
В данный момент услуги т.н. XMPP-хостинга предоставляет только Google в рамках своего бесплатного (по крайней мере по состоянию на июль 2007 года) сервиса Google Apps.
Проверка
Для проверки измененной зоны можно воспользоваться командой DIG (ОС семейства Unix):
dig -t srv _xmpp-server._tcp.gt.jrudevels.org
Если нужно опросить конкретный сервер, то:
dig @ns1.somedns.ru -t srv _xmpp-server._tcp.gt.jrudevels.org
В случае использования Google_Apps тестирование зоны производится силами самого сервиса.
Пример вывода команды dig:
#dig -t srv _xmpp-server._tcp.ratsy.ru ...часть вывода опущена... ;; QUESTION SECTION: ;_xmpp-server._tcp.ratsy.ru. IN SRV ;; ANSWER SECTION: _xmpp-server._tcp.ratsy.ru. 374 IN SRV 20 0 5269 xmpp-server3.l.google.com. _xmpp-server._tcp.ratsy.ru. 374 IN SRV 20 0 5269 xmpp-server4.l.google.com. _xmpp-server._tcp.ratsy.ru. 374 IN SRV 5 0 5269 xmpp-server.l.google.com. _xmpp-server._tcp.ratsy.ru. 374 IN SRV 20 0 5269 xmpp-server1.l.google.com. _xmpp-server._tcp.ratsy.ru. 374 IN SRV 20 0 5269 xmpp-server2.l.google.com. ...часть опущена...
Ссылки
- Обсуждение на форуме