Windows Subsystem for Linux 2 - Addressing Traffic Routing Issues
Published Oct 20 2020 04:46 AM 30.5K Views

The Problem

So recently I was trying to run some kubectl commands using WSL2 to my home K8S cluster and encountered some strange events. Everything had worked fine when using WSL but for some reason I could now only ping external devices to my laptop (Router, Switch, Printer etc).


My Configuration

So just for clarification I have my configuration set like this.

  • My local network runs a subnet.
  • My laptop runs as
  • Hyper-V installed on the laptop.
  • WSL2 installed and running Ubuntu 18.04.
    • WSL vSwitch configured in Hyper-V Virtual Switch Manager as "Internal Network".
  • Hyper-V configured with a dedicated vSwitch for Kubernetes (K8s-Switch).
    • Set as "Internal Network".
  • 3 x Ubuntu 18.04 Kubernetes VMs configured below.
    • k8s-master-01 (
    • k8s-worker-01 (
    • k8s-worker-02 (

The worker and the nodes are all configured to route traffic correctly and can actively ping my host and resolve external domains.


The Investigation

After conducting some internet-based investigation, I found discovered I was not the only person seeing this, and an issue was already raised on GitHub under the Microsoft/WSL


There are some great discussions around the subject on here, but for anyone who wants to know the resolution that worked for me, keep reading.


The Resolution

After trying a few different suggestions, the best resolution I have found is listed by jonaskuke.

Essentially, we needed to set Forwarding to be enabled across the two v-Switches. Using this command (with admin rights) based on my v-Switch names works.




Get-NetIPInterface | where {$_.InterfaceAlias -eq 'vEthernet (WSL)' -or $_.InterfaceAlias -eq 'vEthernet (K8s-Switch)'} | Set-NetIPInterface -Forwarding Enabled




There are some discussions around post reboot persistency as it appears the setting is discarded post reboot, which may be due to the WSL v-Switch taking a while to imitate. However, keep this command in a .ps1 file and all is good.


Version history
Last update:
‎Oct 20 2020 04:46 AM
Updated by: