Share via


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

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

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

使用 Azure 虛擬網路管理員針對網格虛擬網路拓撲部署的資源圖表。

重要

Azure 虛擬網絡 Manager 通常適用於具有安全性系統管理員規則的中樞與輪輻連線設定和安全性設定。 網格聯機設定仍為公開預覽狀態。

此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

必要條件

  • 具有有效訂用帳戶的 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

建立資源群組

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

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

建立 虛擬網絡 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>"

建立網路群組

虛擬網絡 管理員會將設定套用至虛擬網路群組,方法是將它們放在網路群組中。 使用 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 原則,您可以動態地將三個networkTypeProd虛擬網路的值新增至網路群組。 這三個虛擬網路將成為網格組態的一部分。

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

建立原則定義

針對標記為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/myANVMResourceGroup/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 實例,請瞭解如何使用安全性系統管理員設定來封鎖網路流量: