Is it possible to use multiple IP addresses for the same host name in a linux hosts file?
Normally IP adress resolving is done via dedicated name services like dnsmasq, bind etc.
The local hosts file /etc/hosts is generally only used if you have a small internal network - listing all internal hosts and their respectives ip addresses; otherwise it should just contain your server's local name (and localhost).
One solution to your question could be to use your server's name in different subdomains, e.g. master.exernal.example.com
and master.internal.example.com
; now to address master from the external network you have to make external.example.com your primary search domain in /etc/resolv.conf
:
# /etc/resolv.conf at external host
search external.example.com example.com
nameserver ns.example.com
# /etc/resolv.conf at internal host
search internal.example.com example.com
nameserver ns.example.com
(asssuming you have a nameserver at ns.example.com)
In each zone file for .external. and .internal.example.com the hostname points to the respective ip address
# zonefile external network
$ORIGIN external.example.com.
master IN A 123.90.132.98
# zonefile internal network
$ORIGIN internal.example.com.
master IN A 10.11.82.40
This way you can use curl http://master/
within each network without bothering with FullQualifiedDomainNames.