[Gelöst] VPN Tunel zwischen Fritzbox 7490 und iPhone (iOS9) funktioniert nicht mehr

Vielleicht kann ja salamihawk noch einmal etwas dazu schreiben (ich habe die Dumps nicht selbst angesehen), aber so wie ich ihn verstanden habe, setzt UM die beiden Bits vollkommen unabhängig davon, ob eine der beiden Seiten die eigene Fähigkeit zum Umgang mit ECN signalisiert oder nicht. Da AVM-Boxen auch an UM-Anschlüssen mit anderen IPSec-Implementierungen zusammenarbeiten können, würde mich schon interessieren, was AVM da wie ändern oder unterstützen sollte.

Wenn die UM-Core-Router ihrerseits die beiden Bits setzen und das iOS das falsch (oder komisch) auswertet, dann ist es doch vollkommen egal, ob AVM da keine ECN-Capabilities signalisiert oder die (EDIT: ankommenden) ECN-Bits seitens AVM gelöscht werden. Die einzige Konstellation, in der eine solche Änderung durch AVM sich auswirken würde, wäre die VPN-Verbindung eines iOS-Gerätes in WLAN einer Box zu einem AVM-Router an einem anderen Standort, weil dann die lokale FRITZ!Box sich wie der von salamihawk dazwischengeschaltete "scrubber" verhalten würde.

Das war so gemeint: Laut https://en.m.wikipedia.org/wiki/Explicit_Congestion_Notification (und anderen Quellen, die ich gelesen aber jetzt nicht zur Hand habe) wird eine Verbindung nur dann ECN verwenden, wenn sich beide Enden dazu fähig erklären.

"Use of ECN on a TCP connection is optional; for ECN to be used, it must be negotiated at connection establishment by including suitable options in the SYN and SYN-ACK segments."


Sehr schön auch in http://ecn.ethz.ch/ecn-pam15.pdf zusammengefasst:

"a client sends an initial syn ece cwr to the server to negotiate ECN; to confirm negotiation, the server responds syn ack ece, or to deny, simply syn ack. Section 6.1.1.1 of RFC 3168 [1] recommends falling back to non-ECN support if the initial syn ack ece connection attempt fails."

Heißt also, dass kein ECN verwendet wird, wenn nicht beide beteiligten Endstellen dem zustimmen. Damit wäre es theoretisch möglich, dass der VPN-Server der Fritzbox optional die ECN-Fähigkeit bestreitet (also SYN ACK statt SYN ACK ECE antwortet). Die Verbindung müsste von da an also so funktionieren wie in iOS 8 bzw. OS X 10.10 und früher. Da UM vermutlich schon länger ECN auf x03 setzt, es aber bisher trotzdem funktioniert hat, müsste es eigentlich dann auch wieder funktionieren. Auf diese Weise könnte AVM einen Work-around bieten, indem die am UM-Anschluss hängende Fritzbox die ECN-Verbindung verweigert.

Das setzt allerdings voraus, dass der oben beschriebene Fallback to non-ECN support von Apple korrekt implementiert worden ist. In diesem Fall müsste ECN x03 ja wie bisher einfach ignoriert (oder genullt) werden. Das ist mit meinem Zusatz in Klammern "(Es sei denn, die Apple-Implementierung wäre auch in dieser Hinsicht fehlerhaft.)" gemeint gewesen.

In RFC 3168 ist sogar beschrieben wie ein Host reagieren kann, der nach ECN-Aushandlung keine Antwort mehr bekommt, nämlich indem er erneut sendet ohne ECN-Signalisierung (wenn ich das recht verstanden habe):

"A host that receives no reply to an ECN-setup SYN within the normal
SYN retransmission timeout interval MAY resend the SYN and any
subsequent SYN retransmissions with CWR and ECE cleared. To overcome
normal packet loss that results in the original SYN being lost, the
originating host may retransmit one or more ECN-setup SYN packets
before giving up and retransmitting the SYN with the CWR and ECE bits
cleared."


Was ich aber nicht verstehe, ist folgender Abschnitt über fälschlich signalisierte Congestion:

18.1.2. Falsely Reporting Congestion

This change is to set the CE codepoint when an ECT codepoint was
already set, even though there was no congestion. This change does
not affect the treatment of that packet along the rest of the path.
In particular, a router does not examine the CE codepoint in deciding
whether to drop or mark an arriving packet.

However, this could result in the application unnecessarily invoking
end-to-end congestion control, and reducing its arrival rate. By
itself, this is no worse (for the application or for the network)
than if the tampering router had actually dropped the packet.


"This is no worse [...] than if the [...] router had actually dripped the packet" bedeutet doch aber, dass die ECN-Signalisierung in jedem Paket wie ein Packetloss jedes Pakets behandelt wird?! In dem Falle würde es Apple vielleicht sogar nicht einmal falsch machen, denn die Symptome entsprechen ja genau dem. Warum aber wird das im RFC als nicht besonders schlimm angesehen? Wird hier nur der Fall einzelner fälschlich gesetzten ECN-Bits betrachtet?
 
Zuletzt bearbeitet:
Ich stelle mir immer noch die Frage, wer denn nun die Schuld am mangelnden Datendurchsatz bei bestehender VPN-Verbindung hat: Unitymedia oder Apple???

Wäre das Ergenis Unitymedia, so könnte der Vertrag außerordentlich gekündigt und bei einem Wettbewerber ein neuer Vertrag abgeschlossen werden (sofern diese Alternative durch adäquate Geschwindigkeit bei den Wettbewerber besteht). Das wäre für uns Kunden vermutlich die schnellst mögliche Problemlösung und würde evtl. sogar bei UM ein wenig Druck in den Kessel bringen.

Kündigung, Grund und Termin bis wann entweder die VPN Verbindung zu funktionieren hat, oder die Kündigung greift.

Aus eigener Erfahrung kann ich bestätigen, dass eine VPN-Verbindung hinter dem Telekomnetz problemlos funktioniert.

<=> liegt die Schuld hingegen bei Apple so bestünde diese Möglichkeit natürlich nicht.

In meinen geführten Kommunikationen mit Apple wurde das Problem immer auf Unitymedia bzw. in Gesprächen mit Unitymedia von Unitymedia immer auf Apple geschoben.

Wer also trägt die Schuld? Ist die Störung eindeutig durch das ECN Flag 0x03 von Unitymedia verantwortlich und ist dies evtl. sogar ein Veratoß gegen die Netzneutralität? Oder hat Apple einfach ein Fehler ins der Umsetzung in iOS9 und müsste evtl. ein Fallback einbauen?
 
Damit wäre es theoretisch möglich, dass der VPN-Server der Fritzbox optional die ECN-Fähigkeit bestreitet (also SYN ACK statt SYN ACK ECE antwortet). Die Verbindung müsste von da an also so funktionieren wie in iOS 8 bzw. OS X 10.10 und früher. Da UM vermutlich schon länger ECN auf x03 setzt, es aber bisher trotzdem funktioniert hat, müsste es eigentlich dann auch wieder funktionieren. Auf diese Weise könnte AVM einen Work-around bieten, indem die am UM-Anschluss hängende Fritzbox die ECN-Verbdinung verweigert.
Das würde vermutlich funktionieren, wenn es denn eine solche Aushandlung im Falle einer IPSec-Verbindung überhaupt geben würde. Aber dieser "SYN ACK with ECE"-Mechanismus ist eben auf TCP beschränkt und das ist beim IPSec (in der Transport-Verbindung, nicht in den getunnelten Daten) gar nicht in Benutzung.

Mangels dieser SYN-Pakete kann man auch nicht überprüfen, ob das UM-Netz nicht auch bei den Paketen, die TCP-SYNs bzw. die passenden ACKs darstellen, immer schon die beiden ECN-Bits im IP-Header(!!) setzt. Da diese ganze ECN-Aushandlung eben auch mit diesen Bits erfolgt, brächte das natürlich schon diese "Verhandlungen" ins Schleudern (die bei IPSec gar nicht erfolgen, das dürfen wir nicht aus den Augen verlieren). Allerdings sollte man bei reinen TCP-Verbindungen (also kein IPSec) aus dem UM-Netz auch anhand der SYN-Pakete sehen können, ob UM nicht schon diese Pakete immer mit "CE" tagged.

"This is no worse [...] than if the [...] router had actually dripped the packet" bedeutet doch aber, dass die ECN-Signalisierung in jedem Paket wie ein Packetloss jedes Paktes behandelt wird?! In dem Falle würde es Apple vielleicht sogar nicht einmal falsch machen, denn die Symptome entsprechen ja genau dem. Warum aber wird das im RFC als nicht besonders schlimm angesehen? Wird hier nur der Fall einzelner fälschlich gesetzten ECN-Bits betrachtet?
Wenn ich das richtig lese/interpretiere, werden da die Auswirkungen einer falschen Router-Implementierung (die CE auch dann signalisiert, wenn es gar nicht notwendig wäre) auf die TCP-Verbindung und das einzelne Paket (das so gekennzeichnet wird) betrachtet und da hat so eine falsche Signalisierung für das einzelne Paket tatsächlich keine Auswirkungen, solange nicht ein anderer Router auf dem Weg diese gesetzten ECN-Bits auswertet und auf dieser Basis das Paket dropped (erster Absatz in 18.1.2).

Bei Verwendung von RED und einem bestimmten Füllstand der Queue schaltet ein Router mit AQM in den Modus der "erhöhten Aufmerksamkeit" und verwirft (absichtlich) ein Paket einer Verbindung (damit der "congestion avoidance"-Mechanismus eines höheren Protokolls ausgelöst wird), wenn diese kein ECN unterstützt. Das Paket ist dann also "weg" und die höheren Schichten fahren wegen dieses Paketverlusts erst einmal runter und dann langsam wieder an (slow start).

Wenn eine Verbindung ECN verwendet (das sieht der Router im IP-Header) und das Router-OS ist korrekt nach den neuesten RFC implementiert, entfällt dieser absichtliche Paketverlust und das Paket wird mit gesetzter CE-Notification trotzdem noch zum Empfänger weitergeleitet. Insofern ist das tatsächlich nicht schlimmer als ein absichtliches Auslassen eines Paketes ... daß das Anfahren der "congestion avoidance" bei passenden Verbindungen/Protokollen zu einer Reduktion des Durchsatzes führen kann, steht ja auch im ersten Satz des zweiten Absatzes.

Aber per se führt so eine CE-Markierung ja noch lange nicht dazu, daß jetzt der Sender davon auch Kenntnis hätte (die erreicht ja nur den Empfänger) ... für dessen Benachrichtigung ist wieder der Empfämger verantwortlich (der muß ihm also mitteilen: Du, ich habe hier ein Paket erhalten, das (zusätzlich zum eigentlichen Inhalt) eine Stauwarnung enthielt). Bei einem Protokoll, was seinerseits mit Bestätigungen arbeitet (wie eben TCP), ist das kein Problem, da hat der Empfänger ja ohnehin ein Paket an den Absender zu verschicken, da kommt diese Info gleich mit hinein.

Aber auf der IP-Ebene (Layer3) ist da eben keine Bestätigung vorgesehen und/oder erforderlich ... die Auswertung und Behandlung dieser Situation (auch die Frage, wie man das dem Sender nun eigentlich mitteilt), ist also immer das Problem einer höheren OSI-Schicht. Entscheidet diese höhere Schicht jetzt, daß die gesetzten ECN-Bits wie ein Paketverlust zu behandeln sind, muß sie eben ihren "congestion control"-Mechanismus anfahren. Aber wenn da wirklich keine Pakete mehr "entschlüsselt" werden, wie das nach der Beschreibung der Symptome ja bei Apple offenbar der Fall ist, ist das eben über das Ziel hinausgeschossen ... für das aktuelle Paket sollte die ECN-Kennzeichnung keine Rolle bei der weiteren Verarbeitung spielen (das meint aber nur noch den dort enthaltenen Payload und nicht die Verbindung).

Genau für die Handhabung dieser ECN-Mechanismen in Verbindung mit IPSec gibt es aber eben keinen aktuell gültigen Standard ... es gibt einen alten Vorschlag, was man machen könnte (aus dem Jahr 2000) und im grundlegenden ECN-RFC eine Beschreibung, wie sich solche ECN-Änderungen auf die IPSec-Pakete auswirken, wenn AH verwendet wird (da diese Änderung dann das ganze Paket ungültig machen würde). Da hier aber m.W. immer von NAT-T beim IPSec die Rede ist, spielt das keine Rolle in diesem Kontext, da es dabei für jedes Paket noch eine zusätzliche "Verpackung" gibt und die ECN-Änderungen durch einen Router immer an diesem äußeren Paket erfolgen.

EDIT: Ob und wie AVM bei der Aushandlung einer IPSec-SA die Ideen aus dem Draft (https://tools.ietf.org/html/draft-ietf-ipsec-ecn-02) bzgl. der Signalisierung der ECN-Möglichkeit innerhalb einer TCP-Verbindung über einen IPSec-Tunnel umsetzt, weiß ich nicht ... das sollte sich aber aus der /var/tmp/ike.log einer daran beteiligten FRITZ!Box ermitteln lassen. Alle anderen "capabilities" (allerdings nur für P1, der Draft schlägt das nach meinem Verständnis als zusätzliches Merkmal eines Proposals für P2 vor) werden jedenfalls in diesem Protokoll "vermerkt" ... ich glaube (bitte nicht mit "wissen" verwechseln) aber eigentlich nicht daran, daß AVM da ECN im Tunnel tatsächlich umgesetzt hat. Da wären ganz andere Änderungen (z.B. die Unterstützung von IKEv2) wichtiger ...
 
Zuletzt bearbeitet:
Du hast ja recht, PeterPawn. Die beiden bekannten Probleme passen nicht zusammen, könnten in den Tiefen der Implementierung vielleicht eine gemeinsame Ursache haben. Mein Gefühl sagt mir aber das die Auswirkungen nicht dafür sprechen. Das OSX nicht vom Split-Tunneling Problem betroffen ist und iOS die selbe Netzwerschicht verwendet (plausible Annahme) müsste dieser Teil auch in einer der iOS Versionen (ggf. Beta) behoben sein. Können es nur abwarten bis es mal bestätigt wird und nicht nur die Probleme publiziert werden, sondern auch deren Behebung. Weitere Fehler sind nicht ausgeschlossen.

@amatör wie PeterPawn schreibt ist die Aushandlung nur für TCP spezifiziert und auch dann müssen sich bei einer Verweigung der Sende- oder Empfangsstelle auch alle Komponenten dazwischen daran halten.

Unitymedia tagt ja jetzt auch alles und ich kann keine Engpässe oder Paketverluste erkennen, also ist das Verhalten min. fragwürdig. Ob die sich an die Spezifikationen halten würden? Ich verstehe nur nicht, welchen Grund UM für sein Verhalten hat, das erstmalig vor 7 Jahren dokumentiert wurde.

@A6_neu Aber Apples Implementierungen müssten damit klar kommen, also würde ich einen Fehler bei Apple sehen.
Ich habe vor einigen Tagen auch eine Korrektur von Apple vermutet, aber es lag an dem Access-Point über den ich die Verbindung mit iOS aufgebaut hatte. Auch in meinem Fall war dahinter das Telekom-Netz. Bereinigt die Telekom das ECN Flag? Vielleicht sogar erst seit kurzem?

viele Fragen und leider wenige Fakten aus denen heraus wir spekulieren...

Edit: @PeterPawn: was ist wo in Wikipedia angekommen? Sehe nichts besonderes.
 
Zuletzt bearbeitet:
Bereinigt die Telekom das ECN Flag?

Lt. meinem Test macht das die Telekom nicht. Z. B. in einem TCP-VPN-Tunnel (nicht IPsec) vom UM-Anschluss zum Telekom-Anschluss, ein UDP-Paket mit dem ECN-Flag kommt dort so an:
UM-Anschluss:
Code:
09:49:44.776432 ip: ([color=red]tos 0x3,CE[/color], ttl 77, id 50901, offset 0, flags [none], proto [color=red]UDP[/color] (17), length 54)
    10.3.0.2.44256 > 192.168.188.1.53: [udp sum ok] 38062+ A? heise.de. (26)
Am Telekom-Anschluss:
Code:
09:49:44.724715  In ethertype IPv4 (0x0800), length 70: ([color=red]tos 0x3,CE[/color], ttl 77, id 50901, offset 0, flags [none], proto [color=red]UDP[/color] (17), length 54)
    10.3.0.2.44256 > 192.168.188.1.53: [udp sum ok] 38062+ A? heise.de. (26)
 
Hallo zusammen,
ich bin auch betroffen.
Habe aber ein weiters Problem entdeckt.
Kann seit neustem keine Updates von der Adobe Creativ Cloud laden.
Fehlermeldung keine Verbindung zum Adobe Server.
Auch ein Download des Adobe Readers DC über den Installer ist nicht mehr möglich.
Betriebssystem Mac OS 10.10 und 10.11.
Ob es auch Windows betrifft kann ich nicht sagen.
Stehe in Kontakt mit dem Adobe Support. Er fragte mich ob ich Unitymedia Kunde bin.
Ob und wie weit dieses mit dem ECN Bit zusammenhängt kann ich nicht sagen.
Vielleicht könnte ja mal einer Versuchen den Reader zu installieren Windows und Mac und hier berichten ob er das gleiche Problem hat.
Im Telekomnetz funktioniert der Download über den Installer ganz normal.

LG Knausnice
 
Zuletzt bearbeitet:
Das sind wahrscheinlich die Standard-Probleme im Unitymedia-Netz, irgendwas ist immer nicht erreichbar
 
Habe auch den Support von UM kontaktiert. Und verwundert hat mich, dass nicht der Vorschlag über den reset bzw neustart der FB kam.
Der Support wollte es weitergeben und hat mir gesagt, dass ich zurückgerufen werde.
Bin mal gespannt. Bisher warte ich noch auf den Rückruf.
Habe zu Dokumentationzwecken direkt noch eine E-Mail hinterher geschickt.
Jetzt heißt es warten.
Wenn sich keiner meldet, werde ich mich mal von einem Anwalt beraten lassen.
So geht es jedenfalls nicht weiter.

LG
 
Ich habe mittlerweile um die Kulanzkündigung gebeten - mir geht das Theater so auf die Nerven und ich mag mich einfach nicht auf einem Niveau herumschlagen, dass derartige Rückenschmerzen macht....
Dann nehme ich lieber einen normalen DSL-Anschluss mit max 25.000 Bandbreite und kann aber alles nutzen. Für 16,99 und ab dem 13.Monat 29,99 macht man da wohl nicht viel falsch.
 
@paddyfalk
Könntest Du das mit dem Adobe Reader mal versuchen?
LG Knausnice
 
Den Reader DC habe ich deinstalliert unter MacOS10.11.1beta und neu runtergeladen, der Download mittels des Adobe Downloaders lief problemlos.

Habe mal Tarife für DSL verglichen, derzeit ein sehr attraktives bei GMX (1&1). Da ich ohnehin für den Kabelanschluss in den Nebenkosten zahle, brauche ich keinen Schnickschnack mit IPTV usw.
Oder als Workaround einen DSL-Tarif nehmen mit monatlicher Kündigungsfrist.
 
Zuletzt bearbeitet:
Den Reader DC habe ich deinstalliert unter MacOS10.11.1beta und neu runtergeladen, der Download mittels des Adobe Downloaders lief problemlos.

Habe mal Tarife für DSL verglichen, derzeit ein sehr attraktives bei GMX (1&1). Da ich ohnehin für den Kabelanschluss in den Nebenkosten zahle, brauche ich keinen Schnickschnack mit IPTV usw.
Oder als Workaround einen DSL-Tarif nehmen mit monatlicher Kündigungsfrist.

Danke Dir konnte heute Abend auch wieder laden. Aber erst nachdem ich den DNS in der FB auf den Google DNS gestellt hatte.

LG
 
Danke Dir konnte heute Abend auch wieder laden. Aber erst nachdem ich den DNS in der FB auf den Google DNS gestellt hatte.

LG

Bitte an UM melden. Die haben öfters Probleme mit ihren DNS-Servern und sollten das wissen!
 
So, jetzt hat Apple meinen Bugreport auch "bearbeitet":
Duplicate of 22627532 (Open)

Da der Bug noch offen ist, vermute ich mal, dass das heißt, dass Apple schon einen Fehler bei sich zumindest nicht ausschließt.
 
So, jetzt hat Apple meinen Bugreport auch "bearbeitet":
Duplicate of 22627532 (Open)
Gestern wurde mein zweiter Report geschlossen, selbe Referenz "22627532"
Am 07.10. wurde mein OS X Report geschlossen, selbe Referenz "22627532"


Edit (18:52): ich hatte vor ein paar Minuten meinen Termin an der Genius. War voll ausgestattet mit 8.4.1, 9.0.2, 9.1b4 und El Capitan. Ich habe alles nicht gebraucht.
- das Problem ist bekannt
- ich war bei weitem nicht der erste
- die Analyse von salamihawk sei absolut valide
- es ist in cupertino bekann
- man arbeitet daran
- es gibt noch keinen Termin
- er wird es noch mal eskalieren
- je mehr sich melden, desto häufiger die Eskalation und eher wäre eine Lösung da
- Einzige Lösung ist 8.4.1, was aber nicht mehr zertifiziert wird
- der Split-Tunneling Bug sei behoben, laut Aussage des Genius
Edit(20:02): ich hatte vergessen
- das mangle mit einem Linux Router was dem Genius ein Begriff: http://www.ip-phone-forum.de/showthread.php?t=281439&page=7&p=2120349&viewfull=1#post2120349
 
Zuletzt bearbeitet:
Klingt gut und weniger gut zugleich. Uns bleibt wohl im Moment nur Provider wechseln oder warten und hoffen. Von OS X 10.11 auf dem Macbook lass ich jedenfalls erst mal die Finger.
 
Sorry. Bringt nichts.

$ sysctl -w net.inet.tcp.ecn_negotiate_in=0
net.inet.tcp.ecn_negotiate_in: 0 -> 0
$ sysctl -w net.inet.tcp.ecn_initiate_out=0
net.inet.tcp.ecn_initiate_out: 0 -> 0


Habe mich extra hierfür angemeldet ;)
Erfolg brachte unter MacOS X folgendes:

# sysctl -a | grep -i ecn
net.inet.tcp.ecn_initiate_out: 0
net.inet.tcp.ecn_negotiate_in: 0
net.inet.ipsec.ecn: 0
net.inet.mptcp.probecnt: 5
net.inet6.ipsec6.ecn: 0

# sysctl -w net.inet.ipsec.ecn=2

net.inet.ipsec.ecn: 0 -> 2

Der Wert "1" brachte nichts, was "2" bewirkt -> keine Ahnung - aber es funktioniert bei mir (UM Business).

Viel Erfolg,
emigre
 
Habe mich extra hierfür angemeldet ;)

# sysctl -w net.inet.ipsec.ecn=2

net.inet.ipsec.ecn: 0 -> 2
Da ich für die Genius Bar noch eine passende Testumgebung mit "El Capitan" hatte, konnte ich es direkt ausprobieren.
Auch bei mir zeitigt sysctl -w net.inet.ipsec.ecn=2 einen positiven Effekt.
Der Datenverkehr durch den aufgebauten Tunnel klappt problemlos, wenn ich zuvor einmalig den Wert von tpsec.ecn auf 2 gesetzt habe!

Danke emigre! :D
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.