En esta nueva entrada del blog, nuestro compañero Hugo Margallo detallará cómo construir una granja de servidores de Windows Server 2016 empleando los roles de Remote Desktop Services y desplegándolos sobre una infraestructura jerárquica en nube de 4 servidores.

Una instalación mínima de RDS con alta disponibilidad podría realizarse con 3 equipos, pero utilizaré 4 para que los roles estén más definidos, de tal forma que mi controlador de dominio no tendrá ningún rol RDS, aunque podrá monitorizar la granja.

Este contenido se dividirá en 3 partes como consecuencia de la gran cantidad de contenido y extensión del tema y que se publicarán progresivamente durante estas tres semanas siguientes. En la primera entrada del blog se explicará la configuración de los primeros aspectos de la granja y la puesta a punto para el despliegue óptimo de la misma, la segunda parte se centrará en su funcionalidad y operatividad; y por último, en la tercera y última entrada del Blog configuraré los certificados necesarios para un funcionamiento seguro y, además, explicaré los scripts que se pueden usar para hacer la granja autoescalable de manera automática.

Una instalación completa de RDS requeriría máquinas con el rol “RD License server”, que proporcionaría las licencias necesarias a los equipos, pero no entraremos en detalle por resultar menos relevante que los otros roles.

La infraestructura consta de los siguientes equipos:

  • EnimbosDC: Es el controlador del dominio “enimbos.local”. Se encargará de instalar los roles necesarios en el resto de equipos y realizará el despliegue. Todo podrá gestionarse y monitorizarse desde aquí. También poseerá el rol de ‘Autoridad Certificadora’ del dominio. Todos los certificados estarán autorizados por esta máquina y serán fiables dentro del propio dominio.
  • EnimbosBroker1: Se encargará de gestionar las conexiones de los equipos externos hacia los host RDS. Para ello empleará funciones de balanceo y funcionará en alta disponibilidad con EnimbosBroker2. Todas las conexiones se dirigirán a uno de los dos equipos mediante una DNS común funcionando con Round Robin. Concretamente este equipo también funcionará a modo de servidor de ficheros Samba que compartirá determinadas rutas para facilitar funciones de transferencia de archivos y autoescalado, como veremos más adelante.
  • EnimbosBroker2: Se encargará de las mismas funciones que EnimbosBroker1 con el añadido de que también hará de servidor web para poder ofrecer el archivo RDP a todos los usuarios de dominio mediante una URL en la que hacer login.
  • EnimbosHost1: Será el primero de los “Session Host” al que los usuarios de dominio podrán conectarse de manera remota. Este equipo siempre se mantendrá activo independientemente del crecimiento o decrecimiento de la granja RDS.

Los demás equipos se irán añadiendo y eliminando mediante scripts que proporcionan autoescalado y todos tendrán el rol de “Session Host”, al igual que EnimbosHost1.

1.Creación del controlador de dominio

Una vez que accedamos de manera remota al equipo EnimbosDC, debemos acceder al Server Manager e instalar el rol de “Active Directory Domain Services” como muestra la siguiente captura (no debemos instalar ninguna característica, solo roles):

Pulsamos “siguiente” en todos los pasos del asistente y marcamos que el servidor pueda reiniciarse en caso de necesitarlo. Acto seguido, debemos fijarnos en el siguiente mensaje:

Si clickeamos sobré él iniciamos el asistente de promoción del equipo a controlador de dominio. Lo primero que el asistente nos preguntará es si debemos unirlo a un dominio ya existente, crear otro dominio o un bosque (dominio principal del que parten el resto de dominios). Como partimos de cero, seleccionaremos la opción “bosque” y lo llamaremos “enimbos.local”. Como es lógico, este equipo también hará las funciones de servidor DNS, así que esa casilla la dejamos marcada, preocupándonos solo de elegir el nivel funcional del bosque y el dominio, que será en nuestro caso Windows Server 2016.

A continuación hemos de introducir la contraseña del modo de restauración de los servicios de directorio, que será “Enimbosblog2018#”, aunque por ahora es irrelevante.

No indicaremos la creación de una delegación DNS, así que procedemos a introducir un nombre de NetBios, que en este caso podemos dejar el que viene por defecto (ENIMBOS), así como las rutas que empleará el controlador de dominio para la gestión de todos los equipos y usuarios de Active Directory.

Por último, solo debemos revisar en el asistente si las opciones que hemos escogido están tal y como las deseamos y lanzar la comprobación de prerrequisitos, que si no nos hemos pasado nada nos dará el visto bueno y podremos proceder a la promoción del equipo.

Nota: El usuario con el que hemos ejecutado este asistente (que debe tener privilegios de administrador), pasará a ser usuario administrador del dominio.

2. Unir equipos al dominio

Necesitamos que el resto de los equipos que formen parte de la granja RDS se encuentren en el mismo dominio. Los pasos a seguir son iguales para todas las máquinas, así que solo lo mostraré para el caso de EnimbosBroker1.

Lo primero será permitir que el dominio “enimbos.local” pueda ser resuelto por las DNS, por lo que hay que indicar como servidor DNS la ip del controlador de dominio, y eso podremos hacerlo a través del panel de control, en la configuración de IPv4:

La ip configurada como DNS alternativo (8.8.8.8) pertenece a Google, y nos ofrecerá salida a Internet mediante la resolución de todos los dominios de la WWW.

Podemos comprobar que funciona correctamente haciendo ping a “enimbos.local”.

Ahora que podemos resolver el nombre de dominio, el siguiente paso es especificar que debe unirse a él. Para ello, desde el panel de control/Sistema, clickeamos sobre la opción de cambiar la configuración del equipo y en la pestaña “Nombre del equipo”, escogemos “Cambiar”. Por defecto, veremos que el equipo pertenece a un Workgroup. Debemos marcar la casilla de dominio y especificar “enimbos.local”. Al establecerse la conexión por LDAP, lo siguiente será introducir las credenciales de administrador del dominio y, si todo ha salido bien, veremos un mensaje de bienvenida y tendremos que reiniciar el equipo, que podremos hacerlo ahora o más adelante.

Ahora EnimbosBroker1 está en dominio y debemos hacer lo mismo con las restantes.

3. Despliegue RDS

Para comenzar con el despliegue debemos iniciar sesión en el controlador de dominio y acceder al Server Manager. Una vez allí, debemos añadir a los nuevos equipos del dominio al “server pool”. Para ello, clickeamos sobre “Add Server” en la pestaña Manage del Server Manager, y seleccionamos los equipos por su nombre (también se puede hacer por la IP) como se muestra en la siguiente captura:

Si todo ha salido bien, en la opción “All Servers” del menú izquierdo del Server Manager podremos ver a los equipos seleccionados y con estado “Online”, indicando que ya pueden ser gestionados desde ahí.

Para comenzar el despliegue, debemos instalar primero los roles correspondientes en cada máquina, aunque puede hacerse de manera más sencilla clickeando sobre “Manage” y “Add roles and Features”. Veremos en el asistente que podemos seleccionar directamente hacer una instalación de Remote Desktop Services.

En las siguientes pantallas debemos escoger la opción “Despliegue Estándar” y “Despliegue de escritorio basado en sesión”. Una vez escogidas ambas opciones, procedemos a seleccionar qué rol poseerá cada máquina, siendo EnimbosBroker1 el primer “Connection Broker” , EnimbosBroker2 el “RD Web” (más adelante también será bróker) y EnimbosHost1 el primer RDSessionHost.

Si todo ha salido bien, podremos ver a la izquierda del Server Manager la opción “Remote Desktop Services” y, al clickear, se nos mostrará un esquema general de la granja indicando los equipos que pertenecen a ella, como se muestra en la siguiente captura:

El siguiente paso será configurar los brokers en alta disponibilidad.

4. Configuración de alta disponibilidad

Son imprescindibles dos requisitos para configurar la alta disponibilidad: una dirección DNS compartida por los dos brokers y una base de datos de SQL Server que mantenga los datos. Para lo primero debemos acceder al “DNS Manager”, que lo encontraremos en “Tools” (esquina superior derecha del Server Manager) y luego en DNS.

Una vez dentro, debemos desplegar nuestro controlador de dominio (“ENIMBOSDC” en este caso), luego la carpeta “Forward Lookup Zones” y finalmente “enimbos.local”, que es el nombre de nuestro dominio. Una vez dentro, veremos entradas haciendo referencia a los nombres de nuestros equipos. Para añadir una nueva entrada debemos clickear con el botón derecho sobre el fondo blanco de la ventana derecha y seleccionar “New Host (A or AAAA)”. Ahí solo tendremos que poner el nombre de nuestra entrada dns (“brokerha” en este caso) y la ip del primer bróker. Acto seguido, debemos repetir el mismo paso pero para la ip del segundo bróker (el nombre debe ser el mismo), que en nuestro caso será la IP del equipo “EnimbosBroker2”, que por ahora es solo RDWeb.

Debemos también asegurarnos que el servidor DNS va a usar el balanceo Round Robin para el correcto funcionamiento de la alta disponibilidad (esto solo se aplica para dos entradas DNS que comparten nombre pero distinta IP). Para ello clickeamos con el segundo botón sobre nuestro controlador de dominio en el menú de la izquierda, seleccionamos “propiedades” y en la pestaña “Advanced” debemos comprobar que la casilla “Enable Round Robin” está marcada. Con esto ya tenemos cierto balanceo.

Ahora veamos la base de datos. En este caso he configurado en Amazon Web Services un RDS (es como llama Amazon a los gestores de bases de datos en nube, nada que ver con la granja) con SQL Server Express, pero perfectamente podría ser una base de datos albergada en el controlador de dominio u otra máquina accesible en red.

Lo primero, acceder a ese gestor de base de datos (mediante SQL Management Studio mismamente) y crear una nueva base de datos específica para los brokers, que llamaré “bróker” a secas y que será perfectamente accesible y modificable por mi usuario de SQL Server por defecto, llamado “Enimbos”.

Ahora debemos volver al Server Manager, concretamente al esquema RDS.

Clickeamos con el segundo botón sobre el dibujo del bróker en el esquema y seleccionamos “Configure High Availability”:

En el asistente debemos especificar “Shared Database”, la dirección dns completa de los dos brokers, es decir, brokerha.enimbos.local y la cadena de conexión, que dependerá del driver ODBC que tengamos instalado en los brokers y del usuario y base de datos que nos hayamos creado, quedando en este caso de la siguiente forma:

Driver={SQL Server};Server=tcp:enimbosblog-rds-db.cvpdkpgzesjl.eu-central-1.rds.amazonaws.com,1433;Database=broker;Uid=Enimbos;Pwd=EnimbosBlog2018#;TrustServerCertificate=yes

Podemos averiguar el driver ODBC que tenemos dándole a “Tools” y “ODBC data Sources (64 bits)”. En la pestaña Drivers veremos, al menos, uno llamado SQL Server, pero podemos instalar otros descargándolos de la web de Microsoft. Es necesario que el nombre del driver sea especificado con el nombre exacto.

Si todo ha salido bien ya podemos seleccionar con el segundo botón del ratón sobre el bróker la opción “Add RD Connection Broker Server” e iniciaríamos un asistente similar al del despliegue RDS pero teniendo que seleccionar solo un nuevo bróker.

Nota: debemos permitir el acceso a la base de datos, por lo que tendremos que configurar el firewall en el puerto 1433 (por defecto) y, en caso de utilizar servicios en nube, las reglas de entradas correspondientes en el grupo de seguridad.

Hasta aquí todo lo necesario para conseguir realizar una configuración completa de los aspectos fundamentales de una granja RDS 2016 y generar una puesta a punto total para realizar un despliegue de Granja óptimo. Durante la siguiente entrada de blog desarrollaremos todo lo concerniente a la funcionalidad y operatividad de una granja RDS, no te lo pierdas y estáte atento a nuestras noticias y perfiles de Redes sociales en LinkedIn y Twitter.

About Hugo Margallo

Hugo Margallo Gracia / Cloud Consultant. Hugo is Technical Engineer in Computer Systems by Extremadura University and he has a masters in Information and Communication Technology Management. He started his professional career in 2005 managing and setting up networks, joining Enimbos in 2018 as Cloud Consultant.