johnnyboy
- Beiträge
- 708
- Reaktionen
- 12
Hallo,
wär toll, wenn mir jemand mal kurz auf die Sprünge helfen könnte ...
Und zwar bin ich einer der Neukunden bei UM, die nur noch eine IPv6 Adresse erhalten und IPv4 über DS-Lite (AFTR-Gateway) getunnelt bekommen.
Das führt zu Problemen bei der Verwendung von openVPN!
Und zwar - wie ich lange nicht wusste! - verwendet openVPN offenbar eine Standard-MTU-Größe von 1500 Byte.
Laut einem Artikel in der aktuellen c't empfielt UM aber eine Maximalgröße bis 1460 Byte.
(Genau diese Größe habe ich übrigens auch mit einem ping -f -l 1432 t-online.de ermittelt! 1432 +8 Byte ICMP-Header + 20 Byte IPv4-Header = 1460 Byte)
Auszug aus dem Artikel:
tun-mtu 1460
Nur funktioniert es mit diesem Wert nicht!
Ich hab dann halt einfach was rumgespielt und herausgefunden, dass offenbar 1380 Byte der größtmögliche Wert ist.
Darauf kommt es doch an, oder, den größtmöglichen Wert (also, um die größtmögliche unfragmentierte Nutzlast transportieren zu können) zu finden?
Dilettantisch formuliert, würde ich sagen, handelt es sich bei den von UM vorgeschlagenen 1460 Byte also um einen "Brutto-Wert", von dem man erst noch die diversen Header abziehen muss.
Da wären meines Wissens nach z.B.:
- openVPN Header mit 32 Byte (ist eine ungesicherte Info, hab nur die Headergröße bei tap gefunden, nicht bei tun)
- UDP Header mit 8 Byte
- IPv6 Header mit 40 Byte
Diese drei Werte von den 1460 Byte abgezogen, ergeben zufällig auch genau die 1380 Byte.
Aber habe ich so richtig gerechnet?
Darf man den IPv6 Header da überhaupt rein rechnen?
Und was auch noch interessant wäre, kann man das noch "besser" im config-file verankern?
Ich hab erst noch mit den Befehlen --tun-mtu (z.B. 1460) --fragment (z.B. 1380) --mssfix rumgespielt, funktionierte aber nicht. Irgendwo habe ich dann auch gelesen, dass das IPv6-Netz keine Datenpaket-Fragmentation unterstützt. Somit wären die Befehle dann also dafür sinnlos?
wär toll, wenn mir jemand mal kurz auf die Sprünge helfen könnte ...
Und zwar bin ich einer der Neukunden bei UM, die nur noch eine IPv6 Adresse erhalten und IPv4 über DS-Lite (AFTR-Gateway) getunnelt bekommen.
Das führt zu Problemen bei der Verwendung von openVPN!
Und zwar - wie ich lange nicht wusste! - verwendet openVPN offenbar eine Standard-MTU-Größe von 1500 Byte.
Laut einem Artikel in der aktuellen c't empfielt UM aber eine Maximalgröße bis 1460 Byte.
(Genau diese Größe habe ich übrigens auch mit einem ping -f -l 1432 t-online.de ermittelt! 1432 +8 Byte ICMP-Header + 20 Byte IPv4-Header = 1460 Byte)
Auszug aus dem Artikel:
Nun habe ich mittlerweile auch schon herausgefunden, dass ich den MTU-Wert im openVPN config-file durch folgenden Befehl setzen kann:VPN reparieren
Die DS-Lite Technik ist so beschaffen, dass sie die zulässige Größe von IPv4-Paketen senkt (Maxium Transmission Unit, MTU). VPNs sind aber von Haus aus nicht dafür eingerichtet. Router fragmentieren übergroße Pakete, was aber Zeit kostet und VPNs beeinträchtigen kann.
Die Ursache ist, dass das Zugangsnetz von Unitymedia ausschließlich IPv6 spricht und IPv4 nur über Tunnel befördert (4in6-Tunnel). Jedes IPv4-Paket erhält dabei einen neuen IPv6-Header, sodass Nutzlast und Header die MTU überschreiten können. Das Problem lässt sich auf Kosten der VPN-Nutzlast beseitigen, indem man im VPN die MTU senkt. Das wird je nach VPN-Verfahren unterschiedlich eingestellt. Unitymedia empfiehlt Werte bis höchstens 1460 Byte.
tun-mtu 1460
Nur funktioniert es mit diesem Wert nicht!
Ich hab dann halt einfach was rumgespielt und herausgefunden, dass offenbar 1380 Byte der größtmögliche Wert ist.
Darauf kommt es doch an, oder, den größtmöglichen Wert (also, um die größtmögliche unfragmentierte Nutzlast transportieren zu können) zu finden?
Dilettantisch formuliert, würde ich sagen, handelt es sich bei den von UM vorgeschlagenen 1460 Byte also um einen "Brutto-Wert", von dem man erst noch die diversen Header abziehen muss.
Da wären meines Wissens nach z.B.:
- openVPN Header mit 32 Byte (ist eine ungesicherte Info, hab nur die Headergröße bei tap gefunden, nicht bei tun)
- UDP Header mit 8 Byte
- IPv6 Header mit 40 Byte
Diese drei Werte von den 1460 Byte abgezogen, ergeben zufällig auch genau die 1380 Byte.
Aber habe ich so richtig gerechnet?
Darf man den IPv6 Header da überhaupt rein rechnen?
Und was auch noch interessant wäre, kann man das noch "besser" im config-file verankern?
Ich hab erst noch mit den Befehlen --tun-mtu (z.B. 1460) --fragment (z.B. 1380) --mssfix rumgespielt, funktionierte aber nicht. Irgendwo habe ich dann auch gelesen, dass das IPv6-Netz keine Datenpaket-Fragmentation unterstützt. Somit wären die Befehle dann also dafür sinnlos?