Problemas de login intermitentes (timeout do LDAP?) com ejabberd

4

Estamos executando o ejabberd 17.07 em uma VM do Ubuntu 17.10 e autenticando em um Active Directory no Windows Server 2012 R2.

Isso principalmente funciona, mas várias vezes ao dia, o login falha. Parece que o ejabberd entra em um tempo limite tentando procurar informações do servidor LDAP. Reiniciando o daemon assim:

sudo ejabberdctl restart

... obviamente expulsa todo mundo, mas depois, fazer login imediatamente funciona novamente.

Não vejo nenhum log relacionado aparente no final do Windows (procurei nos logs do Security and Directory Service), sugerindo que a autenticação não foi realmente tentada. No entanto, no lado do ejabberd, logs como este às vezes aparecem:

2018-04-30 13:08:05.560 [error] <0.587.0>@eldap_pool:do_request:75 LDAP request failed: timed out

E ao relançar o servidor, este aqui:

2018-04-30 14:58:35.524 [error] <0.793.0>@eldap_pool:do_request:77 LDAP request failed: eldap:search([[{base,<<"ou=Mitarbeiter,dc=…,dc=local">>},{filter,{and,[{equalityMatch,{'AttributeValueAssertion',<<"objectCategory">>,<<"group">>}},{equalityMatch,{'AttributeValueAssertion',<<"cn">>,<<"Alle Mitarbeiter">>}}]}},{timeout,5},{deref_aliases,never},{attributes,[<<"sAMAccountName">>]}]])
Reason: {shutdown,{gen_fsm,sync_send_event,[<0.462.0>,{search,{eldap_search,wholeSubtree,<<"ou=Mitarbeiter,dc=trenz,dc=local">>,{and,[{equalityMatch,{'AttributeValueAssertion',<<"objectCategory">>,<<"group">>}},{equalityMatch,{'AttributeValueAssertion',<<"cn">>,<<"Alle Mitarbeiter">>}}]},0,[<<"sAMAccountName">>],false,neverDerefAliases,5}},110500]}}

Observe a parte "motivo: desligamento".

As buscas por pesquisas sugerem que isso está relacionado às configurações de keepalive do TCP, a saber: parece que o ejabberd espera que a conexão LDAP seja deixada aberta, enquanto o Active Directory (silenciosamente) espera que a solicitação seja uma única transação. Minha compreensão disso está correta?

Em caso afirmativo, tentar corrigir o binário ejabberd como sugerido aqui e em outros lugares, o que posso fazer?

(Eu também tentei, sem sucesso, ajustar configurações keepalive na máquina Linux).

    
por Sören Kuklau 30.04.2018 / 15:13

0 respostas