O roteador NAT envia o RST para um servidor no qual um cliente NAT está conectado

1

Como tentei remover alguns fios Ethernet em minha rede doméstica, peguei um notebook mais antigo com Linux e tentei usá-lo como um tipo de roteador Ethernet-2-WiFi-NAT (o cartão Wi-Fi não pode atuar como bridge, então eu tive que fazer NAT). Basicamente, isso funciona, mas todos os clientes por trás desse roteador NAT obtêm erros de rede em conexões TCP de tempos em tempos.

Primeiro, aqui está a configuração completa:

INTERNET > wire > Standard Wi-Fi Router > air > Linux Router > Clients

Após alguns sniffing no roteador Linux e nos clientes, descobri o seguinte:

  1. o cliente se conecta normalmente ao servidor remoto e recupera alguns dados
  2. o cliente fica ocupado (por exemplo, gravando dados no disco) e a janela de recebimento fica cheia
  3. o cliente basicamente diz ao servidor para esperar; no meu caso, ACK com win = 0 ou win < MTU é o último ACK que eu vejo na captura antes das quebras de conexão
  4. enquanto este último ACK estiver em andamento, ainda há alguns pacotes chegando do servidor remoto
  5. o roteador Linux responde a cada um desses pacotes com um RST para o servidor remoto e, portanto, destrói a conexão
  6. o cliente está confuso porque obtém um RST do servidor em resposta ao próximo pacote que o cliente envia

Então é [5] qual é o meu problema aqui, e eu gostaria de saber por que isso acontece e como consertar isso.

Outras coisas a mencionar:

  • a própria rede sem fio funciona bem
  • todos os clientes que não estão por trás da caixa Linux funcionam bem
  • O UDP funciona bem tanto quanto eu posso dizer
  • iptables no roteador Linux é mínimo
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -I FORWARD -i eth1 -o eth0 -s 192.168.2.0/24 -d 192.168.1.0/24 -j ACCEPT # for static routing
iptables -I FORWARD -i eth0 -o eth1 -s 192.168.1.0/24 -d 192.168.2.0/24 -j ACCEPT # for static routing

Eu também descobri que definir a diretiva da cadeia de entrada para ajudar, já que ela solta os pacotes indesejados que levam à redefinição, mas isso é apenas uma correção inadequada.

    
por cdx 24.06.2013 / 17:17

0 respostas