.png)
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 iptables
configuraçõ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 iptables
configuração e configurações de rede relacionadas a ICMP e PMTUD.