Não é possível transferir dados de um sistema específico (problema de MTU?)

Não é possível transferir dados de um sistema específico (problema de MTU?)

Resumo

O valor MTU padrão impede a transferência de dados para um sistema. Reduzi-lo manualmente permite a transferência de dados mais uma vez, mas este ajuste manual é desnecessário em um sistema adjacente.

Fundo

Eu tenho um servidor de backups. Tenho dois sistemas Raspberry Pi em locais remotos: um no Reino Unido e outro na Albânia. Ao lado do Pi albanês está um QNAP (um servidor de arquivos derivado do Linux). Tenho uma VPN IPSec da Albânia para a rede do Servidor de Backups e outra VPN IPSec do Reino Unido para a rede do Servidor de Backups. Tudo está usando IPv4. Este diagrama pode ajudar:

                                           |--Albania Pi
                    |<--IPSec-->|--Router--|--Albania QNAP
Central  |          |                      |--Other systems
Backups--|--Router--|
Server   |          |                      |
                    |<--IPSec-->|--Router--|--UK Pi
                                           |--Other systems

Tanto os sistemas Pi quanto o Servidor de Backups possuem nftables sem quaisquer regras e com uma política padrão de ACEITAR.

Os dois sistemas RPi, o QNAP e o servidor de backups têm um MTU Ethernet com fio padrão de 1500, como seria de esperar.

O MTU do lado WAN do roteador para a Albânia é 1442 e para o Reino Unido é 1500. De acordo com a opção Path MTU Discovery dos roteadores, esses valores estão corretos. Para o firewall que gerencia a rede que contém o Servidor de Backups é 1500, e isso também está correto.

Problema

  • Se eu transferir um bloco de dados do Pi no Reino Unido para o servidor de backups, tudo funcionará bem
  • Se eu transferir um bloco de dados do QNAP na Albânia para o servidor de backups, tudo funcionará bem
  • Se eu tentar transferir um bloco de dados do Pi na Albânia para o servidor de backups, ele falhará
  • Se eu reduzir o MTU do Pi para 1374, a transferência será bem-sucedida

Mais Informações

Aqui está um exemplo do tipo de coisa que está funcionando/falhando

# On the Albanian Pi
dd bs=1M count=100 if=/dev/urandom >100M.dat

# On the Backups Server
ssh albanian_pi cat 100M.dat | pv >100M.dat

# MTU adjustments on Albanian Pi
ifconfig eth0 mtu 1500    # Default before I started fiddling
ifconfig eth0 mtu 1374    # Highest value that permits data flow

A transferência costumava funcionar, mas isso foi antes da atualização do Stretch para o Buster. Não estou vendo problemas na maioria dos outros sistemas Pi que tenho e, em particular, no Pi do Reino Unido que mencionei no início, que agora também está executando o Buster.

Ninguém no escritório da Albânia se queixa de problemas de rede.

Não tenho intencionalmente um bit "Não fragmentar" definido para pacotes entre o Pi albanês e o servidor de backups. Não tenho nada bloqueando intencionalmente o PMTU Discovery.

Para resumir:

  • QNAP albanês -> Servidor de backups: tudo bem
  • Pi albanês -> Servidor de backups: falha sem redução no MTU
  • UK Pi -> Servidor de backups: tudo bem

Tenho uma solução alternativa, mas não deveria reduzir o MTU em sistemas individuais.

Pergunta

O que está realmente errado e como posso diagnosticar e resolver melhor a causa do problema?

Sugestões recebidas com gratidão. Obrigado

Responder1

PareceDescoberta de MTU de caminhoestá dividido entre os sistemas "Albania Pi" e "Central Backups Server". Muitas vezes, isso é resultado do bloqueio equivocado de pacotes ICMP em roteadores, firewalls ou iptablesconfigurações dos sistemas envolvidos.

No seu caso, como o sistema "Albânia QNAP" parece funcionar bem, o principal suspeito é o sistema "Albânia Pi". Verifique a configuração desse sistema, especificamente qualquer iptablesconfiguração e configurações de rede relacionadas a ICMP e PMTUD.

informação relacionada