We are in a situation where we need Cassandra nodes to be accessible from an external IP, but there is no interface with that IP; traffic to that IP is NATted to the node. Per DataStax's documentation, we have set listen_address to the internal IP and broadcast_address to the external IP. Nodes are able to connect to each other and gossip successfully; all is well except on our nodes enabled for search. On those nodes, when the Solr container is activated, we get:
java.io.IOError: java.net.BindException: Cannot assign requested address
at com.datastax.bdp.plugin.SolrContainerPlugin.onActivate(SolrContainerPlugin.java:190) ~[dse.jar:4.7.2]
at com.datastax.bdp.plugin.PluginManager.initialize(PluginManager.java:356) ~[dse.jar:4.7.2]
at com.datastax.bdp.plugin.PluginManager.activateDirect(PluginManager.java:285) ~[dse.jar:4.7.2]
at com.datastax.bdp.plugin.PluginManager.activate(PluginManager.java:159) ~[dse.jar:4.7.2]
at com.datastax.bdp.plugin.PluginManager.preStart(PluginManager.java:85) ~[dse.jar:4.7.2]
at com.datastax.bdp.server.DseDaemon.preStart(DseDaemon.java:375) ~[dse.jar:4.7.2]
at com.datastax.bdp.server.DseDaemon.start(DseDaemon.java:345) ~[dse.jar:4.7.2]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:537) [cassandra-all-2.1.8.621.jar:2.1.8.621]
at com.datastax.bdp.DseModule.main(DseModule.java:75) [dse.jar:4.7.2]
Testing different configurations seems to indicate that Netty is attempting to listen on the broadcast_address. How can we configure it to do otherwise? dse.yaml exposes an option to change the port, but not the host.
Many thanks for your help.