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

Das dürfte u.a. daran liegen, daß damit wohl das ECN für TCP gesteuert wird, das sind andere Bits im TCP-Header, der beim vom IPSec verwendeten UDP nicht existiert. Die fraglichen Bits in den IP-Paketen befinden sich im TOS-Feld (Bits 6 und 7 im zweiten Byte eines IP-Headers) und werden - zumindest legt das der Name der Variablen nahe - von den TCP-bezogenen Einstellungen sicherlich nicht beeinflußt.

Die Idee mit net.inet.tcp.ecn_negotiate_in und net.inet.tcp.ecn_negotiate_out war, dass damit generell - sozusagen für jedwede Verbindung - unterbunden wird, dass sich Client und Host auf die Anwendung von ECN einigen. Wenn ich es recht verstanden habe, dann soll ECN ignoriert werden, falls nicht beide Endgeräte die Unterstützung signalisieren.

Aber okay, das war wohl eh nicht die richtige Idee. :-(
 
amatör@ Einfach iTunes öffnen, Gerät auswählen, dann Links auf Apps und dort runterscrollen.

Da kann man bestimmten Apps Dateien hinzufügen.
 
amatör@ Einfach iTunes öffnen, Gerät auswählen, dann Links auf Apps und dort runterscrollen.

Da kann man bestimmten Apps Dateien hinzufügen.

Hmm? Eine VPN-Konfiguration (Profil) und ein Zertifikat sind doch aber nicht Dateien einer bestimmten App?
 
Da iPhone/iPad kein OpenVPN direkt unterstützt gehe ich von aus, dass du das App von OpenVPN verwendest und dann fügt man dem App die Daten hinzu, da es sonst keine Konfig bzw. Zertifikat hat.
 
Ach so. Alles klar, danke! OpenVPN verwendet ja auch kein IPSec, so viel ich weiß?
 
Natürlich nicht, daher betrifft das Problem auch OpenVPN nicht.

OpenVPN verwendet i.d.R. UDP, kann man aber auch mit TCP verwenden.
 
Die Idee mit net.inet.tcp.ecn_negotiate_in und net.inet.tcp.ecn_negotiate_out war, dass damit generell - sozusagen für jedwede Verbindung - unterbunden wird, dass sich Client und Host auf die Anwendung von ECN einigen. Wenn ich es recht verstanden habe, dann soll ECN ignoriert werden, falls nicht beide Endgeräte die Unterstützung signalisieren.
Das ist ja auch sicherlich mit den Variablen möglich ... aber IP-ECN ist eben nicht TCP-ECN, TCP gibt es bei IPSec (in den "äußeren Paketen") nicht und die inneren Pakete darf UM ja gar nicht "anfassen" (das ist nur "scrambled content" für den Carrier).

Ich habe in der Zwischenzeit noch mal in dem IPSec-ECN-Draft versucht herauszufinden, was genau Apple sich daraus nun eigentlich zu eigen gemacht hat ... aber das ist ein uralter Vorschlag, der über den "Entwurf" offenbar niemals hinausgekommen ist und eigentlich seit Juni 2000 "verfallen" ist.

Dort werden verschiedene Szenarien beschrieben (u.a. auch das Verhalten von UM, ständig "CE" zu signalisieren) und die daraus abzuleitenden Konsequenzen. Wenn Apple das so wie dort beschrieben implementiert haben sollte (Abschnitt 4), dürfte sich das Problem eigentlich gar nicht stellen ... also hat Apple da wohl irgendetwas zusammenprogrammiert, was ein abweichendes Verhalten (auch ggü. anderen Betriebssystemen, ja selbst ggü. FreeBSD/OpenBSD, wenn ich es richtig verstanden habe, was sich im Netz dazu so findet) aufweist.

Auch kann man von außen nicht sehen, ob Apple nun die SAD-Erweiterung für "ECN tunnel" implementiert hat (die wäre dann Teil der anzubietenden Proposals und ist bei AVM vielleicht gar nicht implementiert - ist halt "closed source", leider - und damit per Definition nicht zu verwenden bei Verbindungen mit Gegenstellen, die diese Option nicht kennen) und/oder es auch daran scheitert, daß sich die Peers nicht einigen können.

Wobei das dann eigentlich dazu führen müßte, daß für P2 ein entsprechender Fehler signalisiert wird ... dieses zusätzliche Attribut dient ja eigentlich auch nur dazu, auf der "nicht IPSec"-Strecke einer solchen Verbindung (also links und rechts vom jeweiligen IPSec-Gateway) den ECN-Mechanismus verwenden zu können.

Aber das alte Dokument ist eben nur ein "draft" ... weiß irgendjemand, wie andere das umgesetzt haben? Für FreeBSD kann man ja anhand der Dokumentation einen Verdacht haben ... auch wenn ich - anders als in #159 angeführt - den "non-zero"-Wert eher dafür stehen sehe, daß da ein Kopieren der äußeren ECN-Bits in die inneren Pakete stattfinden soll (was hier ja eigentlich unerwümscht ist, daher ist "0" m.E. tatsächlich der richtige Wert).

Der Draft stellt für das Verhalten von UM jedenfalls folgendes fest (Abschnitt 4.2):
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.
Nachdem es bei der äußeren Verbindung (ist eben UDP) erst einmal gar keinen Mechanismus für "end-to-end congestion control" gibt, kann es (ist aber Spekulation, die zu prüfen wäre) ja eigentlich nur noch daran liegen, daß Apple da das ECN-CE aus dem äußeren Paket in ein entschlüsseltes inneres Paket kopiert ... aber selbst das sollte nicht zu einer Reduktion des Traffics in einer (gekapselten) TCP-Verbindung auf Null führen (nur die hat per se die erforderliche "end-to-end congestion control", wenn man mal von anderen ungebräuchlicheren Protokollen wie RTP absieht), wenn nicht irgendjemand diese Pakete mit "congestion encountered" dann doch als "dropped" betrachtet und/oder behandelt.

Interessant wäre halt (kriegt man aber nur mit einem Packetdump heraus, der sowohl die äußeren als auch die inneren Pakete enthält), welche Bitkombinationen Apple da wann von den äußeren Headern in die inneren kopiert (das geht ja erst nach der ganzen Validierung der IPSec-Kapselung) bzw. ob die Pakete mit ECN-CE überhaupt dechiffriert werden und das Resultat dann weiterverarbeitet wird.
 
Mein Bugreport bei Apple vom 30. 9. ist immer noch Open und unkommentiert. Reagiert Apple überhaupt auf Bugreports?
 
Mein Bugreport bei Apple vom 30. 9. ist immer noch Open und unkommentiert. Reagiert Apple überhaupt auf Bugreports?
Offiziell werden alle Bugreports gelesen. Kommentare gibt es nur, wenn eine Zuarbeit notwendig ist (Dateien zum reproduzieren, Dumpf, …), dann gibt es ein rotes Ausrufezeichen. Meiner zu OS X 10.11 ist auch noch in dem Status! In wenigen Tagen jährt sich übrigens einer meiner Reports, ebenfalls ohne Kommentar bisher und offen (Anliegerstrasse als Ziel in Apple-Maps-Navi).
 
@salamihawk, ist das mit einer Fritzbox mit Freetz (iptables-cgi) möglich oder was für eine Router / Distri verwendest du?

Hallo Paolo,

wir haben einen Soekris box mit eingebetteten Debian Linux dafür verwendet. Bin mir nicht sicher welche Version, ist aber sehr, sehr alt, die Kiste. Ich gehe von aus, dass jeder Distribution von iptables die Möglichkeit hat, den 8-bit ToS Feld zu setzen. Wohlgemerkt, das ToS Feld gibt es seit den 90er offiziell nicht mehr, und wurde durch die DSCP (6 bits) und ECN (2 bits) Felder ersetzt. Ergo, wenn man den ehemaligen ToS Feld auf 00000000 setzt, werden beide Felder DSCP und ECN zurückgesetzt.
 
Also ich habe ja eine gefreezte FritzBox 7390 hinter meiner FritzBox Cable 6360 von UM. Theoretisch müsste man dann ja über iptables auf der 7390 auch die Pakete ändern können, oder? Da meine Geräte über das WLAN der 7390 bzw. direkt an der 7390 hängen und zunächst über die Box rein und rausgehen. Hat das jemand schon mal versucht? Weiß nich nicht so genau wie und wo ich das am besten konfiguriere. Das wäre zumindest ein genialer Workaround und ich könnte mit dich der iPhone 6s bei meiner Vertragsverlängerung dazu bestellen...

Gruß sTaNy
 
Also ich habe ja eine gefreezte FritzBox 7390 hinter meiner FritzBox Cable 6360 von UM. Theoretisch müsste man dann ja über iptables auf der 7390 auch die Pakete ändern können, oder? Da meine Geräte über das WLAN der 7390 bzw. direkt an der 7390 hängen und zunächst über die Box rein und rausgehen. Hat das jemand schon mal versucht? Weiß nich nicht so genau wie und wo ich das am besten konfiguriere. Das wäre zumindest ein genialer Workaround und ich könnte mit dich der iPhone 6s bei meiner Vertragsverlängerung dazu bestellen...

Gruß sTaNy

Das wird leider nichts bringen, wenn ich das richtig verstehe. Du willst auf deinem Heimnetzwerk (angeschlossen am 7390er) von draußen zugreifen, richtig? Das ECN Feld wird vom UM Core-Netz gesetzt, nicht dein Router. ECN ist sowieso 00 wenn die Pakete dein Zuhause verlassen. Ab dem ersten oder zweiten Router werden sie erst versaut mit ECN.
 
Das dachte ich mir fast :/
Also müsste man an die iptables der FritzBox 6360 Cable von UM ran, was schwierig bzw. unmöglich ist...
 
Oder eine Fritzbox dahinter hängen, über die der Traffic erst geht. Oder noch besser: Mal bei AVM anregen, das optional einstellen zu können.
 
Also müsste man an die iptables der FritzBox 6360 Cable von UM ran, was schwierig bzw. unmöglich ist...
Das Hauptproblem dabei ist es auch noch, daß es in der 6360 gar keine "iptables" gibt ... AVM arbeitet mit einer eigenen Packet-Filter-Implementierung und - vermutlich, ist wieder mal "closed source" - gibt es dort gar keine Möglichkeit, die ECN-Bits zu manipulieren.

Aber eigentlich sollte das auch gar nicht nötig sein, denn das Problem (mit den Auswirkungen der ECN-Bits, mal vollkommen ohne Diskussion, ob UM die nun falsch setzt oder nicht) hat ja das iOS-Gerät als Gegenstelle und das dürfte sich ja - wenn ich die Konfiguration nicht vollkommen falsch verstehe - nur dann mit Deinem LAN per VPN verbinden müssen, wenn es eben gerade nicht an dem Ort ist, wo die 6360/7390-Kombination vorhanden ist.
 
Das dachte ich mir fast :/
Also müsste man an die iptables der FritzBox 6360 Cable von UM ran, was schwierig bzw. unmöglich ist...

Nein eben nicht. Auch wenn die Pakete den 6360er verlassen sind sie sauber. Im CORE Netz vom Unitmedia, NACHDEM die Pakete dein Anschluss komplett verlassen, werden diese Bits gesetzt. Das sind riesig große Carrier-grade Juniper MX Router (http://www.ndm.net/lan/Juniper-Networks/juniper-mx960-3d-universal-edge-router), die den Verkehr von Tausende von Kundenanschlüsse routen. Auf die Geräte kommst du gar nicht dran.
 
Zuletzt bearbeitet:
Ich meinte natürlich, das ECN an dem Router zu löschen, über den der VPN-Client ins Internet geht. Klar, es wurde dann nur an dem Router wieder gehen und wäre keine generelle Lösung.
 
Moin,

ich teste gerade iOS 9.1beta3 (13B5130b) und habe eine funktionierende VPN IPSec Verbindung nach Hause (Unitymedia). Ich hoffe es kommt auch in die Final-Version.
Zugriff auf meinen Router: checked
Zugriff auf Rechner im Home-Netz (http,ssh,ftp): checked
Zugriff durch den IPSec-Tunnel ins Netz: checked
Prüfung meiner IP im Netz: checked
Zugriff durch den IPSec-Tunnel auf AppleStore: checked

EDIT: Mea culpa ... Das klappt nur an dem lokalen WLAN-Access bei meiner Firma!
Ansonsten alles wie gehabt: Verbindungsaufbau, aber kein Datenverkehr!
 
Zuletzt bearbeitet:
Wow! Das ist ja mal eine gute Nachricht!!

Was mich interessieren würde: wie ist die Geschwindigkeit? Wird die durch die andauernde ECN-Signalisierung seitens UM merklich reduziert?
 
Die Seiten meiner Fritz werden normal schnell angezeigt, manchmal auch gar nicht, was aber am Safari liegen kann. SSH auch den IPSec auf mein MacMini zeigt keine Verzögerungen. Müsste mal eine größere Datenübertragung durch den Tunnel machen ... EDIT: Aktuell lade ich mit ca. 1Mbit von Home auf das iPadMini, das ist wenig, schwankt aber um den Wert und wird nicht langsamer, sondern aktuell zu Schluss sogar etwas schneller. Das WLAN hier ist eh nicht das Beste!

EDIT2: Leider habe kein weiteres iOS 9, so dass ich nicht sagen kann, ob UM oder Apple was geändert hat.


EDIT3: Keiner hat was geändert. Probleme mit dem ECN im IPSec weiterhin vorhanden.
 
Zuletzt bearbeitet:
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.