Virtual WiFi macht Windows 7 zum Access Point

Wireless Local Area Networks (WLAN) erfreuen sich steigender Popularität. Fast jeder, den ich kenne, hat zu Hause einen WLAN-Router stehen und nutzt die Freiheit, mit dem Laptop auch auf dem Balkon im Internet surfen zu können.

Ein WLAN kann dabei in zwei unterschiedlichen Modi betrieben werden: Mobile Geräte wie beispielsweise Notebooks können entweder direkt untereinander oder mit einem gemeinsamen Zugriffsknoten verbunden werden. Im ersten Fall spricht man von einem Adhoc-Netzwerk. Diese Variante sieht man aber recht selten, da darüber nur gemeinsam Daten ausgetauscht werden können und kein Internetzugriff hergestellt werden kann.

Die zweite Variante mit einem gemeinsamen Zugriffsknoten nennt sich Infrastruktur-Netz. Sie wird am häufigsten in Verbindung mit einem drahtlosen Router eingesetzt, der die Verbindung zum Internet (beispielsweise über DSL) allen angeschlossen Clients gemeinsam zur Verfügung stellt.

Bisher ist es so, dass eine drahtlose Netzwerkschnittstelle unter Windows nur in einem Modus betrieben werden kann. Entweder Adhoc- oder Infrastruktur-Netz. Weiterhin kann man mit nur einem drahtlosen Netzwerk pro WLAN-Karte zur gleichen Zeit verbunden sein. Bis Windows Vista sah die WiFi-Architektur so aus:

Virtual-Wifi-1

Seit 2002 arbeitete Microsoft Research unter dem Codenamen MultiNet an einer Virtualisierung der WiFi-Architektur. Die Ergebnisse wurden als Projekt VirtualWiFi der Öffentlichkeit vorgestellt und in mehreren Projekten eingesetzt:

Entwickelt für Windows XP wurde es bisher über 100.000 mal heruntergeladen und an mehr als 400 Universitäten als Bestandteil des Mesh Academic Resource Toolkits weltweit verteilt.

VirtualWiFi abstrahiert eine WLAN-Karte, so dass sie als virtueller Netzwerkadapter mehrfach im System erscheint. Jede virtuelle Karte kann dann vom Anwender separat konfiguriert werden und erlaubt damit die Verbindung zu unterschiedlichen drahtlosen Netzwerken zur gleichen Zeit über nur einen physikalischen Netzwerkadapter.

Wofür kann man das nun gebrauchen? Zum Beispiel kann man gleichzeitig mehrere Rechner drahtlos vernetzen, um darüber spielen zu können und gleichzeitig einen der Rechner mit einem (kostenpflichtigen) Hotspot verbinden, über den dann alle Clients sich den Zugang teilen. Ein anderes Beispiel ist die Heimvernetzung, wenn das Funksignal des WiFi Access Points nicht bis in alle Ecken des Hauses reicht. Mit VirtualWiFi  kann ein Computer nun gleichzeitig auch als Repeater arbeiten und die Funkabdeckung erhöhen.

In Windows 7 griff Microsoft diese Technologie auf und baute sie direkt in das Betriebssystem ein. Im ersten Schritt wurde dafür die generelle WiFi-Architektur verändert, um die Virtual WiFi Infrastruktur zu integrieren:

Virtual-Wifi-2

Im nächsten Schritt kamen dann alle notwendigen Funktionen hinzu, um einen Software Access Point (SoftAP) abbilden zu können. Den größten Teil deckt dabei Microsoft ab. Die Hersteller müssen lediglich in ihren Netzwerktreibern SoftAP unterstützen. Zur weitreichenden Untertützung der neuen Technologie wurde die Unterstützung von SoftAP als Bedingung für die Erfüllung des Windows 7 Logotests für die Treiber drahtloser Netzwerkkarten gemacht:

Virtual-Wifi-3

In Windows 7 kann Virtual WiFi eine physikalische WLAN-Karte um eine zweite virtuelle Karte erweitern. Wir nennen das neue Feature Wireless Hosted Network – auf Deutsch gehostetes Netzwerk. In der MSDN finden Hersteller eine Dokumentation zur Implementierung von Virtual WiFi in einen 802.11 Miniport-Treiber:

Die grundlegende Einrichtung, das Netzwerk und der Betrieb werden dabei über die folgende Funktionen gesteuert:

Für Anwender sind diese Funktionen in Kommandos der Netshell eingeflossen. netsh wlan /? zeigt die grundlegende Bedienung:

  • netsh wlan start hostednetwork
    Startet das gehostete Netzwerk.
  • netsh wlan stop hostednetwork
    Stoppt das gehostete Netzwerk.
  • netsh wlan set hostednetwork [mode=]allowed|disallowed
    Aktiviert oder Deaktiviert das gehostete Netzwerk.
  • netsh wlan set hostednetwork [ssid=]<ssid> [key=]<passphrase> [keyUsage=]persistent|temporary
    Konfiguriert die Einstellungen für das gehostete Netzwerk. Es wird immer WPA2-PSK mit AES zur Verschlüsselung genutzt.
  • netsh wlan refresh hostednetwork [data=] key
    Aktualisiert den Schlüssel für das gehostete Netzwerk.
  • netsh wlan show hostednetwork [[setting=]security]
    Zeigt Informationen über das gehostete Netzwerk an.
  • netsh wlan show settings
    Zeigt die globalen WLAN-Netzwerkeinstellungen an.

Wie verhält sich das nun in der Praxis? Man benötigt als erstes eine unterstützte Netzwerkkarte. Die mit Windows 7 ausgelieferten WLAN-Treiber unterstützen für fast alle Karten das gehostete Netzwerk. Ich habe es mit Karten von Atheros und Broadcom selbst getestet. Lediglich der Treiber von Intel beherrscht die notwendigen Erweiterungen bisher nicht. Es wird aber von Intel einen aktualisierten Treiber geben, den wir über Windows Update zur Verfügung stellen werden.

Als nächstes öffnet man eine Eingabeaufforderung als Administrator und gibt folgendes in einer Zeile ein:

netsh wlan set hostednetwork mode=allow ssid="Virtual WiFi" key="mh29-dyi9-txwt" keyUsage=persistent

Die SSID und den Key passt man natürlich an die eigenen Wünsche an. Wenn man alles richtig eingegeben hat, bekommt man als Antwort:

  1. Der Modus für das gehostete Netzwerk ist so festgelegt, dass das gehostete Netzwerk zugelassen wird.
  2. Die SSID des gehosteten Netzwerks wurde erfolgreich geändert.
  3. Die Benutzerschlüsselpassphrase des gehosteten Netzwerks wurde erfolgreich geändert.

Im Gerätemanager erscheint dann eine neue Netzwerkkarte:

Virtual-WiFi-4

Sie taucht als Drahtlosnetzwerkverbindung 2 im System auf:

Virtual-WiFi-5

Mit netsh wlan start hostednetwork startet man dann das gehostete Netzwerk. Windows 7 wird auf dem Host den neuen Adapter automatisch mit dem neuen Netzwerk verbinden…

Virtual-WiFi-7

…und den Anwender fragen, wie er das Netzwerk einstufen möchte. Ich habe im obigen Beispiel “Arbeitsplatznetzwerk” gewählt. Die Standardeinstellung lautet “Öffentliches Netzwerk”:

Virtual-WiFi-6

Informationen über den derzeitigen Status erhält man mit netsh wlan show hostednetwork:

Einstellungen für das gehostete Netzwerk
-----------------------
Modus : Zugelassen
SSID-Name : "Virtual WiFi"
Maximale Clientanzahl : 100
Authentifizierung : WPA2-Personal
Verschlüsselung : CCMP

Status des gehosteten Netzwerks
---------------------
Status : Gestartet
BSSID : 00:21:00:ed:cb:7b
Funktyp : 802.11g
Kanal : 1
Anzahl Clients : 0

Man sieht, dass das Netzwerk betriebsbereit ist und sich noch kein Client verbunden hat. Wenn man nun auf einem anderen Client das Netzwerkicon in der Taskleiste rechts unten klickt, erscheint das neue Netzwerk als ganz normales drahtloses Netzwerk und kann entsprechend verbunden werden:

Virtual-WiFi-8

Wenn man nun zum Beispiel sich in einen Hotspot eingebucht hat, kann man mit Hilfe des gehosteten Netzwerks ein zweites WLAN eröffnen, das nur für einen selbst zur Verfügung steht. Hier kann man dann weitere Laptops, Spielekonsolen, Musikplayer mit drahtlosem Internetzugang, Smartphones, etc. einbinden und die Internetverbindung über den Hotspot teilen. Mir erspart das zukünftig das Mitschleppen von einem WLAN-Router, wenn ich mal wieder unterwegs bin.

Damit Mitglieder des gehosteten Netzwerks den Internetzugang gemeinsam nutzen können, muss lediglich in den Eigenschaften der Drahtlosnetzwerkverbindung, die mit dem Hotspot verbunden ist, die gemeinsame Nutzung der Internetverbindung aktiviert und die Drahtlosnetzwerkverbindung 2 als Heimnetzwerkverbindung festgelegt werden:

Virtual-WiFi-10

Man könnte darüber natürlich auch andere Arten von Internetzugängen drahtlos teilen. Das können drahtgebundene Zugänge über ein Ethernetkabel, als auch drahtlose Zugänge über UMTS sein, wenn sich die UMTS-Karte als Wählverbindung im System einrichten lässt. Windows 7 agiert dann wie ein Gateway zwischen den Netzen. Das gehostete Netzwerk wird dabei mittels NAT gegenüber Zugriffen aus dem äußeren Netz abgeschottet. Ein DHCP-Server wird durch die Konfiguration der gemeinsamen Nutzung der Internetverbindung automatisch gestartet und vergibt an die Clients IP-Adressen aus einem vordefinierten Segment.

Zum Anhalten des gehosteten Netzwerks gibt man netsh wlan stop hostednetwork ein. Das gehostete Netzwerk wird dann beendet.