Virtualización para redes
- 11 minutos
Los centros de datos de gran tamaño forman parte de la infraestructura básica que admite los servicios en la nube. Para ser rentables, estos centros de datos deben tener redes ágiles que sean fáciles de configurar y actualizar. Estas redes también deben aplicar el concepto de virtualización de red. La virtualización de red permite crear redes virtuales sobre redes físicas, similar a la creación de máquinas virtuales en servidores físicos. Aunque una descripción completa de las redes de centro de datos y de sus tecnologías subyacentes está fuera del ámbito de este módulo, es importante comprender el motivo de la virtualización de red.
Desafíos en el diseño de centros de datos en la nube
Las redes de equipos son recopilaciones de nodos y vínculos. Un nodo es cualquier dispositivo de red, como un conmutador, un enrutador o un servidor. Un vínculo es una conexión física o lógica entre dos nodos de la red. Las redes también tienen recursos de identificación (direcciones) y etiquetas de etiquetado. También suele ser necesario un mecanismo para identificar los dispositivos (dirección IP y dirección MAC), los vínculos (identificador de flujo) y las redes (identificadores de VLAN y VPN) para administrar y supervisar una infraestructura virtualizada. Las estructuras organizativas generales, como las topologías de red, se crean mediante el ensamblado de estos recursos.
Los diseñadores de redes de centros de datos de gran tamaño deben lidiar con varios requisitos (a veces contradictorios)1. Tienen que:
- Asegurarse de que la topología que se usa sea escalable para hacer frente a la demanda futura
- Maximizar el rendimiento a la vez que se minimiza el costo de hardware
- Asegurarse de que el diseño garantiza la disponibilidad y la integridad del sistema a pesar de los errores
- Disponer de características de ahorro de energía para reducir los costos operativos (y ser respetuosos con el medio ambiente)
Una consideración importante a la hora de diseñar la red para un centro de datos grande es seleccionar el tejido de red adecuado. Entre las opciones se incluyen Ethernet, InfiniBand y otros tejidos de alta velocidad, como Myrinet. Cada uno tiene diferentes criterios de costo, latencia, ancho de banda y comunicación, y se debe elegir con atención. Una comparación física de estos tejidos no se encuentra dentro del ámbito de este módulo. Lo que más nos interesa es la topología y el esquema de direccionamiento seleccionados para interconectar estos recursos. Por ejemplo, si se opta por usar una red con direcciones Ethernet en la que los puntos de conexión se identifican con una dirección MAC plana de 6 bytes, es probable que dicha red sea plana. Esto significa que a cada interfaz se le asigna una dirección MAC que no depende de su ubicación. Una configuración como esta hace que el enrutamiento sea difícil y reenvíe tablas de gran tamaño, ya que es necesario almacenar todas las direcciones.
Por este motivo, para crear redes escalables se recurre principalmente al enrutamiento jerárquico. El direccionamiento y el enrutamiento se suelen basar en el enrutamiento basado en IP, donde a cada punto de conexión se le asigna una dirección IP basada en su ubicación en la jerarquía. Pero esto limita la movilidad de las máquinas virtuales: la migración de una máquina virtual de un host a otro se debe controlar mediante otra directiva. Además, a menudo es difícil asignar las direcciones IP de forma determinista, ya que esto revelaría información sobre la ubicación del servidor de VM. La selección de la topología de red del centro de datos es un área de investigación activa, y se centra en topologías fijas y flexibles que pueden estar basadas en árbol o ser recursivas.
Además de la topología y el esquema de direcciones, es importante decidir el mecanismo de enrutamiento. En el enrutamiento centralizado, un único controlador central crea tablas de búsqueda para determinar la acción de reenvío. En teoría, es el método óptimo, ya que el controlador central tiene visibilidad completa de la red del centro de datos y facilita la configuración y la comprensión del impacto de los errores. Pero el controlador introduce un cuello de botella y un único punto de error, y produce una gran sobrecarga en la propagación de tablas de reenvío. En lugar de enrutamiento centralizado, se pueden usar enfoques distribuidos en los que las decisiones se basan en la información local de cada enrutador y conmutador.
Dentro de los centros de datos de gran tamaño, el tráfico se puede diseñar cuidadosamente para minimizar la congestión y la latencia. Los grupos de paquetes se clasifican como "flujos" si están relacionados de forma secuencial o lógica. Los protocolos de enrutamiento realizan el equilibrio de carga mediante la distribución de los datos que viajan entre dos nodos entre varias rutas de acceso paralelas. El diseño de un centro de datos debe estar optimizado para los patrones de flujo específicos que contiene. Por este motivo la capacidad de analizar el tráfico es importante para un diseñador de centros de datos. Los protocolos de enrutamiento deben ser compatibles con el estado, para favorecer las rutas inactivas con respecto a las que están ocupadas, y dispersar los flujos entre varias rutas paralelas.
Por último, las redes de centro de datos deben estar diseñadas para la tolerancia a errores. Estas redes suelen usar protocolos de intercambio, donde los vecinos se comunican entre sí para compartir información sobre los errores rápidamente. Es importante diseñar estos mecanismos para que no consuman grandes cantidades de ancho de banda. También debe haber mecanismos para recuperarse de los errores y reincorporar a la red los componentes con errores.
Virtualización de redes
Por tanto, es evidente que la implementación de una red de centros de datos grande es compleja y necesita una abstracción más general para que sea fácil de diseñar y configurar. Pero la situación es aún más compleja para los centros de datos en la nube, en gran medida debido a los requisitos de varios inquilinos. El paradigma de la informática en la nube solo es relevante si puede garantizar el aislamiento entre varios inquilinos. Un proveedor de servicios en la nube debe garantizar el aislamiento del tráfico para que el tráfico de un inquilino no sea visible para otro. Por ejemplo, los paquetes que se transmiten a o desde una aplicación de banca hospedada en un inquilino no deben ser visibles para una aplicación de juegos en otro distinto. El espacio de direcciones también debe estar aislado para que cada inquilino tenga acceso a su propio espacio de direcciones privadas.
El aislamiento del tráfico y del espacio de direcciones se logra mediante la creación de redes virtuales para cada inquilino, con el tráfico entre ellas restringido a algunos canales definidos de forma estricta. Estas redes virtuales se crean como "superposiciones" sobre las redes físicas. Una red de superposición es una red virtual en la que la separación de los inquilinos se oculta de la infraestructura física subyacente. Esto se hace de forma que la red de transporte subyacente no necesita conocer los distintos inquilinos para reenviar el tráfico correctamente. La virtualización de red hace referencia al aprovisionamiento de estas superposiciones, su asociación con las interfaces de red del inquilino y el mantenimiento del ciclo de vida de esta red a medida que las instancias de máquina virtual se inician, detienen y finalizan2.
Una de las ventajas más importantes de la virtualización de la red es que permite la migración de máquinas virtuales entre hosts a la vez que se conserva el estado de la red (direcciones IP y MAC). Los cambios en las direcciones MAC causan muchas interrupciones inesperadas, por ejemplo, mediante la invalidación de licencias de software. A los hosts físicos se les pueden asignar direcciones IP de forma jerárquica, mientras que una máquina virtual puede tener una dirección IP de un grupo de direcciones válidas para esa subred.
Otro controlador de la virtualización de red es la mayor complejidad del mantenimiento de las tablas de reenvío. En lugar de mantener una única dirección MAC por cada servidor físico, los centros de datos en la nube deben mantener una dirección MAC para cada máquina virtual, lo que da lugar a una demanda significativa de la capacidad del nodo de reenvío.
La virtualización también ayuda a proporcionar a los inquilinos individuales control sobre las direcciones que usan en su vista de la red. Por tanto, la red de superposición debe proporcionar a los inquilinos la capacidad de usar cualquier dirección que quieran, sin tener que comprobar las redes de todos los inquilinos vecinos. Estas direcciones también deben ser independientes de las que use la infraestructura del proveedor de servicios en la nube. Las redes virtuales usan esta separación de direcciones para limitar el ámbito de los paquetes que se envían en ellas. Los paquetes solo pueden cruzar los límites de red a través de puntos de salida controlados.
Por último, la presencia de varios inquilinos y la sobrecarga del ancho de banda de red compartido conduce a un desafío de administración del tráfico y el flujo. Los CSP deben garantizar una calidad de servicio (QoS) en línea con los SLA garantizados y deben dar forma al tráfico de cada inquilino según el uso máximo aprovisionado.
En resumen, la virtualización de redes es simplemente un mecanismo de uso compartido que permite que varias redes virtuales aisladas usen la misma infraestructura de red física. Este uso compartido permite que las redes virtuales se asignen e implementen dinámicamente a petición y de forma precisa, como las máquinas virtuales3. En un nivel práctico, los consumidores de servicios en la nube deben poder implementar redes virtuales que admitan todas las características de las redes físicas, incluidas subredes, direcciones de enrutamiento de interdominios sin clases (CIDR), firewalls y emparejamiento para que la informática en la nube sea un paradigma de computación útil. Esto es exactamente lo que los proveedores de servicios en la nube, como Amazon, Microsoft y Google, le permiten hacer.
Caso práctico: Redes virtuales en Azure
Los principales proveedores de servicios en la nube admiten redes virtuales, aunque a veces usan terminología y abstracciones diferentes. Por ejemplo, Azure no ofrece firewalls virtuales, pero admite grupos de seguridad de red (NSG), que son una abstracción de los firewalls. En la figura 10 se muestra una red virtual (VNet) de Azure configurada para servir contenido a los clientes desde servidores web virtuales con equilibrador de carga virtual de front-end con una dirección IP pública virtual asignada. El equilibrador de carga y las máquinas virtuales de servidor web se encuentran en una subred, mientras que las bases de datos de back-end y otros recursos están aislados en una subred totalmente diferente. Cada subred está en un NSG diferente, con reglas de firewall distintas aplicadas a cada uno. Por ejemplo, la subred pública abre los puertos 80 y 443 al mundo exterior para admitir el tráfico HTTP y HTTPS, mientras que la subred privada solo es accesible desde la otra subred y abre solo los puertos necesarios para que los servidores web se conecten a las bases de datos. En el diagrama no se muestran los demás recursos de red virtual, como las tarjetas de interfaz de red virtual (NIC) que conectan las máquinas virtuales a la red.

Figura 10: Red virtual en Azure.
Esto refleja la topología que se podría diseñar para que una red física admita la seguridad y la escalabilidad. Además, solo toca la superficie de lo que los administradores de la nube con talento pueden lograr con las redes virtuales. Por ejemplo, Azure admite el emparejamiento de VNet. Esta tecnología permite conectar dos o más redes virtuales, incluso si se encuentran en regiones de Azure distintas. También admite redes privadas virtuales (VPN) de punto a sitio y de sitio a sitio, que permiten a los dispositivos locales y de red conectarse de forma segura a redes virtuales. Por último, Azure ExpressRoute proporciona conectividad segura, dedicada y de alto ancho de banda entre redes locales y redes virtuales. AWS y Google hacen lo mismo a través de servicios como Virtual Private Cloud (AWS y Google), AWS Direct Connect y Google Cloud Interconnect.
En resumen, las redes virtuales son una tecnología tan madura como las máquinas virtuales y no menos importante en el contexto de la informática en la nube. Aunque la mayoría de los detalles se ocultan a los usuarios, los expertos diseñan de forma intencionada los centros de datos y sus redes para admitir redes virtuales y todo lo que eso conlleva.
Referencias
Liu, Yang and Muppala, Jogesh K y Veeraraghavan, Malathi y Lin, Dong y Hamdi, Mounir (2013). "Data Center Networks: Topologies, Architectures and Fault-Tolerance Characteristics" (Redes de centro de datos: Topologías, arquitecturas y características de tolerancia a errores). Springer Science and Business Media.
Liu, Yang and Muppala, Jogesh K y Veeraraghavan, Malathi y Lin, Dong y Hamdi, Mounir (2014). "Problem statement: Overlays for network virtualization" (Declaración del problema: Superposiciones para la virtualización de red). RFC 7364.
Wen, Heming and Tiwary, Prabhat Kumar y Le-Ngoc, Tho (2013). "Wireless virtualization" (Virtualización inalámbrica). Springer.
Comprobación de conocimientos
Comentarios
¿Le ha resultado útil esta página?
No
¿Necesita ayuda con este tema?
¿Desea intentar usar Ask Learn para aclarar o guiarle a través de este tema?