This is what I get when using telnet and curl
~ # telnet 192.168.1.110 9200
Trying 192.168.1.110...
Connected to 192.168.1.110.
Escape character is '^]'.Connection closed by foreign host.
~ # telnet 192.168.1.110 9300
Trying 192.168.1.110...
Connected to 192.168.1.110.
Escape character is '^]'.Connection closed by foreign host.
~ # curl http://192.168.1.110:9200
{
"name" : "node_name",
"cluster_name" : "logs",
"cluster_uuid" : "NydKtj3QSdqoiPjd189avQ",
"version" : {
"number" : "5.5.2",
"build_hash" : "b2f0c09",
"build_date" : "2017-08-14T12:33:14.154Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
~ # curl http://192.168.1.110:9300
This is not a HTTP port
If these ports are not accessible between the VMs, Elasticsearch clustering will definitely not work.
And again, Elasticsearch does not work as master - slave the way you hope it to.
From Node | Elasticsearch Reference [5.6] | Elastic
The master node is responsible for lightweight cluster-wide actions such as creating or deleting an index, tracking which nodes are part of the cluster, and deciding which shards to allocate to which nodes. It is important for cluster health to have a stable master node.
-AB