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

Comece a usar o Azure Virtual Network Manager 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 Azure Virtual Network Manager para criar uma topologia de rede mesh. Em seguida, verifique se a configuração de conectividade foi aplicada.

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

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
  • A CLI do Azure mais recente ou você pode usar o Azure Cloud Shell no portal.
  • A extensão do Azure Virtual Network Manager. Para adicioná-lo, execute az extension add -n virtual-network-manager.
  • Para modificar grupos dinâmicos de rede, você deve ter acesso somente por meio da atribuição de função RBAC do Azure. Não há suporte para autorização clássica de administrador/herdado.

Inicie sessão na sua conta do Azure e selecione a sua subscrição

Para iniciar a configuração, inicie sessão na sua conta do Azure. Se você usar o recurso Try It do Cloud Shell, estará conectado automaticamente.

az login

Selecione a assinatura onde o Virtual Network Manager está implantado:

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

Atualize a extensão do Virtual Network Manager 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. Este exemplo cria um grupo de recursos chamado myAVNMResourceGroup no local Oeste dos EUA:

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

Criar uma instância do Virtual Network Manager

Defina o escopo e o tipo de acesso para essa instância do Virtual Network Manager. Crie o escopo usando az network manager create. Substitua o valor <subscription_id> pela assinatura para a qual você deseja que o Virtual Network Manager gerencie 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

Virtual Network Manager aplica configurações a grupos de redes virtuais, colocando-os 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 chamadas VNetA, VNetB, VNetC e VNetD no local Oeste dos EUA. Cada rede virtual tem uma tag que networkType é usada para associação dinâmica. Se você já tiver redes virtuais com as quais deseja criar uma rede mesh, pule 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 a cada rede virtual

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

O Azure Virtual Network Manager permite dois métodos para adicionar associação a um grupo de rede. A associação estática envolve a adição manual de redes virtuais e a associação dinâmica envolve o uso da Política do Azure para adicionar dinamicamente redes virtuais com base nas condições. Escolha a opção que você deseja concluir para sua associação de configuração de malha.

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

Usando a associação estática, você adiciona manualmente três redes virtuais para sua configuração de malha ao seu grupo de rede via 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

Usando a Política do Azure, você pode adicionar dinamicamente as três redes virtuais com um networkType valor de ao grupo de Prod rede. Essas três redes virtuais passarão a fazer 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 ou acima do nível em que as criou. Somente redes virtuais dentro de um escopo de política são adicionadas a um grupo de rede.

Criar uma definição de política

Crie uma definição de política usando az policy definition create para redes virtuais marcadas como Prod. Substitua <subscription_id> pela subscrição à qual pretende aplicar esta política. Se quiser aplicá-lo 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

Depois de definir uma política, você deve aplicá-la usando az policy assignment create. Substitua <subscription_id> pela subscrição à qual pretende aplicar esta política. Se quiser aplicá-lo a um grupo de gerenciamento, substitua --scope "/subscriptions/<subscription_id>" por --scope "/providers/Microsoft.Management/managementGroups/<mgName>e substitua <mgName\> pelo 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 deu a ele as redes virtuais corretas, crie uma configuração de topologia de rede mesh usando az network manager connect-config create. Substitua <subscription_id> pela sua subscrição.

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 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ê obtém 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 redes virtuais que não fazem parte do grupo de rede, como VNetD, uma saída semelhante a este exemplo aparece:

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

Clean up resources (Limpar recursos)

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

  • Não há implantações de configurações em nenhuma 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 não confirmando nenhuma configuração com az network manager pós-confirmação:

    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. Se você não precisar mais do recurso que criou, exclua o grupo de recursos usando az group delete:

    az group delete \
        --name "myAVNMResourceGroup"
    

Próximos passos

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