essayant de comprendre comment le file Linux / etc / hosts fonctionne avec les adresses IP locales et externes

Disons que j'ai un server Linux avec une adresse IP externe de 123.456.789.012 et une adresse IP locale de 192.168.0.1. Si c'est le file / etc / hosts semble, par exemple,

123.456.789.012 host2.mydomain.com 192.168.0.1 host2.mydomain.com 

Lorsqu'une application sur le server génère du trafic à envoyer en utilisant host2.mydomain.com, comment le server sait-il s'il faut utiliser l'adresse IP locale ou externe (puisque le même nom d'hôte affiche deux adresses IP)?

Ou, at-il besoin de quelque chose de plus que ce que j'ai présenté ici pour décider de cela?

Ou, est-ce que cela vient de l'envoyer en tant que host2.mydomain.com et que la réception soit traitée (si oui, comment s'assurer que le trafic destiné au réseau local va bien au réseau local)?

Des hôtes (5):

For each host a single line should be present

Donc, la duplication du même nom d'hôte pour différentes adresses IP est un non-non; Le comportement n'est pas garanti si vous le faites.

TOUTEFOIS, quand j'ai mis

 1.2.3.4 testhost 5.6.7.8 testhost 

dans / etc / hosts, getent hosts testhost renvoie les deux lignes.

Notez que cela sera évidemment très spécifique aux versions OS et libc utilisées.

Votre machine, ordinateur1, dispose d'un file hôte mis à jour:

 123.456.789.012 host2.mydomain.com 192.168.0.1 host2.mydomain.com 

Tout trafic envoyé à host2.domain.com à partir de l'ordinateur1 doit être résolu à une adresse IP, et le lieu qui a précédé toutes les autres sources (p. Ex. DNS) est votre file / etc / hosts. La première correspondance pour le nom d'hôte dans / etc / hosts est utilisée. Ainsi, dans votre exemple, host2.mydomain.com résoudra toujours à 123.456.789.012.

Ce n'est pas le cas.

Vous devez soit utiliser des noms de domaine internes ou externes distincts, soit utiliser DNS pour fournir différentes réponses en fonction de l'location du réseau.

Linux man page indique clairement que "une ligne par adresse IP", donc ce que vous faites est indéfini. Vous pouvez get le premier dans le file, le dernier ou random.

Il est préférable pour votre application d'utiliser l'ip dans ce cas, peut-être en fonction de certains critères.

Vous auriez un server dns local et un server DNS distant. Ainsi, sur la machine dans les hôtes, vous avez juste l'adresse IP que vous souhaitez utiliser.