共用方式為


快速入門:使用 Azure CLI 使用 Azure 虛擬網絡 Manager 建立網格網路拓撲

使用 Azure CLI 來管理所有虛擬網路的連線,以開始使用 Azure 虛擬網絡 Manager。

在本快速入門中,您會部署三個虛擬網路,並使用 Azure Virtual Network Manager 來建立網狀網路拓撲。 然後您會驗證已套用連線設定。

使用 Azure Virtual Network Manager 針對網格虛擬網路拓撲部署的資源圖表。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶
  • 最新的 Azure CLI,或者您可以在入口網站中使用 Azure Cloud Shell。
  • Azure 虛擬網絡 Manager 擴充功能。 若要新增它,請執行 az extension add -n virtual-network-manager
  • 若要修改動態網路群組,您只能透過 Azure RBAC 角色指派來獲得存取權。 不支持傳統管理員/舊版授權。

登入您的 Azure 帳戶並且選取您的訂用帳戶

若要開始您的組態,請登入您的 Azure 帳戶。 如果您使用 Cloud Shell 試用功能 ,則會自動登入。

az login

選取部署 虛擬網絡 管理員的訂用帳戶:

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

更新 Azure CLI 的 虛擬網絡 Manager 擴充功能:

az extension update --name virtual-network-manager

建立資源群組

您必須先建立資源群組,才能部署 Azure 虛擬網絡 Manager,才能使用 az group create 來裝載它。 此範例會在美國西部位置建立名為 myAVNMResourceGroup 的資源群組:

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

建立 Virtual Network Manager 執行個體

定義這個 虛擬網絡 Manager 實例的範圍和存取類型。 使用 az network manager create 建立範圍。 將 值<subscription_id>取代為您想要 虛擬網絡 管理員管理虛擬網路的訂用帳戶。 將取代 <mgName\> 為您想要管理的管理群組。

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

建立網路群組

Virtual Network Manager 會將設定套用至虛擬網路群組,方法是將它們放在網路群組中。 使用 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"

建立虛擬網路

使用 az network vnet create 建立五個虛擬網路。 此範例會在美國西部位置建立名為 VNetAVNetBVNetCVNetD虛擬網路。 每個虛擬網路都有用於動態成員資格的標記 networkType 。 如果您已經有想要建立網狀網路的虛擬網路,您可以跳到下一節。

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"

將子網新增至每個虛擬網路

將 /24 子網新增至每個子網,以完成虛擬網路的設定。 使用 az network vnet subnet create 建立名為 default子網組態:

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"

定義網格組態的成員資格

Azure 虛擬網絡 Manager 允許將成員資格新增至網路群組的兩種方法。 靜態成員資格牽涉到手動新增虛擬網路,而動態成員資格牽涉到使用 Azure 原則 根據條件動態新增虛擬網路。 針對網格組態成員資格,選擇您想要完成的選項。

靜態成員資格選項

藉由使用靜態成員資格,您可以透過 az network manager group static-member create,手動將網格組態的三個虛擬網路新增至您的網路群組。 將取代 <subscription_id> 為建立這些虛擬網路的訂用帳戶。

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"

動態成員資格選項

藉由使用 Azure 原則,您可以動態地將三個networkType虛擬網路的值Prod新增至網路群組。 這三個虛擬網路將成為網格組態的一部分。

您可以將原則套用至訂用帳戶或管理群組,而且您一律必須在建立原則 的層級或更高 層級定義原則。 原則範圍內只有虛擬網路會新增至網路群組。

建立原則定義

針對標記為Prod的虛擬網路,使用 az policy definition create 建立原則定義。 將取代 <subscription_id> 為您要套用此原則的訂用帳戶。 如果您要將它套用至管理群組,請將 取代 --subscription <subscription_id>--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"

套用原則定義

定義原則之後,您必須使用 az policy assignment create 加以套用。 將取代 <subscription_id> 為您要套用此原則的訂用帳戶。 如果您要將它套用至管理群組,請將 取代--scope "/subscriptions/<subscription_id>"--scope "/providers/Microsoft.Management/managementGroups/<mgName>為 ,並以您的管理群組取代 <mgName\>



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"

建立設定

既然您已建立網路群組,並提供正確的虛擬網路,請使用 az network manager connect-config create 建立網狀網路拓撲組態。 將 <subscription_id> 取代為您的訂用帳戶。

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"

認可部署

若要讓組態生效,請使用 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"

驗證設定

當您使用 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"

針對屬於連線設定一部分的虛擬網路,您會取得類似此範例的輸出:

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

對於不屬於網路群組的虛擬網路,例如 VNetD,會出現類似此範例的輸出:

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

清除資源

如果您不再需要 Azure 虛擬網絡 Manager 實例,請先確定下列所有點都成立,再刪除資源:

  • 沒有任何組態部署至任何區域。
  • 所有組態都已刪除。
  • 所有網路群組都已刪除。

若要刪除資源:

  1. 使用 az network manager post-commit 認可后,不認可任何組態來移除連線部署:

    az network manager post-commit \
        --network-manager-name "myAVNM" \
        --commit-type "Connectivity" \
        --target-locations "westus" \
        --resource-group "myAVNMResourceGroup"
    
  2. 使用 az network manager connect-config delete 移除連線設定:

    az network manager connect-config delete \
        --configuration-name "connectivityconfig" \
        --name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  3. 使用 az network manager group delete 移除網络群組:

    az network manager group delete \
        --name "myNetworkGroup" \
        --network-manager-name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  4. 使用 az network manager delete 刪除網络管理員實例:

    az network manager delete \
        --name "myAVNM" \
        --resource-group "myAVNMResourceGroup"
    
  5. 如果您不再需要您所建立的資源,請使用 az group delete 刪除資源群組:

    az group delete \
        --name "myAVNMResourceGroup"
    

下一步

既然您已建立 Azure 虛擬網絡 Manager 實例,請瞭解如何使用安全性系統管理員設定來封鎖網路流量: