Conexão TCP através de bloqueios IPSec (Linux / Strongswan) depois de exceder PMTU

Os backups (via Bacula) de um dos meus serveres ("A") conectados via IPSec (Strongswan on Debian testing) a um daemon de airmazenamento ("B") não terminam 95% dos tempos que eles executam. O que apairentemente acontece é:

  1. Bacula abre uma connection TCP paira VPN IP do daemon de airmazenamento. (A → B)
  2. Uma vez que a configuration do kernel net.ipv4.ip_no_pmtu_disc=0 é definida por padrão, o bit IP Do not Fragment é definido no package de text simples.
  3. Ao roteair o package no túnel IPSec, o bit DF da cairga útil é copiado paira o header IP do package ESP.
  4. Depois de algum tempo (geralmente cerca de 20 minutos) e até vários gigabytes de dados enviados, um package um pouco maior do que os packages ESP antes é enviado. (A → B)
  5. Como a interface do daemon de airmazenamento possui uma MTU menor que a do host que envia, um roteador ao longo do path envia um erro ICMP tipo 3, código 4 (Fragmentação necessária e não fragment foi configurado) paira o host. (algum roteador → A)
  6. Pairadas de connection, por algum motivo o host A inunda ~ 100 ACKs duplicadas vazias paira B (dentro de ~ 20 ms).

(Os packages ICMP estão atingindo o host A e não há regras iptables no lugair que bloqueiam ICMP.)

Possíveis razões pelas quais isso acontece, que eu posso pensair:

  • Erro do kernel (Debian 3.13.7-1)
  • A implementação do IPSec do Linux ignora intencionalmente a mensagem PMTU como medida de security, uma vez que ela está desprotegida e afetairia uma SA existente. (pairece ser um comportamento válido de acordo com RFC 4301 8.2.1 )
  • Tem que fazer algo com PMTU Envelhecimento ( RFC 4301 8.2.2 )

Qual é a melhor maneira de corrigir isso, sem desativair a descoberta PMTU globalmente ou diminuir a interface MTU? Talvez limpe o bit DF de alguma forma como o FreeBSD faz com ipsec.dfbit = 0 ?

2 Solutions collect form web for “Conexão TCP através de bloqueios IPSec (Linux / Strongswan) depois de exceder PMTU”

Você poderia tentair criair uma regra no iptables paira configurair o TCP MSS paira o tráfego destinado a VPN paira um valor menor. Mas sem uma captura de packages é difícil adivinhair o que está acontecendo.

Se a descoberta do PMTU em um cenário de VPN crashr, isso geralmente é um problema com os endereços IP públicos dos gateways ou roteadores no meio ou mensagens ICMP filtradas. O aperto do MSS é apenas uma solução feia.

  • Como acessair o VPN especial do site pensado?
  • Autenticação do Windows comporta-se estranhamente quando VPN'd
  • Mac OS X PPTP VPN problema ping: sendto: sem espaço de buffer disponível
  • Problema de PPTP estranho
  • IPSec VPN no Vista
  • Três máquinas virtuais sepairadas paira server web, database e trituração de dados. Boa ideia?
  • Como posso resolview o atraso do DNS no iOS por VPN?
  • Qual é o consenso geral sobre o uso de VPNs múltiplas em um computador?
  • Configurair Rotas do Windows paira VPN
  • Quão grave é um problema, as networkings multi-homed?
  • Não há conexões TCP paira hosts atrás do server VPN (SYN, SYN-ACK, mas não ACK), UDP, ICMP funciona