# Guía de conexión a escritorio de alumno En esta guía se explicará a modo manual de usuario los pasos necesarios para **crear una conectividad hacia el escritorio de un alumno** para poder **supervisar el trabajo del aula en tiempo real**, sobre el entorno de virtualización **Isard VDI**. En el primer punto se documenta cómo establecer una conexión entre el escritorio de un profesor y el de un alumno, formando así una estructura **cliente-servidor**. Ambos roles se conectarán mediante una misma **red interna** con la que el cliente pueda acceder al área del trabajo del servidor. <u>Se creará un entorno lo más real posible para ajustar la guía a la práctica. Se crearán unos usuarios y unos escritorios con los que trabajar. Si el entorno con escritorios, plantillas y usuarios ya está creado, se deben realizar únicamente los pasos que como administrador, profesor y alumno falten por realizar.</u> ## Estructura cliente-servidor ### 1. Como usuario administrador #### 1.1. Creación de usuarios y grupos Para comenzar se crean unos **usuarios de prueba** con los que realizar la práctica. El usuario creado *soporte* tiene un rol *Administrator* con el que se crea un usuario profesor de rol *Advanced*, un **aula de clase** y **cuatro alumnos** rol *Users* con esta información: ![](https://i.imgur.com/6OHbAtc.png) ![](https://i.imgur.com/lp0xCzA.png) ![](https://i.imgur.com/ihvPwqO.png) ![](https://i.imgur.com/0d9Xb8c.png) ![](https://i.imgur.com/0FgQRaf.png) #### 1.2. Interfaces de red Para que los alumnos y el profesor estén conectados mediante una red interna y establezcan mediante esa red la conectividad, se conectan el escritorio del alumno y el del profesor con la **misma interfaz de red**. Se puede usar una de las interfaces de **red interna ya creadas que ofrece Isard**. El administrador debe dirigirse al panel *Administración* de Isard y en el desplegable *Domains*, la vista *Resources*. Se muestra un listado de todas las interfaces de red ya creadas en el sistema. Existen las interfaces modo **Network** (que usará el escritorio del **profesor**) y modo **OpenVSwitch** (que usará el escritorio del **profesor** y el escritorio del **alumno**). ![](https://i.imgur.com/dCUNxZu.png) #### 1.3. Compartir interfaz de red Para que estos usuarios puedan usarlas, **la primera interfaz ya está compartida por defecto con todos el sistema**, así que hay que compartir la segunda interfaz. Como todos los elementos de Isard, se comparte con su botón ![](https://i.imgur.com/Rpg1OqE.png) respectivo, para dar paso a un modal con el que rellenar con la información para **compartirla con los usuarios**. De esta forma se compartirá con **todos los componentes** del *aula_100* y con el **profesor**: ![](https://i.imgur.com/4Mcrtq6.png) #### 1.4. Creación de escritorios En este apartado se procede a crear **dos templates respectivas** para el profesor y el alumno que se compartirán también respectivamente. Para que así los usuarios puedan **crear escritorios** con los que trabajar **en base a la plantilla modificada** que se les ha preparado. Se pueden utilizar otras plantillas ya creadas en el entorno dado que la configuración de las redes irá en el escritorio; este paso se realiza en caso de que ni profesor ni alumno dispongan de plantillas. ##### 1.4.1. Escritorio del profesor Se **crea** la template *debian_profe* desde por ejemplo un escritorio Debian 9.5.0, donde a su vez se **comparte** con el profesor *test_profe01* y se **asignan las interfaces** de red *Default* y *Red interna*: ![](https://i.imgur.com/3D2FW78.png) ![](https://i.imgur.com/IslbfwE.png) ![](https://i.imgur.com/Yp43Hrs.png) ##### 1.4.2. Escritorio de los alumnos Finalmente se **crea** la template *ubuntu_alum* desde por ejemplo un escritorio Ubuntu 22.04, la cual se **comparte** con el profesor *test_profe01* y con el grupo *aula_100* y se **añade la interfaz** *Red interna*: ![](https://i.imgur.com/bjnQjlU.png) ![](https://i.imgur.com/MjAGmvL.png) ![](https://i.imgur.com/9pdpCnc.png) ### 2. Como usuario profesor #### 2.1. Creación de escritorios Mediante el **login del profesor** *test_profe01* se accede a Isard y se **crean dos escritorios en base a la plantilla compartida** con los que se realizará la prueba de conexión. <u>Un escritorio para el profesor y otro para los alumnos, creados con sus respectivas plantillas</u>, que reciben el nombre de **servidor_web** (profesor) y **cliente_web** (alumno) La creación de escritorios en base a plantilla pueden hacerse de dos formas, que se explican [aquí](https://hackmd.io/@yoselin/Manual-Isard-Aragon#Crear-Escritorio) y [aquí](https://hackmd.io/@yoselin/Manual-Isard-Aragon#Crear-escritorio-desde-panel-de-administraci%C3%B3n). > Los escritorios recién creados tendrán los mismos parámetros de hardware con los que se creó la plantilla; no se necesitará modificación dado que vienen preconfiguradas. ![](https://i.imgur.com/6MVhl96.png) ![](https://i.imgur.com/bullRgr.png) ### 3. Conexión entre escritorios Aunque hay muchas, aquí se explican **dos formas** de **configurar las redes de los escritorios**: una mediante **interfaz gráfica** y otra mediante **línea de comandos** o terminal. Una vez creados se arrancan y se accede a ambos mediante los [visores](https://hackmd.io/@yoselin/Manual-Isard-Aragon#Visores). ![](https://i.imgur.com/fWUrGLl.png) #### 3.1. Configuración del servidor De forma automática en la **primera interfaz** de red de *servidor_web* se ofrece una **dirección IP mediante el servicio DHCP** de la red exterior, por lo que la máquina debe tener **acceso a Internet por defecto**. Para configurar la **segunda interfaz** con red interna se le asigna una **dirección IP de forma manual**. A partir de aquí: #### Interfaz gráfica En **Parámetros** y en el botón de la rueda ![](https://i.imgur.com/GKTdtv1.png), en el apartado IPv4 se configura la red de esta forma: ![](https://i.imgur.com/E3owMjt.png) ![](https://i.imgur.com/voQKHx2.png) ![](https://i.imgur.com/8TVIRDG.png) ![](https://i.imgur.com/lLR2o71.png) Se puede comprobar fácilmente **abriendo una terminal** y escribiendo el comando ``` ip -c a ``` Devuelve una **salida** parecida a esta: ![](https://i.imgur.com/mbfAVhK.png) #### Línea de comandos Para hacerlo con la terminal se usa el paquete **network-manager** que debe instalarse en la máquina, y mediante el software ``` nmcli ``` y los comandos siguientes se configura la **segunda interfaz**, donde el valor *nombre_interfaz* corresponde a la tarjeta de red que queremos modificar. Si el **nombre no es claro**, con el siguiente **comando** se puede **comprobar**: ``` sudo nmcli connection show ``` ![](https://i.imgur.com/mhkE3qc.png) ``` sudo nmcli connection down nombre_interfaz sudo nmcli connection modify nombre_interfaz ipv4.method manual ipv4.address 192.168.200.10/24 sudo nmcli connection up nombre_interfaz ``` Con el mismo comando **comprobamos la modificación de la interfaz**: ``` ip -c a ``` ![](https://i.imgur.com/DV0ykzh.png) #### 3.2. Configuración del cliente Se le asigna a continuación una **dirección IP** a *cliente_web* para la **red interna**, de esta forma para Ubuntu: #### Interfaz gráfica En el apartado **Configuración de red cableada**: ![](https://i.imgur.com/foA2DF4.png) ![](https://i.imgur.com/ncs38QG.png) ![](https://i.imgur.com/jlSwZeX.png) Con el mismo **comando** se hace la comprobación: ![](https://i.imgur.com/RtMUscb.png) #### Línea de comandos El valor *nombre_interfaz* corresponde a la tarjeta de red que queremos modificar. Si el **nombre no es claro**, con el siguiente **comando** se puede **comprobar**: ``` sudo nmcli connection show ``` ![](https://i.imgur.com/jarliv2.png) Se abre un terminal y mediante el paquete **network-manager** se configura la interfaz: ``` sudo nmcli connection down nombre_interfaz sudo nmcli connection modify nombre_interfaz ipv4.method manual ipv4.addresses 192.168.200.11/24 sudo nmcli connection up nombre_interfaz ``` Con el mismo comando **comprobamos la modificación de la interfaz**: ``` ip -c a ``` ![](https://i.imgur.com/pXtDDl6.png) #### 3.3. Prueba de conexión ##### 3.3.1. Comando 'ping' Para comprobar la correcta **comunicación entre escritorios**, con el comando ``` ping ``` se envía paquetería hacia la dirección IP o dominio descrita para comprobar una conexión entre ambas máquinas. Se realiza el **comando en ambas máquinas** y devuelve así una respuesta como esta, comprobando que **la conexión existe** y **se comunican**: ![](https://i.imgur.com/rA0zCjl.png) ##### 3.3.2. Entorno web con 'Apache' Para terminar, se puede probar también mediante el **servidor de HTTP Apache** que se establece conexión. Se instala mediante **terminal** en el escritorio *servidor_web* y se conecta *cliente_web* al software mediante **el navegador web** de la máquina. ![](https://i.imgur.com/fLEXAuP.png) Se comprueba la instalación de Apache y se visualiza la existencia del fichero HTML de comprobación que muestra el servicio cuando te conectas a él: ![](https://i.imgur.com/t0yUqZV.png) El *cliente_web* solo tiene que **abrir un navegador web** y escribir la dirección **IP de la máquina del servidor** para que **Apache responda**: ![](https://i.imgur.com/0qW3raC.png) ## MTU Si los elementos de una red se comunican entre ellos mediante la **transferencia de paquetes**, contra **más cantidad** de paquetes por segundo se transfieran en la red, **más velocidad** existirá y por lo tanto la calidad de la red será mejor. Este término se conoce como **ancho de banda**. De la misma forma, existe otro concepto que es modificar el **tamaño** de éstos paquetes. Si podemos enviar muchos paquetes por segundo y además esos paquetes permiten **mayor cantidad de datos** por cadauno, la comunicación entre máquinas será más rápida y óptima. Este término se conoce como **MTU**. El MTU es la **cantidad de datos más grande** expresada en bytes que puede enviarse en un **paquete de red**. Este valor se modifica dependiendo de la **capacidad de la red** para aumentarlo de tamaño o disminuirlo. > Los datagramas pueden pasar por varios tipos de redes con **diferentes tamaños** aceptables antes de llegar a su destino. Por tanto, para que un datagrama llegue sin fragmentación al destino, debe ser menor o igual que el menor MTU de todas las redes por las que pase. ### 1. Averiguar el MTU de una red Con este comando y la dirección IP de la **gateway** de la red, devolverá un resultado como este en el que se muestra el valor de **MTU de la red**: ``` tracepath <gateway> ``` ![](https://i.imgur.com/MzLNNY3.png) ### 2. Averiguar el MTU en la tarjeta de red en uso El tamaño de MTU hay que calcularlo **restándole 28** bytes de la trama de paquetes **ICMP**. En una interfaz donde la MTU sea de 1500, se averiguará este número pasándole al comando el número 1472, dado que **1472+28=1500**: ``` sudo ping google.com -M do -s 1472 ``` Habrá que coger un número alto e ir sumando valores al número (por ejemplo de 10 en 10) hasta que no de error el ping. De esta forma se sabrá la MTU permitida en una tarjeta de red con el comando ```ping```: ![](https://i.imgur.com/jHfhgKL.png) ![](https://i.imgur.com/ycaj9HU.png) ### 3. Modificar MTU de una interfaz de red Para saber el MTU de una tarjeta de red del sistema, el comando ```ip -c a``` lo muestra aquí: ![](https://i.imgur.com/OzK6kM3.png) Y con el siguiente comando podemos asignar un nuevo valor: ``` sudo ip link set dev <tarjeta> mtu <valor> ``` ![](https://i.imgur.com/T06C1QV.png)