{"id":1741,"date":"2020-06-04T20:28:28","date_gmt":"2020-06-04T18:28:28","guid":{"rendered":"http:\/\/blog.sachathomet.ch\/?p=1741"},"modified":"2022-11-28T08:32:08","modified_gmt":"2022-11-28T07:32:08","slug":"citrix-cvad-und-mtu-discovery","status":"publish","type":"post","link":"https:\/\/blog.sachathomet.ch\/de\/2020\/06\/04\/citrix-cvad-und-mtu-discovery\/","title":{"rendered":"Citrix CVAD und MTU Discovery"},"content":{"rendered":"\n<p>Update November 2022:<\/p>\n\n\n\n<p>Martin Latteier schrieb mir, dass Citrix heimlich eine neue Funktion eingef\u00fchrt hat, die das Problem behebt. Tatsache ist, dass bei bestimmten Kabelverbindungen mit DS-Lite (nur IPv6) die MTU-Ermittlung mit EDT nicht richtig funktionierte, weil das Kabelmodem das &#8222;DF-Flag&#8220; nicht verarbeitete, was dazu f\u00fchrte, dass die MTU-Ermittlung eine zu hohe MTU erkannte, die Datagramme fragmentiert werden mussten und die Performance schlecht war. Die L\u00f6sung bestand bisher darin, EDT auf der Client-Seite auszuschalten oder die MTU-Erkennung auf eine statische MTU zu \u00e4ndern (edtMSS=13xx).<\/p>\n\n\n\n<p>Wenn Sie dieses Flag setzen, sollte das Problem f\u00fcr alle Verbidnungen gel\u00f6st sein:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"408\" height=\"345\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2022\/11\/image-1.png\" alt=\"\" class=\"wp-image-1942\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2022\/11\/image-1.png 408w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2022\/11\/image-1-300x254.png 300w\" sizes=\"auto, (max-width: 408px) 100vw, 408px\" \/><\/figure>\n\n\n\n<p>Dokumentation: <a href=\"https:\/\/docs.citrix.com\/en-us\/citrix-gateway\/current-release\/hdx-enlightened-data-transport-support\/pmtud-support-on-citrix-gateway.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.citrix.com\/en-us\/citrix-gateway\/current-release\/hdx-enlightened-data-transport-support\/pmtud-support-on-citrix-gateway.html <\/a><\/p>\n\n\n\n<p><meta charset=\"utf-8\"><\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Update Januar 2022:<\/mark><\/strong><\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Ich empfehle die default.ica gem\u00e4ss https:\/\/support.citrix.com\/article\/CTX231821<\/mark> <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><span style=\"text-decoration: underline;\">nur<\/span> wie unten empfohlen anzupassen wenn auch die  WorkspaceApp f\u00fcr Mac 2201 oder h\u00f6her eingesetzt wird! <\/mark><\/p>\n\n\n\n<p>In letzter Zeit traf ich \u00f6fters mal die Situation an, wo es bei der ICA Verbindungsherstellung auf virtuelle Desktops via Citrix ADC (aka Netscaler) oder virtuelle Apps im Firmennetz ab den Aussenstandorten Probleme gab. Dazu habe ich f\u00fcr den Fall mit den virtuellen Desktops auch einen Blogpost geschrieben: <a href=\"http:\/\/blog.sachathomet.ch\/2020\/04\/28\/probleme-beim-zugriff-auf-citrix-virtual-apps-und-desktops-auf-einem-reinen-ipv6-internet-anbieter-bei-eingeschaltetem-edt\/\">Probleme beim Zugriff auf Citrix virtual Apps und Desktops auf einem reinen IPv6 Internet Anbieter bei eingeschaltetem EDT<\/a><\/p>\n\n\n\n<p>Der <strong>Workaround<\/strong> war f\u00fcr beide F\u00e4lle das Deaktivieren von dem UDP-basierten EDT Protokoll, welches heute bei Citrix virtual Apps und Desktops Standard ist. Das ist aber nicht so toll, weil wir m\u00f6chten es nicht f\u00fcr alle ausschalten da es gewisse Vorteile hat. Somit mussten wir alle \u00abProblem-Clients\u00bb entdecken und mittels Registry-Key (siehe vorangehender Blog Artikel) auf TCP umstellen.<\/p>\n\n\n\n<p>Eine <strong>weitere Analyse <\/strong>der Problems ergab, dass die Ursache bei der MTU, also der maximalen \u00dcbertragungseinheit oder eben Paketgr\u00f6sse liegt. In unserem Firmennetz kommt es bei der Anbindung zu Aussenstandorten aufgrund von eines Krypto-Tunnels, welches wir zu allen Aussenstandorten  einsetzen, zu einer Verkleinerung der m\u00f6glichen MTU was wiederum zu einer Paket-Fragmentierung f\u00fchrt. In gewissen F\u00e4llen ist die Fragmentierung so stark, dass der Payload nicht mehr ausreicht f\u00fcr die Citrix Verbindung. Es zeigt sich  , das hier EDT via UDP viel anf\u00e4lliger als ICA auf TCP.<\/p>\n\n\n\n<p><s><strong>L\u00f6sung 1: How to configure MSS when using EDT on networks with non-standard MTU<\/strong><br>Im vorangehenden Blog-Post habe ich aufgerufen \u00abCitrix fixt das\u00bb und das taten sie bereits vor meinem n\u00f6rgeln&#8230; Dieser Artikel beschreibt wie man die MTU f\u00fcr EDT reduziert: <a rel=\"noreferrer noopener\" href=\"https:\/\/support.citrix.com\/article\/CTX231821\" data-type=\"URL\" data-id=\"https:\/\/support.citrix.com\/article\/CTX231821\" target=\"_blank\">https:\/\/support.citrix.com\/article\/CTX231821<\/a> z.B. auf 1480 via das default.ica <br>Diese Methode hat den Nachteil dass die MTU f\u00fcr alle Verbindungen reduziert wird, und man etwas ausknobeln muss welches denn nun die richtige MTU ist. Daf\u00fcr funktioniert diese Variante f\u00fcr alle Plattformen ausser Android. <\/s><\/p>\n\n\n\n<p><strong>L\u00f6sung 2: MTU Discovery aktivieren<br><\/strong>Eine etwas noch elegantere Variante hat sich Citrix mit dem etwas heimlichen einf\u00fchren von MTU Discovery \u00fcberlegt. Mit CVAD 19.12 ist es nun m\u00f6glich die optimale MTU automatisch herauszufinden und zu setzen. MTU Discovery ist keine Citrix Erfindung, aber hier neu, Details zu MTU Discovery findet man hier: <a href=\"https:\/\/de.wikipedia.org\/wiki\/Path_MTU_Discovery\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/de.wikipedia.org\/wiki\/Path_MTU_Discovery<\/a><\/p>\n\n\n\n<p>Ich habe versucht, dies nun bildlich etwas darzustellen:<br><br><strong>Standartkonfiguration, MTU ist auf 1500<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"788\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-2-1024x788.png\" alt=\"\" class=\"wp-image-1745\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-2-1024x788.png 1024w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-2-300x231.png 300w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-2-768x591.png 768w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-2-1536x1182.png 1536w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-2.png 1654w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Default configuration, MTU to 1500<\/figcaption><\/figure>\n\n\n\n<p>Standartm\u00e4ssig werden 1500 byte grosse Pakete versendet, ist die m\u00f6gliche MTU auf dem Pfad irgendwo kleiner, wird fragmentiert, das kann funktionieren, aber es gibt in der Praxis teilweise auch Probleme.<\/p>\n\n\n\n<p><br><strong>MTU reduziert auf 1380 gem\u00e4ss oben genannten Citrix Artikel<\/strong> (Anpassung default.ica auf dem StoreFront)<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"843\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-4-1024x843.png\" alt=\"\" class=\"wp-image-1747\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-4-1024x843.png 1024w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-4-300x247.png 300w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-4-768x632.png 768w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-4-1536x1264.png 1536w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-4.png 1560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Nun werden <strong>immer 1380<\/strong> byte grosse Pakete versendet.<br><strong>&#8211;<\/strong> Ist die m\u00f6gliche MTU auf dem Pfad irgendwo kleiner, wird dennoch fragmentiert, hier im Beispiel der Client aus dem Internet. <br><strong>&#8211;<\/strong> Weiter wir unter Umst\u00e4nden die MTU verkleinert wo es nicht n\u00f6tig ist, hier im Bild unser Client am Hauptstandort. <br><strong>+<\/strong> Diese L\u00f6sung funktioniert auf allen Plattformen ausser bei Android. <\/p>\n\n\n\n<p><strong>MTU mit MTU Discovery <\/strong><br>(Anpassung in der Registry des VDA)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"639\" height=\"458\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/09\/mtusize_mac1450_win1480_internal1500-1.png\" alt=\"\" class=\"wp-image-1789\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/09\/mtusize_mac1450_win1480_internal1500-1.png 639w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/09\/mtusize_mac1450_win1480_internal1500-1-300x215.png 300w\" sizes=\"auto, (max-width: 639px) 100vw, 639px\" \/><figcaption class=\"wp-element-caption\">MTU Discovery alway use best MTU<\/figcaption><\/figure>\n\n\n\n<p>+ Mit MTU Discovery wird die MTU f\u00fcr jede Verbindung individuell ausgehandelt, verbunden wird mit 1024 bytes und dann wird hochgefahren. Eigentlich der beste Weg &#8230; aber es ist zu beachten, dass daf\u00fcr mindestens der Virtual Desktop Agent 19.12 ben\u00f6tigt wird, weiter muss bei der Verbindung \u00fcber ADC mindestens die Version 13.0.52.24 oder 12.1.56.22 im Einsatz sein. Wenn die ADC Version tiefer ist, klappt die Verbindung trotzdem aber der MTU Wert bleibt auf 1024 und wird nicht dynamisch wieder nach oben angepasst! <br><strong>&#8211; <\/strong>Weiter funktioniert heute MTU Discovery nur mit der Citrix Workspace App f\u00fcr Windows ab der Version 19.11 (Non-Windows Ger\u00e4te haben ev eine kleiner MTU Size als n\u00f6tig)<\/p>\n\n\n\n<p>Kontrolliert werden wie hoch die EDT MTU ist kann mit dem Befehl: <strong>ctxsession -v <\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"962\" height=\"520\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-5.png\" alt=\"\" class=\"wp-image-1749\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-5.png 962w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-5-300x162.png 300w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-5-768x415.png 768w\" sizes=\"auto, (max-width: 962px) 100vw, 962px\" \/><\/figure>\n\n\n\n<p>MTU Discovery ist heute nicht per Default aktiv, sondern kann auf dem VDA mit dem setzen eine Registry Keys aktiviert werden. Details wie man da macht hier: <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.citrix.com\/en-us\/citrix-virtual-apps-desktops\/technical-overview\/hdx\/adaptive-transport.html#edt-mtu-discovery\" target=\"_blank\">https:\/\/docs.citrix.com\/en-us\/citrix-virtual-apps-desktops\/technical-overview\/hdx\/adaptive-transport.html#edt-mtu-discovery<\/a> <\/p>\n\n\n\n<p><strong>Update 5.6.2020 &#8211; Kombination L\u00f6sung 1 &amp; 2<br><\/strong>In unserem Fall haben wir f\u00fcr die Verbindungen via ADC eine separate Storefront Konfiguration, hier setze ich nun die MTU auf 1480 um auch macOS Computern (BYOD) gerecht zu werden, aber f\u00fcr Windows Computer haben wir auch die MTU Discovery aktiv: <br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"814\" src=\"http:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-9-1024x814.png\" alt=\"\" class=\"wp-image-1774\" srcset=\"https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-9-1024x814.png 1024w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-9-300x238.png 300w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-9-768x610.png 768w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-9-1536x1221.png 1536w, https:\/\/blog.sachathomet.ch\/wp-content\/uploads\/2020\/06\/image-9.png 1617w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Technische Umsetzung:<\/strong><br><strong>auf dem VDA: <\/strong><code>HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\Wds\\icawd<\/code><br>Name: MtuDiscovery<br>Type: DWORD<br>Data: 00000001<\/p>\n\n\n\n<p><strong>default.ica:<\/strong><br>OutBufLength=1300<br>udtMSS=1300<br>edtMSS=1300<br><br>Wenn MTU Discovery aktiv ist, also eingeschaltet und ab einem Windows Client mit CWA 19.12 oder neuer zugegriffen wird, \u00fcbersteuert dies auch den gesetzten Werte vom default.ica !<\/p>\n\n\n\n<p>Wie sieht bei euch die MTU Konfiguration f\u00fcr Citrix mit EDT aus? Hinterlasse dazu doch ein Kommentar! <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update November 2022: Martin Latteier schrieb mir, dass Citrix heimlich eine neue Funktion eingef\u00fchrt hat, die das Problem behebt. Tatsache ist, dass bei bestimmten Kabelverbindungen mit DS-Lite (nur IPv6) die MTU-Ermittlung mit EDT nicht richtig funktionierte, weil das Kabelmodem das &#8222;DF-Flag&#8220; nicht verarbeitete, was dazu f\u00fchrte, dass die MTU-Ermittlung eine zu hohe MTU erkannte, die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3,5,9],"tags":[50],"class_list":["post-1741","post","type-post","status-publish","format-standard","hentry","category-community","category-customizing","category-guide","category-troubleshooting","tag-network"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"de","enabled_languages":["en","de"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false}}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/1741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/comments?post=1741"}],"version-history":[{"count":40,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/1741\/revisions"}],"predecessor-version":[{"id":1944,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/1741\/revisions\/1944"}],"wp:attachment":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/media?parent=1741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/categories?post=1741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/tags?post=1741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}