Taxa de retransmissão tcp muito alta para a Internet em dispositivos dentro da LAN

1

Eu trabalho muito com sistemas Linux como desenvolvedor e tenho um nível moderado de conhecimento de rede, mas a seguinte situação é um mistério desconcertante:

Estou executando o pfSense 2.4.3 (atual) em uma máquina virtual kvm em um host linux. Eu pretendo usá-lo para meu roteamento de Internet, NAT e firewall. A VM tem uma interface baseada em macvtap que fornece essencialmente acesso direto ao meu modem a cabo por meio de uma interface física no host ao qual a Ethernet do modem está conectada. Ele possui outra interface virtual que é membro de uma ponte de rede no host linux, para fornecer o lado da LAN da conexão com a Internet no próprio host Linux e para outros dispositivos na LAN. A rede LAN é 192.168.123.0/24; O endereço da LAN do pfSense é estatisticamente atribuído a 192.168.123.2.

Essa configuração pareceu funcionar bem nos primeiros quatro ou cinco dias, mas notei que as máquinas na LAN estavam obtendo um processamento muito ruim, tanto de upload quanto de download, para o tráfego TCP destinado à Internet: cerca de 1mbps. Uma captura de pacotes mostra taxas de retransmissão TCP em torno de 16%.

Eu observei as seguintes coisas adicionais:

  • Todas as máquinas na LAN são capazes de se comunicar umas com as outras sem problemas aparentes. Em particular, se eu transferir um arquivo hospedado na instância do pfSense para uma máquina na LAN, a transferência prosseguirá rapidamente (mais de 200 mbps) e uma captura de pacote mostrou 1 retransmissão em pacotes de 77k.
  • Taxa de transferência TCP para a Internet durante a execução, por ex. curl ou wget direto na instância do pfSense em si é executado na velocidade nominal da minha conexão com a Internet, em torno de 60 mbps. Eu reproduzi isso várias vezes.
  • O baixo desempenho é o mesmo, seja usando IPv4 NATed ou IPv6.
  • Meu comutador informa uma taxa de erro de recebimento de aproximadamente 1,2 por cento na porta à qual o host / ponte pfSense do Linux está conectado. Eu não estou vendo estatísticas de frames Ethernet altas ou erradas em nenhum dos hosts.
  • As capturas de pacotes tomadas pelo pfSense e pelas máquinas na LAN mostram que quando os pacotes são retransmitidos, o pacote anterior com o mesmo número de sequência foi recebido e, em alguns casos, difere, contém cargas de segmento TCP idênticas, aparentemente sugerindo que a retransmissão não era necessária?

Em seguida, observei também que o host Linux para pfSense havia perdido sua capacidade de abrir conexões TCP de saída, mas:

  • ainda é possível executar ping na Internet sem problemas.
  • os registros do firewall do pfSense mostram que minhas tentativas de conexão de saída não estão sendo bloqueadas por alguma regra incorreta.
  • A conectividade de LAN aparentemente sem falhas inclui entre o host Linux para a VM pfSense e a VM pfSense - o Linux pode abrir sessões TCP para seu gateway 192.168.123.2 padrão e transferir coisas para e a partir dele rapidamente.
  • Uma captura de pacote feita pelo pfSense de sua interface WAN mostra pacotes TCP SYN saindo para a interface macvtap quando o host Linux tenta fazer conexões de saída, como esperado. Eles nunca são reconhecidos.

Clues? Coisas que eu poderia tentar? Todas as suposições?

    
por mbaynton 15.07.2018 / 18:46

1 resposta

1

Rastrei ambos dos meus problemas para somas de verificação de segmento TCP calculadas incorretamente. Eles sempre seriam calculados incorretamente para o tráfego proveniente do host Linux executando a VM do pfSense e seriam computados incorretamente de forma intermitente para outro tráfego.

Parece que o pfSense não calcula essas somas de verificação por padrão, transferindo-as para o driver / hardware de rede. Você pode configurar o pfSense para computá-los no software: Sistema / Avançado / Rede, Desativar descarga de soma de verificação de hardware

    
por 11.08.2018 / 23:11