WireGuard está obtendo uma porta nativa para o kernel do Windows

Se você executa o Windows, ficará feliz em saber que o protocolo de encapsulamento VPN de última geração, WireGuard, está recebendo uma porta nativa do kernel do Windows.

Se você usa VPNs (redes virtuais privadas) com frequência, ficará animado em saber sobre um novo projeto chamado WireGuardNT. Para quem não conhece, o WireGuard é um protocolo de tunelamento VPN relativamente novo que emprega padrões de criptografia modernos, possui uma base de código segura e excelente desempenho. Está integrado no Kernel Linux com versão 5.6, mas até o momento, só houve uma implementação de espaço de usuário no Windows. É aí que entra o WireGuardNT: é uma porta nativa do WireGuard para o kernel do Windows e promete tornar as coisas muito mais rápidas.

WireGuard no Windows atualmente usa uma base de código Go compartilhada com um driver TUN chamado Wintun. Funciona no espaço do usuário e como o anúncio diz, ele "pasta pacotes de e para a interface Wintun". Com o WireGuardNT, todo o protocolo é implementado diretamente na pilha de rede do Windows, assim como no Linux.

Embora o desempenho do WireGuard no Windows já seja muito bom, o plano é que ele melhore com o WireGuardNT. Este projeto ainda está em seus estágios iniciais, mas mesmo antes de ajustes e otimizações adicionais serem feitos, ele ainda é mais rápido por ser nativo no kernel. Isso pode ser atribuído em parte à redução da sobrecarga e da latência de todas as mudanças de contexto que acontecem com a implementação antiga do wireguard-go/Wintun.

Mas quão mais rápida é a nova implementação do WireGuardNT em relação à versão antiga do espaço do usuário? Em uma conexão com fio, os desenvolvedores estão vendo velocidades de até 7,5 Gbps; os desenvolvedores também notaram melhorias significativas no desempenho em relação ao Wi-Fi. Por exemplo, um testador com uma placa WiFi Intel AC9560 estava obtendo ~600Mbps sem WireGuard, ~95Mbps com a versão antiga do espaço do usuário via WiFi e ~600Mbps com a implementação WireGuardNT por Wi-Fi. Basicamente, o impacto no desempenho sem fio da versão antiga do espaço do usuário foi eliminado graças à nova porta nativa do kernel, e o desempenho com fio foi atualizado significativamente.

Conforme mencionado, o projeto ainda está em fase inicial. Para prepará-lo para lançamento, o projeto possui três fases na versão 0.4.z do cliente WireGuard para Windows. O primeiro estágio, em que estamos agora, vê o WireGuardNT escondido atrás do botão de registro ‘ExperimentalKernelDriver’, então se você não ligá-lo, ele não será habilitado. A segunda fase verá a implementação nativa do kernel habilitada por padrão. A terceira e última fase verá a remoção da antiga implementação do espaço de usuário wireguard-go/Wintun do cliente Windows, embora ainda seja mantida para oferecer suporte a outros aplicativos e usos.

Assim como acontece com lançamentos experimentais como este, o desenvolvedor Jason Donenfeld espera que as pessoas experimentem para encontrar bugs e deixar comentários. WireGuardNT agora faz parte do cliente WireGuard para Windows e está na versão 0.4. Você pode baixe aqui, ou você pode ler mais sobre o projeto aqui.

Uma versão anterior deste artigo afirmava que os ganhos de desempenho de rede só eram significativos em uma conexão sem fio.