Compartir a través de


Crear una topología de red híbrida radial en Azure usando Terraform

Terraform habilita la definición, vista previa e implementación de la infraestructura en la nube. Con Terraform, se crean archivos de configuración mediante la sintaxis de HCL. La sintaxis de HCL permite especificar el proveedor de la nube, como Azure, y los elementos que componen la infraestructura de la nube. Después de crear los archivos de configuración, se crea un plan de ejecución que permite obtener una vista previa de los cambios de infraestructura antes de implementarlos. Una vez que compruebe los cambios, aplique el plan de ejecución para implementar la infraestructura.

En esta serie de artículos se muestra cómo usar Terraform para implementar en Azure una topología de red hub-and-spoke.

Una topología tipo hub-and-spoke es una manera de aislar las cargas de trabajo al compartir los servicios comunes. Estos servicios incluyen identidad y seguridad. El concentrador es una red virtual (VNet) que actúa como un punto de conexión central a una red local. Los radios son redes virtuales que se emparejan con el centro. Los servicios compartidos se implementan en el centro, mientras que las cargas de trabajo individuales se implementan allí como redes radiales.

En este artículo aprenderá a:

  • Implementar recursos de arquitectura de referencia de red híbrida de tipo de grupo radial
  • Crear recursos de dispositivo de red de centro de conectividad
  • Creación de una red de concentrador en Azure para actuar como punto común para todos los recursos
  • Crear cargas de trabajo individuales como redes virtuales radiales en Azure
  • Establecimiento de puertas de enlace y conexiones entre redes locales y de Azure
  • Emparejar redes virtuales con redes radiales

1. Configuración del entorno

  • Suscripción de Azure: si no tiene una suscripción de Azure, cree una cuenta gratuita antes de comenzar.

2. Comprender la arquitectura de la topología de grupo radial

En la topología de grupo radial, el centro es una red virtual. La red virtual actúa como un punto central de conectividad a la red local. Las redes son redes virtuales del mismo nivel que el centro y se pueden usar para aislar cargas de trabajo. El tráfico fluye entre el centro de datos local y el concentrador a través de una conexión a ExpressRoute o a VPN Gateway. La siguiente imagen muestra los componentes de una topología de grupo radial:

Arquitectura de la topología de grupo radial en Azure

Ventajas de una topología de grupo radial

Una topología de red tipo hub-and-spoke es una manera de aislar las cargas de trabajo mientras se comparten servicios comunes. Estos servicios incluyen identidad y seguridad. El centro es una red virtual que actúa como punto de conexión central a una red local. Los radios son redes virtuales que se emparejan con el centro. Los servicios compartidos se implementan en el centro, mientras que las cargas de trabajo individuales se implementan allí como redes radiales. Estas son algunos beneficios de la topología de red de tipo hub-and-spoke:

  • Ahorro de costos mediante la centralización de servicios en una sola ubicación que varias cargas de trabajo pueden compartir. Estas cargas de trabajo incluyen aplicaciones virtuales de red y servidores DNS.
  • Superar los límites de las suscripciones emparejando redes virtuales de diferentes suscripciones con el concentrador central.
  • Separación de problemas entre TI central (SecOps, InfraOps) y cargas de trabajo (DevOps).

Usos típicos de la arquitectura de grupo radial

Algunos de los usos típicos de la arquitectura de grupo radial son:

  • Muchos clientes tienen cargas de trabajo que se implementan en entornos diferentes. Estos entornos incluyen desarrollo, pruebas y producción. Muchas veces, estas cargas de trabajo necesitan compartir servicios como DNS, IDS, NTP o AD DS. Estos servicios compartidos se pueden colocar en la red virtual del concentrador. De este modo, cada entorno se implementa en un radio para mantener el aislamiento.
  • Cargas de trabajo que no requieren conectividad entre sí, pero requieren acceso a servicios compartidos.
  • Empresas que requieren un control central sobre los aspectos de seguridad.
  • Empresas que requieren administración segregada de las cargas de trabajo en cada radio.

3. Vista previa de los componentes de demostración

A medida que se trabaja en cada artículo de esta serie, se definen varios componentes en distintos scripts de Terraform. La arquitectura de demostración creada e implementada consta de los siguientes componentes:

  • Red local. Una red de área local privada que se ejecuta con una organización. Para la arquitectura de referencia tipo hub-and-spoke, se usa una red virtual en Azure para simular una red en las instalaciones.

  • Dispositivo VPN. Un dispositivo o servicio VPN proporciona conectividad externa a la red local. El dispositivo VPN puede ser un dispositivo de hardware o una solución de software.

  • Red virtual del concentrador. El centro es el punto central de conectividad a la red local y un lugar para hospedar los servicios. Estos servicios pueden ser consumidos por las diferentes cargas de trabajo hospedadas en las redes virtuales de radio.

  • Subred de puerta de enlace. Las puertas de enlace de VNet se ubican en la misma subred.

  • Redes virtuales de radios. Los radios pueden utilizarse para aislar las cargas de trabajo en sus propias redes virtuales, administradas por separado desde otros radios. Cada carga de trabajo puede incluir varios niveles, con varias subredes que se conectan a través de equilibradores de carga de Azure.

  • Emparejamiento de VNET. Se pueden conectar dos redes virtuales mediante una conexión de emparejamiento. Las conexiones de emparejamiento son conexiones no transitivas y de baja latencia entre redes virtuales. Una vez emparejados, las redes virtuales intercambian tráfico mediante la red troncal de Azure, sin necesidad de un enrutador. En una topología de red de grupo radial, el emparejamiento de redes virtuales se usa para conectar el centro a cada radio. Puede emparejar redes virtuales de la misma región o de regiones diferentes.

4. Implementación del código de Terraform

  1. Cree un directorio para contener el código de ejemplo de toda la serie de varios artículos.

  2. Cree un archivo denominado main.tf e inserte el siguiente código:

    terraform {
    
      required_version = ">=0.12"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {
        resource_group {
          prevent_deletion_if_contains_resources = false
        }
      }
    }
    
    resource "random_password" "password" {
      count  = var.password == null ? 1 : 0
      length = 20
    }
    
    locals {
      password = try(random_password.password[0].result, var.password)
    }
    
  3. Cree un archivo denominado variables.tf para contener las variables de proyecto e inserte el código siguiente:

    variable "location" {
      description = "Location of the network"
      default     = "eastus"
    }
    
    variable "username" {
      description = "Username for Virtual Machines"
      default     = "azureuser"
    }
    
    variable "password" {
      description = "Password for Virtual Machines"
      sensitive   = true
      default     = null
    }
    
    variable "vmsize" {
      description = "Size of the VMs"
      default     = "Standard_DS1_v2"
    }
    

    Puntos clave:

    • En este artículo se usa una contraseña que introduces al llamar a terraform plan. En una aplicación real, es posible que considere la posibilidad de usar un par de claves pública y privada SSH.
    • Para más información sobre las claves SSH y Azure, consulte Uso de claves SSH con Windows en Azure.

Solución de problemas de Terraform en Azure

Solución de problemas comunes al usar Terraform en Azure

Pasos siguientes