使用 Azure CLI 创建虚拟网络

Azure 虚拟网络 (VNet) 是你自己的网络在云中的表示形式。你可以控制 Azure 网络设置并定义 DHCP 地址块、DNS 设置、安全策略和路由。还可以进一步将 VNet 细分为子网,并以将物理计算机和虚拟机部署到本地数据中心的相同方式部署 Azure IaaS 虚拟机 (VM) 和 PaaS 角色实例。从本质上讲,你可以将网络扩展到 Azure,自带 IP 地址块。如果你不熟悉 VNet,请阅读虚拟网络概述

Important

在创建 VNet 之前,请务必了解 Azure 当前使用两种部署模型:资源管理器部署模型和经典部署模型。

Azure 有两个部署模型:Azure Resource Manager 和经典模型。 Azure 建议通过 Resource Manager 部署模型创建资源。 若要深入了解这两个模型之间的差异,请阅读了解 Azure 部署模型一文。

此外,也可以使用其他工具通过资源管理器创建虚拟网络,或者从以下列表中选择一个不同的选项,通过经典部署模型创建虚拟网络:

方案

为了更好地说明如何创建 VNet 和子网,本文档将使用以下方案。

VNet 方案

在此方案中你将使用保留 CIDR 块 192.168.0.0./16 创建名为 TestVNet 的 VNet。你的 VNet 将包含以下子网:

  • FrontEnd,使用 192.168.1.0/24 作为其 CIDR 块。
  • BackEnd,使用 192.168.2.0/24 作为其 CIDR 块。

创建虚拟网络

若要使用 Azure CLI 创建虚拟网络,请完成以下步骤:

  1. 安装并配置最新的 Azure CLI 2.0,并使用 az login 登录 Azure 帐户。

    > [!NOTE] > 在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

  2. 使用具有 --name--location 参数的 az group create 命令创建 VNet 的资源组:

    az group create --name TestRG --location chinaeast
    
  3. 创建 VNet 和子网:

    az network vnet create \
    --name TestVNet \
    --resource-group TestRG \
    --location chinaeast \
    --address-prefix 192.168.0.0/16 \
    --subnet-name FrontEnd \
    --subnet-prefix 192.168.1.0/24
    

    预期输出:

    {
        "newVNet": {
            "addressSpace": {
            "addressPrefixes": [
            "192.168.0.0/16"
            ]
            },
            "dhcpOptions": {
            "dnsServers": []
            },
            "provisioningState": "Succeeded",
            "resourceGuid": "<guid>",
            "subnets": [
            {
                "etag": "W/\"<guid>\"",
                "id": "/subscriptions/<guid>/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/TestVNet/subnets/FrontEnd",
                "name": "FrontEnd",
                "properties": {
                "addressPrefix": "192.168.1.0/24",
                "provisioningState": "Succeeded"
                },
                "resourceGroup": "TestRG"
            }
            ]
        }
    }
    

    使用的参数:

    • --name TestVNet:要创建的 VNet 的名称。
    • --resource-group TestRG:# 控制资源的资源组名称。
    • --location chinaeast:要部署到的位置。
    • --address-prefix 192.168.0.0/16:地址前缀和块。
    • --subnet-name FrontEnd:子网的名称。
    • --subnet-prefix 192.168.1.0/24:地址前缀和块。

      若要列出在下一命令中使用的基本信息,可以使用 查询筛选器查询 VNet:

      az network vnet list --query '[?name==`TestVNet`].{Where:location,Name:name,Group:resourceGroup}' -o table
      

      这会生成以下输出:

      Where Name Group

      chinaeast TestVNet TestRG

  4. 创建子网:

    az network vnet subnet create \
    --address-prefix 192.168.2.0/24 \
    --name BackEnd \
    --resource-group TestRG \
    --vnet-name TestVNet
    

    预期输出:

    {
    "addressPrefix": "192.168.2.0/24",
    "etag": "W/\"<guid> \"",
    "id": "/subscriptions/<guid>/resourceGroups/TestRG/providers/Microsoft.Network/virtualNetworks/TestVNet/subnets/BackEnd",
    "ipConfigurations": null,
    "name": "BackEnd",
    "networkSecurityGroup": null,
    "provisioningState": "Succeeded",
    "resourceGroup": "TestRG",
    "resourceNavigationLinks": null,
    "routeTable": null
    }
    

    使用的参数:

    • --address-prefix 192.168.2.0/24:子网 CIDR 块。
    • --name BackEnd:新子网的名称。
    • --resource-group TestRG:资源组。
    • --vnet-name TestVNet:主控 VNet 的名称。
  5. 查询新 VNet 的属性:

    az network vnet show \
    -g TestRG \
    -n TestVNet \
    --query '{Name:name,Where:location,Group:resourceGroup,Status:provisioningState,SubnetCount:subnets | length(@)}' \
    -o table
    

    预期输出:

     Name      Where      Group    Status       SubnetCount
    
     TestVNet  chinaeast  TestRG   Succeeded              2
    
  6. 查询子网的属性:

    az network vnet subnet list \
    -g TestRG \
    --vnet-name testvnet \
    --query '[].{Name:name,CIDR:addressPrefix,Status:provisioningState}' \
    -o table
    

    预期输出:

     Name      CIDR            Status
    
     FrontEnd  192.168.1.0/24  Succeeded
     BackEnd   192.168.2.0/24  Succeeded
    

后续步骤

了解如何连接: