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.
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 😉
Wer kennt das nicht: Man geht zum Arzt und auf einmal sieht man sich mit einem 24 Stunden Blutdruckmessgerät um den Arm wieder nach Hause fahren. Okay, ich kenne es nicht, war aber trotzdem neugierig, wie die Ergebnisse aussehen können.
Ich habe dann tatsächlich ein TM 2430 von BOSO in die Hände bekommen (BOSO ist hier wohl Marktführer und die Wahrscheinlichkeit ist hoch, dass man dieses Gerät bekommt) und mal geguckt, wie man die Daten auslesen kann.
Das Gerät besitzt eine Klinkenbuchse und wird mit einem USB Adapter an den PC angeschlossen. Dieser besteht eigentlich nur aus einem USB-RS232 Adapter mit einem Klinkenstecker dran.
Normalerweise wird das Gerät mit dem BOSO Profile Manager ausgelesen – eine Software für den Praxiseinsatz mit Patientenverwaltung und ganz viel Schnickschnack, den man als Normalsterblicher nicht braucht – und auch nicht kostenlos bekommt.
Okay. Ich habe kein Kabel und keine Software. Lösung: erfinderisch werden 😉
Das Kabel ist relativ schnell gebaut – ein altes Stereo Klinkenkabel durchschneiden und an ein Serielles Kabel anlöten.
* Die Spitze vom Stecker (Ring 1) geht auf Masse (Pin 5)
* Die Mitte (Ring 2) geht auf RX (Pin 2)
* Der unterste Ring (Ring 3) geht auf TX (Pin 3)
(Pinbelegung vom RS232 Stecker siehe: https://de.wikipedia.org/wiki/RS-232 )
Wenn das folgende nicht funktioniert ist wohl RX und TX vertauscht.
Am einfachsten ist es, das Kabel per Serieller Schnittstelle direkt mit dem Rechner zu verbinden, USB Adapter sind meist nicht besonders stabil. Mir ist die Übertragung im ersten Versuch abgebrochen und ich musste den USB Adapter aus dem Rechner raus ziehen und wieder rein stecken.
Zum Angucken der Daten kann man ein beliebiges Terminal Programm nutzen, wer noch mit alten Windows Versionen unterwegs ist, hat HyperTerm noch auf seiner Maschine, alternativ geht aber auch HTerm
http://www.der-hammer.info/terminal/
* Zuerst die Kabel verbinden
* Nach dem Starten den COM Port auswählen, die Baudrate auf 9600 stellen und dann Connect.
* Danach das TM 2430 einschalten (Schalter befindet sich im Batteriefach)
* Wenn das TM 2430 auf dem Display ‚—-‚ anzeigt hat es sich verbunden und ist bereit. Danach die „Start/Stop“ Taste einmal kurz drücken.
Solange das Gerät „P“ im Display anzeigt, überträgt es die Daten. Falls es Probleme bei der Übertragung geben sollte, einfach noch mal die Lötstellen überprüfen und alles auf Anfang (Gerät aus, USB abziehen,…) und noch mal versuchen.
Im Terminal Fenster sehen die Daten ein wenig komisch aus, nachdem der Output aber gespeichert wurde, sind die Daten gut lesbar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
=====================ABPM DATA TABLE======================
Outlook ab Version 2010 unterstützt das automatische Einhängen von Postfächern, wenn diese auf dem Exchange Server freigegeben wurden. Wenn man ein Postfach im Exchange per Vollzugriff für andere User freigibt (z.b. ein INFO Postfach oder ähnliches), dann erscheint dieses bei den Berechtigten Usern automatisch nach kurzer Zeit im Outlook.
Dies unterliegt allerdings einigen Einschränkungen. Erstens funktioniert das mit älteren Exchange Versionen nicht (erst ab Exchange 2010) und zweitens funktioniert es nicht, wenn man eine Sicherheitsgruppe statt einem User hinzufügt.
Abhilfe? Wie früher: Rechtsklick auf das Postfach -> Datendatei Eigenschaften -> Erweitert -> Erweitert und dann die Postfächer einzeln hinzufügen.
Das kann ganz schön nervig sein, wenn man das bei jedem User einzeln machen muss. Vor allem, wenn man mal eins vergisst.
Das Thema kann man ein wenig Abkürzen. Um zu verstehen, woher Outlook weiß, welche Postfächer es automatisch zuordnen soll, muss man sich mal einen User im Active Directory, dessen Postfach freigegeben wurde, genauer angucken. Wenn man die erweiterte Ansicht im Active Directory aktiviert hat, kann man die LDAP Felder sehen. Dort gibt es ein Feld mit dem Namen: msexchdelgateLinkList. In diesem Feld werden die delegatenames der Benutzer eingetragen, denen das Postfach automatisch zugeordnet werden soll.
Gruppen kann Outlook aber leider nicht auflösen. Auch trägt ein Exchange 2007 hier nichts ein – das Feld gibt es aber (zumindest in einer meiner Testumgebungen).
Was kann man jetzt machen? Genau. Einfach per Hand eintragen. Funktioniert mit Outlook 2010 und 2013 und Exchange 2007, 2010 und 2013.
Für Exchange 2007 muss man allerdings das Skript anpassen, dass die Exchange 2007 Addins geladen werden:
Die Gruppen aufzulösen und per Hand einzutragen ist allerdings recht müßig, daher habe ich mir das einfach gemacht und ein PowerShell Script geschrieben, das das für mich erledigt:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
## Set msexchDelegateListLink Script
## Adds Mailboxes to User Accounts - also when shared to groups ;)
Was gibt es hier zu sehen? Das Feld $DomainController muss mit einem DC gefüllt werden, der für die Abfrage genutzt werden soll und $Domain sollte den NETBIOS Domainnamen enthalten.
Damit das Script ein wenig schneller läuft und nicht alle Nutzerberechtigungen bearbeitet werden kann man die User/Gruppen, denen die Postfächer freigegeben werden, noch einschränken. Wer das nicht möchte, der Löscht |where User -like „NETBIOSDOMAINNAME\MAIL GRP*“ aus dem Script. Ansonsten kann man das Prefix an seine eigenen Konventionen anpassen.
Bisher hatte ich mit dem Script noch keine Probleme. Natürlich muss man das Script regelmäßig ausführen, entweder per Cronjob oder nach dem Ändern von Zugriffsberechtigungen.
Das Skript aktualisiert alle User (die den Berechtigungen entsprechen). Löscht ggf. also auch User aus der Liste raus. Wenn man einen Filter einsetzt, darf man nicht die Gruppe raus löschen, sonst wird das automatische Einhängen für das Postfach nicht rausgenommen.
Wie lege ich die Postfächer jetzt sinnvoll an?
Eine Sicherheitsgruppe erstellen, z.b. MAIL GRP Info und im Exchange der Gruppe Vollzugriff geben. Wenn jetzt ein User Zugriff auf das Postfach haben soll, dann wird der User einfach der Gruppe hinzugefügt. Da muss man nicht mal mehr in den Exchange gehen. Natürlich funktionieren auch verschachtelte Gruppen.
Und weil ich heute so einen guten Tage habe noch einer!
Wie in meinem vorherigen Post zu lesen ist, habe ich zur Zeit ein paar Fujitsu Siemens Futro S500 hier stehen mit ATI X1200 Chipsätzen/Grafik. Für die gibt es aber leider keine Windows 2000 kompatiblen Treiber.
Denkste:
Die guten, alten Omegatreiber haben es möglich gemacht. Allerdings muss man die Grafikkarte als X700 installieren (die X1200 basiert auf der X700). Als Treiberversion habe ich v3.8.291 genommen. Hier ein kurzer Link:
Den Treiber habe ich normal installiert und dann über den Gerätemanager den X700 Treiber per Hand „erzwungen“. Genau genommen habe ich mich sogar verklickt und den Radeon X700 Series Secondary genommen (statt dem normalen). Aber es läuft und jetzt wird das nicht mehr angefasst. Achja: Vorher DirectX8.1 installieren. Zumindest für die Originaltreiber war das Vorraussetzung.
In diesem Fall werden die Maschinen für Steuerungsaufgaben eingesetzt und neuere Windows Versionen zicken bei den teilweise zeitkritischen Aufgaben rum.
Ich schreibe hier ein paar Tipps auf, die mir im Laufe der Installation aufgefallen sind.
Mein externes USB-DVD Laufwerk zieht zu viel Strom, weshalb ich auf die Installation vom USB Stick gekommen bin. Hier kommen aber 2 Sachen zusammen:
Erstens: Es funktioniert wunderbar mit WinSetupFromUSB ( http://www.winsetupfromusb.com/downloads/ ) Die Installation lief durch, auch vergleichsweise schnell. Aber!
Zweitens: Die Compact Flash Disc wird von Windows als Removeable Disk erkannt. Windows bootet aber trotzdem. Jetzt zu meinem „Aber!“ von eben: Windows gibt sich selbst den Laufwerksbuchstaben D:, weil der USB Stick auch eine Removeable Disk ist und vor der CF Karte geführt wird (woher die Reihenfolge kommt, kann ich nicht sagen. Vielleicht ist das auf anderer Hardware anders).
Prinzipiell wäre das kein großes Problem mit D: als Startplatte weiter zu arbeiten. Aber leider werden dann Zugriffe anders gepuffert und der Dateizugriff ist vergleichsweise langsam.
Jetzt gibt es 3 Methoden, die beide funktionieren um Windows vorzugaukeln, dass man eine normale Festplatte hat.
1) Man ändert das Bit in der CF Karte, das besagt, dass man eine Removeable Disk hat. Hierzu gibt es für verschiedene CF Karten Tools um das zu machen – für die von mir genutzten Kingston Karten leider nicht.
2) Man fügt die CF Karte in der Registry zu einer Whitelist hinzu:
in regedt32.exe öffnen (regedit.exe kann den Wert leider nicht richtig bearbeiten) und den Wert
1
NonRemovableMedia
bearbeiten. Hier fügt man eine Zeile mit dem Namen des Laufwerks hinzu, in meinem Falle
1
ULTIMATE CF CARD
Das kann man auch Automatisieren, indem man die Datei mshdc.in_ bearbeitet sie beinhaltet eine gepackte Version der entsprechenden .inf Datei und liegt auf der Windows CD im Ordner i386\. Man sucht die Zeile
1
HKR,Parameters,NonRemovableMedia,%REG_MULTI_SZ%,\
und fügt eine Zeile mit folgendem Inhalt ein:
1
"ULTIMATE CF CARD",\
Der Inhalt kann je nach CF Karte unterschiedlich sein und lässt sich hier aus der Registry auslesen:
Wenn man die entsprechend präparierte Datei wieder in die gepackte mshdc.in_ kopiert und so auf die CD brennt, wird die CF Karte nach der Installation automatisch als Fixed Disk erkannt. Leider hilft einem das nicht bei der Installation, so dass es (wie bei mir) vorkommen kann, dass sich der Laufwerksbuchstabe durch den Wechsel des Laufwerkstyps verschiebt und Windows einen nach dem Login sofort wieder ausloggt. Wer die dabei entstehende Endlosschleife unterbrechen möchte, muss nur auf der Tastatur die Shift Taste gedrückt halten, dann kann man Windows zumindest regulär herunterfahren.
Bei mir hatte diese Version aber das gleiche Problem wie Lösung 2.
Nachdem ich einen aktiven USB Hub ausgekramt habe und Windows von CD installiert habe, hatte Windows dann auch C: als Laufwerksbuchstaben und der Hack #2 hat einwandfrei funktioniert.
Ich habe ein paar weitere Benchmarks mit den Storage Spaces gemacht. Dieses Mal habe ich dynamische Datenträger im Raid 1 gegen Storage Spaces im Mirror antreten lassen.
Testaufbau
Ich habe wieder den Xeon E3-1230v3 mit 8GB ECC Ram unf dem X10SL-7 im Einsatz. Dieses Mal hängen allerdings die Festplatten an dem Chipsatz Controller und es sind auch andere Festplatten:
4x Seagate ST2000DL003-9VT166
Damit kann ich beide Szenarien parallel laufen lassen und testen. Der Aufbau des Raids mit den dynamischen Datenträgern braucht relativ lange um abzuschließen, es müssten ca. 5 Stunden gewesen sein. Die Storage Spaces Mirror Konfiguration war sofort einsatzbereit.
Bei mir kommt es eigentlich nur auf reine lineare Schreibleistung an, aber in diesem Fall werde ich auch noch ein paar andere Benchmarks testen. Ich habe in meinem Domainserver 2 Festplatten mit 2TB und dynamischem Raid1 als Datenhalde, bin aber mit der Performance sehr unzufrieden, vor allem, wenn eine der VMs Last erzeugt.
Testergebnisse
Aber zuerst der ATTO Benchmark.
Bisher dachte ich eigentlich, dass das Windows Raid1 mit dynamischen Datenträgern gar nicht so verkehrt ist, aber jetzt bin ich doch anderer Meinung. Die Ergebnisse spiegeln auch meine bisherigen Erfahrungen wieder, wobei ich (mit anderer Hardware) durchaus auch lineare Lesezugriffe mit ca. 100MB/s ausführen kann.
Tja, da habe ich gestern geschlafen. Aus irgendeinem Grunde hatte das dynamische Raid 1 kein Laufwerksbuchstaben und ich habe ausversehen einen 16GB USB2 Stick getestet… Uuups 😉
Ich werde demnächst noch mal andere Benchmarks testen um andere Zugriffspatterns zu benchmarken.
Man möge verzeihen, wenn ich nicht so umfangreich, wie diverse Zeitschriften oder Technikblogs teste, die Ergebnisse hier sind nur für meine persönliche Erinnerung gedacht ;)Nichtdestotrotz freue ich mich natürlich über Ideen und sinnvolle Testszenarien.
Erst einmal: Wer wünscht sich nicht die eierlegende Wollmilchsau als Fileserver. Platten rein und alles wird gut. Möglichst billig das Ganze. Ja.
Windows Server 2012 hat es eingeführt und die R2 Version verbessert: Storage Spaces.Unter Windows 8/8.1 gibt es sie auch, aber das ist für mich nicht so interessant, da meine Workstation möglichst schlank bleiben soll.
Was braucht man?
Zuerst Gehäuse, Netzteil, Mainboard, Festplatten, CPU und Speicher 😉
Ich habe lange überlegt, wie ich anfangen soll. Kleines Board kaufen wir nen AMD E-350 und mit einem Raid Controller aufwerten oder doch was potentes?
Im Endeffekt bin ich bei einem Supermicro X10SL7-f gelandet. 2x SATA 3, 4x SATA 2 und 8x SAS 2 bereitgestellt von einem Onboard LSI Controller, der auf den IT-Mode umgeflasht wurde. IT Mode bedeutet, dass die Platten ohne Raid direkt ans Betriebssystem durchgereicht werden – so, wie es von Microsoft für Storage Spaces empfohlen wird.
Übrigens ist das Board jeden Cent wert: Die KVM over IP Funktion funktioniert herausragend, Interner USB3 Port (für z.B. ESXi), Onboard SAS, insgesammt 14(!) SATA kompatible Anschlüsse, 2x Onboard LAN.
Als CPU gibt es einen Xeon E3-1230v3 mit einem BeQuiet Dark Rock Pro (lag noch rum), 4x2GB ECC Ram und einem 430W Netzteil von BeQuiet . Das System ist auf einer Samsung 840 EVO 120GB installiert. Die EVO Serie hat sich bei mir als recht zuverlässig rausgestellt und als Startplatte reichts. Wenn die irgendwann mal sterben sollte, muss das System halt vom Backup auf eine neue zurück gespielt werden. Probleme mit der Downtime habe ich als Privatperson dann zum Glück nicht.
Der ECC Speicher lag noch rum, sonst wären es wahrscheinlich eher 32Gb geworden, aber zum Testen reicht es erst mal. Die CPU ist für ihre Leistung ein guter Fang – auf der einen Seite Unterstützung für ECC Speicher, auf der anderen Seite Quadcore mit HT (!). Alternativen wären Pentium Dual Core oder i3-4xxx. Für einen Fileserver halte ich ECC Speicher durchaus für wichtig. Lieber ein paar Euronen mehr ausgeben, als nachher korrupte Daten haben.
Bilder vom zusammenbau spare ich mir mal – jeder, der schon mal nen Rechner zusammengebaut hat, kennt den Spaß. Und immer schon an einen guten Luftstrom denken – ne Menge Festplatten können viel Wärme erzeugen! Wichtig ist dabei nicht, dass die Lüfter Flugzeugtriebwerke nachmachen, sondern, dass sie einen kontinuierlichen Luftstrom abbekommen.
Weitere Konfiguration
In meinem Fileserver sind – zumindest jetzt in der Testphase 8x 4TB WD Red. Für 8 Platten laufen sie erstaunlich ruhig und erzeugen sehr wenig wärme (Im Verhältnis zu den 6x 1.5TB Seagate aus meinem alten Fileserver auf jeden Fall!)
Die Platten sind zu einem einfachen Storage Space mit einfacher Parity zusammengefasst und als Dateisystem nutze ich ReFS – vor allem deswegen auch der ECC Speicher. Es bringt ja nix, wenn die Daten auf dem Speicher sicher liegen, wenn sie später im Arbeitsspeicher korumpiert werden…
Erste Benchmarks
Die ersten Benchmarks sind durchaus enttäuschend.
Enttäuschend? Bei über 1,3GB/s Leserate? Ja. In meinen Dateikopiertests hat sich leider auch das Ergebnis von ATTO bestätigt, ich komme beim Schreiben leider kaum über die 70MB/s Marke, obwohl die CPU bei 0,8Ghz kaum mehr als 4% Auslastung hat. Schuld hierdran scheint das Parity zu sein. Das Thema wird im Netz vielfach diskutiert und ich werde demnächst noch mal eine SSD als Journal und Write Cache ausprobieren, mit der Hoffnung, dass ich die 2x1Gbit im Trunk ausgelastet bekomme. Auf der anderen Seite werde ich auf dem System später eh kaum Schreibzugriffe haben, sondern vor allem Lesezugriffe.
Es gibt ein paar Tricks um die Schreibgeschwindigkeit zu erhöhen – entweder durch ein RAID 50 (da verliere ich dann allerdings die Kapazität von 2 Festplatten) oder RAID 10 ( Kapazität /2). Es gibt aber wohl auch Tricks, wie man den Schreibcache verändern kann, so dass die Schreibraten wesentlich höher sein sollen. Aber das ist mir zu heikel – Wenn ich dann mal einen Stromausfall habe, ist die Wahrscheinlichkeit für korrupte Daten wesentlich höher – was ich auf diesem System natürlich vermeiden möchte.
Wenn ich das SSD Caching mal ausprobiert habe, kommt auf jeden Fall ein Folgepost 🙂