Abbiamo dozzine di dispositivi integrati installati presso i clienti, tutti che chiamano a casa il nostro servizio OpenVPN. Funziona bene in generale, ma alcuni dei nostri clienti hanno gravi problemi MTU percorso. La nostra influenza sui clienti per riparare le loro reti è limitata, quindi abbiamo bisogno di OpenVPN per gestirli. In breve, la mia domanda è:
Come posso mitigare le MTU a basso percorso di alcuni client in base al client, ovvero senza utilizzare le impostazioni globali che soddisfano il caso peggiore per tutti i client
Si noti che il nostro caso peggiore è piuttosto negativo: il percorso MTU 576, elimina tutti i frammenti, non si frammenta da solo, non onora DF-bit. Capisci perché preferirei non risolvere questo problema a livello globale.
La manpage OpenVPN offre una serie di opzioni relative a MTU, in particolare --link-mtu, --tun-mtu, --fragment and --mssfix
. Ma dice anche
--link-mtu [...] È meglio non impostare questo parametro se non sai cosa stai facendo.
--tun-mtu [...] È meglio usare le opzioni --fragment e / o --mssfix per gestire i problemi di dimensionamento di MTU.
Così ho iniziato a sperimentare --fragment
e --mssfix
presto ho dovuto rendermi conto che almeno il primo deve essere impostato non solo sul lato client, ma anche sul lato server . Ho quindi esaminato la configurazione per client sul lato server tramite --client-config-dir
ma dice
Le seguenti opzioni sono legali in un contesto specifico del client: --push, --push-reset, --iroute, --ifconfig-push e --config.
Nessuna menzione delle opzioni MTU!
Quindi, ecco le mie domande più specifiche:
- Perché esattamente sono
link-mtu
etun-mtu
scoraggiati? Quali sono i potenziali problemi con queste opzioni? Nota che sono abbastanza a mio agio con il munging dell'intestazione IP di basso livello. - Quali delle opzioni
link-mtu tun-mtu fragment mssfix
devono essere replicate sul lato server per funzionare? - In quale delle opzioni è
link-mtu tun-mtu fragment mssfix
possibile utilizzareclient-config-dir
? - Nel caso in cui tutte e quattro le opzioni debbano essere speculari sul lato server e non possano essere utilizzate all'interno
client-config-dir
: esistono alternative per combattere MTU a basso percorso per client?
Appunti:
- Parti delle mie domande sono già state poste 5 anni fa qui , ma all'epoca non hanno ricevuto risposta, quindi ho il coraggio di duplicarle.
- Il server OpenVPN è attualmente 2.2.1 su Ubuntu 12.04. Stiamo preparando un aggiornamento alla 2.3.2 su Ubuntu 14.04
- I client OpenVPN sono 2.2.1 su Debian 7.6
- Sono felice di determinare manualmente il percorso MTU di un cliente
- Attualmente non possiamo testare molto sul lato server. Ma stiamo costruendo un banco di prova separato completo, dovrebbe essere pronto presto.
Sono grato per qualsiasi consiglio utile.
iptables
regole per ridurre l'MSS su tutti i pacchetti SYN ao da quell'indirizzo IP client.