RDP Shortpath per Desktop virtuale Azure

Completato

RDP Shortpath stabilisce un trasporto diretto basato su UDP tra un'App di Windows del dispositivo locale o l'app Desktop remoto su piattaforme supportate e host sessione in Desktop virtuale Azure.

Per impostazione predefinita, Remote Desktop Protocol (RDP) tenta di stabilire una sessione remota tramite UDP e usa un trasporto di connessione inverso basato su TCP come meccanismo di connessione di fallback. Il trasporto basato su UDP offre una migliore affidabilità della connessione e una latenza più coerente. Il trasporto di connessione inversa basato su TCP offre la migliore compatibilità con varie configurazioni di networking, oltre che una frequenza di successo elevata per stabilire connessioni RDP.

RDP Shortpath può essere usato in due modi:

  • Reti gestite, in cui viene stabilita la connettività diretta tra il client e l'host sessione quando si usa una connessione privata, ad esempio una rete privata virtuale (VPN). Una connessione che usa una rete gestita viene stabilita in uno dei modi seguenti:

    • Connessione UDP diretta tra il dispositivo client e l'host sessione, in cui è necessario abilitare il listener Shortpath RDP e consentire a una porta in ingresso in ogni host di sessione di accettare le connessioni.
    • Una connessione UDP diretta tra il dispositivo client e l'host sessione, usando il protocollo Simple Traversal Underneath NAT (STUN) tra un client e un host di sessione. Le porte in ingresso nell'host di sessione non devono essere consentite.
  • Reti pubbliche, in cui viene stabilita la connettività diretta tra il client e l'host sessione quando si usa una connessione pubblica. Esistono due tipi di connessione quando si usa una connessione pubblica, elencata di seguito in ordine di preferenza:

    • Una connessione UDP diretta usando il protocollo STUN (Simple Traversal Sotto NAT) tra un client e un host di sessione.
    • Connessione UDP indiretta che usa il protocollo TURN (Traversal Using Relay NAT) con un inoltro tra un client e un host di sessione. Questa opzione è disponibile in anteprima.

Il trasporto usato per RDP Shortpath si basa sul protocollo URCP (Universal Rate Control Protocol). URCP ottimizza UDP con il monitoraggio attivo delle condizioni di rete e fornisce un utilizzo equo e completo dei collegamenti. URCP opera a bassi livelli di ritardo e perdita in base alle esigenze.

  • Durante l'anteprima, TURN è disponibile solo per le connessioni agli host sessione in un pool di host di convalida. Per configurare il pool di host come ambiente di convalida, vedere Definire il pool di host come ambiente di convalida.
  • RDP Shortpath per le reti pubbliche con TURN è disponibile solo nel cloud pubblico di Azure.

Vantaggi chiave

L'uso di RDP Shortpath offre i vantaggi principali seguenti:

  • L'uso di URCP per migliorare UDP consente di ottenere prestazioni ottimali mediante l'apprendimento dinamico dei parametri di rete e la fornitura del protocollo con un meccanismo di controllo della frequenza.

  • La rimozione di punti di inoltro aggiuntivi riduce il tempo di round trip, migliorando l'affidabilità della connessione e l'esperienza utente con applicazioni e metodi di input sensibili alla latenza.

  • Inoltre, per le reti gestite:

    • RDP Shortpath offre supporto per la configurazione della priorità di Qualità del servizio (QoS) per le connessioni RDP tramite marcatori DSCP (Differentiated Services Code Point).
    • Il trasporto SHORTPATH RDP consente di limitare il traffico di rete in uscita specificando una velocità di limitazione per ogni sessione.

Come funziona RDP Shortpath per reti gestite

È possibile ottenere la connettività direct line of sight necessaria per usare RDP Shortpath con reti gestite usando i metodi seguenti.

La connettività direct line-of-sight significa che il client può connettersi direttamente all'host di sessione senza essere bloccato dai firewall.

Nota

Se si usano altri tipi di VPN per connettersi ad Azure, è consigliabile usare una VPN basata su UDP. Sebbene la maggior parte delle soluzioni VPN basate su TCP supporti l'UDP annidato, aggiunge un sovraccarico ereditato del controllo della congestione TCP, che rallenta le prestazioni RDP.

Per usare RDP Shortpath per le reti gestite, è necessario abilitare un listener UDP sugli host di sessione. Per impostazione predefinita, viene usata la porta 3390, anche se è possibile usare una porta diversa.

Il diagramma seguente offre una panoramica di alto livello delle connessioni di rete quando si usa RDP Shortpath per reti gestite e host di sessione aggiunti a un dominio Active Directory. Diagramma di una panoramica di alto livello delle connessioni di rete usando RDP Shortpath.

Sequenza di connessione

Tutte le connessioni iniziano stabilendo un trasporto di connessione inversa basato su TCP tramite il gateway Desktop virtuale Azure. Quindi, l'host client e sessione stabiliscono il trasporto RDP iniziale e iniziano a scambiare le proprie funzionalità. Queste funzionalità vengono negoziate usando il processo seguente:

  1. L'host di sessione invia l'elenco degli indirizzi IPv4 e IPv6 al client.
  2. Il client avvia il thread in background per stabilire un trasporto basato su UDP parallelo direttamente a uno degli indirizzi IP dell'host sessione.
  3. Mentre il client esegue il probe degli indirizzi IP forniti, continua a stabilire la connessione iniziale tramite il trasporto di connessione inversa per assicurarsi che non vi sia alcun ritardo nella connessione utente.
  4. Se il client dispone di una connessione diretta all'host sessione, il client stabilisce una connessione sicura usando TLS su UDP affidabile.
  5. Dopo aver stabilito il trasporto Shortpath RDP, tutti i canali virtuali dinamici (DVC), inclusi grafica remota, input e reindirizzamento dei dispositivi, vengono spostati nel nuovo trasporto. Tuttavia, se una topologia firewall o di rete impedisce al client di stabilire la connettività UDP diretta, RDP continua con un trasporto di connessione inverso.

Se gli utenti hanno sia RDP Shortpath per la rete gestita che le reti pubbliche disponibili, verrà usato il primo algoritmo trovato. L'utente userà qualsiasi connessione stabilita per la prima volta per la sessione.

Come funziona RDP Shortpath per reti pubbliche

Per offrire la migliore possibilità di una connessione UDP quando si usa una connessione pubblica, esistono i tipi di connessione diretta e indiretta:

  • Connessione diretta: STUN viene usato per stabilire una connessione UDP diretta tra un client e un host di sessione. Per stabilire questa connessione, l'host client e sessione deve essere in grado di connettersi tra loro tramite un indirizzo IP pubblico e una porta negoziata. Tuttavia, la maggior parte dei client non conosce il proprio indirizzo IP pubblico mentre si trovano dietro un dispositivo gateway Network Address Translation (NAT). STUN è un protocollo per l'individuazione automatica di un indirizzo IP pubblico da dietro un dispositivo gateway NAT e il client per determinare il proprio indirizzo IP pubblico.

    Affinché un client usi STUN, la rete deve consentire il traffico UDP. Supponendo che sia il client che l'host di sessione possano instradarsi direttamente all'indirizzo IP e alla porta individuati dall'altro, la comunicazione viene stabilita con UDP diretto tramite il protocollo WebSocket. Se i firewall o altri dispositivi di rete bloccano le connessioni dirette, verrà tentata una connessione UDP indiretta.

  • Connessione indiretta: TURN viene usato per stabilire una connessione indiretta, inoltrare il traffico attraverso un server intermedio tra un client e un host sessione quando non è possibile stabilire una connessione diretta. TURN è un'estensione di STUN. L'uso di TURN indica che l'indirizzo IP pubblico e la porta sono noti in anticipo, che possono essere consentiti tramite firewall e altri dispositivi di rete.

    TURN autorizza in genere l'accesso al server tramite nome utente/password e la modalità di funzionamento preferita consiste nell'usare socket UDP. Se i firewall o altri dispositivi di rete bloccano il traffico UDP, la connessione eseguirà il fallback a un trasporto di connessione inverso basato su TCP.

Quando viene stabilita una connessione, Interactive Connectivity Establishment (ICE) coordina la gestione di STUN e TURN per ottimizzare la probabilità di stabilire una connessione e assicurarsi che la precedenza venga assegnata ai protocolli di comunicazione di rete preferiti.

Ogni sessione RDP usa una porta UDP assegnata dinamicamente da un intervallo di porte temporanee (da 49152 a 65535 per impostazione predefinita) che accetta il traffico Shortpath RDP. La porta 65330 viene ignorata da questo intervallo perché è riservata per l'uso internamente da Azure. È anche possibile usare un intervallo di porte più piccolo e prevedibile. Per altre informazioni, vedere Limitare l'intervallo di porte usato dai client per le reti pubbliche.

Il diagramma seguente offre una panoramica di alto livello delle connessioni di rete quando si usa RDP Shortpath per reti pubbliche con host di sessione aggiunti a Microsoft Entra ID.

Diagramma delle connessioni di rete quando si usa RDP Shortpath per le reti pubbliche.

Network Address Translation e firewall

La maggior parte dei client Desktop virtuale Azure viene eseguita nei computer della rete privata. L'accesso a Internet viene fornito tramite un dispositivo gateway NAT (Network Address Translation). Pertanto, il gateway NAT modifica tutte le richieste di rete dalla rete privata e destinate a Internet. Tale modifica intende condividere un singolo indirizzo IP pubblico in tutti i computer nella rete privata.

A causa della modifica del pacchetto IP, il destinatario del traffico visualizzerà l'indirizzo IP pubblico del gateway NAT anziché il mittente effettivo. Quando il traffico torna al gateway NAT, sarà necessario inoltrarlo al destinatario desiderato senza conoscere il mittente. Nella maggior parte degli scenari, i dispositivi nascosti dietro un NAT di questo tipo non sono in grado di riconoscere la traduzione avviene e non conoscono l'indirizzo di rete del gateway NAT.

NAT è applicabile alle reti virtuali di Azure in cui si trovano tutti gli host di sessione. Quando un host di sessione tenta di raggiungere l'indirizzo di rete su Internet, il gateway NAT (il proprio o il valore predefinito fornito da Azure) o Azure Load Balancer esegue la conversione degli indirizzi.

La maggior parte delle reti in genere include firewall che controllano il traffico e lo bloccano in base alle regole. La maggior parte dei clienti configura i firewall per impedire le connessioni in ingresso( ovvero pacchetti non richiesti da Internet inviati senza una richiesta). I firewall usano tecniche diverse per tenere traccia del flusso di dati per distinguere tra il traffico richiesto e quello non richiesto. Nel contesto di TCP, il firewall tiene traccia dei pacchetti SYN e ACK e il processo è semplice. I firewall UDP usano in genere euristica in base agli indirizzi di pacchetto per associare il traffico ai flussi UDP e consentire o bloccarlo.

Sequenza di connessione

Tutte le connessioni iniziano stabilendo un trasporto di connessione inversa basato su TCP tramite il gateway Desktop virtuale Azure. Quindi, l'host client e sessione stabiliscono il trasporto RDP iniziale e iniziano a scambiare le proprie funzionalità. Se RDP Shortpath per le reti pubbliche è abilitato nell'host sessione, l'host di sessione avvia un processo denominato raccolta candidata:

  1. L'host di sessione enumera tutte le interfacce di rete assegnate a un host di sessione, incluse interfacce virtuali come VPN e Teredo.
  2. Il Servizio Desktop remoto di Windows (TermService) alloca i socket UDP in ogni interfaccia e archivia la coppia IP:Porta nella tabella candidata come candidato locale.
  3. Il servizio Servizi Desktop remoto usa ogni socket UDP allocato nel passaggio precedente per provare a raggiungere il server STUN di Desktop virtuale Azure sulla rete Internet pubblica. La comunicazione viene eseguita inviando un piccolo pacchetto UDP alla porta 3478.
  4. Se il pacchetto raggiunge il server STUN, il server STUN risponde con l'indirizzo IP pubblico e la porta. Queste informazioni vengono archiviate nella tabella candidata come candidato riflessivo.
  5. Dopo che l'host della sessione raccoglie tutti i candidati, l'host della sessione usa il trasporto di connessione inverso stabilito per passare l'elenco dei candidati al client.
  6. Quando il client riceve l'elenco dei candidati dall'host di sessione, il client esegue anche la raccolta dei candidati sul lato. Il client invia quindi l'elenco dei candidati all'host di sessione.
  7. Dopo che l'host della sessione e il client scambiano gli elenchi candidati, entrambe le parti tentano di connettersi tra loro usando tutti i candidati raccolti. Questo tentativo di connessione è simultaneo su entrambi i lati. Molti gateway NAT sono configurati per consentire il traffico in ingresso verso il socket non appena il trasferimento dei dati in uscita lo inizializza. Questo comportamento dei gateway NAT è il motivo per cui la connessione simultanea è essenziale. Se STUN ha esito negativo perché è bloccato, viene eseguito un tentativo di connessione indiretto usando TURN.
  8. Dopo lo scambio di pacchetti iniziale, l'host client e sessione può stabilire uno o più flussi di dati. Da questi flussi di dati, RDP sceglie il percorso di rete più veloce. Il client stabilisce quindi una connessione sicura usando TLS su UDP affidabile con l'host di sessione e avvia il trasporto Shortpath RDP.
  9. Dopo che RDP stabilisce il trasporto Shortpath RDP, tutti i canali virtuali dinamici (DVC), inclusi grafica remota, input e reindirizzamento del dispositivo passano al nuovo trasporto.