Esercitazione: Creare una topologia di rete ibrida hub-spoke con Terraform in AzureTutorial: Create a hub and spoke hybrid network topology in Azure using Terraform

Questa serie di esercitazioni illustra come usare Terraform per implementare in Azure una topologia di rete hub-spoke.This tutorial series shows how to use Terraform to implement in Azure a hub and spoke network topology.

Una topologia hub-spoke consente di isolare i carichi di lavoro e allo stesso tempo di condividere i servizi comuni.A hub and spoke topology is a way to isolate workloads while sharing common services. Questi servizi includono l'identità e la sicurezza.These services include identity and security. L'hub è una rete virtuale che funge da punto centrale di connessione a una rete locale.The hub is a virtual network (VNet) that acts as a central connection point to an on-premises network. Gli spoke sono reti virtuali che eseguono il peering con l'hub.The spokes are VNets that peer with the hub. I servizi condivisi vengono distribuiti nell'hub, mentre i singoli carichi di lavoro vengono distribuiti all'interno delle reti spoke.Shared services are deployed in the hub, while individual workloads are deployed inside spoke networks.

Questa esercitazione illustra le attività seguenti:This tutorial covers the following tasks:

  • Usare HCL (HashiCorp Language) per disporre le risorse dell'architettura di riferimento di rete ibrida hub-spokeUse HCL (HashiCorp Language) to lay out hub and spoke hybrid network reference architecture resources
  • Usare Terraform per creare risorse per l'appliance di rete hubUse Terraform to create hub network appliance resources
  • Usare Terraform per creare in Azure una rete hub che funga da punto comune per tutte le risorseUse Terraform to create hub network in Azure to act as common point for all resources
  • Usare Terraform per creare i singoli carichi di lavoro come reti virtuali spoke in AzureUse Terraform to create individual workloads as spoke VNets in Azure
  • Usare Terraform per stabilire gateway e connessioni tra la rete locale e la rete di AzureUse Terraform to establish gateways and connections between on premises and Azure networks
  • Usare Terraform per creare peering reti virtuali alle reti spokeUse Terraform to create VNet peerings to spoke networks

PrerequisitiPrerequisites

Architettura della topologia hub-spokeHub and spoke topology architecture

Nella topologia hub-spoke l'hub è una rete virtuale.In the hub and spoke topology, the hub is a VNet. Tale rete virtuale funge da punto centrale di connettività alla rete locale.The VNet acts as a central point of connectivity to your on-premises network. Gli spoke sono le reti virtuali peer con l'hub, e possono essere usati per isolare i carichi di lavoro.The spokes are VNets that peer with the hub, and can be used to isolate workloads. Flussi di traffico tra il data center locale e l'hub attraverso una connessione di gateway VPN o ExpressRoute.Traffic flows between the on-premises datacenter and the hub through an ExpressRoute or VPN gateway connection. L'immagine seguente illustra i componenti in una topologia hub-spoke:The following image demonstrates the components in a hub and spoke topology:

Architettura della topologia hub-spoke in Azure

Vantaggi della topologia hub-spokeBenefits of the hub and spoke topology

Una topologia di rete hub-spoke consente di isolare i carichi di lavoro e allo stesso tempo di condividere i servizi comuni.A hub and spoke network topology is a way to isolate workloads while sharing common services. Questi servizi includono l'identità e la sicurezza.These services include identity and security. L'hub è una rete virtuale che funge da punto centrale di connessione a una rete locale.The hub is a VNet that acts as a central connection point to an on-premises network. Gli spoke sono reti virtuali che eseguono il peering con l'hub.The spokes are VNets that peer with the hub. I servizi condivisi vengono distribuiti nell'hub, mentre i singoli carichi di lavoro vengono distribuiti all'interno delle reti spoke.Shared services are deployed in the hub, while individual workloads are deployed inside spoke networks. Di seguito sono descritti alcuni dei vantaggi offerti dalla topologia di rete hub-spoke:Here are some benefits of the hub and spoke network topology:

  • Risparmio sui costi tramite la centralizzazione dei servizi in un'unica posizione che può essere condivisa da più carichi di lavoro.Cost savings by centralizing services in a single location that can be shared by multiple workloads. Questi carichi di lavoro includono appliance virtuali di rete e server DNS.These workloads include network virtual appliances and DNS servers.
  • Superamento dei limiti delle sottoscrizioni eseguendo il peering delle reti virtuali da sottoscrizioni diverse all'hub centrale.Overcome subscriptions limits by peering VNets from different subscriptions to the central hub.
  • Separazione dei compiti tra IT centrale (SecOPs, InfraOps) e carichi di lavoro (DevOps).Separation of concerns between central IT (SecOps, InfraOps) and workloads (DevOps).

Usi tipici dell'architettura hub-spokeTypical uses for the hub and spoke architecture

Di seguito sono descritti alcuni degli usi tipici di un'architettura hub-spoke:Some of the typical uses for a hub and spoke architecture include:

  • Molti clienti hanno carichi di lavoro che vengono distribuiti in ambienti diversi.Many customers have workloads that are deployed in different environments. Si tratta, ad esempio, di ambienti di sviluppo, testing e produzione.These environments include development, testing, and production. In molti casi questi carichi di lavoro devono condividere servizi quali DNS, IDS, NTP o Active Directory Domain Services.Many times, these workloads need to share services such as DNS, IDS, NTP, or AD DS. Questi servizi condivisi possono essere collocati nella rete virtuale hub.These shared services can be placed in the hub VNet. In questo modo ogni ambiente viene distribuito a uno spoke per mantenere l'isolamento.That way, each environment is deployed to a spoke to maintain isolation.
  • Carichi di lavoro che non richiedono connettività uno con l'altro, ma richiedono l'accesso ai servizi condivisi.Workloads that don't require connectivity to each other, but require access to shared services.
  • Aziende che richiedono un controllo centralizzato sugli aspetti correlati alla sicurezza.Enterprises that require central control over security aspects.
  • Aziende che richiedono una gestione separata per i carichi di lavoro in ogni spoke.Enterprises that require segregated management for the workloads in each spoke.

Anteprima dei componenti per la demoPreview the demo components

Mentre si eseguono le singole esercitazioni di questa serie, si usano vari componenti definiti in script Terraform distinti.As you work through each tutorial in this series, various components are defined in distinct Terraform scripts. L'architettura creata e distribuita per la demo è costituita dai componenti seguenti:The demo architecture created and deployed consists of the following components:

  • Rete locale.On-premises network. Una rete LAN privata in esecuzione con un'organizzazione.A private local-area network running with an organization. Per l'architettura di riferimento hub-spoke, viene usata una rete virtuale in Azure per simulare una rete locale.For hub and spoke reference architecture, a VNet in Azure is used to simulate an on-premises network.

  • Dispositivo VPN.VPN device. Un servizio o un dispositivo VPN offre connettività esterna alla rete locale.A VPN device or service provides external connectivity to the on-premises network. Il dispositivo VPN può essere un'appliance hardware o una soluzione software.The VPN device may be a hardware appliance or a software solution.

  • Rete virtuale dell'hub.Hub VNet. L'hub è il punto centrale di connettività alla rete locale e la posizione in cui vengono ospitati i servizi.The hub is the central point of connectivity to your on-premises network and a place to host services. Questi servizi possono essere usati dai diversi carichi di lavoro ospitati nelle reti virtuali spoke.These services can be consumed by the different workloads hosted in the spoke VNets.

  • Subnet del gateway:Gateway subnet. I gateway di rete virtuale vengono mantenuti nella stessa subnet.The VNet gateways are held in the same subnet.

  • Reti virtuali spoke.Spoke VNets. Gli spoke possono essere usati per isolare i carichi di lavoro nelle reti virtuali corrispondenti, gestite separatamente rispetto agli altri spoke.Spokes can be used to isolate workloads in their own VNets, managed separately from other spokes. Ogni carico di lavoro può includere più livelli, con più subnet connesse tramite i servizi di bilanciamento del carico di Azure.Each workload might include multiple tiers, with multiple subnets connected through Azure load balancers.

  • Peering reti virtuali.VNet peering. È possibile connettere due reti virtuali tramite una connessione peering.Two VNets can be connected using a peering connection. Le connessioni peering sono connessioni non transitive a bassa latenza tra reti virtuali.Peering connections are non-transitive, low latency connections between VNets. Dopo il peering, le reti virtuali si scambiano traffico tramite il backbone di Azure, senza che sia necessario un router.Once peered, the VNets exchange traffic by using the Azure backbone, without needing a router. In una topologia di rete hub-spoke viene usato il peering reti virtuali per connettere l'hub a ogni spoke.In a hub and spoke network topology, VNet peering is used to connect the hub to each spoke. È possibile eseguire il peering di reti virtuali nella stessa area o in aree differenti.You can peer VNets in the same region, or different regions.

Creare la struttura di directoryCreate the directory structure

Creare la directory che deve contenere i file di configurazione Terraform per la demo.Create the directory that holds your Terraform configuration files for the demo.

  1. Accedere al portale di Azure.Browse to the Azure portal.

  2. Aprire Azure Cloud Shell.Open Azure Cloud Shell. Se in precedenza non è stato selezionato un ambiente, selezionare Bash come ambiente.If you didn't select an environment previously, select Bash as your environment.

    Prompt di Cloud Shell

  3. Passare alla directory clouddrive.Change directories to the clouddrive directory.

    cd clouddrive
    
  4. Crea una directory denominata hub-spoke.Create a directory named hub-spoke.

    mkdir hub-spoke
    
  5. Passare alla nuova directory:Change directories to the new directory:

    cd hub-spoke
    

Dichiarare il provider di AzureDeclare the Azure provider

Creare il file di configurazione Terraform che dichiara il provider di Azure.Create the Terraform configuration file that declares the Azure provider.

  1. In Cloud Shell aprire un nuovo file denominato main.tf.In Cloud Shell, open a new file named main.tf.

    code main.tf
    
  2. Incollare il codice seguente nell'editor:Paste the following code into the editor:

    provider "azurerm" {
        version = "~>1.22"
    }
    
  3. Salvare il file e uscire dall'editor.Save the file and exit the editor.

Creare il file delle variabiliCreate the variables file

Creare il file di configurazione Terraform per le variabili comuni usate nei diversi script.Create the Terraform configuration file for common variables that are used across different scripts.

  1. In Cloud Shell aprire un nuovo file denominato variables.tf.In Cloud Shell, open a new file named variables.tf.

    code variables.tf
    
  2. Incollare il codice seguente nell'editor:Paste the following code into the editor:

    variable "location" {
      description = "Location of the network"
      default     = "centralus"
    }
    
    variable "username" {
      description = "Username for Virtual Machines"
      default     = "testadmin"
    }
    
    variable "password" {
      description = "Password for Virtual Machines"
      default     = "Password1234!"
    }
    
    variable "vmsize" {
      description = "Size of the VMs"
      default     = "Standard_DS1_v2"
    }
    
  3. Salvare il file e uscire dall'editor.Save the file and exit the editor.

Passaggi successiviNext steps