Las VLAN y las VPC son métodos de aislamiento de la red que utilizamos para proteger nuestra infraestructura en las nubes públicas. Proporcionan una mayor seguridad al reducir significativamente la superficie de ataque de nuestra red, a la vez que nos dan la posibilidad de segmentar las capas de aplicaciones con y sin acceso público a Internet. Hoy, pensemos en grande y extendamos nuestra red privada a través de múltiples regiones con Linode.
Cuando hablamos de "regiones", nos referimos a zonas geográficas distintas dentro del mismo proveedor de la nube. Las "zonas" suelen ser ubicaciones de alojamiento adicionales dentro de esas regiones geográficas. Por ejemplo, puede ver una región del noreste con sede cerca de Nueva York y una región del sureste en Atlanta, cada una de las cuales contiene varias zonas.
Además de ofrecer una menor latencia al estar físicamente más cerca de más usuarios, la ejecución de una aplicación multirregional nos proporciona un aumento significativo de la fiabilidad y la tolerancia a los fallos. Cualquier cosa que pueda afectar a sus cargas de trabajo en una ubicación, incluyendo fallos de hardware o cortes de la red local, puede ser potencialmente mitigado por tener otra ubicación a la que redirigir a sus usuarios.
Implantación de VLAN multirregión
Para enrutar a través de segmentos de VLAN desplegados en varias regiones, podemos unir segmentos de VLAN mediante una red privada virtual (VPN).
En primer lugar, unimos todas las VLAN asociadas desplegadas en una misma región utilizando un Linode que actúa como enrutador común. Cada segmento de VLAN es su propio dominio aislado de capa 2 y opera dentro de su subred de capa 3. Todo el tráfico entre los distintos segmentos de fluirá a través del enrutador. Todo el tráfico entre los diversos segmentos de VLAN fluirá a través del enrutador, y podemos colocar reglas de cortafuegos dentro del enrutador para gobernar qué tráfico se permite atravesar entre los múltiples segmentos.
A continuación, podemos configurar esta instancia del router para que sirva de puente para el tráfico entre otros segmentos de la red utilizando la Internet pública y un software de VPN como WireGuard o un protocolo como IPSec.
El ejemplo anterior muestra un despliegue de dos regiones. Cada región es responsable de gestionar la conectividad entre dos VLANs aisladas a través de una instancia de router. Cada enrutador puede entonces unir las múltiples regiones localmente usando las instancias de enrutador Linode que configuramos con múltiples interfaces. Los routers abarcan las regiones utilizando los túneles de WireGuard sobre la Internet pública a cada región.
Configuración de los puntos de salida de NAT
Ahora el tráfico puede fluir entre cualquier VLAN independientemente de la región. Además, las instancias de enrutador pueden utilizarse como puntos de salida de traducción de direcciones de red (NAT) que proporcionan conectividad a Internet para sus VLAN locales si las desplegamos sin conectividad local a Internet. En esta configuración, la instancia de router local se designaría como puerta de enlace predeterminada (es decir, normalmente configurada como 10.0.0.1 en una red 10.0.0.0/24). También podemos utilizar las instancias del router como bastiones de gestión de Secure Socket Shell (SSH).
Una forma común de implementar este tipo de configuración de NAT es utilizar una regla de firewall para marcar el tráfico de WireGuard y el enmascaramiento de IP para cualquier tráfico detectado sin esta marca.
Por ejemplo, el router estaría configurado para utilizar una regla iptables:
¡iptables -t nat -A POSTROUTING -o eth0 -m mark ! --mark 42 -j MASQUERADE
Podemos configurar WireGuard para usar un FirewallMark (i.e., 42) dentro de su configuración. Esta configuración asegura que el tráfico de WireGuard no es NATed mientras que todo el tráfico de VLAN es NATed.
Las reglas del firewall de la nube se configurarían entonces para permitir la comunicación de WireGuard entre los nodos de enrutamiento (típicamente, udp/51820).
A continuación, podemos configurar las instancias del router con reglas de cortafuegos para controlar o registrar el flujo de tráfico a través de los segmentos local y global, según sea necesario.
Consideraciones
El despliegue de este ejemplo permite compartir datos globalmente entre varias regiones y faculta a las instancias de enrutamiento para controlar el flujo de tráfico entre varios segmentos de VLAN . Al canalizar el tráfico de varios segmentos de VLAN en un único punto de agregación, es fundamental comprender las consideraciones de rendimiento y ancho de banda al hacerlo. El rendimiento vendrá determinado por las restricciones de ancho de banda de subida impuestas por los recursos informáticos asignados al enrutador.
También es fundamental considerar cuidadosamente el protocolo de la VPN para asegurarse de que cumple con los requisitos de su despliegue. La tecnología que elija tendrá un gran impacto en el ancho de banda punto a punto y en la seguridad del tráfico enviado a través de la Internet pública. WireGuard, por ejemplo, utiliza criptografía para garantizar que el tráfico no pueda ser interceptado y tiene una base informática de confianza más pequeña en comparación con una implementación de IPsec como strongSwan para limitar los exploits y la exposición.
Multicloud
El mismo tipo de tecnología que utilizamos para abarcar varias regiones podría implementarse en varios proveedores de nube. Por ejemplo, puede colocar una instancia de enrutador dentro de los límites de la red de otro proveedor de servicios en la nube y atarla a su configuración VPC local, específica del proveedor de la nube. Puede utilizar un túnel WireGuard entre la instancia del enrutador para hacer un puente hacia la red del proveedor de la nube. Esta implementación funciona bien para servicios diseñados para permanecer aislados en una red privada exclusivamente.
¿Qué es lo que sigue?
En definitiva, hay muchas herramientas diferentes con las que trabajar a la hora de diseñar nuestra red privada y los beneficios pueden compensar significativamente la complejidad añadida. Si su aplicación está creciendo junto con su base de usuarios, el diseño de su entorno para reducir la latencia para un mayor número de esas personas puede tener un gran impacto en la experiencia del usuario. La tolerancia a fallos adicional aumentará la fiabilidad y mantendrá su software disponible y accesible.
Comentarios