La redirección USB para los escritorios remotos

2019-08-29T13:01:13+02:00julio 4th, 2019|

Al transformar un escritorio local en uno remoto, una de las configuraciones más delicadas y que requiere mucha atención se refiere al uso de periféricos por parte del usuario. El usuario del sistema a menudo necesita usar varios tipos y el estándar de conexión utilizado entre estos y el sistema es el estándar USB (Universal Serial Bus).

El estándar USB se ha extendido rápidamente porque le permite conectar fácilmente diferentes tipos de periféricos. El desarrollo del protocolo también ha hecho que la velocidad de la conexión aumente progresivamente (desde los 1.5 Mb/s iniciales hasta los 10Gb/s actuales).

En el entorno virtual, una de las posibilidades que tiene el usuario para usar sus periféricos USB es usar la tecnología de «redirección de USB». Para explicar simplemente cómo funciona esta tecnología, es importante comprender primero cómo funcionan los dispositivos USB en un sistema estándar.

Cada dispositivo se declara al sistema como perteneciente a una clase específica de dispositivos. La capa de software que se ocupa de la conexión específica del dispositivo al sistema operativo se denomina driver. Dependiendo de la clase, el driver implementará las funcionalidades necesarias requeridas por el sistema. Así que el sistema, para realizar una operación en un periférico, invocará un método definido en el protocolo USB e implementado en el driver específico del mismo.

Llevamos esta situación al entorno de escritorio remoto: el cliente instalado en la máquina donde el periférico está físicamente conectado se encarga de encapsular todo el protocolo USB dentro de los protocolos de red y transferirlos directamente a la máquina virtual. El agente instalado en la máquina virtual tendrá que realizar la operación opuesta, por lo que estará a cargo de extraer los paquetes USB de los paquetes de red utilizados en el protocolo de transporte y enviarlos al sistema operativo. Por lo tanto, el sistema operativo de la máquina virtual creerá que ha conectado físicamente el dispositivo USB.

La operación de especificar qué dispositivos exportar a través de esta tecnología es a menudo una operación para configurar con políticas o configuraciones particulares y requiere una parte de estudio para comprender, además de las políticas de servidor necesarias, también los identificadores (ID de proveedor, ID de producto, clase) de los distintos periféricos. Esta operación se hace muy simple en ThinOX, el sistema operativo Praim, y en la nueva versión 2.6.6 de Agile, que permite, después de conectar un periférico USB al sistema, elegir fácilmente si exportar el periférico a través de esta tecnología.

Esta tecnología, que parece ser la solución total a todos los problemas de escritorio periféricos, tiene algunas limitaciones. En particular, la latencia creada por la infraestructura de red a menudo hace que esta tecnología sea difícil de usar en áreas multimedia o de seguridad. A lo largo de los años, los diversos proveedores de tecnología que permiten el control remoto del escritorio han desarrollado canales dedicados para la comunicación de los distintos tipos de periféricos, a fin de optimizar el flujo y garantizar una mayor compatibilidad con el área de uso. Este modo de uso diferente cambia radicalmente el rol del controlador periférico y requeriría un análisis sustancial, por ahora solo listaré qué tipos de periféricos tienen un canal virtual dedicado: discos USB, audio/video, escáneres, impresoras, smart card, tabletas.