Federation problems

Description

I have enabled the federation on 2 different rocketchat server, installed on 2 differents vps and with 2 different domains (rocker.xyz.it and rocket.kwj.it)
I have used DNS discovery method and when I click on “test setup” button he give me this message:

If I open one of this installation and search a user with (example: usertest@rocket.xyz.it)
I see this user and I can add this user. I can create a channel with him and I can write in a private chat, BUT the message is not received by rocket.kwj.it and viceversa.

there is somethings I make wrong? or some configuration that I need to do?

Server Setup Information

  • Version of Rocket.Chat Server: latest (3.1.1)
  • Operating System: ubuntu 18.04
  • Deployment Method: snap
  • Number of Running Instances: 1
  • DB Replicaset Oplog: Enabled
  • NodeJS Version: v12.16.1
  • MongoDB Version: 3.6.14
  • Proxy: caddy
  • Firewalls involved:

Any additional Information

up :slight_smile:
no one use federation?

Any firewalls between servers? snap 3.2.2 works

no, no firewall is configured!
can be another reason? i don’t know what can be the reason why it not work

1 Like

Try to update. My two servers with 3.2.2 works fine considering the federation feature is in develpment.

snap has automatically updated my version of rocket.
the federation still not work :frowning:

any suggestion?

ok, I have installed another 2 servers and with the same configuration, it works. Now I think the problem is one of the initial servers, exists any log to obtain information about the problem?

Up

I have googled for taking information about that but without success
Does someone know how I can find a log error about the federation?

I have three servers in the same network with federation running well.
All I had to do is enable federation in settings, type domain: fqdn of your server
Discovery: DNS.

Then I’ve set up two DNS record on my internal DNS for each server. No need to do it on external as communication between servers are internal.
SRV record with your server adress and TXT with public key from federation settings. You need to split the public key in 3 parts of 188 chars.

Here my powershell script for DNS records. It works if your servers names/federation domains are like rc1.domain.local. Use short servername (not FQDN) and public key as parameters.

param($server,$pkey)

$dnszone="domain.local"
$dnsserver="ns.domain.local"
$serverFQDN="$server.$dnszone"

$keywrap=@()
$keywrap+=$pkey.Substring(0,188)
$keywrap+=$pkey.Substring(188,188)
$keywrap+=$pkey.Substring(376)

dnscmd $dnsserver /RecordAdd $dnszone "_rocketchat._https.$server" 600 srv 1 1 443 $serverFQDN
dnscmd $dnsserver /RecordAdd $dnszone "rocketchat-public-key.$server" 600 txt $keywrap[0] $keywrap[1] $keywrap[2]

nslookup -q=srv _rocketchat._https.$serverFQDN
nslookup -q=txt rocketchat-public-key.$serverFQDN

To prevent errors (failed [429] {“success” or too many connections) while typing user name in “external users” you can increase:
Rate Limiter -> API rate limiter -> Default number calls to the rate limiter
for example to 50