MeshPing

Alle Skripte sind Muster ohne jede Gewährleistung oder Funktionsgarantie. für Schäden bin ich nicht verantwortlich. Achten Sie auf Zeilenumbrüche bei der Übernahme.

Der Name "MeshPing" leite ich von einem vermaschten Netzwerk ab, welches untereinander verknüpft ist. Wenn es viele Server in einem solchen Netzwerk gibt, dann sind heute die meisten Netzwerke komplett miteinander verbunden. Aber wie testen Sie das bei einem größeren Netzwerk ?. MeshPing wird nun mit einer Liste von Systemen gefüttert und bringt diese dann dazu alle anderen Systeme anzupingen.

So erhalten Sie nach einem Durchlauf eine Information, welches System mit welchem anderen System Verbindung per ICMP aufnehmen kann. Damit dies funktioniert, müssen aber Bedingungen erfüllt sein:

  • Windows 2003 oder Windows XP
    Leider erlauben erst diese Betriebssysteme einen "PING" per WMI aus der Ferne. Alle anderen Systeme könnten nur über den Umweg eines Remote Command (z.B.: Sysinternals PSEXEC) genutzt wird, was ich aber noch nicht implementiert habe
  • Erreichbarkeit der Systeme
    Der Computer, auf dem MeshPing aufgerufen wird, muss per RPC die WMI-Schnittstelle der anderen Systeme erreichen können.
  • Administrator über die entfernten Systeme
    Die Verbindung und Steuerung per WMI gelingt nur, wenn Sie Administrator über das entfernte System sind.

Praktischer Einsatz

Die Idee zu MeshPing habe ich bei einem Kunden erhalten, bei dem die Netzwerkstruktur fundamental umgestellt wurde. Damit verbunden waren natürlich sehr viele Änderungen im IP-Routing und wenn dabei der ein oder andere Leitweg nicht korrekt gesetzt wurde, dann fällt dies nicht immer sofort auf. Da aber sowohl mehrere Domain Controller als auch Exchange Server in den verschiedenen Standorten vorhanden waren, kann mit MeshPing eine einfache Tabelle der Erreichbarkeit erstellt werden. Und damit indirekt Probleme bei Verbindungen erkennen.

Grenzen beim Einsatz

Ein Ping ist natürlich nur ein sehr einfacher Test. Er stellt zum einen zwar sicher, dass die Namensauflösung funktioniert und die Gegenstelle antwortet. Aber es ist keine SMTP-Verbindung und kann daher nicht als echter Test der Durchgängigkeit gewertet werden. Eine Überwachung von Eventlog und Performance Counter ist speziell bei Exchange weiterhin wichtig.

Ein weiteres Problem gibt es, wenn die Netzwerkstruktur keine komplette Verbindung zwischen den Servern zulässt. Nicht alle Netzwerke sind "voll geroutet" und dank Exchange Connectoren ist dies auch nicht einmal erforderlich oder gewollt. Dann hilft MeshPing nicht wirklich weiter.

Die Ausgabe

Das Ergebnis aller Pings von jedem Server zu jedem anderen Server wird als XML-Datei ausgegeben. Jeder Eintrag entspricht quasi einem Datensatz mit Informationen über Quelle und Ziel aber auch die Dauer, Anzahl der Hops und IP-Adressen.

So können Sie mit einer passenden Ansicht auch prüfen, ob die Namensauflösung einen Namen immer auf die gleiche IP-Adresse auslöst. Einen einfachen Report zeigt der Internet Explorer mit dem ebenfalls erstellten Stylesheet:

Anscheinend kann SRV02 den SRV01.msxfaq.de nicht erreichen. Auch der Weg von SRV1 zu SRV2 scheint einen anderen Weg zu gehen, da auch die IP-Adresse 10.3.1.2 von 10.2.1.2 abweicht. Entweder hat der SRV02 zwei Netzwerkkarten oder bei der Namensauflösung ist was nicht korrekt eingestellt.

Aber sie sehen auch dass Meshping erst mal ein "Datensammler" ist und eine Auswertung letztlich durch Excel oder andere Programme erfolgen sollte.

Das Skript

Dieses Skript ist kein öffentlicher Download.
Das Skript macht nur in großen Umgebungen Sinn, deren Leitwege nicht mehr auf einem DIN-A4 Blatt überschaubar sind. Selbst dann müssen die Ergebnisse interpretiert werden.
Informationen, warum diese Skripte nicht öffentlich sind, finden Sie auf nicht public.

Das Skript benötigt natürlich eine Liste der Systeme, die als Quelle und Ziel des Pings dienen sollen. Im Code implementiert, sind die beiden Funktionen für eine Suche nach allen Exchange Servern und allen DCs auf den "Active Directory Sites and Services". Dazu müssen Sie natürlich zumindest diese Datenquellen auch lesen dürfen. Alternativ können Sie die Liste der Systeme als Array übergeben. Fakt ist aber, dass Sie einen der drei Quellen aktivieren und konfigurieren müssen.

Zukünftige Erweiterungen

Das WMI-Pingobjekt hat wohl auch die Option die Zwischenstationen zu ermitteln, also ähnlich zu einem Traceroute. Wenn MeshPing nun viele Server kennt und die untereinander anpingt und dabei die Zwischenstationen ermittelt, dann sollte man doch eine Liste der Router, Netze und Verbindungen erstellen können. Als Krönung könnte man dann noch aus den Active Directory Sites and Services die Subnetze und Links abgleichen. Setzt man dann noch die Paketgröße des PING hoch, dann lassen sich auch zuverlässig langsamere Leitungen erkennen. Da kommt man fast ins träumen. Leider fehlt mir dafür die Zeit.

In der ersten Näherung könnte man aber schon mal die Subnetze mit den AD-Subnetzen querchecken

Weitere Links