[ 
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)

Reply via email to