SRV

Версия от 12:35, 19 сентября 2022; Rain (обсуждение | вклад) (+conversations и клоны)

Иногда возникает ситуация, когда реальный адрес сервера не совпадает с адресом из JID'а. Например, в случае с Google Talk Jabber ID имеет вид user@gmail.com, а реальный адрес сервера - talk.google.com. В таком случае, если не предпринято специальных мер, клиент попытается соединиться с gmail.com, но не обнаружит там Jabber-сервера и не сможет подключиться. Во времена "молодости" Jabber решение было одно: указать адрес сервера в настройке клиента в специальном поле "адрес для подключения" (или "хост", "адрес сервера", "сервер"). Такая же проблема возникает и в соединениях "сервер-сервер", и тут указывать для каждого домена свой сервер довольно сложно. Поэтому было решено сделать так, чтобы программы сами могли находить реальный адрес сервера, для чего решено было использовать специальные записи в DNS - тип "SRV".

В настоящее время по стандарту используются такие записи SRV:

  • _xmpp-client._tcp.EXAMPLE.COM (порт 5222) - чтобы указать, куда подключаться jabber-клиенту (нешифрованные и STARTTLS-подключения)
  • _xmpps-client._tcp.EXAMPLE.COM (порт 5223) - аналогичная запись для TLS-подключений клиентов
  • _xmpp-server._tcp.EXAMPLE.COM (порт 5269) - чтобы указать, куда подключаться jabber-серверу
  • _xmpps-server._tcp.EXAMPLE.COM (порт 5270) - аналогичная запись для TLS-подключений серверов.

Для старых серверов иногда бывает необходимо указать еще одну запись - _jabber._tcp.domain.tld, указывающую на адрес сервера. Записи ниже служат для работы сервиса аудио/видеозвонков через jabber[1]:

  • _stun._tcp.EXAMPLE.COM (порт 3478) - STUN через TCP
  • _stun._udp.EXAMPLE.COM (порт 3478) - STUN через UDP
  • _stuns._tcp.EXAMPLE.COM (порт 5349) - шифрованный STUN через TCP
  • _turn._tcp.EXAMPLE.COM (порт 3478) - TURN через TCP
  • _turn._udp.EXAMPLE.COM (порт 3478) - TURN через UDP
  • _turns._tcp.EXAMPLE.COM (порт 5349) - шифрованный TURN через TCP

Клиенты, умеющие считывать SRV-запись DNS:

Сноски

Ссылки