[ https://issues.apache.org/jira/browse/CASSANDRA-9748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14988261#comment-14988261 ]
Ariel Weisberg commented on CASSANDRA-9748: ------------------------------------------- Summing up our private conversation. The use case is where someone has two interfaces they want to use for intra-cluster traffic. One is accessible from other DCs the other is intra-DC. Right now they can only specify one broadcast address and that has to be the one reachable everywhere. This was fine for EC2 with it's weird private/public IP magic. For real separate interfaces it doesn't work because you need to select between one of two IPs. The addition of a local IP to the GossipingPropertyFile snitch means that instead of advertising the broadcast address via gossip (as the internal interface) it can advertise a second interface. My question is why is this necessary at all? My ops fu is pretty weak but I thought that a single interface is generally fine (unless there is a performance issue) because you can configure your network to do the right thing WRT to reachability and efficiently routing traffic between and intra DCs with a single IP. One thing that seems suboptimal is binding to all interfaces instead of a list of interfaces. This forces people to manually block connections on interfaces we really shouldn't be accepting on. That said this is mechanism not policy and it enables people to do something they couldn't before so it's an improvement and they have options outside of C*. > 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: Improvement > Environment: Cassandra 2.0.16; multi-DC configuration > Reporter: Roman Bielik > Assignee: Paulo Motta > Labels: docs-impacting > Fix For: 2.1.x, 2.2.x, 3.0.x > > 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)