gethostbyname() gibt keine Cluster-erstellten virtuellen IP-Adressen zurück

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 257577 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D257577
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
257577 gethostbyname() Does Not Return Cluster Virtual IP Addresses Consistently
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Problembeschreibung

Wenn Ihr Programm die Funktion gethostbyname verwendet, enthält die zurückgegebene Liste von IP-Adressen möglicherweise nicht die vom Clusterdienst erstellten virtuellen IP-Adressen, oder es werden IP-Adressen aufgelistet, die derzeit nicht zu diesem Knoten gehören.

Ursache

Wenn der Clusterdienst eine virtuelle IP-Adresse hinzufügt oder entfernt, aktualisiert das TCP/IP-Protokoll nicht den Zwischenspeicher, von dem es die IP-Adressen zurückgibt.

Lösung

Installieren Sie das neueste Service Pack für Windows 2000, um dieses Problem zu beheben. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:
260910 Wie Sie das neueste Service Pack für Windows 2000 erhalten

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.Dieses Problem wurde erstmals in Windows 2000 Service Pack 2 behoben.

Weitere Informationen

In Windows NT 4.0 gibt "gethostbyname(lokaler Knotenname)" eine Liste zurück, die alle auf dem Server erstellten IP-Adressen enthält, einschließlich vom Clusterdienst erstellte virtuelle IP-Adressen. Bei Windows 2000 werden bei dem gleichen Vorgang gewöhnlich nur die IP-Adressen zurückgegeben, die dem Server permanent zugewiesen sind. Manchmal wird jedoch wie bei Windows NT 4.0 die komplette Liste zurückgegeben.

Diese Verhaltensänderung hängt mit der Implementierung des DNS-Auflösungsdienstes zusammen. Der Auflösungsdienst speichert beim Starten die Liste der lokalen IP-Adressen. Wenn er aufgefordert wird, den lokalen Knotennamen aufzulösen, gibt er die Liste von seinem Cache zurück, statt einen DNS-Server abzufragen. Das Problem besteht darin, dass der Auflösungsdienst keine Änderungsbenachrichtigungen für PNP-Adressen vom TCP-Stapel abhört, sondern diese Benachrichtigungen vom DHCP-Client erhält. Wenn der Auflösungsdienst eine Änderungsbenachrichtigung von DHCP erhält, aktualisiert er seine zwischengespeicherte Liste von lokalen IP-Adressen durch Abfragen des TCP-Stapels. Aus diesem Grund erfährt der Auflösungsdienst nur bei Auftreten einer nachfolgenden DHCP-Adressänderung, wenn der Clusterdienst eine neue Adresse erstellt. Dasselbe gilt, wenn Clusteradressen entfernt werden. Da DHCP-Adressänderungen selten vorkommen, werden Cluster-IP-Adressen von "gethostbyname" beim Auflösen des lokalen Knotennamens gewöhnlich nicht berücksichtigt.

In Windows 2000 hängt MSMQ mit seinem Active/Active-Szenario in einem Cluster von diesem neuen Verhalten ab und kollidiert daher mit dem Hot-Fix-Verhalten. MSMQ verwendet RPC für die Client/Server-Kommunikation. Beim Starten im Verlauf des Serverprozesses verwendet RPC "gethostbyname", um die Liste der abzuhörenden IP-Adressen zu bestimmen. Bei der Active/Active-Konfiguration wird ein MSMQ-Serverprozess mit dem lokalen Knotennamen verbunden, während ein anderer mit einem Cluster-erstellten virtuellen Server verbunden wird. Wenn "gethostbyname" die IP-Adresse des virtuellen Servers an den Prozess zurückgibt, der mit dem lokalen Knotennamen verbunden ist, hören beide Prozesse diese Adresse ab. Als Folge davon können Clients, die versuchen, die Verbindung zu dem virtuellen Serverprozess herzustellen, fälschlicherweise mit dem Prozess des lokalen Knotens verbunden werden. Somit beruht die Funktion von MSMQ auf der Tatsache, das vom Clusterdienst erstellte virtuelle IP-Adressen beim Auflösen des lokalen Knotennamens gewöhnlich nicht von "gethostbyname" zurückgegeben werden.

Eigenschaften

Artikel-ID: 257577 - Geändert am: Donnerstag, 13. Februar 2014 - Version: 2.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
Keywords: 
kbnosurvey kbarchive kbqfe kbhotfixserver kbbug kbfix KB257577
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com