• Azure VNet的介绍

VNet是Azure云中逻辑隔离的虚拟网络。它包含两个含义:

  1. Azure的用户可以在VNet中创建自己的各种资源,感觉想自己的数据中心中一样;
  2. 在一个VNet中创建的资源和其它VNet创建的资源相互隔离,是Azure云中网络多租户的具体实现形式。

Azure的VNet可以提供如下图的三大类服务:

Azure DevOps Serve 外网域名_Azure

  1. VNet内部提供的网络服务,包括子网的划分、网络安全和路由等功能
  2. 前端接入,提供公网IP地址、DNS地址解析、Source/Destination NAT、负载均衡等等各种服务
  3. 后端连接,提供IPSec Site-Site/Point-Site VPN,以及专线接入等服务。

Azure的各种网络服务大多是围绕Azure的VNet的,所以VNet是Azure Networking的基础。下面将介绍如何创建Azure VNet。

  • Azure VNet的部署
  1. 通过Portal页面部署Azure VNet

进入AzureChina的管理Portal: https://portal.azure.cn

在"More Services"中点击虚拟网络:

Azure DevOps Serve 外网域名_DNS_02

进入虚拟网络后,可以看到已经创建的VNet信息,包括VNet名称、资源组、Region和订阅信息:

Azure DevOps Serve 外网域名_地址空间_03

此时点击添加,添加新的VNet,在添加时需要填写如下信息:

  1. VNet名称
  2. VNet的地址空间,就是VNet整体的地址网段
  1. 每个VNet可以最大配置4096个IP地址的地址空间,目前通过开Case可以最大支持到8192个,Network的Limitation可以参考以下链接:https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#networking-limits。由于Azure的各种访问的能力在不停的变化,建议有可能到达各种Azure资源限制的时候,到这个链接上查询相关的数值;
  2. 地址段的选择建议符合RFC1918中定义的Private Address Space的三段地址,具体请参考http://www.faqs.org/rfcs/rfc1918.html。就是我们常说的10、172、192的三段地址;
  3. Azure VNet的地址空间允许用户采用非Private Address Space的地址段,但建议是用户自己拥有的地址段,是自己在ARIN、RIPE、APNIC、LACNIC和AFRINIC等组织申请并付费的地址段,否则会发生部分网络访问不了的情况;
  4. 即使用户使用自己申请的IP地址段,Azure并不负责这些地址段的BGP宣告,用户需要采用一些特殊的方式通过自己的BGP网络宣告给各个运营商。
  5. Azure VNet的地址空间可以是不连续的,即可以添加多个地址空间。建议以较小的地址段添加地址空间,这样可以避免地址浪费和地址冲突等各种问题;
  6. ★Azure VNet的地址空间的划分是非常重要的一项工作,建议企业的Network部门的同事参加。一旦地址划分出现重复等问题,有可能面临整个VNet内的资源要全部关停,甚至铲除重新部署的情况。所以说在云上业务建设之初,花一些精力把地址空间规划好,是非常重要的工作之一!
  1. 子网名称,类似物理网络中的Vlan的取名,可以取一些有提示功能的名称,比如Web、APP、DB或Frontend、Backend等等;
  2. 子网范围,要求在地址空间之内,建议根据需求,划分能够满足需求的较小的地址段,在今后的地址划分上比较灵活。比如预计这个网段中的VM或其他资源的数量不会超过100台,建议采用/25掩码的网段;
  3. 其他信息,包括资源组、订阅和Region信息

Azure DevOps Serve 外网域名_地址空间_04

创建完成后,可以看到VNet的相关信息:

Azure DevOps Serve 外网域名_Azure_05

其他的几点需要注意的:

  • 在地址空间中,还可以添加其他的地址空间:

Azure DevOps Serve 外网域名_DNS_06

  • 在子网中,可以添加新的子网:

Azure DevOps Serve 外网域名_地址空间_07

  • 在子网中,还有一个网关子网,GatewaySubnet:

Azure DevOps Serve 外网域名_地址空间_08

其名称是不能更改的,用于VPN Gateway和Express Route Gateway使用。建议采用/27掩码的网段,具体细节在IPSec VPN和Express Route的章节中介绍。

  • 已连接设备

可以在"已连接的设备"中查看已经在VNet中部署的资源:

Azure DevOps Serve 外网域名_Azure_09

  • DNS
    在Azure的VNet中有自己的DNS服务。Azure上的DNS服务和一般DNS不同的是,Azure的DNS服务是通过SDN的形式实现的。其DNS服务器的地址在Azure的全球范围内都是168.63.129.16。当Azure的SDN发现有客户端在请求168.63.129.16的DNS服务时,SDN的Network Controller会发送DNS的response给请求者。
    当然可以添加自己的DNS服务器,比如在VNet中部署一台DNS服务器,在VNet DNS配置中添加这个IP地址即可,但要重启VNet中的资源,新的DNS服务器的配置才会生效。

 2. 通过Powershell部署Azure VNet

 

通过PowerShell部署Azure VNet和Portal创建的思路是相同的,具体步骤如下:

#创建新的Resource Group
New-AzureRmResourceGroup -Name hwvnetps -Location chinanorth 
#创建新的Subnet的配置
$vlan1 = New-AzureRmVirtualNetworkSubnetConfig -Name vlan1 ` 
-AddressPrefix 172.18.0.0/25
$gwsubnet = New-AzureRmVirtualNetworkSubnetConfig ` 
-Name GatewaySubnet ` 
-AddressPrefix 172.18.1.224/27
#创建VNet
$hwvnetps = New-AzureRmVirtualNetwork -Name hwvnetps ` 
-ResourceGroupName hwvnetps -Location chinanorth ` 
-AddressPrefix 172.18.0.0/24,172.18.1.0/24 ` 
-Subnet $vlan1,$gwsubnet 
#添加Subnet的配置
$vlan2 = Add-AzureRmVirtualNetworkSubnetConfig ` 
-VirtualNetwork $hwvnetps -Name vlan2 ` 
-AddressPrefix 172.18.0.128/25
#更新VNet
Set-AzureRmVirtualNetwork -VirtualNetwork $hwvnetps

3. 通过Azure CLI部署Azure VNet

通过命令行实现的方式也类似,具体命令如下:

#创建Resource Group
az group create --name hwvnetc \ 
--location chinanorth 
#创建VNet
az network vnet create -g hwvnetc \ 
-n hwvnetc \ 
--address-prefixes 172.19.0.0/24 172.19.1.0/24 \ 
--subnet-name vlan1 \ 
--subnet-prefix 172.19.0.0/25 
#添加Subnet
az network vnet subnet create -g hwvnetc \ 
--vnet-name hwvnetc \ 
--name GatewaySubnet \ 
--address-prefix 172.19.1.224/27