# Otimização de MTU e Fragmentação para WireGuard ## Problema e Solução O WireGuard necessita de overhead para encapsulamento e criptografia, resultando em: - Overhead ~60 bytes (cabeçalhos + criptografia) - MTU efetivo menor que o MTU da interface física - Possível fragmentação ou perda de pacotes A solução implementada: 1. **Ajuste automático de MSS TCP**: Evita fragmentação em sessões TCP 2. **PMTU Discovery inteligente**: Gerencia Path MTU para destinos específicos 3. **Prevenção proativa de fragmentação**: Identifica pacotes grandes e sinaliza MTU ## Como Funciona O programa XDP para interface WireGuard: 1. **Para pacotes TCP**: - Detecta pacotes SYN (início de conexão) - Ajusta o valor MSS para valor seguro (1380 = 1420 - 40) - Evita fragmentação durante toda a sessão TCP 2. **Para todos os pacotes**: - Verifica o tamanho total contra o MTU do WireGuard - Gerencia pacotes com flag DF (Don't Fragment) - Memoriza MTU efetivo para cada destino 3. **Para pacotes grandes com DF flag**: - Sinaliza "fragmentação necessária" via ICMP - Permite que os hosts ajustem automaticamente o PMTU ## Benefícios Obtidos - **Melhor Performance**: Elimina fragmentação desnecessária - **Latência Reduzida**: Evita retransmissões causadas por fragmentação - **Estabilidade**: Previne problemas de conectividade relacionados a MTU - **Eficiência**: Otimiza automaticamente conforme diferentes destinos ## Monitoramento As estatísticas são mantidas em um mapa BPF e podem ser visualizadas com: ``` bpftool map dump name mtu_stats_map ``` Estatísticas monitoradas: - Pacotes totais processados - Pacotes acima do MTU do WireGuard - Pacotes com MSS TCP ajustado - Pacotes que necessitaram fragmentação - Pacotes que dispararam sinalização PMTU