If you're doing anything network-related in WSL2 like playing around with Wireshark or trying out different kube CNIs, you will need to build a custom kernel to enable certain features that are disabled by default.
This process was a pain in the ass so I wrote a simple script.
Install the build dependencies:
sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev cpio qemu-utils
Build the kernel and kernel modules. You will need sudo perms:
make fetch
make CONFIG=cilium.config
The config wizard will ask you to set some options, just pick something reasonable since we don't really care.
The output folder will contain two files: bzImage and modules.vhdx.
Reference these files in the .wslconfig by setting values for kernel and kernelModules. See documentation.
Based on WSL2-Linux-Kernel - Build Instructions.
I offer zero support.