Foi introduzido um módulo de kernel que pode acelerar significativamente o OpenVPN

Os desenvolvedores do pacote de rede virtual privada OpenVPN introduziram o módulo de kernel ovpn-dco, que pode acelerar significativamente o desempenho da VPN. Apesar de o módulo ainda estar em desenvolvimento pensando apenas no ramo linux-next e ter status experimental, já atingiu um nível de estabilidade que permite sua utilização para garantir o funcionamento do serviço OpenVPN Cloud.

Em comparação com a configuração baseada na interface tun, a utilização de um módulo no lado cliente e servidor utilizando a cifra AES-256-GCM possibilitou um aumento de 8 vezes na vazão (de 370 Mbit/s para 2950 Mbit /s). Ao usar o módulo apenas no lado do cliente, a taxa de transferência triplicou para o tráfego de saída e não mudou para o tráfego de entrada. Ao usar o módulo apenas no lado do servidor, a taxa de transferência aumentou 4 vezes para o tráfego de entrada e 35% para o tráfego de saída.

Foi introduzido um módulo de kernel que pode acelerar significativamente o OpenVPN

A aceleração é obtida movendo todas as operações de criptografia, processamento de pacotes e gerenciamento de canais de comunicação para o lado do kernel Linux, o que elimina a sobrecarga associada à troca de contexto, torna possível otimizar o trabalho acessando diretamente as APIs internas do kernel e elimina a lentidão na transferência de dados entre o kernel e espaço do usuário (criptografia, descriptografia e roteamento são realizados pelo módulo sem enviar tráfego para um manipulador no espaço do usuário).

Observa-se que o impacto negativo no desempenho da VPN é causado principalmente por operações de criptografia que consomem muitos recursos e atrasos causados ​​pela troca de contexto. Extensões de processador como Intel AES-NI foram usadas para acelerar a criptografia, mas as trocas de contexto permaneceram um gargalo até o advento do ovpn-dco. Além de usar instruções fornecidas pelo processador para acelerar a criptografia, o módulo ovpn-dco garante adicionalmente que as operações de criptografia sejam divididas em segmentos separados e processadas no modo multithread, o que permite o uso de todos os núcleos de CPU disponíveis.

As limitações de implementação atuais que serão abordadas no futuro incluem suporte apenas para os modos AEAD e 'nenhum' e cifras AES-GCM e CHACHA20POLY1305. O suporte DCO está planejado para ser incluído no lançamento do OpenVPN 2.6, previsto para o 4º trimestre deste ano. O módulo é atualmente compatível com o cliente OpenVPN3 Linux de teste beta e compilações experimentais do servidor OpenVPN para Linux. Um módulo semelhante, ovpn-dco-win, também está sendo desenvolvido para o kernel do Windows.

Fonte: opennet.ru

Adicionar um comentário