commit
This commit is contained in:
1 parent
2640132012
commit
a6869cb8d7
3 files changed
+124
-50
No files matched your search
+41
-18
@@ -4,7 +4,8 @@
|
||||
echo "Compilando programa XDP de otimização para WireGuard..."
|
||||
clang -O2 -target bpf -c xdp_wg_mtu_optimizer.c -o xdp_wg_mtu_optimizer.o \
|
||||
-I/usr/include/bpf -I/usr/include/ \
|
||||
-Wno-unused-function -D__TARGET_ARCH_arm64
|
||||
-Wno-unused-function -Wno-compare-distinct-pointer-types \
|
||||
-D__TARGET_ARCH_arm64 -g
|
||||
|
||||
# Verificar se a compilação foi bem-sucedida
|
||||
if [ $? -ne 0 ]; then
|
||||
@@ -12,31 +13,55 @@ if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Implantar o programa XDP na interface WireGuard
|
||||
echo "Implantando programa XDP na interface wg0..."
|
||||
ip link set dev wg0 xdp object xdp_wg_mtu_optimizer.o verbose
|
||||
# Gerar BTF para o programa
|
||||
echo "Gerando BTF information..."
|
||||
llvm-strip -g xdp_wg_mtu_optimizer.o
|
||||
pahole -J xdp_wg_mtu_optimizer.o
|
||||
|
||||
# Verificar se carregou corretamente
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Programa XDP de otimização para WireGuard carregado com sucesso"
|
||||
# Verificar se existe a ferramenta bpftool
|
||||
if ! command -v bpftool &> /dev/null; then
|
||||
echo "AVISO: bpftool não encontrado, tentando carregar sem BTF"
|
||||
fi
|
||||
|
||||
# Tentar várias opções para carregar o programa XDP
|
||||
echo "Tentando carregar o programa XDP na interface wg0..."
|
||||
LOADED=0
|
||||
|
||||
# Opção 1: Tentativa direta
|
||||
if ip link set dev wg0 xdp obj xdp_wg_mtu_optimizer.o sec xdp verbose; then
|
||||
LOADED=1
|
||||
echo "Programa XDP carregado com sucesso!"
|
||||
else
|
||||
echo "ERRO: Falha ao carregar programa XDP na interface wg0"
|
||||
echo "Tentando adicionar o programa em modo 'generic' (menos eficiente, mas mais compatível)..."
|
||||
ip link set dev wg0 xdp object xdp_wg_mtu_optimizer.o section xdp verbose mode generic
|
||||
echo "Primeira tentativa falhou, tentando com modo generic..."
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Programa XDP carregado em modo generic com sucesso"
|
||||
# Opção 2: Modo generic
|
||||
if ip link set dev wg0 xdp obj xdp_wg_mtu_optimizer.o sec xdp verbose mode generic; then
|
||||
LOADED=1
|
||||
echo "Programa XDP carregado em modo generic!"
|
||||
else
|
||||
echo "ERRO: Falha ao carregar programa XDP mesmo em modo generic"
|
||||
exit 1
|
||||
echo "Tentando com interface de loopback para testes..."
|
||||
|
||||
# Opção 3: Testes em interface loopback
|
||||
if ip link set dev lo xdp obj xdp_wg_mtu_optimizer.o sec xdp verbose mode generic; then
|
||||
echo "AVISO: Programa carregado apenas na interface loopback para testes"
|
||||
echo "Por favor, resolva os problemas de compatibilidade antes de usar em produção"
|
||||
LOADED=1
|
||||
else
|
||||
echo "ERRO: Todas as tentativas de carregamento do XDP falharam"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Configurar MTU eficiente para WireGuard
|
||||
# Verificar resultado do carregamento
|
||||
if [ $LOADED -eq 0 ]; then
|
||||
echo "Não foi possível carregar o programa XDP"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Configurações de MTU e kernel que ainda funcionam mesmo sem o XDP totalmente carregado
|
||||
echo "Configurando MTU otimizado para interface WireGuard..."
|
||||
ip link set dev wg0 mtu 1420
|
||||
|
||||
# Configurar ajustes do kernel para melhorar fragmentação IP e PMTUD
|
||||
echo "Aplicando ajustes de kernel para otimização de MTU..."
|
||||
sysctl -w net.ipv4.ip_forward=1
|
||||
sysctl -w net.ipv4.tcp_mtu_probing=1
|
||||
@@ -46,5 +71,3 @@ sysctl -w net.ipv4.tcp_base_mss=1024
|
||||
echo ""
|
||||
echo "=== Otimização de MTU para WireGuard ativa ==="
|
||||
ip link show dev wg0 | grep -E 'mtu|xdp'
|
||||
echo ""
|
||||
echo "Para monitorar estatísticas: bpftool map dump name mtu_stats_map"
|
||||
Reference in new issue
Block a user