[
https://issues.apache.org/jira/browse/CASSANDRA-9748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14903515#comment-14903515
]
Paulo Motta commented on CASSANDRA-9748:
----------------------------------------
Thanks for the logs! Since listen_address is set to the private ip, the node
only listen to connections on the private interface, so nodes cannot connect to
the public broadcast_address (since the node is not listening to it). EC2
peforms the translation automatically from public elastic IPs to the internal
private IP, so this problem doesn't happen when using the EC2MultiRegionSnitch
(CASSANDRA-2452 added the broadcast_address parameter to support the
EC2MultiRegionSnitch).
As a temporary workaround, could you add an iptables NAT rule to forward all
packets on the public interface to the private interface on port 7000 and check
if that fixes the problem? You can use telnet to verify if the forwarding is
being performed correctly.
A more permanent solution would be to allow the messaging service to listen on
multiple interfaces (listen_address=0.0.0.0), but currently this is not
supported. As long as the broadcast_address is set, I don't see a problem on
enabling listen_address=0.0.0.0, but I will have to check with other developers
if there's any problem with that approach.
> Can't see other nodes when using multiple network interfaces
> ------------------------------------------------------------
>
> Key: CASSANDRA-9748
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9748
> Project: Cassandra
> Issue Type: Bug
> Environment: Cassandra 2.0.16; multi-DC configuration
> Reporter: Roman Bielik
> Assignee: Paulo Motta
> Attachments: system_node1.log, system_node2.log
>
>
> The idea is to setup a multi-DC environment across 2 different networks based
> on the following configuration recommendations:
> http://docs.datastax.com/en/cassandra/2.0/cassandra/configuration/configMultiNetworks.html
> Each node has 2 network interfaces. One used as a private network (DC1:
> 10.0.1.x and DC2: 10.0.2.x). The second one a "public" network where all
> nodes can see each other (this one has a higher latency).
> Using the following settings in cassandra.yaml:
> *seeds:* public IP (same as used in broadcast_address)
> *listen_address:* private IP
> *broadcast_address:* public IP
> *rpc_address:* 0.0.0.0
> *endpoint_snitch:* GossipingPropertyFileSnitch
> _(tried different combinations with no luck)_
> No firewall and no SSL/encryption used.
> The problem is that nodes do not see each other (a gossip problem I guess).
> The nodetool ring/status shows only the local node but not the other ones
> (even from the same DC).
> When I set listen_address to public IP, then everything works fine, but that
> is not the required configuration.
> _Note: Not using EC2 cloud!_
> netstat -anp | grep -E "(7199|9160|9042|7000)"
> tcp 0 0 0.0.0.0:7199 0.0.0.0:*
> LISTEN 3587/java
> tcp 0 0 10.0.1.1:9160 0.0.0.0:*
> LISTEN 3587/java
> tcp 0 0 10.0.1.1:9042 0.0.0.0:*
> LISTEN 3587/java
> tcp 0 0 10.0.1.1:7000 0.0.0.0:*
> LISTEN 3587/java
> tcp 0 0 127.0.0.1:7199 127.0.0.1:52874
> ESTABLISHED 3587/java
> tcp 0 0 10.0.1.1:7199 10.0.1.1:39650
> ESTABLISHED 3587/java
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)