你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建、更改或删除虚拟网络

了解如何创建和删除虚拟网络以及更改现有虚拟网络的设置,如 DNS 服务器和 IP 地址空间。 如果不熟悉虚拟网络,可在虚拟网络概述中或通过完成教程了解相关详细信息。 虚拟网络包含子网。 若要了解如何创建、更改和删除子网,请阅读管理子网

先决条件

如果没有具备有效订阅的 Azure 帐户,请免费创建一个。 在开始学习本文的余下内容之前,请完成以下任务之一:

  • 门户用户:使用 Azure 帐户登录到 Azure 门户

  • PowerShell 用户:在 Azure Cloud Shell 中运行命令,或在计算机上本地运行 PowerShell。 Azure Cloud Shell 是免费的交互式 shell,可以使用它运行本文中的步骤。 它预安装有常用 Azure 工具并将其配置与帐户一起使用。 在 Azure Cloud Shell 浏览器标签页中,找到“选择环境”下拉列表,然后选择“PowerShell”(如果尚未选择) 。

    如果在本地运行 PowerShell,请使用 Azure PowerShell 模块 1.0.0 或更高版本。 运行 Get-Module -ListAvailable Az.Network 查找已安装的版本。 如果需要进行安装或升级,请参阅安装 Azure PowerShell 模块。 运行 Connect-AzAccount 以登录到 Azure。

  • Azure CLI 用户:在 Azure Cloud Shell 中运行命令,或在计算机中本地运行 Azure CLI。 Azure Cloud Shell 是免费的交互式 shell,可以使用它运行本文中的步骤。 它预安装有常用 Azure 工具并将其配置与帐户一起使用。 在 Azure Cloud Shell 浏览器标签页中,找到“选择环境”下拉列表,然后选择“Bash”(如果尚未选择)。

    如果在本地运行 Azure CLI,请使用 Azure CLI 2.0.31 或更高版本。 运行 az --version 查找已安装的版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。 运行 az login 以登录到 Azure。

登录或连接到 Azure 所用的帐户必须分配有网络参与者角色或者分配有可执行权限中列出的适当操作的自定义角色

创建虚拟网络

使用 Azure 门户创建虚拟网络

  1. 在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。

  2. 选择“+ 新建”。

  3. 在“创建虚拟网络”的“基本信息”选项卡中,为以下设置输入或选择值:

    设置 详细信息
    项目详细信息
    订阅 选择订阅。 不能在多个 Azure 订阅中使用同一个虚拟网络。 但是,可以使用虚拟网络对等互连将一个订阅中的虚拟网络连接到另一个订阅中的虚拟网络。
    任何连接到虚拟网络的 Azure 资源都必须与虚拟网络处于同一订阅中。
    资源组 选择现有的资源组,或选择“新建”以创建新的资源组。 连接到虚拟网络的 Azure 资源可以与虚拟网络处于同一资源组中,也可以处于不同资源组中。
    实例详细信息
    名称 输入要创建的虚拟网络的名称。 该名称在选择创建虚拟网络的资源组中必须是唯一的。
    虚拟网络创建后,无法更改名称。
    有关命名建议,请参阅命名约定。 遵循命名约定可以更轻松地管理多个虚拟网络。
    区域 选择 Azure 区域 虚拟网络只能位于一个 Azure 区域中。 但是,可以使用虚拟网络对等互连将一个区域中的虚拟网络连接到另一个区域中的虚拟网络。
    任何连接到虚拟网络的 Azure 资源都必须与虚拟网络位于同一区域中。
  4. 选择“IP 地址”选项卡或“下一步: 安全性 >”,“下一步: IP 地址 >”,然后输入以下 IP 地址信息:

    • IPv4 地址空间:虚拟网络的地址空间由以 CIDR 表示法指定的一个或多个非重叠地址范围组成。 定义的地址范围可以是公共或专用 (RFC 1918) 地址。 无论是将地址范围定义为公用还是专用,地址范围都只能从虚拟网络内、从互联的虚拟网络以及从任何已连接到虚拟网络的本地网络进行访问。

      无法添加以下地址范围:

      • 224.0.0.0/4(多播)
      • 255.255.255.255/32(广播)
      • 127.0.0.0/8(环回)
      • 169.254.0.0/16(本地链路)
      • 168.63.129.16/32(内部 DNS、DHCP 和 Azure 负载均衡器运行状况探测

      创建虚拟网络时,门户要求至少定义一个 IPv4 地址范围。 在特定情况下,可以在创建虚拟网络后更改地址空间。

      警告

      如果虚拟网络的地址范围与另一个虚拟网络或本地网络重叠,那么这两个网络不能连接。 定义地址范围之前,请考虑将来是否会想要将此虚拟网络连接到其他虚拟网络或本地网络。 Microsoft 建议使用组织拥有的专用地址空间或公共地址空间配置虚拟网络地址范围。

    • 添加 IPv6 地址空间:使用 Azure 虚拟网络的 IPv6 地址空间可以在 Azure 中托管应用程序,并在虚拟网络内部以及与 Internet 之间建立 IPv6 和 IPv4 连接。

    • 子网名称:子网名称在虚拟网络中必须唯一。 子网创建后,无法更改子网名称。 创建虚拟网络时,门户需要定义一个子网,即使虚拟网络不需要包含任何子网。 在创建虚拟网络时,可以在门户中定义一个或多个子网。 虚拟网络创建后,可在将来向虚拟网络添加更多子网。 若要将子网添加到虚拟网络,请参阅管理子网

      提示

      有时,管理员会创建不同的子网来筛选或控制子网之间的流量路由。 在定义子网之前,请考虑一下需要如何筛选和路由子网之间的流量。 若要详细了解如何筛选子网之间的流量,请参阅网络安全组。 Azure 自动在子网之间路由流量,但你可以替代 Azure 的默认路由。 若要详细了解有关 Azures 默认子网流量路由,请参阅路由概述

    • 子网地址范围:此范围必须处于为虚拟网络输入的地址空间内。 可以指定的最小范围为 /29,为子网提供八个 IP 地址。 Azure 保留每个子网中的第一个地址和最后一个地址,以确保协议一致性。 此外还会保留三个地址供 Azure 服务使用。 因此,子网地址范围为 /29 的虚拟网络仅有三个可用 IP 地址。 如果打算将虚拟网络连接到 VPN 网关,必须创建一个网关子网。 详细了解网关子网地址范围具体考虑事项。 在特定条件下,可以在子网创建后更改地址范围。 若要了解如何更改子网地址范围,请参阅管理子网

      使用 PowerShell 创建虚拟网络

      使用 New-AzVirtualNetwork 创建虚拟网络。

      ## Create myVNet virtual network. ##
      New-AzVirtualNetwork -ResourceGroupName myResourceGroup -Name myVNet -Location eastus -AddressPrefix 10.0.0.0/16
      

      使用 Azure CLI 创建虚拟网络

      使用 az network vnet create 创建虚拟网络。

      ## Create myVNet virtual network with the default address space: 10.0.0.0/16. ##
      az network vnet create --resource-group myResourceGroup --name myVNet
      

查看虚拟网络和设置

使用 Azure 门户查看虚拟网络和设置

  1. 在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。

  2. 在虚拟网络列表中,选择要查看其设置的虚拟网络。

  3. 将列出所选虚拟网络的以下设置:

    • 概览:提供有关虚拟网络的信息,包括地址空间和 DNS 服务器。 以下屏幕截图显示了名为 MyVNet 的虚拟网络的概述设置:

      虚拟网络概述页面的屏幕截图。其中包括资源组、订阅信息和 DNS 信息等基本信息。

      可以选择“资源组”、“位置”或“订阅”旁边的“移动”,将虚拟网络移动到其他订阅、区域或资源组。 若要了解如何移动虚拟网络,请参阅将资源移动到不同的资源组或订阅。 该文章列出了先决条件,以及如何使用 Azure 门户、PowerShell 和 Azure CLI 移动资源。 所有连接到虚拟网络的资源都必须随着虚拟网络移动。

    • 地址空间:地址空间:列出分配给虚拟网络的地址空间。 若要了解如何添加和删除地址空间内的地址范围,请完成添加或删除地址范围中的步骤。

    • 已连接的设备:列出连接到虚拟网络的所有资源。 创建并连接到虚拟网络的所有新资源已添加到列表中。 如果删除某个已连接到虚拟网络的资源,则它将不再出现在列表中。

    • 子网:显示存在于虚拟网络内的子网列表。 若要了解如何添加和删除子网,请参阅管理子网

    • DNS 服务器:可以指定 Azure 内部 DNS 服务器或自定义 DNS 服务器是否为连接到虚拟网络的设备提供名称解析。 使用 Azure 门户创建虚拟网络时,Azure 的 DNS 服务器默认用于在虚拟网络内进行名称解析。 若要了解如何修改 DNS 服务器,请参阅本文的更改 DNS 服务器中的步骤。

    • 对等互连:如果订阅中存在现有的对等互连,它们将列在此处。 可以查看现有对等互连的设置,或者创建、更改或删除对等互连。 若要详细了解对等互连,请参阅虚拟网络对等互连管理虚拟网络对等互连

    • 属性:显示有关虚拟网络的设置,包括虚拟网络的资源 ID 和 Azure 订阅。

    • 图示:提供已连接到虚拟网络的所有设备的可视表示形式。 图示提供一些有关设备的关键信息。 若要在此视图中管理设备,请选择设备。

    • 常用 Azure 设置:若要详细了解常见的 Azure 设置,请参阅以下信息:

    使用 PowerShell 查看虚拟网络和设置

    使用 Get-AzVirtualNetwork 列出资源组中的所有虚拟网络。

    Get-AzVirtualNetwork -ResourceGroupName myResourceGroup | format-table Name, ResourceGroupName, Location 
    

    使用 Get-AzVirtualNetwork 查看虚拟网络的设置。

    Get-AzVirtualNetwork -ResourceGroupName myResourceGroup -Name myVNet
    

    使用 Azure CLI 查看虚拟网络和设置

    使用 az network vnet list 列出资源组中的所有虚拟网络。

    az network vnet list --resource-group myResourceGroup
    

    使用 az network vnet show 查看虚拟网络的设置。

    az network vnet show --resource-group myResourceGroup --name myVNet
    

添加或删除地址范围

可以为虚拟网络添加和删除地址范围。 地址范围必须以 CIDR 表示法指定,并且不能和同一虚拟网络中的其他地址范围重叠。 定义的地址范围可以是公共或专用 (RFC 1918) 地址。 无论是将地址范围定义为公用还是专用,地址范围都只能从虚拟网络内、从互联的虚拟网络以及从任何已连接到虚拟网络的本地网络进行访问。

可以减小虚拟网络的地址范围,只要它仍包括任何关联子网的范围。 此外,还可以扩展地址范围,例如,将 /16 更改为 /8。

无法添加以下地址范围:

  • 224.0.0.0/4(多播)
  • 255.255.255.255/32(广播)
  • 127.0.0.0/8(环回)
  • 169.254.0.0/16(本地链路)
  • 168.63.129.16/32(内部 DNS、DHCP 和 Azure 负载均衡器运行状况探测

注意

如果虚拟网络与另一个虚拟网络对等互连或与本地网络相连接,则新地址范围不能与对等互连的虚拟网络或本地网络的地址空间重叠。 若要了解详细信息,请参阅更新对等互连虚拟网络的地址空间

使用 Azure 门户添加或删除地址范围

  1. 在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。

  2. 在虚拟网络列表中,单击要为其添加或删除地址范围的虚拟网络。

  3. 选择“设置”下的“地址空间”。

  4. 完成以下选项之一:

    • 添加地址范围:输入新的地址范围。 该地址范围不能与为虚拟网络定义的现有地址范围重叠。

    • 修改地址范围:修改现有地址范围。 可以更改地址范围前缀以减小或增大地址范围。 只要地址范围仍包括任何关联子网的范围,就可以将其减小。 此外,只要地址范围不与为虚拟网络定义的现有地址范围重叠,就可以将其扩大。

    • 删除地址范围:在要删除的地址范围右侧,选择“删除”。 如果该地址范围包含子网,则无法删除该地址范围。 要删除某个地址范围,必须先删除存在于该地址范围内的所有子网(以及已连接到这些子网的所有资源)。

  5. 选择“保存” 。

    使用 PowerShell 添加或删除地址范围

    使用 Set-AzVirtualNetwork 更新虚拟网络的地址空间。

    ## Place the virtual network configuration into a variable. ##
    $virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName myResourceGroup -Name myVNet
    ## Remove the old address range. ##
    $virtualNetwork.AddressSpace.AddressPrefixes.Remove("10.0.0.0/16")
    ## Add the new address range. ##
    $virtualNetwork.AddressSpace.AddressPrefixes.Add("10.1.0.0/16")
    ## Update the virtual network. ##
    Set-AzVirtualNetwork -VirtualNetwork $virtualNetwork
    

    使用 Azure CLI 添加或删除地址范围

    使用 az network vnet update 更新虚拟网络的地址空间。

    ## Update the address space of myVNet virtual network with 10.1.0.0/16 address range (10.1.0.0/16 overrides any previous address ranges set in this virtual network). ## 
    az network vnet update --resource-group myResourceGroup --name myVNet --address-prefixes 10.1.0.0/16
    

更改 DNS 服务器

所有连接到虚拟网络的 VM 都会注册到为虚拟网络指定的 DNS 服务器。 它们还使用指定的 DNS 服务器进行名称解析。 VM 中的每个网络接口 (NIC) 可以有自己的 DNS 服务器设置。 如果 NIC 有自己的 DNS 服务器设置,这些设置会替代虚拟网络的 DNS 服务器设置。 若要了解有关 NIC DNS 设置的详细信息,请参阅网络接口任务和设置。 若要详细了解 Azure 云服务中 VM 和角色实例的名称解析,请参阅 VM 和角色实例的名称解析。 添加、更改或删除 DNS 服务器:

使用 Azure 门户更改虚拟网络的 DNS 服务器

  1. 在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。

  2. 在虚拟网络列表中,选择要更改其 DNS 服务器的虚拟网络。

  3. 选择“设置”下的“DNS 服务器”。

  4. 选择以下选项之一:

    • 默认(Azure 提供) :所有资源名称和专用 IP 地址会自动注册到 Azure DNS 服务器。 可以解析连接到同一虚拟网络的任何资源之间的名称。 不能使用此选项跨虚拟网络解析名称。 若要跨虚拟网络解析名称,必须使用自定义 DNS 服务器。

    • 自定义:可以添加一个或多个服务器,直至达到虚拟网络的 Azure 限制。 若要了解有关 DNS 服务器限制的详细信息,请参阅 Azure 限制。 可以使用以下选项:

      • 添加地址:将服务器添加到虚拟网络 DNS 服务器列表。 此选项还会将 DNS 服务器注册到 Azure。 如果已将 DNS 服务器注册到 Azure,则可以在列表中选择该 DNS 服务器。

      • 删除地址:在要删除的服务器旁边,选择“删除”。 删除服务器只会将服务器从此虚拟网络列表中删除。 DNS 服务器在 Azure 中仍为注册状态,可供其他虚拟网络使用。

      • 重新排列 DNS 服务器的地址:确认按所处环境的正确顺序列出 DNS 服务器,这一点很重要。 将按列表中的指定顺序使用 DNS 服务器。 它们并非以轮循机制工作。 如果列表中的第一个 DNS 服务器可以访问,则无论此 DNS 服务器是否正常运行,客户端都会使用该 DNS 服务器。 删除列出的所有 DNS 服务器,然后按照所需顺序,将这些服务器重新添加到列表中。

      • 更改地址:在列表中突出显示 DNS 服务器,然后输入新地址。

  5. 选择“保存” 。

  6. 重启已连接到虚拟网络的 VM,以便为其分配新的 DNS 服务器设置。 VM 在重启之前,将继续使用其当前 DNS 设置。

    使用 PowerShell 更改虚拟网络的 DNS 服务器

    使用 Set-AzVirtualNetwork 用新的地址空间更新虚拟网络。

    ## Place the virtual network configuration into a variable. ##
    $virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName myResourceGroup -Name myVNet
    ## Add the IP address of the DNS server. ##
    $virtualNetwork.DhcpOptions.DnsServers.Add("10.0.0.10")
    ## Update the virtual network. ##
    Set-AzVirtualNetwork -VirtualNetwork $virtualNetwork
    

    使用 Azure CLI 更改虚拟网络的 DNS 服务器

    使用 az network vnet update 更新虚拟网络的地址空间。

    ## Update the virtual network with IP address of the DNS server. ## 
    az network vnet update --resource-group myResourceGroup --name myVNet --dns-servers 10.0.0.10
    

删除虚拟网络

只有在没有资源连接到虚拟网络的情况下,才能删除该虚拟网络。 如果还有资源连接到虚拟网络中的任何子网,则必须首先删除已连接到虚拟网络中所有子网的资源。 删除资源所采取的步骤因资源而异。 若要了解如何删除连接到子网的资源,请阅读要删除的每种资源类型的相关文档。 删除虚拟网络:

使用 Azure 门户删除虚拟网络

  1. 在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。

  2. 从虚拟网络列表中,选择要删除的虚拟网络。

  3. 选择“设置”下的“连接的设备”,确认没有任何设备连接到该虚拟网络。 如果有连接的设备,则必须先删除它们,然后才能删除虚拟网络。 如果没有连接的设备,请选择“概述”。

  4. 选择“删除” 。

  5. 若要确认删除虚拟网络,请选择“是”

    使用 PowerShell 删除虚拟网络

    使用 Remove-AzVirtualNetwork 删除虚拟网络。

    Remove-AzVirtualNetwork -ResourceGroupName myResourceGroup -Name myVNet
    

    使用 Azure CLI 删除虚拟网络

    使用 az network vnet delete 删除虚拟网络。

    az network vnet delete --resource-group myResourceGroup --name myVNet
    

    权限

    若要在虚拟网络上执行任务,必须将你的帐户分配给网络参与者角色或分配有下表中所列适当操作的自定义角色

    操作 名称
    Microsoft.Network/virtualNetworks/read 读取虚拟网络
    Microsoft.Network/virtualNetworks/write 创建或更新虚拟网络
    Microsoft.Network/virtualNetworks/delete 删除虚拟网络