web-dev-qa-db-fra.com

Pointez plusieurs adresses IP vers un seul nom d'hôte

Dans le système Windows, ce fichier se trouve à C:\WINDOWS\system32\drivers\etc\hosts. Ce fichier nous permet de définir par défaut une adresse IP spécifique sur un nom d'hôte.

La question est maintenant de savoir si je peux définir plusieurs adresses IP sur un nom d'hôte. Par exemple, puis-je faire quelque chose comme ceci:

192.168.244.128   gateway.net
192.168.226.129   gateway.net

Et attendez-vous à ce que le navigateur puisse résoudre les deux, voir lequel fonctionnera et donc pointer sur celui-là?

Sinon, existe-t-il un autre moyen d'obtenir le comportement que je souhaite?

Remarque: je déploie cette application dans mon propre réseau local, il n'y a donc pas besoin d'Internet.

26
Graviton

Normalement, vous n'utilisez pas d'hôtes pour ce faire, mais votre DNS. La plupart des DNS fourniront ce qu'on appelle un "Round Robin" si vous attribuez plusieurs enregistrements A au même nom dans la zone.

Ce qu'il ferait alors, c'est que la première demande qui parvient recevrait 192.168.244.128, le suivant recevra 192.168.226.129, etc., etc. Cependant, par conception, votre machine locale mettra en cache sa résolution DNS et utilisera généralement la même adresse IP encore et encore, jusqu'à son expiration (Time To Live, TTL).

27
Mark Henderson

Oui, vous pouvez le faire, je l'ai utilisé pour tester des scénarios DNS à tour de rôle sans avoir à entrer réellement les hôtes dans un DNS.

Lorsqu'une application appelle gethostbyname, elle récupère la liste complète des adresses IP (éventuellement dans un ordre aléatoire - en fonction des bibliothèques/du système d'exploitation).

18
MarkR

Je pense que vous vous y trompez. Faites-moi savoir si je fais les mauvaises hypothèses ici.

Scénario:

  • Vous avez deux serveurs Windows exécutant la même application Web, probablement sur IIS.
  • Vous voulez que votre application soit tolérante aux pannes afin que si l'un des serveurs tombe en panne, votre application soit toujours disponible.
  • Vous voulez que cette tolérance aux pannes soit transparente pour le navigateur, afin que les utilisateurs puissent continuer à accéder à l'application avec le même nom d'hôte, c'est-à-dire gateway.net

Ce que vous essayez de faire s'appelle DNS à tour de rôle (aka équilibrage de la charge des pauvres), mais vous essayez de le faire du côté client. Cela ne semble pas avoir l'effet souhaité (au moins sur mon Windows XP) même si je vide le cache DNS. Windows ne résoudra que la première IP du fichier. Néanmoins, arrondissez- robin DNS n'est pas tolérant aux pannes, donc cela ne vous aidera pas à réaliser ce que vous voulez.

Solution suggérée:

Équilibreur de charge matériel: Certains noms de marque sont Alteon, Big-IP, Barracuda. Ce que cela fait, c'est essentiellement de présenter une adresse IP unique à laquelle vos utilisateurs peuvent se connecter et il transmet les demandes aux serveurs Web. Si l'un des serveurs devient indisponible, il ne lui transmettra plus de trafic. C'est l'option chère.

Services d'équilibrage de la charge réseau: Il s'agit d'une technologie Microsoft disponible sur le serveur Windows, qui vous donnera une seule IP en cluster. Il obtient le même résultat qu'un équilibreur de charge matériel, mais d'une manière différente. Tout ce que vous devez faire est le configurer .

12
Nick Kavadias

De http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main

Exemple IPv4

192.168.1.1 hostA hostB 192.168.2.2 hostA hostC Host-C

Dans cet exemple, hostA a 2 adresses IP et 3 alias. L'alias hostB spécifie la première adresse et les alias hostC et Host-C spécifient la deuxième adresse. LSF utilise le nom d'hôte officiel, hostA, pour identifier que les deux adresses IP appartiennent au même hôte.

2
Peter

De http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main

Exemple IPv4

192.168.1.1 hostA hostB 192.168.2.2 hostA hostC Host-C

Dans cet exemple, hostA a 2 adresses IP et 3 alias. L'alias hostB spécifie la première adresse et les alias hostC et Host-C spécifient la deuxième adresse. LSF utilise le nom d'hôte officiel, hostA, pour identifier que les deux adresses IP appartiennent au même hôte.

Sur la base de cet exemple, j'ai fait l'hôte A 10.18.y.x 192.168.z.x suivant

Où hostA est le nom d'hôte d'un serveur que j'ai l'intention d'atteindre à la fois depuis le réseau interne (192.168.y.x) et le VPN (10.8.z.x).

ping hostA
sending 'ping' on 192.168.y.x [10.8.z.x]
Answer from 10.8.z.x : bytes=32 time=98 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=78 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=111 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=136 ms TTL=64

Donc, cela fonctionne bien et je suis capable de faire fonctionner la samba via VNP en utilisant le nom d'hôte, donc c'est bien pour moi d'avoir mes disques connectés dans Windows dans les deux cas (LAN ou VPN connecté).

Meilleures salutations.

1
obrousse

Je l'ai fait sur un réseau domestique où j'attribue des adresses IP statiques aux interfaces réseau filaires et sans fil d'un ordinateur portable, et à partir du fichier d'hôtes d'une autre machine, pointez un nom d'hôte unique vers ces deux adresses IP. Cela semble marcher correctement.

1
Suan

Ma suggestion est d'utiliser un serveur DNS interne avec round-robin DNS et TTL = 0. Si vous mettez à jour l'enregistrement DNS (également avec le système de vérification automatique d'IP) lorsqu'un IP/serveur est en panne, vous pouvez avoir un système à haute disponibilité.

1
lg.

@ Plamen Dimitrov Vous aurez besoin d'un appareil pour gérer ce genre d'équilibre, peut-être un interrupteur qui peut gérer BGP devant votre FW- ou utiliser votre FW s'il est capable. Si votre Ciscos gère BGP, essayez de l'implémenter. De cette façon, vous pouvez avoir vos deux IP FAI entrant dans le commutateur Cisco/ou et les serveurs cibles auraient des IP valides d'IP publiques 24 bits (DIFFÉRENTES DES 2 IP FAI). À ce stade (vous utilisez 3 blocs IP publics différents, celui de vos serveurs DOIT ÊTRE 24 BIT), vous devez que chacun de vos FAI connaisse cette solution et ils doivent être prêts à prendre en charge le Solution BGP entre eux, ce que la plupart feront. Désormais, lorsque votre nom de domaine complet sera résolu, il se résoudra en votre bloc IP 24 bits, même si 1 ligne ISP tombe en panne. L'objectif est que vos adresses 24 bits soient toujours disponibles car vos FAI ont accepté de router cette adresse 24 bits via leurs lignes. Cela fonctionne aussi pour VPN car tout ce que vous utilisez pour VPN sont les adresses 24 bits, et non les adresses IP du FAI que vous avez branché sur votre Cisco/ou commutateur. À ce stade, vous devez vous méfier du BGP FLAPPING où si vos lignes montent et descendent beaucoup, en raison d'une ligne sous DOS, les adresses DNS changeront tellement, sur Internet, que les serveurs DNS SUPPRIMERONT AUTOMATIQUEMENT LES IP QUI MÈNE À VOTRE BLOC DE 24 BITS D'IP. C'est une attaque DOS sur les solutions BGP.

0
Odoggz

Légère clarification ici, au moins dans le monde Windows: vous POUVEZ avoir deux adresses IP pour un seul nom dans un fichier d'hôtes. Lorsqu'elles sont interrogées, toutes les adresses sont retournées. L'application (c'est-à-dire le navigateur) tentera de se connecter à chacun à son tour jusqu'à ce qu'une connexion soit établie. IOW, il essaiera toutes les adresses avant la fin du délai. (Il s'agit d'un malentendu courant car de nombreuses personnes pensent qu'il n'essaiera que la "première" adresse.)

Vous pouvez le vérifier avec l'expérience suivante:

Ajoutez deux adresses ou plus pour un hôte dans le fichier hosts, une vraie et les autres fausses. (Réduisez les fausses adresses par ordre alphabétique.) Ouvrez un navigateur et essayez de vous connecter au nom d'hôte. Exécutez netstat -no en même temps. Vous devriez voir des tentatives de connexion à la fausse adresse. (coincé dans SYN_SENT) Le navigateur finira par arriver à la bonne adresse et se connectera. Il y a un retard dans la connexion, mais cela fonctionnera.

0
Ron