When running Cassandra nodes with collocated Spark nodes and accessing such cluster from remote, to get data-locality right, we need to tell Spark the locations of the Cassandra nodes and they should match the addresses that Spark nodes bind to. Therefore in cloud environments we need to use private IPs for that. Unfortunately, the client which connects from remote would know only the broadcast rpc_addresses which are different.
Can we have the IP/hostname that every C* node binds to exposed in a system table?
system.peers table contains that information, but it doesn't contain that information for the local node.
So can we have broadcast_address and rpc_address added to the system.local table?