Configurar s2s Jabberd14-1.6.0
Antes de tudo, gostaria de cumprimentar a todos e compartilhar mais um pouco de experiências adquiridas dentro desse mundo (Linux).
Recentemente, estava precisando e ao mesmo tempo estava tendo algumas dificuldades conectar dois servidores Jabber. Procurei na internet todo tipo de dica, mas descobri que não havia muita documentação sobre o assunto.
Encontrei algumas dicas isoladas, mas nada com explicações mais detalhada. Então, resolvi juntar um pouco dessas dicas e me aprofundar ainda mais no estudo do servidor Jabber.
Logo, partindo do princípio que o serviço já está instalado, configurado e rodando, vamos nos prender apenas a configuração da sessão de conexão entre os serviços Jabber.
Uma dica que achei muito interessante é por o serviço "s2s" inserido em um arquivo fora do arquivo principal e que possa rodar como um serviço externo, possibilitando, assim, a configuração e manutenção sem a necessidade de derrubar o serviço principal e, não havendo a preocupação em ter que desconectar os usuários do servidor. Acesse este link para ver esta dica:
Voltando então ao nosso assunto, temos a seguinte situação:
Vamos pôr, então, a mão na massa agora.
Observação: Os dois servidores possuem IP fixo e válido na internet.
Bem, primeiro vamos pôr o IP e o domínio do Jabber 01 no hosts do segundo servidor. Para isto, iremos inserir a seguinte linha:
<ip jabber 01> servjabber1 servjabber1.com
O mesmo no segundo servidor, sendo:
<ip jabber 02> servjabber2 servjabber2.com
Iremos configurar agora o arquivo jabber.xml de ambos servidores. Uma outra observação é que a conexão entre esses servidor ficarão fechadas. Este configuração é uma ótima opção para quem deseja interligar servidores das filiais de sua empresa, servidores de comunidades ou escolas. Desta forma podemos deixar separado o serviço e o banco de dados e não teremos o problema de cair a conexão com internet e uma determinada filial ou comunidade ficar sem a comunicação interna também.
Bem, no arquivo jabber.xml do primeiro servidor jabber, localize a sessão que trata da conexão entre os servidores (server-to-server).
Nesta sessão, no primeiro servidor, teremos algo do tipo:
<service id="dnsrv.servjabber1.com">
<host/>
<load>
<dnsrv>/usr/local/lib/libjabberddnsrv.so<dnsrv>
</load>
<dnsrv xmlns="jabber:config:dnsrv">
<resend service="_xmpp-server._tcp">s2s.servjabber1.com</resend>
<resend service="_jabber._tcp">s2s.servjabber1.com</resend>
<resend>s2s.servjabber1.com</resend>
</dnsrv>
</service>
No segundo servidor teremos:
<service id="dnsrv.servjabber1.com">
<host/>
<load>
<dnsrv>/usr/local/lib/libjabberddnsrv.so</dnsrv>
</load>
<dnsrv xmlns="jabber:config:dnsrv">
<resend service="_xmpp-server._tcp">s2s.servjabber2.com</resend>
<resend service="_jabber._tcp">s2s.servjabber2.com</resend>
<resend>s2s.servjabber2.com</resend>
</dnsrv>
</service>
Na sessão "service" do s2s teremos a seguinte configuração.
No primeiro servidor:
<service id="s2s.servjabber1.com">
<load>
<dialback>/usr/local/lib/libjabberddialback.so</dialback>
</load>
<dialback xmlns="jabber:config:dialback">
<host name='servjabber2.com' xmpp='yes' tls='yes' auth='db'/>
<ip port="5269">ip da placa de rede local</ip>
<karma>
<init>50</init>
<max>50</max>
<inc>4</inc>
<dec>1</dec>
<penalty>-5</penalty>
<restore>50</restore>
</karma>
</dialback>
</service>
No segundo servidor:
<service id="s2s.servjabber2.com">
<load>
<dialback>/usr/local/lib/libjabberddialback.so</dialback>
</load>
<dialback xmlns="jabber:config:dialback">
<host name='servjabber1.com' xmpp='yes' tls='yes' auth='db'/>
<ip port="5269">ip da placa de rede local</ip>
<karma>
<init>50</init>
<max>50</max>
<inc>4</inc>
<dec>1</dec>
<penalty>-5</penalty>
<restore>50</restore>
</karma>
</dialback>
</service>
Agora basta reiniciar os serviços e começar a inserir os contatos do primeiro servidor no segundo e vice-versa.
Os usuários logados no primeiro servidor irão inserir os contatos da seguinte
forma: maq01@servjabber2.com.
E os usuários logados no segundo servidor farão da seguinte forma:
maq01@servjabber1.com.
Espero ter ajudado e viva o Linux. Um grande abraço a todos e até a próxima.