Hello, I’m trying to initiate a server to server connection with Openfire but it’s failing. Debug logs do not tell me anything useful.
Openfire version: 4.7.5
OS: Redhat Linux 8.10
1st XMPP Domain Name: chat.my.first.server
1st Server Host Name (FQDN): chat.my.first.server
2nd XMPP Domain Name: chat.my.second.server
2nd Server Host Name (FQDN): chat.my.second.server
Previously it worked when both clients were on Redhat 8.6. Is it possible support was lost with the move to 8.10?
Log:
Sending server to server ping request to chat.my.second.server
Routing to remote domain:
<iq type="get" id="579-6" from="chat.my.first.server" to="chat.my.second.server">
<ping xmlns="urn:xmpp:ping"/>
</iq>
A new outgoing session for {chat.my.first.server -> chat.my.second.server} is needed. Instantiating a new queue stanza for delivery when that's done.
Created new PacketProcessor for {chat.my.first.server -> chat.my.second.server}
Queuing stanza to intended recipient 'chat.my.second.server' in the outgoing session promise to domain '{chat.my.first.server -> chat.my.second.server}': <iq type="get" id="579-6" from="chat.my.first.server" to="chat.my.second.server"><ping xmlns="urn:xmpp:ping"/></iq>
Start for {chat.my.first.server -> chat.my.second.server}
Start establishing a connection for {chat.my.first.server -> chat.my.second.server}
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 'chat.my.second.server' ...
Use DNS to resolve remote hosts for the provided XMPP domain 'chat.my.second.server' (default port: 5269) ...
DNS SRV Lookup for service 'xmpp-server', protocol 'tcp' and name 'chat.my.second.server'
No SRV record found for '_xmpp-server._tcp.chat.my.second.server.'
javax.naming.NameNotFoundException: DNS name not found [response code 3]
at com.sun.jndi.dns.DnsClient.checkResponseCode(DnsClient.java:660) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.isMatchResponse(DnsClient.java:578) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.doUdpQuery(DnsClient.java:426) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.query(DnsClient.java:211) ~[?:1.8.0_402]
at com.sun.jndi.dns.Resolver.query(Resolver.java:81) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:434) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:235) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:141) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:129) ~[?:1.8.0_402]
at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:142) ~[?:1.8.0_402]
at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:224) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:117) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:47) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:258) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:212) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.establishConnection(OutgoingSessionPromise.java:298) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:254) [xmppserver-4.7.5.jar:4.7.5]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_402]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_402]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_402]
DNS SRV Lookup for service 'xmpps-server', protocol 'tcp' and name 'chat.my.second.server'
No SRV record found for '_xmpps-server._tcp.chat.my.second.server.'
javax.naming.NameNotFoundException: DNS name not found [response code 3]
at com.sun.jndi.dns.DnsClient.checkResponseCode(DnsClient.java:660) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.isMatchResponse(DnsClient.java:578) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.doUdpQuery(DnsClient.java:426) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.query(DnsClient.java:211) ~[?:1.8.0_402]
at com.sun.jndi.dns.Resolver.query(Resolver.java:81) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:434) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:235) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:141) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:129) ~[?:1.8.0_402]
at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:142) ~[?:1.8.0_402]
at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:224) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:121) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:47) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:258) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:212) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.establishConnection(OutgoingSessionPromise.java:298) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:254) [xmppserver-4.7.5.jar:4.7.5]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_402]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_402]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_402]
DNS SRV Lookup for service 'jabber', protocol 'tcp' and name 'chat.my.second.server'
No SRV record found for '_jabber._tcp.chat.my.second.server.'
javax.naming.NameNotFoundException: DNS name not found [response code 3]
at com.sun.jndi.dns.DnsClient.checkResponseCode(DnsClient.java:660) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.isMatchResponse(DnsClient.java:578) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.doUdpQuery(DnsClient.java:426) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsClient.query(DnsClient.java:211) ~[?:1.8.0_402]
at com.sun.jndi.dns.Resolver.query(Resolver.java:81) ~[?:1.8.0_402]
at com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:434) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:235) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:141) ~[?:1.8.0_402]
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:129) ~[?:1.8.0_402]
at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:142) ~[?:1.8.0_402]
at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:224) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:129) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.net.SocketUtil.createSocketToXmppDomain(SocketUtil.java:47) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSession(LocalOutgoingServerSession.java:258) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:212) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.establishConnection(OutgoingSessionPromise.java:298) [xmppserver-4.7.5.jar:4.7.5]
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:254) [xmppserver-4.7.5.jar:4.7.5]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_402]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_402]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_402]
Found 1 host(s) for XMPP domain 'chat.my.second.server'.
- chat.my.second.server:5269 (no direct TLS)
Trying to create socket connection to XMPP domain 'chat.my.second.server' using remote host: chat.my.second.server:5269 (blocks up to 120000 ms) ...
Successfully created socket connection to XMPP domain 'chat.my.second.server' using remote host: chat.my.second.server:5269!
Opening a new connection to chat.my.second.server/ww.xx.yy.zz:5269 that is initially not encrypted.
Send the stream header and wait for response...
Got a response (stream ID: 6l6vk8uyoq, 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.
Received 'proceed' from remote server. Negotiating TLS...
Configured TrustManager class: org.jivesoftware.openfire.keystore.OpenfireX509TrustManager
Attempting to instantiate 'class org.jivesoftware.openfire.keystore.OpenfireX509TrustManager' using the three-argument constructor that is properietary to Openfire.
Constructed trust manager. Number of trusted issuers: 150, accepts self-signed: false, checks validity: false
Successfully instantiated 'class org.jivesoftware.openfire.keystore.OpenfireX509TrustManager'.
Attempting to verify a chain of 4 certificates.
Attempting to ignore any validity (expiry) issues, as instructed by configuration.
Validating chain with 4 certificates, using 150 trust anchors.
TLS negotiation was successful. Connection secured. Proceeding with authentication...
CertificateManager: Subject Alternative Name Mapping returned [*.my.second.server, *.chat.my.second.server, chat.my.second.server, mychatserver, mychatserver.my.second.server]
TLS negotiation was successful so initiate a new stream.
Remote server is offering dialback: false, EXTERNAL SASL: false
Trying to authenticate with dialback.
Trying to connecting using dialback over TLS.
Authenticating domain ...
Sending dialback key and wait for the validation response...
Connect Socket[addr=/ww.xx.yy.zz,port=38486,localport=5269]
Configured TrustManager class: org.jivesoftware.openfire.keystore.OpenfireX509TrustManager
Attempting to instantiate 'class org.jivesoftware.openfire.keystore.OpenfireX509TrustManager' using the three-argument constructor that is properietary to Openfire.
Constructed trust manager. Number of trusted issuers: 150, accepts self-signed: false, checks validity: false
Successfully instantiated 'class org.jivesoftware.openfire.keystore.OpenfireX509TrustManager'.
Flushing pending nodes (count: 0)
Failed to establish server to server session.
.