Multihoming, der IP-Stack und starke Hosts

Mehrere IP-Adressen auf einem Windows-System einsetzen

16.01.2014
Von  und
Frank-Michael Schlede arbeitet seit den achtziger Jahren in der IT und ist seit 1990 als Trainer und Fachjournalist tätig. Nach unterschiedlichen Tätigkeiten als Redakteur und Chefredakteur in verschiedenen Verlagen arbeitet er seit Ende 2009 als freier IT-Journalist für verschiedene Online- und Print-Publikationen. Er lebt und arbeitet in Pfaffenhofen an der Ilm.
Thomas Bär, der seit Ende der neunziger Jahre in der IT tätig ist, bringt weit reichende Erfahrungen bei der Einführung und Umsetzung von IT-Prozessen im Gesundheitswesen mit. Dieses in der Praxis gewonnene Wissen hat er seit Anfang 2000 in zahlreichen Publikationen als Fachjournalist in einer großen Zahl von Artikeln umgesetzt. Er lebt und arbeitet in Günzburg.

Als Quelle überspringen: skipassource-Flag kann helfen

Bei den aktuellen Windows-Systemen steht den Administratoren jedoch mit der Netshell eine sehr gute Möglichkeit zur Verfügung, IP-Adressen selektiv im DNS zu registrieren. Dies gelingt mithilfe des neuen Netsh-Flags "skipassource". Diese Einstellung wird auf deutschen Systemen dann mit "Als Quelle überspringen" angezeigt.

Einfügen "per Hand": Mithilfe des Netsh-Kommandos wird eine zusätzliche Adresse eingefügt, die nicht im DNS registriert wird und über die auch keine IP-Pakete nach draußen geschickt werden.
Einfügen "per Hand": Mithilfe des Netsh-Kommandos wird eine zusätzliche Adresse eingefügt, die nicht im DNS registriert wird und über die auch keine IP-Pakete nach draußen geschickt werden.

Eine solche Möglichkeit wurde erstmals mit dem Hotfix 975808 für ältere Windows-Server-2008-SP2- und Vista-Systeme sowie mit dem Hotfix 2386184 für Systeme unter Windows Server 2008 R2 und Windows 7 bereitgestellt. Wer noch Vista-Systeme im Einsatz hat, wird wahrscheinlich diesen Hotfix einspielen müssen, um die im folgenden Abschnitt beschriebenen Möglichkeiten nutzen zu können. Auf allen uns im Testumfeld zur Verfügung stehenden aktuellen Systemen unter Windows Server 2008 R2 und Windows 7 war das allerdings nicht nötig, da Microsoft diesen Hotfix in einen der letzten generellen Updates integriert hat. Ganz aktuelle Rechner unter Windows 8 und Windows Server 2012 benötigen diesen Hotfix ebenfalls nicht, da bei ihnen der NetShell-Befehl bereits entsprechend erweitert ist.

Mit einem Script geht es schneller: Das im Artikel beschriebene sehr einfache PowerShell-Script löscht zunächst die IP-Adressen und fügt sie dann mit dem gesetzten "skipasssource"-Flag wieder ein.
Mit einem Script geht es schneller: Das im Artikel beschriebene sehr einfache PowerShell-Script löscht zunächst die IP-Adressen und fügt sie dann mit dem gesetzten "skipasssource"-Flag wieder ein.

Achtung: Weder dieser Hotfix noch die Updates ändern das grundsätzliche Verhalten der Windows-Systeme. Nach wie vor werden standardmäßig alle IP-Adressen in DNS registriert, auch wenn sie nicht für ausgehenden Netzwerkverkehr verwendet werden. Dadurch können dann beispielsweise auch Probleme mit der richtigen Konfiguration der Firewall auftauchen.

Mit dem zusätzlichen Flag steht Administratoren nur eine vereinfachte Möglichkeit zur Verfügung, dieses Verhalten nach ihren Vorgaben zu beeinflussen. Mit folgendem Aufruf kann eine IP-Adresse entsprechend konfiguriert werden:

netsh interface ipv4 add address <Name_Netzwerkschnittstelle> <IP-Adresse> skipassource=true

In diesem Zusammenhang ist ein Hinweis wichtig: Sie können dieses Kommando nicht auf bereits bestehende IP-Adresse ausführen. Es funktioniert nur, wie hier gezeigt, mit dem Anlegen einer neuen Adresse. Bestehende IP-Adressen müssen also zunächst einmal gelöscht und dann mit diesem neuen Flag wieder hinzugefügt werden. Danach zeigt der folgende Befehl, ob die Umstellung funktioniert hat:

netsh interface ipv4 show ipaddresses level=verbose

In der Auflistung aller IP-Adressen ist dann unter dem Abschnitt "Als Quelle überspringen" der Wert "true" oder "false" zu sehen. Diese Adressen werden nun auch nicht mehr für ausgehende Pakete verwendet.

Sollen mehrere Adressen auf diese Weise bearbeitet werden, lässt sich das mithilfe einiger PowerShell-Kommandos leicht realisieren:

$Aktuelle_IPs = "10.1.1.15","10.1.1.16","10.1.1.17","10.1.1.18"

foreach ($ip in $Aktuelle_IPs){

netsh interface ip delete address offen $ip

write-host "$ip gelöscht!"

netsh interface ip add address "offen" $ip 255.255.255.0 skipassource=true

write-host "$ip hinzugefügt"

}

In diesem Code müssen natürlich die richtigen Namen der Netzwerkschnittstelle und der Subnetzmaske eingesetzt werden. Wir haben hier bewusst nur PowerShell-2.0-Code verwendet, weil so ein Script zur Verfügung steht, das auch auf älteren Systemen problemlos abläuft.

Geprüft haben wir es unter Windows 7 und Windows 8 sowie unter Windows Server 2008 R2 und Windows Server 2012. Natürlich sollten Sie zudem darauf achten, dass Sie die IP-Adresse, die Sie als die primäre IP-Adresse für Ihren Server verwenden möchten, nicht mit diesen Befehlen verarbeiten.

Denken Sie bitte auch daran, dass wir zwar nach wir vor den Begriff "primäre IP-Adresse" in diesem Zusammenhang verwenden, aber die aktuellen Windows-System standardmäßig keine IP-Adresse als primäre Adresse ausweisen, wie es noch unter Windows XP oder bei Windows Server 2003 der Fall war.

Hotfix bei Fehlverhalten

Abschließend müssen wir noch auf einen weiteren Hotfix hinweisen, der nötig sein kann, damit diese Art der Manipulation auch wirklich funktioniert.

Es kann durchaus vorkommen (so auch bei einem unserer Testsysteme geschehen), dass Sie diese Änderungen mittels Netsh-Kommando und "skipassource"-Flag durchgeführt und danach Änderungen an einer oder mehrerer der IP-Adressen über die grafische Oberfläche vorgenommen haben. So hatten wir beispielsweise die Subnetzmaske einer der IP-Adressen, die wir zuvor mit "skipassource" markiert hatten, über die grafische Oberfläche nachträglich verändert

Da in diesem Fall ebenfalls die alte IP-Adresse gelöscht und durch die neue ersetzt wird, kann es passieren, dass danach die Markierung für "Als Quelle überspringen" verschwunden ist - die GUI hat sie gelöscht. Auch für dieses "Fehlverhalten", das bei Systemen mit Windows 7 oder Windows Server 2008 R2 auftreten kann, stellt Microsoft unter der Artikel-ID 2554859 einen Hotfix zum Download bereit. Auf aktuellen Systemen wie Windows 8 oder Windows Server 2012 treten diese Probleme hingegen nicht auf. (mje)