There are a few rules you can use to determine what "internal" and "external" mean when describing cluster nodes.
Cluster nodes with only one network port have external addresses.
The internal addresses only come into play when there are either multiple IP addresses/hostnames associated
with each cluster node OR multiple network adapters on different networks attached to each node. If either of
those cases are true, you need to evaluate the installation function of the hostnames/addresses/networks:
External addresses are used by the installer to install software on the Xcalar cluster.
Internal addresses are used by Xcalar to communicate after Xcalar is installed, IF they are different from the external addresses.
To use a concrete example, consider Amazon AWS EC2 cloud instances. Each instance has two hostnames and two
Public DNS (IPv4)
IPv4 Public IP
One of these addresses, the IPv4 Public IP/Public DNS, is used by computers outside EC2 to reach the system. The
other is used to reach systems inside EC2.
So, if you were to install Xcalar on a host with a configuration like this from a machine outside EC2, how would you choose the Internal and External hostnames?
The Public DNS/IP address is the one that the installer would need to use to communicate with the instance. That's the external hostname.
The Private DNS is the address that the node would use to communicate with other cluster nodes inside EC2, so that would be the internal hostname.
You could, of course, use IP addresses for both of these instead (just make sure SSH is capable of doing it to make the installer work!)
Now how does this picture change if you attempt to install Xcalar from another EC2 node?
In one sense, the solution is simple: EC2 instances usually have one network adapter and that means the address/hostname of that adapter is the "external" address. So, ip-172-31-188-7.us-west-1.compute.internal becomes the external hostname and there is no internal hostname.
This makes sense using the internal/external rules, too. The Private DNS name (which was internal before) is the one used by the installer to connect to the node. This makes it the external hostname. It's also the hostname that nodes would use to communicate after installation. That would make it internal as well, except that it is not different from the external hostname. Therefore the internal hostname is left blank.