Openfire with Pidgin - remote server not found

I’m trying create a simple IM setup on our local lan, for discussion between developers. I installed openfire and configured it to use our LDAP server for user management (RHEL 6 IDM).
Otherwise, I used the default settings.

I also created _xmpp-server._tcp and _xmpp-client._tcp records, so user names can be of the form user@dom.lan, instead of user@srv.dom.lan.

When I add an account in Pidgin, e.g. myuser@dom.lan, everything works fine. However, when I try to add a Buddy the same way, I get “Remote server not found.” I need to add buddies as mybuddy@srv.dom.lan.

Looking at the openfire server logs, it appears that DNS lookup fails, because _xmpp-server._tcp.dom.lan is never looked up. Instead it skips straight to _xmpp-server._tcp.lan.

Apparently, the openfire server is trying to find itself, and can’t.

We don’t need openfire to be able to query other servers. Is there a way to tell it to make all user queries locally via LDAP, instead of first trying to find itself via DNS?

Pidgin will query the server associated with the account when adding Buddies. Can openfire be configured to accept queries with no “@domain” attached to the username?

On the openfire admin console, what does it report for “Server Name” ?

It’s the FQDN of the server host. Same for xmpp.domain.

So humor me, that is srv.dom.lan ? If so, it needs to be dom.lan

So this is how I think it should work, but it doesn’t seem to be the case for the buddy lookup.

Add account user@dom.lan:

Client tries to resolve dom.lan

DNS server uses xmpp-client record, and returns im.dom.lan:5222

Client connects to im.dom.lan:5222, and retrieves account info for “user”.

Add Buddy buddy@dom.lan:

Client connects to im.dom.lan:5222, and asks for info on buddy@dom.lan

Server tries to find dom.lan

DNS server uses xmpp-server record, and returns im.dom.lan:5269

Server queries itself for info about “buddy”.

Server returns query results to client.

Why does the server query DNS for “lan”, instead of “dom.lan”? Can you tell the server not to forward any queries?

Ok, so you’re saying that, when using a SRV record to resolve all domain queries to the XMPP server, server name should match the domain name, rather than the hostname. Is that right? If so, why is that?

The point of the SRV record is to point a domainname to an actual FQDN. “How can my application find the proper host for this domain?”

Yes, I understand how the SRV record works. I think what I’m not clear on is the purpose of the “server name” in openfire, and how it corresponds to xmpp.domain. What are these values used for?

Openfire setup auto-populates “Domain name” to the FQDN of the server. Should this be changed to the actual LAN domain?

I reinstalled openfire, and changed the domain name to dom.lan, and it’s working now. Thanks.