2 votes

Plusieurs sites sur un même serveur IIS ont besoin d'adresses IP sortantes différentes

J'ai un serveur IIS configuré avec plusieurs sites web, chacun ayant sa propre adresse IP. Cela fonctionne bien pour acheminer le trafic entrant vers le bon site. Cependant, le trafic sortant semble provenir de l'adresse IP de la machine physique, et non des différents sites. Ceux-ci doivent apparaître au monde extérieur comme des adresses IP distinctes, car le service avec lequel ils communiquent les différencie par la seule adresse IP.

Peut-être que quelqu'un a configuré un serveur NAT pour faire cela ? Avez-vous des idées ? Merci !

1voto

Evan Anderson Points 140581

Je ne pense pas que vous obtiendrez cette fonctionnalité avec IIS seul. Vous pourriez mettre une sorte de boîte NAT frontale (disons, une machine Linux avec iptables), faire tourner les différents sites sur différents ports TCP sur la boîte IIS, et les NATer vers différentes IP sur la machine Linux comme une solution rapide et simple. IIS et Windows, cependant, ne vont pas faire ce que vous voulez.

Les règles iptables pour faire ce que vous recherchez seraient assez simples. Le NAT d'un routeur Cisco, et un grand nombre d'autres implémentations NAT intégrées, pourraient également le faire.

0 votes

Mon problème est lié - je veux donner à 10 sites sur mon serveur VM Windows 2008 hébergé des adresses IP différentes. D'après votre réponse, je peux donc laisser mon adresse IP de messagerie identique dans tous les fichiers Web.Config ?

0 votes

Euhh quoi ? Je ne pense pas avoir parlé d'email dans ma réponse et je ne suis pas sûr de comprendre ce que vous voulez dire. Envisagez de poser une question avec des détails sur ce que vous recherchez.

0voto

Mike B Points 485

Lorsque vous communiquez, à quel niveau vous situez-vous ? Si vous êtes au niveau TCP, vous pouvez définir une interface à utiliser.

0 votes

C#, pas au niveau TCP.

0voto

David Spillett Points 22424

Cela dépend des demandes de sortie et de la manière dont vous les réalisez. Si l'installation que vous utilisez pour faire les demandes le supporte, vous pouvez lui demander de se lier à une adresse spécifique au lieu de l'adresse par défaut.

Je suis pratiquement sûr que vous ne pouvez pas le faire avec les méthodes courantes de IIS (comme l'utilisation de la bibliothèque WinHTTP).

Dans d'autres outils/bibliothèques, recherchez une option "bind address" telle que celle-ci, tirée de la page de manuel wget :

--bind-address=ADDRESS
    When making client TCP/IP connections, bind to ADDRESS on the local
    machine. ADDRESS may be specified as a hostname or IP address. This
    option can be useful if your machine is bound to multiple IPs.

0 votes

Je pense que cela fonctionnerait, mais le code ne crée pas de socket. Il s'agit d'un objet C#.NET WebRequest.

0 votes

Je n'ai pas beaucoup d'expérience avec dotNet mais la documentation semble indiquer qu'il n'y a pas d'option bind avec cette classe. Vous pourriez être en mesure de faire ce que vous cherchez avec une classe de point de service ( msdn.microsoft.com/en-us/library/system.net.servicepoint.aspx ) avec un délégué de point final ( msdn.microsoft.com/en-us/library/system.net.servicepoint.aspx )

0voto

MathewC Points 6777

Vérifiez que vos IP supplémentaires ne sont pas simplement acheminées vers une seule IP avant de vous parvenir. Vous pouvez le faire en vous connectant au même VLAN que le serveur et en touchant l'IP secondaire.

0voto

TristanK Points 8893

Dans IIS, cela peut sembler délicat, mais les sites Web ne communiquent pas avec l'extérieur ; ce sont les applications hébergées dans un conteneur de site Web qui le font.

Programmez votre application pour qu'elle utilise une IP spécifique, et cela se produira. IIS ne fournit pas directement d'API de communication sortante, donc cela ne vous aidera pas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X