Digamos que haja um bug em uma implementação TCP/IP do Windows. O WSL2 seria afetado por isso? O WSL2 Ubuntu usaria a pilha TCP/IP do kernel Linux nativo?
Digamos que haja um bug em uma implementação TCP/IP do Windows. O WSL2 seria afetado por isso? O WSL2 Ubuntu usaria a pilha TCP/IP do kernel Linux nativo?
Sim.
Além disso, sim.
A rede WSL2 está usando a implementação TCP/IP nativa do Linux por meio do kernel WSL2. Esse kernel é construído a partir do kernel Linux oficial upstream, com adições relativamente pequenas para otimizar seu desempenho e comportamento no ambiente WSL.
No entanto, mesmo que a pilha nativa do Linux esteja sendo usada, a interface de rede é virtual, que se conecta a um switch Hyper-V virtual, que obviamente usa a pilha TCP/IP do Windows para se conectar (geralmente) a uma NIC física.
Portanto, ao usar o Ubuntu no WSL2, você não necessariamente contorna os problemas na implementação de rede do Windows. Em vez disso, você realmente tem um ponto adicional de falha:
E vi um problema surgir especificamente na implementação do Hyper-V (do WSL Github), embora não me lembre exatamente o que era no momento.
Observação: há um cenário possível em que consigo pensar no qual o Ubuntu não usaria os comutadores virtuais Hyper-V/Windows. Se você usasse um NIC USB, poderia expô-lo diretamente ao Ubuntu via USB/IP. Oh espere ... ;-)
Ok, enquanto você está tecnicamente usando a pilha de IP do Windows nesse cenário, não está se conectando à rede externa usando o Hyper-V ou a NIC do Windows.
Observe que isso provavelmente requer que você crie seu próprio kernel WSL2, que incluiria suporte para USB NIC. É duvidoso que o estoque WSL2 já venha com esse suporte ( as notas de lançamento não indicam que ele foi adicionado), embora tenha sido solicitado como um recurso.