Compartilhar via


Início rápido: criar uma topologia de rede em malha com o Gerenciador de Rede Virtual do Azure usando a CLI do Azure

Introdução ao Gerenciador de Rede Virtual do Azure usando a CLI do Azure para gerenciar a conectividade de todas as suas redes virtuais.

Neste início rápido, você implanta três redes virtuais e usa o Gerenciador de Rede Virtual do Azure para criar uma topologia de rede em malha. Em seguida, verifique se a configuração de conectividade foi aplicada.

Diagrama dos recursos implantados para uma topologia de rede virtual de malha com o gerenciador de rede virtual do Azure.

Pré-requisitos

Entre na sua conta do Azure e selecione sua assinatura

Para iniciar sua configuração, entrar na sua conta do Azure. Se você usar a funcionalidade Experimente do Cloud Shell, estará automaticamente conectado.

az login

Selecione a assinatura na qual o Gerenciador de Rede Virtual está implantado:

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

Atualize a extensão do Gerenciador de Rede Virtual para a CLI do Azure:

az extension update --name virtual-network-manager

Criar um grupo de recursos

Antes de implantar o Gerenciador de Rede Virtual do Azure, você precisa criar um grupo de recursos para hospedá-lo usando az group create. Esse exemplo cria um grupo de recursos chamado myAVNMResourceGroup no Oeste dos EUA:

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

Crie uma instância do Gerenciador de Rede Virtual

Defina o escopo e o tipo de acesso para essa instância do Gerenciador de Rede Virtual. Crie o escopo usando az network manager create. Substitua o valor <subscription_id> pela assinatura na qual você deseja que o Gerenciador de Rede Virtual gerencie as redes virtuais. Substitua <mgName\> pelo grupo de gerenciamento que você deseja gerenciar.

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

Criar um grupo de rede

O Gerenciador de Rede Virtual aplica configurações a grupos de redes virtuais, colocando-as em grupos de rede. Crie um grupo de rede 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"

Criar redes virtuais

Crie cinco redes virtuais usando az network vnet create. Este exemplo cria redes virtuais denominadas VNetA, VNetB, VNetC e VNetD no local Oeste dos EUA. Cada rede virtual tem uma marca do networkType que é usada para associação dinâmica. Se você já possui redes virtuais com as quais deseja criar uma rede em malha, pode pular para a próxima seção.

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"

Adicionar uma sub-rede à rede virtual

Conclua a configuração das redes virtuais adicionando uma sub-rede /24 a cada uma. Crie uma configuração de sub-rede chamada 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"

Definir a associação de uma configuração de malha

O Gerenciador de Rede Virtual do Azure permite duas formas de adicionar membros a um grupo de rede. A associação estática envolve a adição manual de redes virtuais, enquanto a associação dinâmica envolve o uso do Azure Policy para adicionar redes virtuais dinamicamente com base em condições. Escolha a opção que deseja concluir para sua associação de configuração de malha.

Opção de associação estática

Ao usar a associação estática, adicione manualmente três redes virtuais para sua configuração de malha ao seu grupo de rede por meio de az network manager group static-member create. Substitua <subscription_id> pela assinatura sob a qual essas redes virtuais foram criadas.

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"

Opção de associação dinâmica

Ao usar o Azure Policy, adicione dinamicamente as três redes virtuais com um valor networkType de Prod ao grupo de rede. Essas três redes virtuais farão parte da configuração de malha.

Você pode aplicar políticas a uma assinatura ou a um grupo de gerenciamento, e sempre deve defini-las no nível em que foram criadas ou em um nível superior. Somente redes virtuais dentro de um escopo de política são adicionadas a um grupo de rede.

Criar uma definição da política

Crie uma definição de política usando az policy definition create para as redes virtuais marcadas como Prod. Substitua <subscription_id> pela assinatura à qual você deseja aplicar essa política. Se você quiser aplicá-la a um grupo de gerenciamento, substitua --subscription <subscription_id> por --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"

Aplicar uma definição de política

Após definir uma política, você deve aplicá-la usando az policy assignment create. Substitua <subscription_id> pela assinatura à qual você deseja aplicar essa política. Se você quiser aplicá-la a um grupo de gerenciamento, substitua --scope "/subscriptions/<subscription_id>" por --scope "/providers/Microsoft.Management/managementGroups/<mgName> e substitua <mgName\> por seu grupo de gerenciamento.



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"

Criar uma configuração

Agora que você criou o grupo de rede e atribuiu as redes virtuais corretas, crie uma configuração de topologia de rede de malha usando az network manager connect-config create. Substitua <subscription_id> pela assinatura.

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"

Confirmar a implantação

Para que a configuração entre em vigor, confirme a configuração nas regiões de destino usando az network manager post-commit:

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

Verificar a configuração

As redes virtuais exibem as configurações aplicadas a elas quando você 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"

Para as redes virtuais que fazem parte da configuração de conectividade, você obterá uma saída semelhante a este exemplo:

{
  "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"
    }
  ]
}

Para as redes virtuais que não fazem parte do grupo de rede, como VNetD, uma saída semelhante a esse exemplo aparecerá:

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

Limpar os recursos

Se você não precisar mais da instância do Gerenciador de Rede Virtual do Azure, verifique se todos os seguintes pontos são verdadeiros antes de excluir o recurso:

  • Não há nenhuma implantação de configurações em qualquer região.
  • Todas as configurações foram excluídas.
  • Todos os grupos de rede foram excluídos.

Para excluir o recurso:

  1. Remova a implantação de conectividade confirmando nenhuma configuração com az network manager post-commit:

    az network manager post-commit \
        --network-manager-name "myAVNM" \
        --commit-type "Connectivity" \
        --target-locations "westus" \
        --resource-group "myAVNMResourceGroup"
    
  2. Remova a configuração de conectividade usando az network manager connect-config delete:

    az network manager connect-config delete \
        --configuration-name "connectivityconfig" \
        --name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  3. Remova o grupo de rede usando az network manager group delete:

    az network manager group delete \
        --name "myNetworkGroup" \
        --network-manager-name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  4. Exclua a instância do gerenciador de rede usando az network manager delete:

    az network manager delete \
        --name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  5. Quando o recurso criado não for mais necessário, exclua o grupo de recursos usando az group delete:

    az group delete \
        --name "myAVNMResourceGroup"
    

Próximas etapas

Agora que você criou uma instância do Gerenciador de Rede Virtual do Azure, aprenda como bloquear o tráfego de rede usando uma configuração de administrador de segurança: