rezumat
Valoarea MTU implicită împiedică transferul de date pentru un sistem. Reducerea acestuia manual permite încă o dată transferul de date, dar această ajustare manuală nu este necesară pe un sistem adiacent.
fundal
Am un server de backup. Am două sisteme Raspberry Pi în locații îndepărtate: unul în Marea Britanie și unul în Albania. Alături de Albanian Pi este un QNAP (un server de fișiere derivat din Linux). Am un VPN IPSec din Albania către rețeaua Backups Server și un alt VPN IPSec din Marea Britanie către rețeaua Backups Server. Totul folosește IPv4. Această diagramă poate ajuta:
|--Albania Pi
|<--IPSec-->|--Router--|--Albania QNAP
Central | | |--Alte sisteme
Backup--|--Router--|
Server | | |
|<--IPSec-->|--Router--|--UK Pi
|--Alte sisteme
Atât sistemele Pi, cât și Serverul de backup au toate nftables fără nicio regulă și cu o politică implicită de ACCEPT.
Cele două sisteme RPi, QNAP și serverul de backup au toate un MTU implicit Ethernet cu fir de 1500, așa cum era de așteptat.
MTU-ul WAN al routerului pentru Albania este 1442, iar pentru Marea Britanie este 1500. Conform opțiunii Path MTU Discovery a routerelor, aceste valori sunt corecte. Pentru firewall-ul care gestionează rețeaua care conține serverul de backup este 1500, iar acest lucru este, de asemenea, corect.
Problemă
- Dacă transfer un bloc de date de la Pi din Marea Britanie pe serverul de backup, funcționează bine
- Dacă transfer un bloc de date de la QNAP din Albania pe serverul de backup, funcționează bine
- Dacă încerc să transfer un bloc de date de la Pi din Albania pe serverul de backup, nu reușește
- Dacă reduc MTU-ul lui Pi la 1374, transferul reușește
Mai multe informatii
Iată un exemplu de tip de lucru care funcționează/eșuează
# Pe Albanian Pi
dd bs=1M count=100 if=/dev/urandom >100M.dat
# Pe serverul de backup
ssh albanian_pi cat 100M.dat | pv >100M.dat
# Ajustări MTU pe Albanian Pi
ifconfig eth0 mtu 1500 # Implicit înainte de a începe să mă joc
ifconfig eth0 mtu 1374 # Cea mai mare valoare care permite fluxul de date
Transferul a funcționat înainte, dar asta a fost înainte de o actualizare de la Stretch la Buster. Nu văd probleme la majoritatea celorlalte sisteme Pi pe care le am și, în special, la UK Pi pe care l-am menționat la început, care acum rulează și Buster.
Nimeni din biroul din Albania nu se plânge de probleme de rețea.
Nu am stabilit cu bună știință un bit „Nu fragmentați” pentru pachetele dintre Albanian Pi și Serverul de backup. Nu am nimic care să blocheze PMTU Discovery.
A sumariza:
- Albanez QNAP -> Backups Server: totul bine
- Albanian Pi -> Backups Server: eșuează fără o reducere a MTU
- UK Pi -> Backups Server: totul bine
Am o soluție, dar nu ar trebui să reduc MTU pe sisteme individuale.
Întrebare
Ce este de fapt greșit și cum pot diagnostica și rezolva în continuare cauza problemei?
Sugestii primite cu recunoștință. Mulțumiri