No se pueden transferir datos desde un sistema específico (¿problema de MTU?)

No se pueden transferir datos desde un sistema específico (¿problema de MTU?)

Resumen

El valor de MTU predeterminado impide la transferencia de datos para un sistema. Reducirlo manualmente permite la transferencia de datos una vez más, pero este ajuste manual no es necesario en un sistema adyacente.

Fondo

Tengo un servidor de copias de seguridad. Tengo dos sistemas Raspberry Pi en ubicaciones remotas: uno en el Reino Unido y otro en Albania. Junto al Pi albanés hay un QNAP (un servidor de archivos derivado de Linux). Tengo una VPN IPSec desde Albania a la red de Backups Server y otra VPN IPSec desde el Reino Unido a la red de Backups Server. Todo utiliza IPv4. Este diagrama puede ayudar:

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

Tanto los sistemas Pi como el servidor de copias de seguridad tienen nftables sin reglas y con una política predeterminada de ACEPTAR.

Los dos sistemas RPi, QNAP y Backups Server tienen una MTU Ethernet cableada predeterminada de 1500, como era de esperar.

La MTU del lado WAN del enrutador para Albania es 1442 y para el Reino Unido es 1500. Según la opción Path MTU Discovery de los enrutadores, estos valores son correctos. Para el firewall que administra la red que contiene el servidor de respaldos, es 1500, y esto también es correcto.

Problema

  • Si transfiero un bloque de datos desde Pi en el Reino Unido al servidor de copias de seguridad, funciona bien
  • Si transfiero un bloque de datos desde QNAP en Albania al servidor de copias de seguridad, funciona bien
  • Si intento transferir un bloque de datos desde Pi en Albania al servidor de copias de seguridad, falla
  • Si reduzco la MTU del Pi a 1374, la transferencia se realiza correctamente.

Más información

Aquí hay un ejemplo del tipo de cosas que funcionan o fallan.

# 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

La transferencia solía funcionar, pero eso fue antes de una actualización de Stretch a Buster. No veo problemas en la mayoría de los otros sistemas Pi que tengo, y en particular no en el Pi del Reino Unido que mencioné al principio y que ahora también ejecuta Buster.

Nadie en la oficina de Albania se queja de problemas de red.

No tengo, conscientemente, configurado un bit de "No fragmentar" para los paquetes entre el Pi albanés y el servidor de copias de seguridad. No tengo nada que esté bloqueando conscientemente PMTU Discovery.

Resumir:

  • QNAP albanés -> Servidor de copias de seguridad: todo bien
  • Pi albanés -> Servidor de copias de seguridad: falla sin una reducción en la MTU
  • UK Pi -> Servidor de copias de seguridad: todo bien

Tengo una solución, pero no debería tener que reducir la MTU en sistemas individuales.

Pregunta

¿Qué está realmente mal y cómo puedo diagnosticar y resolver la causa del problema?

Sugerencias recibidas con gratitud. Gracias

Respuesta1

Parece queDescubrimiento de MTU de rutaestá roto entre los sistemas "Albania Pi" y "Central Backups Server". Esto suele ser el resultado de bloquear erróneamente paquetes ICMP en enrutadores, firewalls o iptablesconfiguraciones de los sistemas involucrados.

En su caso, dado que el sistema "Albania QNAP" parece funcionar bien, el principal sospechoso es el sistema "Albania Pi". Verifique la configuración de ese sistema, específicamente cualquier iptablesconfiguración y configuración de red relacionada con ICMP y PMTUD.

información relacionada