Condividi tramite


Avvio rapido: Creare una topologia di rete mesh con Azure Rete virtuale Manager usando l'interfaccia della riga di comando di Azure

Introduzione ad Azure Rete virtuale Manager usando l'interfaccia della riga di comando di Azure per gestire la connettività per tutte le reti virtuali.

In questa guida di avvio rapido, si distribuiscono tre reti virtuali e si usa Gestione rete virtuale di Azure per creare una topologia di rete mesh. Si verifica quindi che la configurazione della connettività sia stata applicata.

Diagramma delle risorse distribuite per una topologia di rete virtuale mesh con Gestione rete virtuale di Azure.

Prerequisiti

Accedere al proprio account Azure e selezionare la sottoscrizione

Per iniziare la configurazione, accedere al proprio account Azure. Se si usa la funzionalità Prova di Cloud Shell, si è connessi automaticamente.

az login

Selezionare la sottoscrizione in cui viene distribuito Rete virtuale Manager:

az account set \
    --subscription "<subscription_id>"

Aggiornare l'estensione Rete virtuale Manager per l'interfaccia della riga di comando di Azure:

az extension update --name virtual-network-manager

Creare un gruppo di risorse

Prima di poter distribuire Azure Rete virtuale Manager, è necessario creare un gruppo di risorse per ospitarlo usando az group create. Questo esempio crea un gruppo di risorse denominato myAVNMResourceGroup nella località Stati Uniti occidentali:

az group create \
    --name "myAVNMResourceGroup" \
    --location "westus"

Creare un'istanza di Gestione reti virtuali

Definire l'ambito e il tipo di accesso per questa istanza di Rete virtuale Manager. Creare l'ambito usando az network manager create. Sostituire il valore <subscription_id> con la sottoscrizione per cui si vuole che Rete virtuale Manager gestisca le reti virtuali. Sostituire <mgName\> con il gruppo di gestione che si vuole gestire.

az network manager create \
    --location "westus" \
    --name "myAVNM" \
    --resource-group "myAVNMResourceGroup" \
    --scope-accesses "Connectivity" "SecurityAdmin" \
    --network-manager-scopes subscriptions="/subscriptions/<subscription_id>"

Creare un gruppo di rete

Gestione reti virtuali applica le configurazioni ai gruppi di reti virtuali inserendoli in gruppi di rete. Creare un gruppo di rete usando az network manager group create:

az network manager group create \
    --name "myNetworkGroup" \
    --network-manager-name "myAVNM" \
    --resource-group "myAVNMResourceGroup" \
    --description "Network Group for Production virtual networks"

Creare reti virtuali

Creare cinque reti virtuali usando az network vnet create. Questo esempio crea reti virtuali denominate VNetA, VNetB, VNetC e VNetD nella località Stati Uniti occidentali. Ogni rete virtuale ha un tag usato networkType per l'appartenenza dinamica. Se si dispone già di reti virtuali con cui si vuole creare una rete mesh, è possibile passare alla sezione successiva.

az network vnet create \
    --name "VNetA" \
    --resource-group "myAVNMResourceGroup" \
    --address-prefix "10.0.0.0/16" \
    --tags "NetworkType=Prod"

az network vnet create \
    --name "VNetB" \
    --resource-group "myAVNMResourceGroup" \
    --address-prefix "10.1.0.0/16" \
    --tags "NetworkType=Prod"

az network vnet create \
    --name "VNetC" \
    --resource-group "myAVNMResourceGroup" \
    --address-prefix "10.2.0.0/16" \
    --tags "NetworkType=Prod"

az network vnet create \
    --name "VNetD" \
    --resource-group "myAVNMResourceGroup" \
    --address-prefix "10.3.0.0/16" \
    --tags "NetworkType=Test"

az network vnet create \
    --name "VNetE" \
    --resource-group "myAVNMResourceGroup" \
    --address-prefix "10.4.0.0/16" \
    --tags "NetworkType=Test"

Aggiungere una subnet a ogni rete virtuale

Completare la configurazione delle reti virtuali aggiungendo una subnet /24 a ognuna di esse. Creare una configurazione della subnet denominata default usando az network vnet subnet create:

az network vnet subnet create \
    --name "default" \
    --resource-group "myAVNMResourceGroup" \
    --vnet-name "VNetA" \
    --address-prefix "10.0.0.0/24"

az network vnet subnet create \
    --name "default" \
    --resource-group "myAVNMResourceGroup" \
    --vnet-name "VNetB" \
    --address-prefix "10.1.0.0/24"

az network vnet subnet create \
    --name "default" \
    --resource-group "myAVNMResourceGroup" \
    --vnet-name "VNetC" \
    --address-prefix "10.2.0.0/24"

az network vnet subnet create \
    --name "default" \
    --resource-group "myAVNMResourceGroup" \
    --vnet-name "VNetD" \
    --address-prefix "10.3.0.0/24"

az network vnet subnet create \
    --name "default" \
    --resource-group "myAVNMResourceGroup" \
    --vnet-name "VNetE" \
    --address-prefix "10.4.0.0/24"

Definire l'appartenenza per una configurazione mesh

Azure Rete virtuale Manager consente due metodi per aggiungere l'appartenenza a un gruppo di rete. L'appartenenza statica comporta l'aggiunta manuale di reti virtuali e l'appartenenza dinamica comporta l'uso di Criteri di Azure per aggiungere in modo dinamico reti virtuali in base alle condizioni. Scegliere l'opzione da completare per l'appartenenza alla configurazione mesh.

Opzione di appartenenza statica

Usando l'appartenenza statica, si aggiungono manualmente tre reti virtuali per la configurazione mesh al gruppo di rete tramite az network manager group static-member create. Sostituire <subscription_id> con la sottoscrizione in cui sono state create queste reti virtuali.

az network manager group static-member create \
    --name "VNetA" \
    --network-group "myNetworkGroup" \
    --network-manager "myAVNM" \
    --resource-group "myAVNMResourceGroup" \
    --resource-id "/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/virtualnetworks/VNetA"
az network manager group static-member create \
    --name "VNetB" \
    --network-group "myNetworkGroup" \
    --network-manager "myAVNM" \
    --resource-group "myAVNMResourceGroup" \
    --resource-id "/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/virtualnetworks/VNetB"
az network manager group static-member create \
    --name "VNetC" \
    --network-group "myNetworkGroup" \
    --network-manager "myAVNM" \
    --resource-group "myAVNMResourceGroup" \
    --resource-id "/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/virtualnetworks/VNetC"

Opzione di appartenenza dinamica

Usando Criteri di Azure, è possibile aggiungere dinamicamente le tre reti virtuali con un networkType valore di al gruppo di Prod rete. Queste tre reti virtuali diventeranno parte della configurazione mesh.

È possibile applicare criteri a una sottoscrizione o a un gruppo di gestione ed è necessario definirli sempre al di sopra del livello in cui vengono creati. Solo le reti virtuali all'interno di un ambito dei criteri vengono aggiunte a un gruppo di rete.

Creare una definizione di criteri

Creare una definizione di criteri usando az policy definition create per le reti virtuali contrassegnate come Prod. Sostituire <subscription_id> con la sottoscrizione a cui si vuole applicare questo criterio. Se si vuole applicarlo a un gruppo di gestione, sostituire --subscription <subscription_id> con --management-group <mgName>.

az policy definition create \
    --name "ProdVNets" \
    --description "Choose Prod virtual networks only" \
    --rules "{\"if\":{\"allOf\":[{\"field\":\"Name\",\"contains\":\"VNet\"},{\"field\":\"tags['NetworkType']\",\"equals\":\"Prod\"}]},\"then\":{\"effect\":\"addToNetworkGroup\",\"details\":{\"networkGroupId\":\"/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/networkManagers/myAVNM/networkGroups/myNetworkGroup\"}}}" \
    --subscription <subscription_id> \
    --mode "Microsoft.Network.Data"

Applicare una definizione di criteri

Dopo aver definito un criterio, è necessario applicarlo usando az policy assignment create. Sostituire <subscription_id> con la sottoscrizione a cui si vuole applicare questo criterio. Se si vuole applicarlo a un gruppo di gestione, sostituire --scope "/subscriptions/<subscription_id>" con --scope "/providers/Microsoft.Management/managementGroups/<mgName>e sostituire <mgName\> con il gruppo di gestione.



az policy assignment create \
    --name "ProdVNets" \
    --description "Take only virtual networks tagged NetworkType:Prod" \
    --scope "/subscriptions/<subscription_id>" \
    --policy "/subscriptions/<subscription_id>/providers/Microsoft.Authorization/policyDefinitions/ProdVNets"

Creare una configurazione

Dopo aver creato il gruppo di rete e aver dato le reti virtuali corrette, creare una configurazione della topologia di rete mesh usando az network manager connect-config create. Sostituire <subscription_id> con la sottoscrizione.

az network manager connect-config create \
    --configuration-name "connectivityconfig" \
    --description "Production Mesh Connectivity Config Example" \
    --applies-to-groups network-group-id="/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/networkManagers/myAVNM/networkGroups/myNetworkGroup" \
    --connectivity-topology "Mesh" \
    --network-manager-name "myAVNM" \
    --resource-group "myAVNMResourceGroup"

Eseguire il commit della distribuzione

Per rendere effettiva la configurazione, eseguire il commit della configurazione nelle aree di destinazione usando az network manager post-commit:

az network manager post-commit \
    --network-manager-name "myAVNM" \
    --commit-type "Connectivity" \
    --configuration-ids "/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/networkManagers/myAVNM/connectivityConfigurations/connectivityconfig" \
    --target-locations "westus" \
    --resource-group "myAVNMResourceGroup"

Verificare la configurazione

Le reti virtuali visualizzano le configurazioni applicate quando si usa az network manager list-effective-connectivity-config:

az network manager list-effective-connectivity-config \
    --resource-group "myAVNMResourceGroup" \
    --virtual-network-name "VNetA"

az network manager list-effective-connectivity-config \
    --resource-group "myAVNMResourceGroup" \
    --virtual-network-name "VNetB"


az network manager list-effective-connectivity-config \
    --resource-group "myAVNMResourceGroup" \
    --virtual-network-name "VNetC"

az network manager list-effective-connectivity-config \
    --resource-group "myAVNMResourceGroup" \
    --virtual-network-name "VNetD"

Per le reti virtuali che fanno parte della configurazione della connettività, si ottiene un output simile a questo esempio:

{
  "skipToken": "",
  "value": [
    {
      "appliesToGroups": [
        {
          "groupConnectivity": "None",
          "isGlobal": "False",
          "networkGroupId": "/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/networkManagers/myAVNM/networkGroups/myNetworkGroup",
          "useHubGateway": "False"
        }
      ],
      "configurationGroups": [
        {
          "description": "Network Group for Production virtual networks",
          "id": "/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/networkManagers/myAVNM/networkGroups/myNetworkGroup",
          "provisioningState": "Succeeded",
          "resourceGroup": "myAVNMResourceGroup"
        }
      ],
      "connectivityTopology": "Mesh",
      "deleteExistingPeering": "False",
      "description": "Production Mesh Connectivity Config Example",
      "hubs": [],
      "id": "/subscriptions/<subscription_id>/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/networkManagers/myAVNM/connectivityConfigurations/connectivityconfig",
      "isGlobal": "False",
      "provisioningState": "Succeeded",
      "resourceGroup": "myAVNMResourceGroup"
    }
  ]
}

Per le reti virtuali che non fanno parte del gruppo di rete, ad esempio VNetD, viene visualizzato un output simile a questo esempio:

az network manager list-effective-connectivity-config     --resource-group "myAVNMResourceGroup"     --virtual-network-name "VNetD-test"
{
  "skipToken": "",
  "value": []
}

Pulire le risorse

Se l'istanza di Azure Rete virtuale Manager non è più necessaria, assicurarsi che tutti i punti seguenti siano true prima di eliminare la risorsa:

  • Non esistono distribuzioni di configurazioni in nessuna area.
  • Tutte le configurazioni sono state eliminate.
  • Tutti i gruppi di rete sono stati eliminati.

Per eliminare la risorsa:

  1. Rimuovere la distribuzione della connettività eseguendo il commit di nessuna configurazione con az network manager post-commit:

    az network manager post-commit \
        --network-manager-name "myAVNM" \
        --commit-type "Connectivity" \
        --target-locations "westus" \
        --resource-group "myAVNMResourceGroup"
    
  2. Rimuovere la configurazione della connettività usando az network manager connect-config delete:

    az network manager connect-config delete \
        --configuration-name "connectivityconfig" \
        --name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  3. Rimuovere il gruppo di rete usando az network manager group delete:

    az network manager group delete \
        --name "myNetworkGroup" \
        --network-manager-name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  4. Eliminare l'istanza di Network Manager usando az network manager delete:

    az network manager delete \
        --name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  5. Se la risorsa creata non è più necessaria, eliminare il gruppo di risorse usando az group delete:

    az group delete \
        --name "myAVNMResourceGroup"
    

Passaggi successivi

Dopo aver creato un'istanza di Azure Rete virtuale Manager, vedere come bloccare il traffico di rete usando una configurazione di amministratore della sicurezza: