I have a small ring of two nodes running successfully on aws. In order to understand cassandra support for NAT I have tried to add another node outside aws on a machine behind NAT. When I try to join the ring, there is a 30s pause after starting the messaging service and then it fails, unable to find other nodes.
12:16:29,834 Starting Messaging Service on port 7000 INFO 12:16:29,848 JOINING: waiting for ring and schema information INFO 12:16:59,849 JOINING: schema complete, ready to bootstrap INFO 12:16:59,850 JOINING: getting bootstrap token ERROR 12:16:59,853 Exception encountered during startup java.lang.RuntimeException: No other nodes seen! Unable to bootstrap.If you intended to start a single-node cluster, you should make sure your broadcast_address (or listen_address) is listed as a seed. Otherwise, you need to determine why the seed being contacted has no knowledge of the rest of the cluster. Usually, this can be solved by giving all nodes the same seed list. at org.apache.cassandra.dht.BootStrapper.getBootstrapSource(BootStrapper.java:1 68) at org.apache.cassandra.dht.BootStrapper.getBalancedToken(BootStrapper.java:150 ) The new node config seed_provider: - seeds: <awsNode1 external address> listen_address: <newNode internal address> broadcast_address: <newNode external address> The AWS security group config.. Admits traffic from <newNode external address> on ports 7000, 7001, 8080 Netwok paths When the new node was attempting to start, I proved the paths between the seed and the new node. I could . - telnet from awsNode1 to newNode 7000 - telnet from newNode to awsNode1 7000 Can anyone spot my beginner's mistake? Thanks, Richard