The new TUN mode doesn't get along with the WSL mirrored networking mode. If mirrored mode is enabled, WSL won't be able to start. However, there is no issue with the default NAT networking mode.
Steps to reproduce:
Shut down the WSL stack. (wsl --shutdown)
Run the warp-plus in TUN mode (warp-plus.exe --tun-experimental)
Try to run the WSL (hangs forever...)
If WSL is already running and then the TUN mode is enabled on the Windows host, connections from WSL won't routed through the TUN device (executing curl https://api.ipify.org returns the machine's public IP address instead of the Cloudfalre's WARP)
The OpenConnet also leverages the same driver (Wintun) but there is no issue with it.
I noticed that with warp-plus TUN mode, no IP address had been assigned to the related mirrored interface (eth1) inside the WSL:
saber@Saber:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 10.255.255.254/32 brd 10.255.255.254 scope global lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 20:89:84:40:69:61 brd ff:ff:ff:ff:ff:ff
3: loopback0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:a1:a0:5d brd ff:ff:ff:ff:ff:ff
5: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc mq state UP group default qlen 1000
link/ether 60:36:dd:f1:ea:f5 brd ff:ff:ff:ff:ff:ff
inet 172.20.10.4/28 brd 172.20.10.15 scope global noprefixroute eth2
valid_lft forever preferred_lft forever
inet6 2a01:***:***d/64 scope global nodad deprecated noprefixroute
valid_lft forever preferred_lft 0sec
inet6 2a01:***:***1/128 scope global nodad noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::19bc:e883:fb40:fde2/64 scope link nodad noprefixroute
valid_lft forever preferred_lft forever
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:a9:32:e7:4d brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
8: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:15:5d:6e:57:7c brd ff:ff:ff:ff:ff:ff
The new TUN mode doesn't get along with the WSL mirrored networking mode. If mirrored mode is enabled, WSL won't be able to start. However, there is no issue with the default NAT networking mode.
Steps to reproduce:
wsl --shutdown
)warp-plus.exe --tun-experimental
)If WSL is already running and then the TUN mode is enabled on the Windows host, connections from WSL won't routed through the TUN device (executing
curl https://api.ipify.org
returns the machine's public IP address instead of the Cloudfalre's WARP)The OpenConnet also leverages the same driver (Wintun) but there is no issue with it. I noticed that with warp-plus TUN mode, no IP address had been assigned to the related mirrored interface (
eth1
) inside the WSL:But this is not the case with OpenConnect: (the mirrored Wintun interface is
eth02
)warp-plus v1.2.1 Windows 11 build 26100.712 WSL v2.2.4.0