microsoft / microsoft/WSL

WSL2 : Mirror all physical interfaces (to enable multipath solutions such as MPTCP)

Open
#8,743 1 comment 11 reactions 0 assignees View on GitHub
feature
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

**Problem**
While it is possible to compile a WSL Kernel with MPTCP (see #8177), it is a bit useless because one cannot mirror the real physical interfaces inside WSL.

**Solution**
Create one virtual interface per physical interface in WSL. Even if they're all NATed (in different /24 networks for instance), it is sufficient. This would also more closely match the behavior of WSL1 that has all interfaces available.

**Describe alternatives you've considered**
#4150 describes techniques to have access to one physical interface, but it is not possible to have 2. I tried to create two virtual interface in Linux that are separately NATed and therefore Windows sees two different TCP flows that comes from the virtual interface of WSL. However there is no source-routing in Windows and it is not possible to steer the two flows through different physical interfaces.

**Comments**
* In a general scope, multi-pathing techniques are on the rise for the mass market, especially with 5G networks and 5G ATSSS that offer performance on par with wired lines. MP-QUIC is on the path of deployment too.
* Many WSL users are developers that would benefit from keeping their SSH sessions alives when hopping through Wifi, Mobile and Ethernet. MPTCP allows that.
* This issue is independent of having MPTCP in Windows itself. Even if Windows had support it would not work in WSL without exposing the multiple interfaces.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the WSL2 networking behavior described here and the access techniques in #4150, alongside the MPTCP context in #8177. Done means WSL exposes one virtual interface for each physical interface, with separate NAT paths sufficient for multipath solutions such as MPTCP.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
networking, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.