Wir haben Dutzende eingebetteter Geräte bei unseren Kunden installiert, die alle unseren OpenVPN-Service nutzen. Das funktioniert im Allgemeinen gut, aber einige unserer Kunden haben ernsthafte Probleme mit der MTU. Unser Einfluss auf die Kunden, ihre Netzwerke zu reparieren, ist begrenzt, daher benötigen wir OpenVPN, um damit umzugehen. Kurz gesagt, meine Frage lautet:
Wie kann ich die Low-Path-MTUs einiger Clients auf Clientbasis verringern, ohne globale Einstellungen zu verwenden, die den Worst-Case für alle Clients berücksichtigen?
Beachten Sie, dass es im schlimmsten Fall ziemlich schlimm ist: Pfad MTU 576, löscht alle Fragmente, fragmentiert sich nicht selbst, beachtet DF-Bit nicht. Sie sehen, warum ich es vorziehen würde, dieses Problem nicht global zu lösen.
Die OpenVPN-Manpage bietet eine Reihe von MTU-bezogenen Optionen, insbesondere --link-mtu, --tun-mtu, --fragment and --mssfix
. Aber es heißt auch
--link-mtu [...] Es ist am besten, diesen Parameter nur festzulegen, wenn Sie wissen, was Sie tun.
--tun-mtu [...] Verwenden Sie am besten die Optionen --fragment und / oder --mssfix, um Probleme mit der MTU-Größe zu beheben.
Also habe ich angefangen zu experimentieren --fragment
und --mssfix
musste schnell feststellen, dass erstere nicht nur clientseitig, sondern auch serverseitig gesetzt werden müssen . Ich habe dann in der serverseitigen Konfiguration pro Client über gesucht, --client-config-dir
aber es heißt
Die folgenden Optionen sind in einem clientspezifischen Kontext zulässig: --push, --push-reset, --iroute, --ifconfig-push und --config.
Keine Erwähnung von MTU-Optionen!
Also hier sind meine spezifischeren Fragen:
- Warum genau sind
link-mtu
undtun-mtu
entmutigt? Was sind die potenziellen Probleme mit diesen Optionen? Beachten Sie, dass ich mit Low-Level-IP-Header-Munging ziemlich vertraut bin. - Welche der Optionen
link-mtu tun-mtu fragment mssfix
müssen serverseitig gespiegelt werden, um zu funktionieren? - In welcher der Optionen
link-mtu tun-mtu fragment mssfix
kann verwendet werdenclient-config-dir
? - Falls alle vier Optionen serverseitig gespiegelt werden müssen und im Inneren nicht verwendet werden können
client-config-dir
: Gibt es Alternativen zur Bekämpfung von MTUs mit geringem Pfad pro Client?
Anmerkungen:
- Teile meiner Fragen wurden bereits gebeten , vor 5 Jahren war hier , aber sie haben nicht wirklich damals beantwortet worden, daher wage ich sie zu duplizieren.
- Der OpenVPN-Server ist derzeit 2.2.1 unter Ubuntu 12.04. Wir bereiten ein Upgrade auf 2.3.2 auf Ubuntu 14.04 vor
- Die OpenVPN-Clients sind 2.2.1 unter Debian 7.6
- Gerne bestimme ich die Weg-MTU eines Kunden selbst manuell
- Momentan können wir nicht viel serverseitig testen. Wir bauen aber einen kompletten separaten Prüfstand, der demnächst fertig sein soll.
Für hilfreiche Hinweise bin ich dankbar.
iptables
Regeln eingefügt werden, um die MSS für alle SYN-Pakete von oder zu dieser Client-IP-Adresse zu reduzieren.