Is it possible to use multiple IP addresses for the same host name in a linux hosts file?

6,435

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.

Share:
6,435

Related videos on Youtube

Admin
Author by

Admin

Updated on September 18, 2022

Comments

  • Admin
    Admin over 1 year

    The scenario is I have a machine that can be accessed both locally (when I am in the same network as the machine) and publicly (when I am on any external network). I want my hosts file to look something like this:

    10.11.82.40 master.parallel.edu master
    123.90.132.98 master.parallel.edu master
    

    So that the system will first try the first IP address, and if that doesn't work, try the next one. Is this possible and advisable?

    • goo
      goo over 6 years
      No. That's not how networking works.