Die Nutzung von Multimediainhalten in Remote Sessions ist in den vergangenen Monaten/Jahren stark angestiegen. Nicht zuletzt auch durch die Verlagerung des Arbeitsplatzes ins Home-Office in Covid-19 Zeiten.
Häufig bringen diese Inhalte Hardware und VM an ihre (CPU-)Grenzen. Übeltäter sind in den meisten Fällen die Browsersitzungen innerhalb der User Sessions oder der Abruf klassische Videofiles. Benutzer konsumieren Inhalte wie Youtube und Konsorten.
Nicht jeder Kunde hat das Budge um hier mit Grafikkarten nachzuhelfen, schließlich kommen zusätzlich zur Hardwarebeschaffung auch Kosten für Lizenzen auf die Kunden zu. Auch bringen diese GPU’s häufig nicht den gewünschten Effekt aus Kundensicht.
Ein Ansatz den es schon länger gibt, aber dennoch bei vielen nicht (richtig) konfiguriert ist ist die Umleitung von Browserinhalten auf den Endpoint des Clients.
Korrekt konfiguriert kann hier die Last auf einem Multi-Session-Host stark reduziert werden. Bei einer normalen 4-Kerne VM kann das Abspielen eines normalen Youtube Videos im normalen Window-Mode bei einer Auflösung von 720p durchaus 30-40% CPU Last generieren. Somit bringen bei diesem Sizing schon 2-3 Benutzer die VM ans Limit. Das Resultat ist eine schlechte Performance für alle User auf diesem System.
Bei gleicher VM Größe und konfigurierter Inhaltsumleitung (Client Fetch | Client Render …später mehr hierzu) wird lediglich noch 2-3 % CPU Last durch die Browsersitzung generiert.
Was also macht die Browserinhaltsumleitung genau?
Eine Erweiterung im Browser auf der VDA wird aktiv (und wind damit auch grün), wenn eine URL aufgerufen wird, die in der Whitelist der Citrix Richtlinie konfiguriert wurde.
In diesem Moment wird über einen virtuellen Kanal (CTXCSB) die Workspace App auf dem Client Benachrichtigt, sie soll doch bitte die entsprechende URL aufrufen und auch gleich rendern. Dies geschieht in einem embedded Browser in der Workspace App.
Die fertig gerenderten Inhalte werden dann wieder in der Citrix Sitzung im Viewport des Browsers eingeblendet.
Voraussetzungen:
Die Voraussetzungen, wenn man bereits Citrix Lizenzen besitzt, sind denkbar klein.
- Virtual Apps & Desktops 7.15 CU5 oder neuer
- Workspace App für Windows 1809 oder neuer (Ausgeschlossen LTSR Version)
- Workspace App für Linux 1808 oder neuer
- Citrix Richtlinien
- BCR aktivieren
- BCR Whitelist
- ggf. BCR Proxy für Server Fetch | Client Render
- Browser auf VDA
- Chrome v66 oder neuer
- Edge Chromium 83.0.478.37 oder neuer
- jeweils mit installiertem Browser Extension
Wie man diese Erweiterung installiert, darauf möchte ich nicht weiter eingehen. Das ist in den Citrix Docs ausreichend beschrieben:
Browser content redirection (citrix.com)
Das Gute ist, dass per Default Citrix Richtlinie BCR erlaubt wird und als einziger Whitelist Eintrag www.youtube.com vorkonfiguriert ist.
Stolpersteine:
Das hört sich alles einfach an….Ist es auch!
Trotzdem gibt es Stolpersteine. Nicht richtig konfiguriert, kann es dazu führen, dass die User Experience sogar schlechter ist, als ohne Inhaltsumleitung.
Ich habe schon häufig von Kunden folgenden Satz gehört:
„Wenn ich von daheim per Citrix arbeite, fühlt sich alles schneller und performanter an, als wenn ich in der Firma per Citrix arbeite.“
Wie kann das sein? schließlich haben wir doch eine extra Latenz zum Rechenzentrum.
Die Lösung ist denkbar einfach…….Daheim habe ich im Normalfall immer direkten Internetzugriff von meinem Client. In der Firma häufig nicht oder nur über einen Proxy.
Wenn ich von Daheim arbeite klappt alles wunderbar. Ich öffne in meiner Citrix Session den Browser, gehe auf Youtube, die Browsererweiterung signalisiert der Workspace App …“mach du das bitte“. Der embedded Browser von meinem Client ruft Youtube ab, rendert alles und blendet es ein.
In der Firma wird das gleiche versucht. Aber der Client kommt nicht ins Internet. Das dauert ein wenig, bis alles in einen Timeout läuft. Danach wird als Fallback auf Server Fetch | Server Render umgestellt, und das Video ruckelt.
Wenn am Client ein anderer DPI Wert als 100% konfiguriert ist, kommt es unter Umständen zu Anzeigefehlern. Entweder sollte der DPI Wert am Client auf 100% gesetzt werden, oder aber die GPU Unterstützung für BCR sollte deaktiviert werden:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\HdxMediaStream
Name: GPU
Type: DWORD
Data: 0
BCR überprüfen:
Ein erstes Indiz, dass die Inhaltsumleitung aktiv ist, bietet das Icon der BCR Erweiterung im Browser. Ist das Icon grün, so ist die Inhaltsumleitung erstmal aktiv.
Auf einem Windows Client kann man die Internetkonnektivität per lokalem Browser testen. Zusätzlich muss man im Task Manager am Client prüfen, ob der embedded Browser aktiv ist.
Häufig kommen bei meinen Kunden am Arbeitsplatz IGEL Thin Clients als Endgeräte zum Einsatz. Hier ist es etwas schwieriger. Neben den Voraussetzungen (Workspace App Version) muss auch noch ein entsprechende Profil aktiv sein, das die Inhaltsumleitung am Igel generell erstmal aktiviert:
Mit Zugriff auf das lokale Terminal kann man den embedded Browser testen. Dafür sind folgende Befehle notwendig:
cd /opt/Citrix/ICAClient/util
./webcontainer --url https://www.youtube.com
Nun sollte sich der embedded Browser öffnen und die Youtube Seite aufrufen. Ist das nicht der Fall, hat man ein Problem…Client Fetch | Client Render wird nicht funktionieren.
Wenn das nicht klappt sieht es so aus:
In diesem Fall kann auf Server Fetch – Client Render umgestellt werden.
Damit alles funktioniert sollte es so aussehen:
Damit kann man auch gleich testen, ob der Igel das Video performant abspielen kann und die notwendigen Codec am Igel vorhanden sind.
Server Fetch – Client Render
Es gibt noch die Möglichkeit den Inhalt vom Server aus abzuholen und auf dem Client zu rendern.
Dafür muss lediglich in der Citrix Richtlinie „Browser Content Redirection Proxy Configuration“ ein gültiger Proxy eingetragen werden:
Entweder Direct, wenn der VDA direkten Internetzugriff hat, oder die URL eine PAC Files oder direkt ein Proxyserver samt Port:
Mit Windows Endpoints hat das bei mir immer sauber funktioniert.
Igel macht hier aber gerne Probleme. Daher ist es hier von Vorteil, wenn der Client die entsprechenden Webseiten direkt erreichen kann.
Edit: Unter folgenden Voraussetzungen funktioniert Server Fetch – Client Render auch mit Igel Clients:
- Igel OS 11.06.100
- Citrix Workspace App > = 2106
- Aktivierte Browser Content Redirection im IGEL Profil
- aktivieren des folgenden Parameters in der Igel Registry
- „ica.module.virtualdriver.portforward.enable“
Weitere Ansätze:
Nicht nur Youtube auch andere Webseiten mit Ressourcen intensiven Multimedia Inhalten können umgeleitet werden. Gute Beispiele sind z.B. die Microsoft Teams WebApp oder die Cisco Webex Meetings Web App.
Für Webex Meetings gibt es einen guten Guide direkt von Cisco
Für die MS Teams WebApp sind folgende Einstellungen in den Citrix Richtlinien notwendig:
Wenn eine Konfigurierte Webseite den Benutzer auf eine andere URL zur Authentifizierung umleitet, so müssen dies URL’s ebenfalls in einer Citrix Richtlinie konfiguriert werden. Und zwar unter „Authentifizierungssites für Browserinhaltsumleitung“:
Die Beispiel URL „https://adfs*okta*idp.url/* muss natürlich angepasst oder entfernt werden, je nachdem ob und was ihr als externen Identity Provider nutzt. Z.B. https://adfs.domain.de/* oder https://firmenname.okta.com/*
Weitere Beispiele für Browser Content Redirection im Zusammenhang mit Webconferencing findet ihr hier.
Browser Content Redirection: whitelisting websites (citrix.com)
Zusammenfassung:
Korrekt konfiguriert kann BCR in bestimmten Situationen extrem behilflich dabei sein, die Gesamtlast auf Multi-Session Hosts zu reduzieren. Damit kann eine deutlich höhere Dichte auf den Systemen erreicht werden.
In Szenarien mit lokalen Videofiles oder Grafikintensiven Anwendungen kann BCR aber natürlich auch keine GPU ersetzen.
Ein guter Troubleshooting Guide ist bei Citrix zu finden:
How to Troubleshoot Browser Content Redirection (citrix.com)
Hallo,
könnten Sie vielleicht die richtige Citrix BCR Policys für die Teilnahme an webbasierten Zoom-Meetings auch hier veröffentlichen?
Danke.
Hallo,
es gibt einen Zoom VDI Client, der einen eigenen optimierten Citrix Kanal bereitstellt, ähnlich wie es das für Teams und Skype for Business gibt.
https://support.zoom.us/hc/de/articles/360031096531-Erste-Schritte-mit-VDI
Wenn es im Browser abgehalten werden soll, muss unbedingt verhindert werden, dass versucht wird das Plugin herunterzuladen, da dies mit Citrix BCR nicht supportet ist.
Um einfach nur an Zoom Meetings teilzunehmen funktioniert folgendes:
1. Zoom Redirector Plugin auf TS installieren (der leitet alle Zoom Meeting URL’s zum Zoom Webclient um. Das verhindert den Plugin Download)
2. Citrix Policy „Authentifizierungssites für Browserinhaltsumleitung“
a. https://us05web.zoom.us/*
b. https://zoom.us/*
3. Citrix Policy „ACL-Konfiguration für die Browserinhaltsumleitung“
a. https://us05web.zoom.us/*
b. https://zoom.us/*
ggf. müssen noch weitere URL’s eingefügt werden. z.B. https://us04web.zoom.us/*
Mit dieser Konfiguration konnte ich im Browser an Zoom Meetings teilnehmen. Auch Audio und Video-Redirection hat gut funktioniert.
Viele Grüße
Hallo,
wir haben die Browser-Erweiterung „https://chrome.google.com/webstore/detail/zoom-redirector/fmaeeiocbalinknpdkjjfogehkdcbkcd“ für die Zoom-Umleitung verwendet und das hat gut funtkioniert.
Vielen Dank
Hallo,
könnten Sie vielleicht auch die richtige Citrix BCR Policys für die Teilnahme und Organisation an webbasierten Goto-Meetings auch hier veröffentlichen? Seit der Umstellung des Herstellers von gotomeeting.com auf goto.com haben sich die URLs weitesgehend geändert, so dass eine positive fehlerfreie Policy-Konfiguration nicht ganz klar ist.
Danke.