Ajuda com Site a Site VPN - Desempenho fraco/médio em uma direção

Olá,

Atualmente estou buscando conselhos sobre uma configuração estranha com a qual estou tendo um pouco de dificuldade.

Estou troubleshooting um VPN IPSec site a site entre um Unifi Dream Machine Pro e uma instância virtual PFSense, a conexão está sendo estabelecida e está estável, mas o desempenho em uma direção é menos da metade do que eu esperaria.

PFSense Virtual 2.6:
ESXi 7.0U3d
2vCores de um Xeon E-2136 @ 3.30Ghz
1GB de RAM
pfSense tem um IP público passado para ele, sem NAT duplo.
VMs atrás deste roteador virtual obtêm velocidades completas fornecidas pelo ISP. Sem sinais de limitação de CPU/RAM, tentei com criptografia de hardware ligada e desligada para solução de problemas.

Configurações IPSec:
IKEv2
PSK mútua
ESP AES 128 SHA256 DH14 PFS14

Site A (Unifi) = 1000 Mbps (D)/300 Mbps (U)
Site B (PFSense) = 2000 Mbps (D)/500 Mbps (U)

Site B (PFSense) puxando tráfego/arquivos do Site A (Unifi) = 30MB/s, correspondendo ao máximo upload do Site A.
Site B (PFSense) enviando tráfego/arquivos para o Site A (Unifi) = 5-15MB/s, nem perto do upload do Site B ou do download do Site A.

Isso já foi ainda pior, onde em vez de 5-15MB/s era 300-600KB/s, mas encontrei uma configuração que melhorou bastante a situação, Sistema → Avançado → Firewall/NAT habilitar o maximo de mss premente para tráfego VPN. O valor padrão para isso, 1400, não resolve a situação até agora, mas 1300 consegue atingir 5-15MB/s. Brinquei um pouco com isso e parece que posso aumentar até 1392 antes de quebrar novamente. Nenhuma alavanca na side do Unifi impactou o problema de desempenho, mas como posso manipular o desempenho alterando as configurações do PFSense, suspeito que algo na side do PFSense precise de mais ajustes.

Algumas dicas de configurações que deveria verificar para melhorar ainda mais o desempenho? Agradeço qualquer conselho.

Verifique o tamanho do seu MTU e o bit DF.

hmmm…
Primeiro que me vem à cabeça é se a aceleração AES-NI está sendo usada na sua VM do pfSense e se ela está funcionando suficientemente bem com sua configuração do vmware (se estiver habilitada corretamente no pfSense).

Como você configurou o pfSense em relação ao AES-NI e você o vê disponível nos logs?

Se não notar diferença com crypto acelerada por hardware ativada, então…

Talvez também faça um benchmark rápido pelo terminal no pfsense usando openssl para validar seu desempenho básico com e sem NI? Veja: AES-NI enable information | VMware vSphere

Infelizmente, não funciona, mudar o MTU mesmo para 1499 faz o desempenho cair para KB/s, voltar para 1500 e pelo menos volto a oscilar entre 5MB-15MB/s. Muito estranho.

Também encontrei isso, especificamente no Spectrum. Pode ser necessário ajustar seu MTU para baixo.

Tenho criptografia de hardware configurada para AES-NI e BSD, o pfSense mostra AES-NI habilitado e ativo na crypto do CPU e também vejo AESNI sendo passado na inicialização na CPU, então tudo parece bem.

Fiz esses testes rapidamente e confirmei que as velocidades com aceleração são muito mais rápidas, indicando que parece estar funcionando.

A criptografia de hardware está disponível e habilitada para: AES-CBC, AES-CCM, AES-GCM, AES-ICM, AES-XTS.

1499 não ajudará. Primeiro, você precisa saber o MTU do seu link físico, geralmente 1500.

O IPsec adiciona até 64 bytes de overhead, então você deve reduzir seu MTU o suficiente para cobrir esse overhead.

Comece com 1460 e reduza em 8 bytes de cada vez até parar a fragmentação. Certifique-se de que ambas as extremidades do túnel tenham o mesmo MTU e que o MSS Clamping esteja habilitado.

Hora de começar capturas de pacotes no túnel e comparar o tráfego de saída do lado do pfsense com o de entrada.
Sugiro usar iperf3 no pfsense e em um host na LAN A para que você possa controlar precisamente uma carga útil consistente e repetível ao testar A-B e B-A com o mínimo de “ruído” de protocolos de nível superior.
Mantém suas capturas de pacotes e análise o mais simples possível.