Vorwort
Ich beklage mich ja selten über schlechten Support, versuche auch stets objektiv zu bleiben und mich mit harscher Kritik zurück zu halten, aber in dieser Hinsicht hat sich Citrix nach meinen Erfahrungen bisher nicht mit Ruhm bekleckert. Ich finde es absolut in Ordnung, dass wenn man nicht bereit ist für Support zu bezahlen, dass man dann auch keinen bekommt, oder eben eine Ewigkeit auf Rückantworten warten muss – so ist nun mal das Leben. Wenn man allerdings 500$ je Supportanfrage bezahlt (im 5er Pack zu haben), so denke ich, dass es nicht zuviel verlangt sein kann, dort Antworten in entsprechender Zeit von einem halbwegs Citrix-versierten Menschen zu erhalten, der nicht zum ersten Mal eine Serververbindung aufbaut. Es wäre auch nicht zuviel verlangt, dass sich jemand hinsetzt und zumindest versucht das beschriebene Verhalten nachzustellen.
Ein Beispiel aus nicht allzu ferner Vergangenheit. Wir hatten einst versucht unter einem Linux Client die Citrix HDX-Webcam Redirection zu nutzen. Dies funktionierte auf Anhieb nicht so wie gewünscht. Nun gut, man hat ja nicht umsonst das Support Paket erworben. Nach insgesamt ca. 6 Monaten Bearbeitungszeit, in denen wir regelmäßig Logs unseres Systems nach Indien versendet haben und die Gegenseite das Verhalten wiederholt versucht hat mit einem 32 Bit Ubuntu 14.04 (Aktuell war 18.04) nachzustellen, wurde uns mitgeteilt, dass keine 64bit Anwendungen serverseitig unterstützt würden. Da stellen sich mir doch gleich 3 Fragen:
- Warum wird es nicht unterstützt?
- Warum ist es nirgendwo in den Anleitungen zur Verwendung der HDX-Webcam Redirection erwähnt?
- Warum dauert es 6 Monate um das herauszufinden?
Wie dem auch sei… nun zum eigentlichen Problem.
Verhalten
Seit dem Citrix Receiver 13.7 kommt es regelmäßig zu einem Einfrieren des Clients bei Beendigung der Sitzung. Auf einer frischen Ubuntu 18.04 Installation mit aktuellstem Citrix Workspace Client (19.12), tritt es mit jeder mir zur Verfügung stehenden Serverumgebung (von XenApp 7.15 – VAD 19. 12) bei ca. jedem 5-10 Verbindungsversuch auf.
Hier noch ein Verweis zum Vorwort:
Der hier wieder mit 500$ bezahlte Citrix Support konnte das Verhalten innerhalb von ca. 9 Monaten nicht reproduzieren und uns weder eine Lösung oder Ursache nennen. Dies hat sich auch bis heute nicht geändert.
Ursache
Verantwortlich für das Ganze ist die „Adaptiver HDX-Transport“ genannte Funktion. Diese sorgt dafür, dass HDX Pakete, wenn möglich, über UDP statt TCP übertragen werden. Die Funktion wird einem auch unter dem Namen „EDT“ angepriesen. Leider führt die Verwendung von UDP nun auch mal dazu, dass auch mal ein Paket verloren gehen kann. Während der Windows Client hierauf scheinbar vorbereitet wurde, wartet der Client unter Linux bei der Abmeldung ewig auf sein verloren gegangenes Paket.
Workaround – Adaptiver HDX-Transport – Deaktivieren (HDX nur noch über TCP)
Das Problem lässt sich sowohl auf Clientseite über die Konfigurationsdateien, als auch auf Serverseite über eine Richtlinie umgehen.
Auf Clientseite
Standard Linux Client
Öffnet die Datei /opt/Citrix/ICAClient/config/All_Regions.ini (Pfad der Standardinstallation) mit einem Editor eurer Wahl ( z.B.: nano oder vi) und setzt den Parameter „HDXoverUDP“ auf „Off“ auf Serverseite.
Rangee Thin Client
Auf einem Rangee Thin Client können sie die benötigte Option in den „Globalen Einstellungen“ des ICA-Clients finden. Die Option ist ab den Versionen ICA 19.10 – 10.00 Build 008 und ICA 19.10 – 8.04 Build 005 verfügbar.
Auf Serverseite
Auf Serverseite kann zum Deaktivieren der UDP Verbindung die Richtlinie „Adaptiver HDX-Transport“ auf „Aus“ gesetzt werden.
Um die Einstellungen sofort zu übernehmen ist noch ein „gpupdate /force“ auf Serverseite erforderlich.
Prüfen der Einstellung
Um zu überprüfen, ob die Einstellung korrekt angewendet wird, baut eine neue Verbindung zu einer freigegebenen Anwendung oder einem Desktop auf. Während die Sitzung läuft, kann über den Citrix Director innerhalb der Sitzungsdetails der aktiven Sitzung die verwendete Protokollversion ausgelesen werden. Steht hier „TCP“ hat der Workaround Erfolg gehabt und es sollten keine weiteren Sitzungen mehr beim Abmelden einfrieren.