Windows Server 2008: spécification de l'adresse IP par défaut lorsque la carte réseau a plusieurs adresses

23

J'ai un serveur Windows qui a environ 10 adresses IP liées statiquement. Le problème est que je ne sais pas comment spécifier l'adresse IP par défaut.

Parfois, lorsque j'attribue une nouvelle adresse au NIC, l'adresse IP par défaut change avec le dernier IP entré dans la configuration IP avancée sur le NIC. Cela a pour effet (puisque j'utilise NAT) que l'IP publique sortante change également.

Même si ce problème se trouve actuellement sur Windows Server 2008.

Comment pouvez-vous définir l'adresse IP par défaut sur une carte réseau lorsqu'elle a plusieurs adresses IP liées?

Il y a plus d'explications sur mon problème.

texte alternatif http://www.nmediasolutions.com/_images/probleme/ip.png

Voici la sortie de ipconfig:

DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 192.168.99.49(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.51(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.52(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.53(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.54(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.55(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.56(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.57(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.58(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.59(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.60(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.61(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.62(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.64(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.65(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.66(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.67(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.68(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.70(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.71(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.100(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.108(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.109(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.112(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.63(Duplicate)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.99.1

Si je fais un pathpingil y a la réponse, le premier est le 99.49, même si mon adresse IP par défaut est 99.100

Tracing route to www.l.google.com [72.14.204.99]
over a maximum of 30 hops:
  0  Machine [192.168.99.49]

Il y a la table de routage sur la machine:

 Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0     192.168.99.1    192.168.99.49    261
           10.10.10.0    255.255.255.0         On-link       10.10.10.10    261
          10.10.10.10  255.255.255.255         On-link       10.10.10.10    261
         10.10.10.255  255.255.255.255         On-link       10.10.10.10    261
         192.168.99.0    255.255.255.0         On-link     192.168.99.49    261
        192.168.99.49  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.51  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.52  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.53  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.54  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.55  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.56  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.57  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.58  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.59  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.60  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.61  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.62  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.64  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.65  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.66  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.67  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.68  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.70  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.71  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.100  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.108  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.109  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.112  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.255  255.255.255.255         On-link     192.168.99.49    261
            224.0.0.0        240.0.0.0         On-link     192.168.99.49    261
            224.0.0.0        240.0.0.0         On-link       10.10.10.10    261
      255.255.255.255  255.255.255.255         On-link     192.168.99.49    261
      255.255.255.255  255.255.255.255         On-link       10.10.10.10    261

Je pense que mon itinéraire devrait ressembler à:

Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0     192.168.99.1    **192.168.99.100**    261
           10.10.10.0    255.255.255.0         On-link       10.10.10.10    261
          10.10.10.10  255.255.255.255         On-link       10.10.10.10    261
         10.10.10.255  255.255.255.255         On-link       10.10.10.10    261
         192.168.99.0    255.255.255.0         On-link     192.168.99.100    261
        192.168.99.49  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.51  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.52  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.53  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.54  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.55  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.56  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.57  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.58  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.59  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.60  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.61  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.62  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.64  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.65  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.66  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.67  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.68  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.70  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.71  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.100  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.108  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.109  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.112  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.255  255.255.255.255         On-link     192.168.99.100    261
            224.0.0.0        240.0.0.0         On-link     192.168.99.100    261
            224.0.0.0        240.0.0.0         On-link       10.10.10.10    261
      255.255.255.255  255.255.255.255         On-link     192.168.99.100    261
      255.255.255.255  255.255.255.255         On-link       10.10.10.10    261

Comment puis-je être sûr que l'adresse IP utilisée dans l'image (supposée être l'adresse IP par défaut) sera utilisée par mon serveur comme adresse par défaut?

Cédric Boivin
la source

Réponses:

11

Avec Server 2008 Service Pack 2 (pas R2), ou Vista SP2 et le correctif MS KB975808, il existe une solution, bien qu'un peu maladroite. Vous supprimeriez toutes les adresses que vous NE VOULEZ PAS comme source, puis les rajoutez chacune sur la ligne de commande en utilisant

Netsh int ipv4 add address <Interface Name> <ip address> skipassource=true

Le correctif active le drapeau "Ignorer comme source".

Pour une plongée plus approfondie sur la façon dont les différentes versions de Windows sélectionnent les adresses IP source, consultez cet article de blog TechNet .

Paul
la source
6

Il n'y a rien de tel qu'une "IP par défaut" pour une interface réseau; votre table de routage système définit plutôt l'interface logique à utiliser lors de la communication avec d'autres périphériques.

Cela ressemble à ce que vous aimeriez faire est de configurer un itinéraire par défaut. Cela entraînerait toutes les conversations lancées par cette machine à partir d'une adresse IP spécifique.

Utilisez route add pour ajouter une passerelle par défaut

Brian Tillman
la source
Comment je peux changer ma table de routage, en fait c'est le 99.49 dont j'ai besoin que l'itinéraire par défaut soit 99.100
Cédric Boivin
La passerelle par défaut est la route par défaut et vice versa. C'est juste une question de terminologie.
Kevin M
Je le sais, mais je ne peux pas modifier l'itinéraire par défaut. Comment puis-je le changer? Quelles sont les bonnes formules de commande
Cédric Boivin
1
Vous pouvez essayer ceci: "route add 0.0.0.0 mask 0.0.0.0 192.168.99.100 metric 2"
Jeff Miles
Si je fais ça, non je ne peux plus aller sur internet car c'est une mauvaise passerelle.
Cédric Boivin
2

Votre situation n'est pas tout à fait claire, mais si je vous comprends bien:
1) Pourquoi ne définissez-vous pas simplement votre adresse IP «par défaut»?

2) Ou, vous pouvez peut-être essayer ceci (en supposant que l'adresse de la passerelle est 192.168.99.1):

route delete 0.0.0.0
route -p add 192.168.99.1 mask 255.255.255.255 192.168.99.100
route -p add 0.0.0.0 mask 0.0.0.0 192.168.99.1 192.168.99.100

Pour obtenir plus d'informations sur la syntaxe de la commande "route", regardez ici: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/route.mspx?mfr=true

Alexey Shatygin
la source
Ne fonctionne pas, les commandes ne sont pas bonnes. Erreur, impossible de trouver le fichier spécifié
Cédric Boivin
essayez sans "si": route -p ajoutez 192.168.99.1 mask 255.255.255.255 192.168.99.100 mais cela devrait fonctionner, pourriez-vous citer l'erroe s'il vous plaît?
Alexey Shatygin
Cette fois, pas de message d'erreur, mais cela ne change rien
Cédric Boivin
Cela devrait changer votre table de routage. Pouvez-vous refaire "route print", cette commande et "route print" et mettre la sortie ici?
Alexey Shatygin
Et, avant de faire la commande que j'ai publiée, faites "route delete 0.0.0.0"
Alexey Shatygin
1

Ne pourriez-vous pas utiliser de métriques sur les adresses IP? Dans les propriétés TCP / IP, décochez la métrique automatique et attribuez-en une statique avec une valeur inférieure à 261 (comme indiqué dans votre capture d'écran) à l'adresse que vous souhaitez utiliser par défaut.

Jeff Miles
la source
Je vais essayer ça, c'est une bonne idée.
Cédric Boivin
Ne fonctionne pas, voir ma modification sur mon post.
Cédric Boivin
est-il possible de changer l'adresse de l'interface?
Cédric Boivin
1

Une commande sous la forme:
> route add 0.0.0.0 mask 0.0.0.0 192.168.99.1 metric xxx if yyy
will change the address seen when the machine goes to any non-192.168.99.0 / 24 and non-10.10.10.0 / 24 address . Autrement dit, lorsque la passerelle par défaut est utilisée. La métrique (xxx) doit être supérieure à toute autre valeur pour garantir que la règle est utilisée. L'interface (aaaa) doit être l'interface à utiliser. Mais, je ne pense pas qu'il existe un moyen de contrôler quelle adresse IP sur cette interface utiliser s'il y a plusieurs adresses IP.
> route add 192.168.99.0 mask 255.255.255.0 metric xxx if yyy
is similar but is for any 192.168.99.0/24 address the system go to. Le fait est que l'attribution de plusieurs adresses IP à une seule interface peut poser ce type de problèmes.

Beau Geste
la source
1

J'ai pu dupliquer votre problème: il semble que Windows utilise l' adresse IP attribuée la plus basse sur une interface réseau donnée en tant qu'interface "sortante", quel que soit l'ordre réel dans lequel ils ont été attribués.

Je n'ai pas pu trouver de documentation sur ce comportement, mais je suis sûr que c'est de par leur conception.


modifier

Je pense que cela ne peut vraiment pas être fait au niveau du système d'exploitation, mais cela peut être fait par du code dans votre application: un socket peut être explicitement lié à une paire adresse IP / port choisie avant de le connecter au point de terminaison distant. Mais vous devrez utiliser des bibliothèques de niveau inférieur à celles des services Web standard. IE, vous devrez ouvrir manuellement un socket, le connecter et l'utiliser pour lire / écrire des données.

Exemple .NET / C #:

using System.Net;
using System.Net.Sockets;

IPAddress local_addr = IPAddress.Parse("192.168.99.100");
IPAddress remote_addr = IPAddress.Parse("1.2.3.4");

int local_port = 4242;
int remote_port = 80;

IPEndPoint local_ep = new IPEndPoint(local_addr,local_port);
IPEndPoint remote_ep = new IPEndPoint(remote_addr,remote_port);

Socket s = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

s.Bind(local_ep);

s.Connect(remote_ep);

// Now use the socket to talk to the remote host

Cela ouvrira une connexion à 1.2.3.4:80 à partir de 192.168.99.100:4242, de sorte que l'hôte distant la verra provenir exactement de cette adresse IP.

Testé et testé en se connectant à IIS, il enregistre la demande comme provenant de l'adresse IP spécifiée.

Massimo
la source
J'ai lu des vêtements qui pourraient être une comparaison binaire avec l'adresse IP?
Cédric Boivin
1
Oui, la comparaison binaire est très probablement la façon dont "la plus basse" est sélectionnée; Cependant, je n'ai pas essayé avec des IP appartenant à différents sous-réseaux.
Massimo
Mon plus gros problème en ce moment, c'est que j'ai plus de 300 sites Web sur plusieurs adresses IP, et lorsque mon serveur va sur Internet pour appeler un autre serveur (service Web), je ne peux pas être certain de l'IP publique que mon serveur aura.
Cédric Boivin
Merci pour cette réponse mais dans mon scénario il est impossible d'appliquer ces solutions. Les solutions doivent provenir du système d'exploitation, ou peut-être du pare-feu. C'est un bon moyen de résoudre le problème par application, mais nous allons vers de nombreuses applications, pour résoudre les problèmes sur chaque site Web.
Cédric Boivin
Mais même si vous pouviez faire ce que vous vouliez, vous ne pourriez pas faire en sorte que différents sites Web utilisent différentes IP; de cette façon, vous pourriez :-)
Massimo
1

La sélection de l'adresse source d'un appel sortant est gérée différemment par la pile TCP / IP depuis la refonte de Vista. Dans XP / 2003 et versions antérieures, l'adresse source était déterminée par la table de routage lorsqu'elle n'était pas explicitement déclarée par l'application effectuant l'appel sortant. Depuis Vista / 2008, l'adresse source peut être déterminée par affinité de préfixe à l'adresse de passerelle de destination ou de saut suivant si la destination n'est pas locale. La publication suivante du blog Technet explique très bien le changement de comportement.

http://blogs.technet.com/b/networking/archive/2009/04/24/source-ip-address-selection-on-a-multi-homed-windows-computer.aspx

Brian Mellinger
la source
1

J'ai Windows 2008 R2 SP1 x64 Enterprise Edition utilisé comme serveurs Web avec une seule carte réseau.

J'ai rencontré le même problème décrit ci-dessus. Je veux que les connexions sortantes soient gérées par l'adresse IP par défaut (celle signée sur le serveur) mais il continue de choisir au hasard quelle adresse IP parmi mes 10 adresses IP pour mes 10 sites Web sur ce serveur.

Ils s'affichent tous en tant qu'adresses IP préférées si vous exécutez la commande suivante.

Netsh int ipv4 show ipaddresses level=verbose

J'ai essayé de télécharger le correctif mais pour une raison quelconque (et j'ai vérifié deux fois), il a dit "il ne peut pas fonctionner sur cette version du système d'exploitation). Si vous voulez essayer , c'est ici .

Si vous avez un serveur MS DNS en cours d'exécution, vous remarquerez que le même nom de serveur sera enregistré 11 fois (dans mon cas) 1 IP pour le serveur et 10 IP pour chacun des sites Web.

Ce que je pense que cela pourrait être une solution de contournement (pour le moment, à moins que quelqu'un d'autre n'ait une meilleure solution)

Si pour aller au serveur Windows sous les propriétés TCP où vous avez entré les adresses IP pour le serveur et les sites Web, vous y verrez un onglet DNS. Désélectionnez maintenant ENREGISTRER LES ADRESSES DE CONNEXIONS et REDÉMARREZ le serveur (et laissez la case décochée).

Si vous archivez le serveur DNS, toutes les entrées DNS avec les adresses IP auront disparu.

Entrez maintenant MANUELLEMENT dans DNS le nom du serveur et l'adresse IP préférée . Et cela devrait résoudre le problème.

Si l'un de vous a une meilleure solution, partagez-la avec nous.

Gripe: Je ne sais pas pourquoi MS n'a pas résolu ce problème. Ils devraient avoir créé une option (comme une case à cocher) pour les serveurs qui transportent plusieurs adresses IP sur le même sous-réseau afin que vous puissiez sélectionner l'adresse IP qui devrait être préférée.

Neo
la source
0

Une «adresse par défaut» est celle placée dans la première zone de saisie sur les propriétés de la carte d'interface car elle répondra par défaut avec celle-ci, toutes les autres sont considérées comme secondaires.

(Le serveur ISA est un bon exemple de ce comportement car vous ne pouvez pas lui dire de répondre avec l'IP avec laquelle il a été contacté ...)

Alexandre Nizoux
la source
C'est supposé être comme ça, mais ça ne marche pas. Dans mon cas, l'ip 99.49 est en configuration avancée et le 99.100 est celui qui spécifie dans la propriété d'ipv4 ....
Cédric Boivin
C'est vraiment bizarre car notre infrastructure ici l'utilise beaucoup pour les filtres de serveur Web et d'autres choses. Avez-vous essayé de supprimer toutes les adresses IP des propriétés de la carte, sauf celle que vous souhaitez définir par défaut, de les appliquer et de les remettre ensuite?
Alexandre Nizoux
Oui je l'essaye, et le même problème se produit lorsque j'entre 99.49
Cédric Boivin
99,49 est-il le plus bas de vos IP?
Alexandre Nizoux
Oui c'est vous pouvez regarder mon ipconfig sur le dessus
Cédric Boivin
0

J'ai trouvé une solution:

  • sur votre nic principal, supprimez l'IP que vous voulez par défaut, supprimez également gw par défaut, donnez-lui une métrique élevée (exemple: 50)
  • ajoutez un nic secondaire, donnez-lui l'IP que vous voulez comme «par défaut», définissez GW par défaut ici et dans l'onglet avancé, définissez la métrique la plus basse (exemple: 1)

Cela a fonctionné dans mon 2008R2 / IIS7 avec 20 adresses IP.

BR, Matija

user39080
la source
0

Je l'ai résolu en changeant le masque de réseau 255.255.255.255pour toutes les adresses supplémentaires et en ne laissant que l'adresse par défaut inchangée.

J'espère que cela résoudra pour vous!

Aldo
la source