microsoft / WSL

Issues found on WSL
https://docs.microsoft.com/windows/wsl
MIT License
17.55k stars 823 forks source link

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

Open tbarbette opened 2 years ago

tbarbette commented 2 years ago

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

4-FLOSS-Free-Libre-Open-Source-Software commented 1 week ago

Also networkingMode=bridged seems to only support single vmSwitch=bridgedinterface while host is equipped with multi NIC. Unless workarounds such as https://github.com/dantmnf/WSLAttachSwitch?tab=readme-ov-file#wslattachswitch was used.

We recall that it is not sufficient to enable MPTCP on the kernel, since not all Windows network interface are exposed to WSL2.

MPTCP