# Remote node cluster join

**URL:** https://discuss.elastic.co/t/remote-node-cluster-join/271488
**Category:** Elasticsearch
**Created:** [April 28, 2021, 9:12am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488 "2021-04-28T09:12:35Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![Makss39](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/makss39/32/74694_2.png) [@Makss39](https://discuss.elastic.co/u/Makss39)
#### Post date: [April 28, 2021, 9:12am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/1 "2021-04-28T09:12:35Z")

</div>

Hi,

I've a 3 node cluster on my local network, it works like a charm. I just want to add a 4th node, but on another nework.

But i'm not able to perform the discovery, my local master is well discovered by the remote node.  
The handshake is OK, but after my local node use his local IP...

> [WARN][o.e.d.HandshakingTransportAddressConnector] [Remote-NODE] [connectToRemoteMasterNode[**{PUBLIC\_IP:PORT}**]] completed handshake wiith [{Local-NODE}{MyJxF48kRp-TgZml8tTXXw}{e8qZKSsYRBi\_DonDE\_t0DA} **{LOCAL\_IP}{LOCAL\_IP:PORT}** {cdfhilmrstw}{ml.machine\_memory=8319733760, ml.max\_open\_jobs=20, xpack.installed=true, ml.max\_jvm\_size=4294967296, transform.node=true}] but followup connection failed.  
> org.elasticsearch.transport.ConnectTransportException: [Local-NODE]**[LOCAL\_IP:PORT]** connect\_timeout[30s]

Here is my discovery config on the remote node :

> discovery.seed\_hosts: ["192.168.10.7", "PUBLIC\_IP:PORT"]

I tried to play with `transport.bind_host` or `transport.publish_host` on the local node, but it crash all my local stack...

Any idea ?

Thanks in advance,

Maxime

---

<div class="post-metadata">

### Author: ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)
#### Post date: [April 29, 2021, 12:13am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/2 "2021-04-29T00:13:05Z")

</div>

It'd help if you could post the logs and your config 🙂

---

<div class="post-metadata">

### Author: ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)
#### Post date: [April 29, 2021, 6:29am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/3 "2021-04-29T06:29:06Z")

</div>

All nodes must be accessible to all other nodes at their publish address, which is written as `{LOCAL_IP}` in the log message you shared. It's not possible to have nodes which appear to have different addresses depending on whence you're talking to them: all the nodes need to be on the same network.

---

<div class="post-metadata">

### Author: ![Makss39](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/makss39/32/74694_2.png) [@Makss39](https://discuss.elastic.co/u/Makss39)
#### Post date: [April 29, 2021, 6:42am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/4 "2021-04-29T06:42:38Z")

</div>

Hi Warkolm, David,

Thanks for your answers.  
So it's not possible to make nodes talking together if they are not on the same subnet ?  
The only alternative is Cross Cluster Replication ?

The goal is to have decentralized node for HA...

---

<div class="post-metadata">

### Author: ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)
#### Post date: [April 29, 2021, 6:49am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/5 "2021-04-29T06:49:16Z")

</div>

A decentralised node would not give you HA. A majority of master nodes always need to be available to achieve HA which means you would need to distribute your cluster across 3 zones/data centres.

---

<div class="post-metadata">

### Author: ![Makss39](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/makss39/32/74694_2.png) [@Makss39](https://discuss.elastic.co/u/Makss39)
#### Post date: [April 29, 2021, 7:02am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/6 "2021-04-29T07:02:37Z")

</div>

The idea is to have 2 nodes onsite on 2 differents physical server and 1 offsite.  
I've already 3 nodes onsite, it works as expected.

---

<div class="post-metadata">

### Author: ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)
#### Post date: [April 29, 2021, 8:05am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/7 "2021-04-29T08:05:50Z")

</div>

> [@Makss39](#):
>
> So it's not possible to make nodes talking together if they are not on the same subnet ?

That's not quite true, at least, it depends what you mean by "subnet". You need to configure your network so that it looks the same from every node's point of view.

---

<div class="post-metadata">

### Author: ![Makss39](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/makss39/32/74694_2.png) [@Makss39](https://discuss.elastic.co/u/Makss39)
#### Post date: [April 29, 2021, 8:49am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/8 "2021-04-29T08:49:26Z")

</div>

I mean 2 differents datacenters for example...

OK, so it means that if I want to achieve that, i need to configure all my node with a public IP/Port as `transport.publish_host`.  
At the end, my local node will have to perform a re-entry connection to talk ?

---

<div class="post-metadata">

### Author: ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)
#### Post date: [April 29, 2021, 8:53am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/9 "2021-04-29T08:53:04Z")

</div>

This is not a recommended approach, because latency between datacentres can cause unexpected issues with indexing and queries and general cluster activities.

---

<div class="post-metadata">

### Author: ![Makss39](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/makss39/32/74694_2.png) [@Makss39](https://discuss.elastic.co/u/Makss39)
#### Post date: [April 29, 2021, 8:54am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/10 "2021-04-29T08:54:55Z")

</div>

OK, so what is the good one ? 🙂

---

<div class="post-metadata">

### Author: ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)
#### Post date: [April 29, 2021, 9:21am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/11 "2021-04-29T09:21:11Z")

</div>

> [@Makss39](#):
>
> OK, so it means that if I want to achieve that, i need to configure all my node with a public IP/Port as `transport.publish_host` .

That's the simplest option, but you can also do fancier things with a VPN or NAT too. That level of network engineering isn't really in scope for this forum, I expect you would benefit from finding some networking experts to ask instead.

Also as Mark observes you are putting your cluster stability in the hands of the cross-data-centre link. If it is unreliable or slow then your cluster will be unreliable or slow too.

---

<div class="post-metadata">

### Author: ![Makss39](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/makss39/32/74694_2.png) [@Makss39](https://discuss.elastic.co/u/Makss39)
#### Post date: [April 29, 2021, 9:26am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/12 "2021-04-29T09:26:13Z")

</div>

I'm familiar with the networking stuff, that's my job 😉  
But the main idea was to not create a monster, if Elastic was able to do it without doing such a thing !

And if the perfs can become worth, it make non sense...  
Cross Cluster Replication seems to be the right way... But not possible with a basic licence ☹

---

<div class="post-metadata">

### Author: ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)
#### Post date: [April 29, 2021, 9:31am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/13 "2021-04-29T09:31:40Z")

</div>

🙂 ok you probably know a good deal more than I do about this then.

CCR is another option indeed, depending on what exactly you're trying to achieve. There's a good summary of what Elasticsearch needs for resilience in [these docs](https://www.elastic.co/guide/en/elasticsearch/reference/current/high-availability.html).

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [May 27, 2021, 9:32am UTC](https://discuss.elastic.co/t/remote-node-cluster-join/271488/14 "2021-05-27T09:32:32Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
