WSL Networking: Linux-Sockets nutzen den Windows-Netzwerkstack

Microsoft hat am 8. November 2016 den Netzwerkaufbau des Windows Subsystem for Linux beschrieben. Der technische Beitrag erklärt, wie WSL Linux-Netzwerkaufrufe an den Windows-Netzwerkstack weiterreicht. Es handelt sich um eine Beschreibung der Architektur, nicht um die Ankündigung einer neuen Windows-Version.

Linux-Systemaufrufe treffen auf Winsock Kernel

Für Internet-Sockets führt der Weg über den LXCore-Treiber und die Bibliothek WslSocket.lib zu Winsock Kernel, kurz WSK. Die Linux-Anwendung verwendet weiterhin ihre BSD-Socket-Schnittstellen. Sie wird nicht auf die übliche Win32-Winsock-API umgeschrieben.

Die Unterstützung umfasst TCP und UDP. Raw-Sockets sind im beschriebenen Stand auf ICMP begrenzt. Lokale Unix-Sockets behandelt WSL dagegen innerhalb des Subsystems, ohne sie durch WSK zu leiten.

DNS wird abgeglichen, Routingabfragen sind noch unvollständig

Beim Start erfasst der LXSS Session Manager die Windows-Netzwerkschnittstellen und DNS-Einstellungen. WSL übernimmt diese Informationen und schreibt die DNS-Konfiguration in /etc/resolv.conf. Änderungen an der Windows-Konfiguration werden ebenfalls weitergegeben.

Bei Netlink unterstützt Microsoft ausgewählte Abfragen aus NETLINK_ROUTE. Schnittstellen und Adressen lassen sich über RTM_GETLINK und RTM_GETADDR ermitteln. Die Routingtabellen-Abfrage RTM_GETROUTE wird ausdrücklich erst als geplant geführt. Der Name der Netlink-Familie bedeutet hier also keine vollständige Linux-Kompatibilität.

Die Netzwerkarchitektur ist außerdem von der angekündigten besseren Zusammenarbeit zwischen WSL und Sicherheitssoftware zu unterscheiden. Eine grundsätzlich unterstützte Socket-Funktion garantiert nicht, dass eine konkrete Firewall- oder Antivirus-Konfiguration die Verbindung zulässt.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein