Cisco IOS IPv6 Tunnel MTU Problem dauerhafte TLS-Handshakes
Hallo,
ich hatte habe das Problem ja schon lange, ich will das aber jetzt richtig angehen (MTU nicht manuell auf den Clients setzen).
Problem:
Bei manchen Seiten (yahoo.com, rt.com) kommt keine TLS-Verbindung zustande, es wird minutenlang ein TLS-Handschlag durchgeführt. Dies tritt browser- und betriebssystemübergreifend auf.
Das tritt nur bei IPv6 auf, ich betreibe einen IPv6-Tunnel von HE.
Dieser hat bedingt durch den Tunnelmechanismus eine MTU von 1472.
Setze ich die MTU am PC manuell auf 1472 funktioniert alles. Das will ich aber nicht an jedem PC tun.
An einem anderen Anschluss mit FritzBox und einem HE-Tunnel klappt alles, ergo also kein Problem des Tunnelanbieters.
Schuld könnte die Firewall im Cisco-IOS sein.
Anfangs hatte ich am Tunnel keinerlei FW-Regeln eingerichtet.
Jetzt habe ich eine eingerichtet, die alles durchlassen soll (das ist aus Diagnosegründen auch so gewünscht, mir ist die Gefahr bekannt).
Sowohl ausgehend als auch eingehend sollte also alles erlaubt sein.
Das Problem besteht aber weiterhin.
Ich habe daher an beiden Anschlüssen einen Paketmitschnitt am Beispiel von Yahoo gemacht.
https://www.filedropper.com/daheim
https://www.filedropper.com/yahoo
LG WIn10Gegner
ich hatte habe das Problem ja schon lange, ich will das aber jetzt richtig angehen (MTU nicht manuell auf den Clients setzen).
Problem:
Bei manchen Seiten (yahoo.com, rt.com) kommt keine TLS-Verbindung zustande, es wird minutenlang ein TLS-Handschlag durchgeführt. Dies tritt browser- und betriebssystemübergreifend auf.
Das tritt nur bei IPv6 auf, ich betreibe einen IPv6-Tunnel von HE.
Dieser hat bedingt durch den Tunnelmechanismus eine MTU von 1472.
Setze ich die MTU am PC manuell auf 1472 funktioniert alles. Das will ich aber nicht an jedem PC tun.
An einem anderen Anschluss mit FritzBox und einem HE-Tunnel klappt alles, ergo also kein Problem des Tunnelanbieters.
Schuld könnte die Firewall im Cisco-IOS sein.
Anfangs hatte ich am Tunnel keinerlei FW-Regeln eingerichtet.
Jetzt habe ich eine eingerichtet, die alles durchlassen soll (das ist aus Diagnosegründen auch so gewünscht, mir ist die Gefahr bekannt).
!
ipv6 access-list ipv6acl
permit ipv6 any any
!
interface Tunnel0
description Hurricane Electric IPv6 Tunnel Broker
no ip address
ipv6 address 2001:470:xxxx/64
ipv6 enable
ipv6 mtu 1472
ipv6 traffic-filter ipv6acl in
ipv6 traffic-filter ipv6acl out
tunnel source Dialer0
tunnel mode ipv6ip
tunnel destination 216.66.80.30
!
Das Problem besteht aber weiterhin.
Ich habe daher an beiden Anschlüssen einen Paketmitschnitt am Beispiel von Yahoo gemacht.
https://www.filedropper.com/daheim
https://www.filedropper.com/yahoo
LG WIn10Gegner
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 595109
Url: https://administrator.de/contentid/595109
Ausgedruckt am: 21.11.2024 um 14:11 Uhr
20 Kommentare
Neuester Kommentar
Der Cisco müsste für dich TCP MSS-Clamping machen. Dadurch werden die vom Client gesendeten (zu großen) MSS-Values aus dem TCP-Header durch kleinere ersetzt, die durch den Tunnel passen.
Bei IPv4 setzt man das auf dem Tunnel-Interface mit "ip tcp adjust-mss", ich weiß jetzt aus dem Kopf leider nicht, ob es den Befehl exakt so für IPv6 auch gibt.
Bei IPv4 setzt man das auf dem Tunnel-Interface mit "ip tcp adjust-mss", ich weiß jetzt aus dem Kopf leider nicht, ob es den Befehl exakt so für IPv6 auch gibt.
Oh, ich habe gerade nochmal in der Anleitung nachgeschaut — diese Config muss auf das Ingress-Interface angewendet werden, also auf das dem LAN zugewandte Interface.
Auf dem Tunnel-IF hat das dann nur Wirkung bei eingehenden Verbindungen (schadet also vermutlich nicht).
Auf dem Tunnel-IF hat das dann nur Wirkung bei eingehenden Verbindungen (schadet also vermutlich nicht).
Es scheint aber nicht an der FW zu liegen.
Eben ! Wenn du gar keine aktiv hast kanns daran ja auch nicht liegen...Passt das so?
Kannst du dir selber ausrechnen: https://baturin.org/tools/encapcalc/
Ich bin leider jetzt erst dazu gekommen, wirklich die PCAPs anzuschauen.
Die MSS in den TCP-Paketen sieht bereits richtig aus - die wird offenbar von der FritzBox korrekt gesetzt.
Der TCP-Stream im PCAP sieht ebenfalls gut aus, da sind keine Retransmissions zu erkennen (was bei MTU-Problemen zwangsläufig auftreten würde) oder andere offensichtliche Anomalieen auf Layer 3/4.
Interessant ist allerdings die Cipherauswahl des Clients. Diese TLS-Handshakes kann ich tatsächlich aktuell keinem Betriebssystem oder Client zuordnen.
Entweder ist das recht alte Software, die da eine Verbindung versucht - oder da ist irgendeine "Sicherheitssoftware", die die TLS-Verbindung aufbricht und dadurch schwächt. Falls du da einen Virenscanner hast, der TLS aufbricht, deaktiviere den testweise mal und starte den Browser auch mal in einem Private-Tab und teste dann, ob der Aufruf von Yahoo nun funktioniert.
Die MSS in den TCP-Paketen sieht bereits richtig aus - die wird offenbar von der FritzBox korrekt gesetzt.
Der TCP-Stream im PCAP sieht ebenfalls gut aus, da sind keine Retransmissions zu erkennen (was bei MTU-Problemen zwangsläufig auftreten würde) oder andere offensichtliche Anomalieen auf Layer 3/4.
Interessant ist allerdings die Cipherauswahl des Clients. Diese TLS-Handshakes kann ich tatsächlich aktuell keinem Betriebssystem oder Client zuordnen.
Entweder ist das recht alte Software, die da eine Verbindung versucht - oder da ist irgendeine "Sicherheitssoftware", die die TLS-Verbindung aufbricht und dadurch schwächt. Falls du da einen Virenscanner hast, der TLS aufbricht, deaktiviere den testweise mal und starte den Browser auch mal in einem Private-Tab und teste dann, ob der Aufruf von Yahoo nun funktioniert.
Ah, ich bin da mit den Dateien durcheinander gekommen. In der "daheim.pcapng" ist definitiv die MSS zu hoch (1460 Bytes). Die Frage ist, ob das aktuell immer noch so ist - kannst du das noch einmal jetzt mit der angewendeten Config (die normalerweise keinen Reboot des Routers braucht) testen? Im SYN-Paket findest du das MSS-Value.
Auf der Verbindung zwischen dem Cisco und HE müsste das maximal dem Wert entsprechen, den du konfiguriert hast.
Auf der Verbindung zwischen dem Cisco und HE müsste das maximal dem Wert entsprechen, den du konfiguriert hast.
Sorry, hatte ein wenig um die Ohren.
Die MSS im neuen Capture sieht mit 1416 Bytes eigentlich vollkommen in Ordnung aus.
Könnte es sein, dass die MTU bei HE niedriger konfiguriert ist als auf deiner Seite? Inkonsistente MTUs könnten das Verhalten erklären.
Laut dem Capture kommt die TCP-Verbindung zustande, dein Client sendet den Client-Hello und bekommt diesen per ACK von Yahoo bestätigt.
Das bedeutet also theoretisch, dass der Server-Hello nicht ankommt, weil er möglicherweise zu groß ist und PMTU-Discovery bei Yahoo nicht ordentlich funktioniert.
Die MSS im neuen Capture sieht mit 1416 Bytes eigentlich vollkommen in Ordnung aus.
Könnte es sein, dass die MTU bei HE niedriger konfiguriert ist als auf deiner Seite? Inkonsistente MTUs könnten das Verhalten erklären.
Laut dem Capture kommt die TCP-Verbindung zustande, dein Client sendet den Client-Hello und bekommt diesen per ACK von Yahoo bestätigt.
Das bedeutet also theoretisch, dass der Server-Hello nicht ankommt, weil er möglicherweise zu groß ist und PMTU-Discovery bei Yahoo nicht ordentlich funktioniert.
Beim anderen Tunnel (gleicher Provider, FB7490) steht es auf 1480 und es tut problemlos.
Ggf. weil du vergessen hast tunnel path-mtu-discovery auf dem Tunnel Interface zu konfigurieren.Damit macht der Router eine automatische MTU Discovery.
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/interface/command/ir-c ...