Files
xdp/wireguard_mtu_optimization.md
T
2025-02-28 20:26:06 -03:00

53 lines
1.8 KiB
Markdown

# 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