S2S not working. Remove server not found

Hello. I’m attempting to setup a S2S connection.

I followed along with the how to Server To Server HowTo's

but I can’t make the connection work.

I’m using two machines each running the OpenFire server and both have dns names, and I can telnet into port 5269 on both (tested one from the other box and vise versa).

The boxes don’t have proper SSL certs atm so I’ve disable any requirements for encryption (both boxes are on a private network).

I’ve used the S2S Connection Test under Sessions>Tools in the admin panel and I get .

Appriciate any help I can get :slight_smile:
Thanks

It’s hard to diagnose this without any logs or detailed outline of the environment.

Thanks for getting back to be @guus. I had intended to put logs in my first post but looks like I forgot.

Last time I didn’t look at the debug logs so while checking them out I learned that the issue might be DNS related after all. The server is throwing an exception for DNS name not found while looking for a sub-domain. What do you make of these logs? (Note: I’ve removed the server host name)

Sending server to server ping request to xxxx
Start domain authentication …
Searching for pre-existing outgoing sessions to the remote domain (if one exists, it will be re-used) …
There are no pre-existing outgoing sessions to the remote domain itself. Searching for pre-existing outgoing sessions to super- or subdomains of the remote domain (if one exists, it might be re-usable) …
There are no pre-existing session to other domains hosted on the remote domain.
Unable to re-use an existing session. Creating a new session …
Creating new session…
Creating plain socket connection to a host that belongs to the remote XMPP domain.
Creating a socket connection to XMPP domain 'xxxxx
’ …
Use DNS to resolve remote hosts for the provided XMPP domain ‘xxxxxx’ (default port: 5269) …
No SRV record found for: _xmpp-server._tcp.xxxxx.
javax.naming.NameNotFoundException: DNS name not found [response code 3]
at com.sun.jndi.dns.DnsClient.checkResponseCode(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.isMatchResponse(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.doUdpQuery(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.query(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.Resolver.query(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsContext.c_getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at javax.naming.directory.InitialDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:222) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:107) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:45) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:250) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:209) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:261) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:239) [xmppserver-4.4.4.jar:4.4.4]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
No SRV record found for: _xmpps-server._tcp.xxxxx.
javax.naming.NameNotFoundException: DNS name not found [response code 3]
at com.sun.jndi.dns.DnsClient.checkResponseCode(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.isMatchResponse(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.doUdpQuery(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.query(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.Resolver.query(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsContext.c_getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at javax.naming.directory.InitialDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:222) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:111) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:45) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:250) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:209) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:261) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:239) [xmppserver-4.4.4.jar:4.4.4]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
No SRV record found for: _jabber._tcp.xxxxxx.
javax.naming.NameNotFoundException: DNS name not found [response code 3]
at com.sun.jndi.dns.DnsClient.checkResponseCode(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.isMatchResponse(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.doUdpQuery(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsClient.query(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.Resolver.query(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.dns.DnsContext.c_getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at javax.naming.directory.InitialDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:222) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:119) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:45) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:250) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:209) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:261) [xmppserver-4.4.4.jar:4.4.4]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:239) [xmppserver-4.4.4.jar:4.4.4]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
Found 1 host(s) for XMPP domain ‘xxxxxx’.

  • xxxxxx:5269 (no direct TLS)
    Trying to create socket connection to XMPP domain ‘xxxxx’ using remote host: xxxxxxx:5269 (blocks up to 120000 ms) …
    Successfully created socket connection to XMPP domain ‘xxxxx’ using remote host: xxxxxx:5269!
    Opening a new connection to xxxxxxx/10.20.101.3:5269 that is initially not encrypted.
    Send the stream header and wait for response…
    Got a response (stream ID: 8p6le1xujm, version: 1.0). Check if the remote server is XMPP 1.0 compliant…
    The remote server is XMPP 1.0 compliant (or at least reports to be).
    Processing stream features of the remote domain…
    Check if both us as well as the remote server have enabled STARTTLS and/or dialback …
    Both us and the remote server support the STARTTLS feature. Secure and authenticate the connection with TLS & SASL…
    Securing and authenticating connection …
    Indicating we want TLS and wait for response.
    Failed to secure and authenticate connection: was not received!
    Unable to secure and authenticate the connection with TLS & SASL.
    Something went wrong so close the connection and try server dialback over a plain connection
    Unable to create a new session. Going to try connecting using server dialback as a fallback.
    Creating new outgoing session…
    Creating a socket connection to XMPP domain ‘xxxxxxx’ …
    Use DNS to resolve remote hosts for the provided XMPP domain ‘xxxxxxx’ (default port: 5269) …
    No SRV record found for: _xmpp-server._tcp.xxxxxxxe.
    javax.naming.NameNotFoundException: DNS name not found [response code 3]
    at com.sun.jndi.dns.DnsClient.checkResponseCode(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.isMatchResponse(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.doUdpQuery(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.query(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.Resolver.query(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsContext.c_getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at javax.naming.directory.InitialDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:222) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:107) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:45) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.ServerDialback.createOutgoingSession(ServerDialback.java:209) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:425) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:209) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:261) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:239) [xmppserver-4.4.4.jar:4.4.4]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
    No SRV record found for: _xmpps-server._tcp.xxxxxxxx.
    javax.naming.NameNotFoundException: DNS name not found [response code 3]
    at com.sun.jndi.dns.DnsClient.checkResponseCode(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.isMatchResponse(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.doUdpQuery(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.query(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.Resolver.query(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsContext.c_getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at javax.naming.directory.InitialDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:222) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:111) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:45) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.ServerDialback.createOutgoingSession(ServerDialback.java:209) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:425) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:209) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:261) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:239) [xmppserver-4.4.4.jar:4.4.4]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
    No SRV record found for: _jabber._tcp.xxxxxxx.
    javax.naming.NameNotFoundException: DNS name not found [response code 3]
    at com.sun.jndi.dns.DnsClient.checkResponseCode(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.isMatchResponse(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.doUdpQuery(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsClient.query(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.Resolver.query(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.dns.DnsContext.c_getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at javax.naming.directory.InitialDirContext.getAttributes(Unknown Source) ~[?:1.8.0_231]
    at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:222) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:119) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:45) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.ServerDialback.createOutgoingSession(ServerDialback.java:209) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:425) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:209) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:261) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:239) [xmppserver-4.4.4.jar:4.4.4]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
    Found 1 host(s) for XMPP domain ‘xxxxxxx’.
  • xxxxxxx:5269 (no direct TLS)
    Trying to create socket connection to XMPP domain ‘xxxxxx’ using remote host: xxxxx:5269 (blocks up to 120000 ms) …
    Successfully created socket connection to XMPP domain ‘xxxxx’ using remote host: xxxxx:5269!
    Send the stream header and wait for response…
    Got a response. Check if the remote server supports dialback…
    Dialback seems to be supported by the remote server.
    Authenticating domain …
    Sending dialback key and wait for the validation response…
    Connect Socket[addr=/10.20.101.3,port=50604,localport=5269]
    TLS requested by initiator when TLS was never offered by server. Closing connection : org.jivesoftware.openfire.net.SocketConnection@6306eb81 socket: Socket[addr=/10.20.101.3,port=50604,localport=5269] session: org.jivesoftware.openfire.session.LocalIncomingServerSession@9572e82 status: -1 address: xxxxxx/ts0t5jnpp id: ts0t5jnpp
    Connection closed before session establishedSocket[addr=/10.20.101.3,port=50604,localport=5269]
    Failed to authenticate domain: the validation response was received, but did not grant authentication.
    Failed to authenticate the connection with dialback.
    Unable to create a new outgoing session
    Unable to create a new session: Dialback (as a fallback) failed.
    Unable to authenticate: Fail to create new session.
    Successful server to server response received.
    Primary packet routing failed
    org.jivesoftware.openfire.PacketException: Cannot route packet of type IQ or Presence to bare JID:
    at org.jivesoftware.openfire.spi.RoutingTableImpl.routeToLocalDomain(RoutingTableImpl.java:306) ~[xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.spi.RoutingTableImpl.routePacket(RoutingTableImpl.java:239) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.returnErrorToSender(OutgoingSessionPromise.java:343) [xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:242) [xmppserver-4.4.4.jar:4.4.4]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
    Failed to route packet to JID: xxxxxxx packet:
    IQ sent to unreachable address:
    Error sending packet to domain ‘xxxxxx’:



    java.lang.Exception: Failed to create connection to remote server
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:273) ~[xmppserver-4.4.4.jar:4.4.4]
    at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:239) [xmppserver-4.4.4.jar:4.4.4]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_231]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_231]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
    Failed to establish server to server session.

The DNS errors are a red herring, and can be ignored (what’s happening is that Openfire performs various DNS queries, some of which return in an error). Openfire does find an IP address for the remote domain, and tries to set up a connection.

You might be running into TLS issues. Try comparing the TLS configuration on both ends. If both servers are running a Java-based XMPP server like Openfire, see if both use the same version of Java (as different versions of Java come with different default settings for TLS).

Thanks guus. I’ve confirmed that the java versions are the same by updating them to the latest versions. It hasn’t changed the outcome any.

I’ve compared the settings between both servers and they seem the same to me. Currently I’m trying to make this setup work without any encryption (because I don’t have valid certs on the box at the moment). Is there anything special I need to configure that?

To disable encryption on the S2S link, open the admin console, and navigate to Server > Server Settings > Server to Server

There, disable “Encrypted (legacy-mode) connections” (in the second section of that page).

Next, click on the “Advanced configuration…” of the “Plain-text (with STARTTLS) connections” box (the top section)

There, set the “STARTTLS policy” to “disabled”

This should prevent TLS from being attempted when establishing server-to-server connections.

Thanks guus. I’ve have that disabled already on both machines :frowning:

What should I see when I telnet into the port from an external machine?

and by the port I mean 5269. Are there any other ports for server-to-server?

nvm that. I read through the howto again and the response I get from the port is fine.

Checking the debug logs I’m seeing an “Unable to route packets” Message. Does that mean anything to you?

I’m also seeing an “Unable to verify key: An error occurred.” when I try to add a contact from one server while connected to the other. As well as “Unable to validate domain: key verification did not complete (the AS likely returned an error or a time out occurred).”

That suggests that TLS is still being attempted. You might be running into a bug on Openfire.

We’re currently rewriting all of the s2s code - hopefully we’ll weed this one out while doing that.

Hey Guus. Thanks for your help with this. I got a cert for ssl and tls. When ever I remove the self-signed cert (but keep the ca signed cert) I get a message saying “A certificate for the domain of this server is missing”. It’s not a wildcard cert and I’m wondering if that matters or if it’s something else? Any ideas?

I think the admin console erroneously displays that warning if there’s not both an RSA and DSA certificate. You can safely ignore that warning.

Sweet! Thanks Guus. You’re very helpful and I appreciate all the time you’ve given me to solve this issue.

I was able to get a web client connected to one server and a custom xmpp client connected to another server and have them talk.

The trouble I’m hitting now is the custom client is only able to chat with people in the contact that has been shared with it. I’m either going to have to re-write it or find a way to share contact lists across servers. Do you know if that’s possible?

I’m not exactly sure what you mean. Each XMPP domain defines its own set of users. Each user can log into its own server multiple times, and request its own roster (contact list). The state of the contact list is shared with all the clients logged in by the same user.

When you are using two servers, you have two different sets of users (unless you’re doing clustering, but you wouldn’t be asking server-to-server questions if you were).

right so I want users of one server to have a contact list of users from another server and I want the list supplied to them automatically. Does that help explain my scenario better?

No. :smile:

:smiley: ok. Third time’s a charm. I need to make users on one server automatically aware of users on another server.