Hello! I have configured a small cluster composed of three nodes on Amazon EC2. The 3 machines don't have an elastic IP (static address) so the public address changes at every reboot.
I have a machine with a static ip that I use as a bridge to access the other 3 cassandra nodes through SSH. On this machine, I have setup a tunnelling towards the first node of the cluster in order to open the 9042 port and let me access the cluster through this static IP. Basically, my cassandra.yaml has these settings: listen_address: private IP broadcast_address: commented out. rpc_address: 0.0.0.0 broadcast_rpc_address: private ip I know I should set the broadcast address to the public IP, but it is dynamic and I don't have any idea at the moment on how I could determine it and setup it in the cassandra.yaml file. I'm developing a small client using the datastax connector (in Java). I setup the contactpoint using the public ip of the bridge machine. The client connects but gives some errors while adding other nodes in the cluster: 15:43:26,887 ERROR [com.datastax.driver.core.Session] (cluster1-nio-worker-1) Error creating pool to /XXX.XX.XX.XXX:9042: com.datastax.driver.core.TransportException: [/XXX.XX.XX.XXX:9042] Cannot connect at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:156) [cassandra-driver-core-2.2.0-rc3.jar:] at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:139) [cassandra-driver-core-2.2.0-rc3.jar:] at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:680) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:603) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:563) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:424) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:214) [netty-transport-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) [netty-transport-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) [netty-common-4.0.27.Final.jar:4.0.27.Final] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80] Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: /XXX.XX.XX.XXX:9042 at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:212) [netty-transport-4.0.27.Final.jar:4.0.27.Final] ... 6 more 15:43:26,887 ERROR [com.datastax.driver.core.Session] (cluster1-nio-worker-3) Error creating pool to /XXX.XX.XX.XX:9042: com.datastax.driver.core.TransportException: [/XXX.XX.XX.XX:9042] Cannot connect at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:156) [cassandra-driver-core-2.2.0-rc3.jar:] at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:139) [cassandra-driver-core-2.2.0-rc3.jar:] at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:680) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:603) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:563) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:424) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:214) [netty-transport-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357) [netty-common-4.0.27.Final.jar:4.0.27.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) [netty-transport-4.0.27.Final.jar:4.0.27.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) [netty-common-4.0.27.Final.jar:4.0.27.Final] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80] Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: /XXX.XX.XX.XX:9042 at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:212) [netty-transport-4.0.27.Final.jar:4.0.27.Final] ... 6 more This because the driver resolves local ip address for the other nodes, I think. So, how can I solve this problem?