Mamy dziesiątki urządzeń wbudowanych zainstalowanych u klientów, wszyscy dzwonią do domu do naszej usługi OpenVPN. To ogólnie działa dobrze, ale kilku naszych klientów ma poważne problemy z MTU ścieżki. Nasz wpływ na klientów w zakresie naprawy ich sieci jest ograniczony, dlatego potrzebujemy OpenVPN, aby sobie z tym poradzić. Krótko mówiąc, moje pytanie brzmi:
Jak mogę ograniczyć MTU niskich ścieżek niektórych klientów dla poszczególnych klientów, to znaczy bez używania ustawień globalnych uwzględniających najgorszy przypadek dla wszystkich klientów
Zauważ, że nasz najgorszy przypadek jest całkiem zły: ścieżka MTU 576, usuwa wszystkie fragmenty, nie fragmentuje się sama, nie honoruje bitów DF. Widzisz, dlaczego wolałbym nie rozwiązywać tego problemu na całym świecie.
Strona OpenVPN oferuje szereg opcji związanych z MTU, w szczególności --link-mtu, --tun-mtu, --fragment and --mssfix
. Ale to też mówi
--link-mtu [...] Najlepiej nie ustawiać tego parametru, chyba że wiesz, co robisz.
--tun-mtu [...] Najlepiej jest użyć opcji --fragment i / lub --mssfix, aby poradzić sobie z problemami z rozmiarami MTU.
Więc zacząłem eksperymentować z --fragment
i --mssfix
ale wkrótce musiał zdać sobie sprawę, że przynajmniej dawny należy ustawić nie tylko po stronie klienta, ale także po stronie serwera . Potem przejrzałem konfigurację po stronie serwera dla klienta za pośrednictwem, --client-config-dir
ale mówi
W kontekście specyficznym dla klienta dozwolone są następujące opcje: --push, --push-reset, --iroute, --ifconfig-push i --config.
Brak wzmianki o opcjach MTU!
Oto moje bardziej szczegółowe pytania:
- Dlaczego dokładnie
link-mtu
itun-mtu
odradzamy? Jakie są potencjalne problemy z tymi opcjami? Zauważ, że czuję się całkiem dobrze z niskim poziomem mungowania nagłówka IP. - Które z opcji
link-mtu tun-mtu fragment mssfix
muszą być dublowane po stronie serwera, aby działały? - W której z opcji
link-mtu tun-mtu fragment mssfix
można użyćclient-config-dir
? - W przypadku, gdy wszystkie cztery opcje muszą być dublowane po stronie serwera i nie można ich użyć wewnątrz
client-config-dir
: Czy istnieją jakieś alternatywy dla walki z niską ścieżką MTU na klienta?
Uwagi:
- Części moich pytań już został poproszony 5 lat temu tutaj , Ale naprawdę nie odpowiedziano wtedy, dlatego ośmielam się je powielać.
- Serwer OpenVPN ma obecnie wersję 2.2.1 na Ubuntu 12.04. Przygotowujemy aktualizację do wersji 2.3.2 na Ubuntu 14.04
- Klienci OpenVPN to 2.2.1 na Debianie 7.6
- Z przyjemnością określam ręcznie MTU ścieżki klienta
- Obecnie nie możemy przetestować dużo po stronie serwera. Ale budujemy kompletne oddzielne łóżko testowe, które powinno być wkrótce gotowe.
Jestem wdzięczny za wszelkie pomocne porady.
iptables
reguły, aby zmniejszyć MSS na wszystkich pakietach SYN do lub z tego adresu IP klienta.