Jabber и доступ к транспортам
Прошло уже довольно много времени с тех пор как я установил и настроил на домене ugatu.net Jabber-сервер ejabberd. Минуло много месяцев относительно стабильной работы, но за всё это время так и не была решена проблема доступа к сервисам (конференции, irc-транспорт и т. д.) «извне». Была перечитана вся доступная документация, переворошена добрая часть форумов, блогов и других источников информации, но решение так и не было найдено… До сегодняшнего дня.
Ответ был найден довольно спонтанно, когда я его совсем не ждал, в конференции devel@conference.jabber.ru. В очередной раз, больше от безделья чем от нужды, решил задать вопрос про недоступность транспортов моего Jabber-сервера с внешки. Начал сразу с моего самого большого подозрения на неправильную конфигурацию DNS. И, как оказалось, я был прав.
Сделаю небольшое отступление про настройку DNS для Jabber.
Во многих источниках встречается упоминание про SRV записи в DNS.
К примеру SRV записи для домена example.org в BIND будут выглядеть примерно следующим образом:_jabber._tcp.example.org. IN SRV 0 0 5269 jabber.example.org. _xmpp-server._tcp.example.org. IN SRV 0 0 5269 jabber.example.org. _xmpp-client._tcp.example.org. IN SRV 0 0 5222 jabber.example.org.Сделать это, безусловно, необходимо, но оказалось недостаточно.
По подсказке одного из постоянных посетителей devel@conference.jabber.ru было решено к SRV записям добавить записи CNAME.
Если кратко, то CNAME запись это ничто иное как «синоним» другой (например A) записи.
CNAME записи необходимо добавить для всех транспортов Jabber-сервера, к которым планируется предоставить доступ с других серверов. Например, чтобы предоставить доступ к конференциям на jabber.example.org, нужно добавить примерно следующую запись в DNS:
conference.jabber.example.org. CNAME jabber.example.org.
После того, как все транспорты были «проименованы» соответствующим образом, Jabber-сервер заработал как ему и полагается. Конференции, поиск пользователей и другие сервисы стали доступны для всех.
Полезные ссылки
Help на русском языке. Из него я узнал подробности про некоторые типы записей в DNS.
Online-генератор SRV записей для вашего Jabber-сервера.