2009-05-07 12 views
0

Bei dem Versuch, einen Server 2008 zu einer Verbindung mit einem SQL-Server zu bekommen, bemerkte ich eine Änderung in der 2008 IP-Stack, die mich ein wenig verwirrt hat. Ich suche entweder nach einer OS-Methode, um dies zu überschreiben, oder nach einer programmatischen Methode in .NET, um dies zu überschreiben.IIS7/2008 Sql/Service Verbindungsprobleme

Um dieses Argument zu verwenden, nehme ich an, dass ich einen Webserver mit mehreren IP-Adressen habe, um mehrere Standorte zu betreiben und Verbindungen zu mehreren Ressourcen (Webservice, SQL usw.) hinter einer Firewall herzustellen.

Die Firewall ist natürlich eingerichtet, um alle zu verweigern, nur was benötigt wird. Mit anderen Worten:

ALLOW FROM 10.10.10.1 TO 10.10.10.2 
ALLOW FROM 10.10.10.1 TO 10.10.10.15 
DENY ALL 

Vor Windows 2008, Windows 2000/2003 immer die Maschinen Basis-IP (10.10.10.1) verwendet wird, wenn die Netzwerkressourcen anfordert. Somit wurden die Firewall-Regeln erfüllt und der Zugriff wurde gewährt. Unter 2008 scheint es, dass es die beste Übereinstimmung auswählt:

Verbindung mit 10.10.10.2 kommt von IP 10.10.10.1. Firewall ist glücklich. Verbindung mit 10.10.10.15 kommt von IP 10.10.10.11, Firewall verweigert Verbindungen.

alle virtuellen IPS vom NIC natürlich aus- macht die Dinge funktionieren, weil jeder dann kommt her 10.10.10.1

Jetzt verstehe ich, etwas, dass diese Maschine zwei NICs zu haben waren, ist dies sinnvoll, da Änderungen an Implementieren Sie RFC3484 und IPv6 (http://support.microsoft.com/kb/968920) und starke/schwache Host-Modell ins Spiel kommt, aber für das Leben von mir, ich verstehe nicht, warum dies sollte geändert haben, wie IP mit einer einzigen NIC-Karte funktioniert.

Ich habe einen Support-Fall geöffnet und ich komme nirgendwohin. Ich höre murmeln von "öffne einfach deine Firewall, um Verbindungen vom 10.10.10.11 zu erlauben". Das ist nicht praktisch. Dies würde bedeuten, dass für jede IP-Adresse auf einer multihomed single nic-Maschine nur für Windows 2008 eine Allow-Regel hinzugefügt wird. Ich kann nicht glauben, dass ich mehr Löcher in Ihre Firewall stecke, nur für 2008. Der ip-Stack ist eine gute Antwort.

Gibt es eine Möglichkeit, dieses "Feature" im Jahr 2008 auf Maschinenebene zu deaktivieren? Gibt es eine Möglichkeit, dies in .NET auf der Maschinenebene zu deaktivieren? Gibt es eine Möglichkeit, dies pro Verbindung (SqlConnection, WebClient) zu deaktivieren?

+0

Zur Verdeutlichung des obigen Inhalts: Ich habe EINE Netzwerkkarte. Das bedeutet eine Metrik. Eine Netzmaske. Ich habe nicht mehrere Netzwerkkarten. – claco

Antwort

0

Sie sehen den Nebeneffekt der automatischen Routenmetrikberechnung. Wenn mehrere Adressen eine Route zu einer Adresse haben und Automatische Metriken (in den erweiterten Einstellungen unter TCP) aktiviert ist, versucht Windows den "schnellsten" Pfad zu dieser Adresse zu ermitteln und vorherzusagen.

Ich vermute, dass Ihre Schnittstellen (virtuell oder nicht) die gleichen Routenmetriken haben, so dass die Auswahl nicht deterministisch ist. Sie können die Verwendung Ihrer "Back-Edge" -Adresse unterstützen, indem Sie eine höhere Routenmetrik auf Ihre .10/ .11-Adressen setzen. Wenn automatische Metriken deaktiviert sind, können Sie auch eine explizite statische Route mit Ihrer 10.10.10.1-Adresse festlegen.

Weitere Informationen zu TechNet - Suche auf der Seite für automatische Metriken.

http://technet.microsoft.com/en-us/library/bb727001.aspx 

Für besser oder schlechter. Wenn beide Schnittstellen einen Pfad mit gleichen Metriken anzeigen, kann jede Schnittstelle gewinnen. Das Verhalten in der Vergangenheit war nicht deterministisch - es hat sich verändert.

Der beste Ansatz besteht darin, über die Befehlszeile route zu verwenden, um entweder eine statische persistente TCP-Route mit niedrigeren oder niedrigsten Kosten zwischen .1 und .2 zu erstellen. Alternativ erhöhen Sie die Kosten für jede Route auf .14 & .15 Adressen. Ich würde ersteres verwenden, da weniger Unterhalt und weniger Nebenwirkungen auf andere Kommunikationen vorhanden sind.

+0

Ich habe nur eine NIC/Schnittstelle. Nur eine Metrik. Es sei denn, Sie können einen Messwert pro IP-Adresse auf einem einzelnen NIC festlegen. – claco

+0

Und statische Routen? Yuk. Nicht, um die Trolle zu füttern, aber die Dinge waren einfach toll unter 2000/2003, und ich habe dieses Problem nicht mit * nix multihomed single NIC * nix Maschinen. Das ist so frustrierend ... mit einer einzigen NIC gibt es keinen Grund für den Stack, etwas anderes zu tun, was es immer getan hat. – claco

+0

Mit anderen Worten, mehrere IP-Adressen auf einer einzelnen NIC haben alle dieselbe Maske. Sie sind ALLE die engste Route zum Ziel dieses Karten-Gateway. Kein Grund, die root-IP nicht zu benutzen, wie es der Stack immer hat. – claco

Verwandte Themen