Connect node from internal network to external through dynamic dns

Is it possible to connect nodes from internal network with node from external network through dynamic dns.

internal ip address:
node1 - 192.168.1.1
node2 - 192.168.2.2
public dns:
mypublic.ddns.net

Public dns resolves my public ip which is: 62.33.22.11
On my router configured port forwarding:
62.33.22.11:9301 -> 192.168.1.1:9301 (node1)
62.33.22.11:9302 -> 192.168.1.2:9302 (node2)

Node3 is external VPS and have public ip 88.77.55.44

My current config:

cluster.name: myclust
node.name: node-1
transport.host: 192.168.1.1
transport.port: 9301
network.host: 0.0.0.0
http.port: 9211
network.bind_host: 0.0.0.0
node.master: true
node.data: true
discovery.seed_hosts: ["mypublic.ddns.net:9301", "mypublic.ddns.net:9302", "88.77.55.44:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

cluster.name: myclust
node.name: node-2
transport.host: 192.168.1.2
transport.port: 9302
network.host: 0.0.0.0
http.port: 9222
network.bind_host: 0.0.0.0
node.master: true
node.data: true
discovery.seed_hosts: ["mypublic.ddns.net:9301", "mypublic.ddns.net:9302", "88.77.55.44:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

cluster.name: myclust
node.name: node-3
transport.host: 88.77.55.44
transport.port: 9302
network.host: 0.0.0.0
http.port: 9200
network.bind_host: 0.0.0.0
node.master: true
node.data: true
discovery.seed_hosts: ["mypublic.ddns.net:9301", "mypublic.ddns.net:9302", "88.77.55.44:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

Node1 and Node2 are joined with no problem which was in internal network, but on external Node3 i see in logs

 master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and this node must discover master-eligible nodes [node-1, node-2, node-3]

If i using cluster.initial_master_nodes for all nodes like this:

cluster.initial_master_nodes: ["mypublic.ddns.net:9301", "mypublic.ddns.net:9302", "88.77.55.44:9303"]

I'm receiving on node3 such error:

    org.elasticsearch.transport.NodeNotConnectedException: [node-2][192.168.139.128:9302] Node not connected
        at org.elasticsearch.transport.ConnectionManager.getConnection(ConnectionManager.java:151) ~[elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.transport.TransportService.getConnection(TransportService.java:568) ~[elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.transport.TransportService.sendRequest(TransportService.java:540) ~[elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.cluster.coordination.JoinHelper.sendJoinRequest(JoinHelper.java:279) ~[elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.cluster.coordination.JoinHelper.sendJoinRequest(JoinHelper.java:212) ~[elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.cluster.coordination.JoinHelper.lambda$new$2(JoinHelper.java:136) ~[elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:63) ~[elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.transport.InboundHandler$RequestHandler.doRun(InboundHandler.java:267) ~[elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:758) [elasticsearch-7.3.0.jar:7.3.0]
        at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-7.3.0.jar:7.3.0]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:835) [?:?]

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