Wifi Calling und angerufen werden: Timeout

Wifi Calling. Ein Thema, das für mich eine ziemliche Erleichterung bedeutet, da ich endlich zuhause erreichbar bin. Mein privates Handy geht über Vodafone, mit der Telekom klappt es auch ganz gut.
Anrufe nach extern funktionieren super, angerufen werden klappt leider nicht immer. Hier scheint das Problem bei Timeouts der Verbindungen zu liegen.

Kurzer technischer Abriss: Das Telefon baut eine IPSec Verbindung zum Provider auf über den der VoLTE Traffic getunnelt wird.

Wenn man jetzt NAT für den Internetzugang nutzt (wie so ziemlich jeder Homerouter), dann kann es passieren, dass die Verbindung in ein Timeout läuft. Der Router pflegt eine Tabelle mit allen internen Clients, die sich auf externe Server verbinden. Solange die Verbindung offen ist, kann der externe Server auch Antworten. Wenn der Timeout für Einträge in dieser Tabelle zu niedrig ist, denken sowohl der externe Server, als auch das Endgerät im internen Netz, dass sie noch eine gültige Verbindung haben, der Router kann die von außen rein kommenden Daten aber nicht mehr zuordnen.
Genau das ist hier passiert. Anruf kommt rein, der externe Server versucht dem internen Gerät zu sagen, dass da was kommt und der Router hat den entsprechenden Eintrag weggeworfen.

Bei mir im Router stand der Timeout für IPsec Verbindungen auf 2000 Sekunden. Das scheint nicht auszureichen um den Tunnel dauerhaft offen zu halten. Bei meinem Lancom konnte ich den Tunnel auf 65535 Sekunden hoch stellen, jetzt funktioniert Wifi Calling auch noch am nächsten Morgen. Interessant wäre noch zu wissen, wie oft Keep Alive Pakete verschickt werden, um den Wert ggf. zu verringern.

Probleme und Workaround für Wifi Calling mit Vodafone

Ich habe bei mir am Wohnort ein tierisches Problem mit dem Mobilfunkempfang mit Vodafone. Als wir uns vorm Einzug die Wohnung angesehen haben hieß es bei Vodafone, dass es technische Probleme geben würde, mittlerweile hat sich aber nichts geändert. Naja, fast.
Mittlerweile gibt es Wifi-Calling.
Mit Wifi Calling wird eine bestehende WLAN Verbindung genutzt, um ein Telefonat aufzubauen. Die Technik dahinter ist wohl die Gleiche wie bei Voice over LTE (Sprich telefonieren über 4G). Was braucht man dazu? Ein aktuelles Telefon (iPhone 5s/6/6s/7/SE oder neuer, diverse Androiden) mit aktueller Firmware (bei Vodafone ab 10.1, theoretisch geht es seit iOS 8)
Normalerweise bucht man das Feature, aktiviert Voice over LTE (4G Calling) und Wifi Calling und macht einen Anruf, während man im LTE Netz eingebucht ist und schon sollte es funktionieren.

Bei mir nicht.

Nachdem ich mit Vodafone hin und her telefoniert habe und dann bei nem Bekannten im WLAN war, hat es auf einmal funktioniert. Wieder zuhause: Fehlanzeige.
Nachdem ich dann verschiedene WLANs ausprobiert habe, konnte ich eine Tendenz feststellen: In professionell aufgesetzten WLANs ist die Wahrscheinlichkeit, dass es funktioniert geringer als bei „Telekom Router in die Wand gestöpselt und nicht mal das Passwort geändert“-Anschlüssen.
Ein wenig Grundlagenforschung (und dem Auseinandernehmen meiner Firewall…) später weiß ich jetzt, wo das Problem liegt:

Der Google DNS Server.
Gerne genutzt als Alternative zu den Provider DNS Servern, die häufig Umleitungen für nicht vorhandene DNS Einträge auf Werbe-/Suchseiten durchführen.
(8.8.8.8 und 8.8.4.4)

Vodafone gibt in den Bedingungen zum Wifi Calling an, dass es nur mit Internetanschlüssen aus Deutschland funktioniert. Ich denke mal aus regulatorischen Gründen.
Ich gehe mal davon aus, dass der DNS Server von Vodafone an nicht deutsche IP Bereiche ungültige DNS Einträge ausliefert und so die Nutzung im Ausland verhindert. Der Google DNS Server ist hier wohl keine Ausnahme.

Es gibt jetzt mehrere Lösungen. Die Einfachste für alle Nutzer wäre, wenn Vodafone auf eine IP basierte Geolocation umstellen würde. Hier scheint aber im Moment kein Interesse dran zu bestehen. Das Abändern des DNS Forwarders ist leider nicht in allen Fällen ohne weiteres möglich.
Meine Lösung war jetzt eine Stub Zone in meinem DNS Server (DNS Forwarder für die entsprechende Domain geht natürlich auch) anzulegen.

Vodafone benutzt hierzu die Domain vodafone-ip.de
Wenn man jetzt als Authorativen DNS Server für diese Domain ns1.arcor-ip.de einträgt, funktioniert Wifi Calling nach einem Neuverbinden der WLAN Verbindung sofort – alternativ warten, bis die DNS Einträge veraltet sind 😉

Der erste Testanruf nach dieser einfachen Änderung war bereits erfolgreich 😉