Problema com a descoberta do caminho MTU sobre o pppd

4

Estou tendo um problema com o pppd fazendo PPPoE no CentOS 6.3.

O sistema CentOS é um roteador / gateway dedicado que realiza NAT (ambas as direções) e vários filtros de pacotes. Ele possui NICs separados para o lado da LAN e da Internet, eth0 e eth1, respectivamente.

No lado da Internet, há um modem DSL. O modem gosta de fazer tudo sozinho, incluindo o NAT. Para evitar que isso aconteça, tenho que fornecer informações inválidas sobre a conta e implementar o PPPoE no sistema CentOS.

Eu tive um problema ao fazer o PPPoE no sistema CentOS, com a conectividade da Internet sendo muito escamosa. Os clientes podiam acessar alguns sites e não outros, algumas páginas da web seriam semi-carregadas e sempre parariam na mesma posição, e as conexões TCP seriam redefinidas com frequência.

Eu isolei isso em um problema de MTU. Eu posso fazer com que qualquer sistema cliente (todo o Windows) no lado da LAN funcione bem, reduzindo sua MTU para 1492 a partir do padrão 1500.

Por outro lado, se eu permitir que o modem faça PPPoE e NAT, habilite IP e o cliente DHCP em eth1 e defina meu script de filtragem de IP como rota para eth1 em vez de ppp0, os clientes trabalharão bem com seu MTU definido como 1500. (O problema com essa configuração é que o NAT duplo pode afetar o desempenho e tornar o roteamento de conexões de entrada mais complicado.)

O teste de ping (com DF) revela que o MTU vinculado à Internet ainda está limitado a 1492, embora os clientes não precisem ser definidos como tal.

Portanto, parece que os clientes estão normalmente fazendo a descoberta do caminho MTU, mas que o pppd (ou talvez o NetFilter) está de alguma forma atrapalhando.

Eu normalmente tenho o NetFilter (iptables) no sistema CentOS configurado para descartar todo o tráfego INPUT e OUTPUT (já que o único trabalho do sistema é o encaminhamento). Tentei alterar temporariamente essas políticas para ACCEPT, caso a descoberta do MTU do caminho estivesse dependendo dos erros do ICMP, mas o problema permaneceu.

Eu não sou de todo experiente em PPPoE e espero que alguém possa me apontar na direção certa. Obrigado!

    
por Kevin 21.11.2012 / 17:40

1 resposta

1

Primeiro, o PMTUd exige que o ICMP seja encaminhado para a máquina que enviou o tráfego. Mas se você permitir RELACIONADO, ESTABELECIDO, o ICMP requerido será liberado. E o NAT com rastreamento de conexão retornará para a máquina certa.

Você provavelmente está procurando por essa linha mágica do iptables:

iptables -t mangle -I FORWARD -p tcp -o ppp0 -j TCPMSS --set-mss 1452 # MTU-40 for IPv4
# use the correct outbound interface in place of ppp0

Provavelmente, seu roteador faz isso automaticamente.

    
por 21.11.2012 / 18:10