Normalmente, a resolução de endereços IP é feita através de serviços de nomes dedicados, como dnsmasq, bind etc.
O arquivo de hosts locais / etc / hosts geralmente só é usado se você tiver uma pequena rede interna - listando todos os hosts internos e seus respectivos endereços IP; caso contrário, ele deve conter apenas o nome local do seu servidor (e localhost).
Uma solução para sua pergunta pode ser usar o nome do seu servidor em subdomínios diferentes, por exemplo, master.exernal.example.com e master.internal.example.com ; Agora, para endereçar o mestre da rede externa, você precisa tornar externo.exemplo.com seu domínio de pesquisa principal em /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
(supondo que você tenha um servidor de nomes em ns.example.com)
Em cada arquivo de zona para .external. e .internal.example.com, o nome do host aponta para o respectivo endereço IP
# 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
Desta forma, você pode usar curl http://master/ dentro de cada rede sem se preocupar com FullQualifiedDomainNames.