Windows Azure Multi NIC VM配置详情介绍

前面我们已经介绍了很多关于Windows Azure的相关文章,今天呢主要介绍在windows azure 下配置Mulit NIC VM,在5月份之前Windows Azure国内版本上创建的VM不支持多网卡配置,所以对于很多想部署在windows azure上的服务遇到了很大瓶颈,为什么这么说呢,因为我们都知道microsoft的服务都非常贵,如果用Office365的话想对比较方便,只需要按照步骤配置相应的解析记录即可,比如对于一个企业来说,即时通信服务是少不了的,而微软的Lync服务对于公司来说都比较普遍,所以在windows azure上如果要添加lync服务器的话是有问题的,我们都知道lync的边界是需要配置两个网卡的,当然一个网卡也可以,但是对于企业的部署架构及安全上有问题,所以lync的部署是需要多网卡支持的,所以当windows azure国内版本支持了多网卡的更新后,我做了一下功能测试还是不错的,所以在此分享有需要的童鞋们。

我们都知道默认的windowsazure上不创建vnet的话,新建的vm会自动生成一个168的ip地址段,因为对于windows azure平台来说都会有自己的一个DHCP服务器,当然在真实环境下,我们都会首先创建自己规划中的vnet,以便管理。之前的文章中我们有介绍到,如果创建多个vnet(虚拟网络)的话,vnet(虚拟网络)和vnet(虚拟网络)之间默认是不通讯的,需要通过创建site2site的***来实现互通;而在一个vnet(虚拟网络)中定义多个地址空间,或者定义多个子网,默认都是互相通信的。无需配置***来实现互通。我们首先说说Windows azure的虚拟网络定义;虚拟网络的定义其实就是 一个网络范围或者名称,而真实使用的是虚拟网络下的地址空间及子网;当然地址空间的理解我们用大白话说出来就是一个定义名称,类似于windows上的dhcp服务器的定义,而子网就是dhcp服务器所定义的作用域--地址范围;我们可以通过添加多个不同网络来区分不同的vlan。当然前提是我们定义一个地址范围为24的地址空间,如果地址范围定义不足24位的话,我们可以通过添加子网或者地址空间来增大原有的地址范围,这样做的目的是避免当初规划造成的地址不足,然后通过增加地址空间来扩展地址,如果自己的架构比较复杂的话,如果定义了多个虚拟网络,然后两个虚拟网络之间的网络是不能互相通信的,如果要互相通信的话,需要为两个虚拟网络之间创建一个***,这个***叫做vnet(虚拟网络)到vnet(虚拟网络)的***,对于vnet(虚拟网络)到vnet(虚拟网络)的***的搭建及配置我们在之前的文章中有详细介绍。所以在此就不介绍vnet(虚拟网络)到vnet(虚拟网络)之间的***搭建介绍了,我们今天的主题是给windowsazure下的vm添加配置多个子网,具体见下:

因为目前我们已经创建了一个vnet网络,vnet名称为internal

clip_p_w_picpath002

我们在创建的时候定义了一个地址空间----一个大的地址范围-

子网---地址池---10.10.10.0

clip_p_w_picpath004

我们通过以上图示可以看见,可用的地址范围只有122个地址,如果地址不够用的话我们也可以添加子网或者添加地址空间来拓展地址;

由于我们地址空间的地址数为123个,所以无法添加子网,如果我们修改地址空间为24/255的话就可以,以下为试图

clip_p_w_picpath006

修改可用地址数为251个后,子网可用数任然为123个,如果我们需要扩展的话,可以修改原有的子网(已经有地址分配给了其他虚拟机使用),但是不建议修改,我们添加子网即可,我们单机添加子网,发现后可用地址数默认为123,当然我们可以修改,修改后的可用地址范围已经到了254了,所以无法再分了。

clip_p_w_picpath008

接下来是介绍地址空间,地址空间在此时的状态(原有的地址范围已经分配所有)为添加不同网段了(vlan),我们添加地址空间后,默认的子网为10.10.11.0,而我们原来定义的地址范围为10.10.10.0所以,通过此结果看当地址分配完后,添加地址空间的结果为添加vlan。

clip_p_w_picpath010

在此时我们需要注意的是,地址空间的地址范围数机分配地址子网都是可以根据自己的需求来定义的,A、B 、C类的地址均可以定义

clip_p_w_picpath012

当然说到这后,我们主要介绍一下网络的分布。在同一个虚拟网络下,定义的地址空间及子网之间网络是互通的。我们定义好子网后接下来就是演示了

clip_p_w_picpath014

接下来我们新建两个虚拟机进行网络测试,让两个虚拟机分别选择不同的地址空间进行网络测试;首先创建一个Computer01的计算机

clip_p_w_picpath016

我们选择已存在的云服务,所谓的云服务其实就是在真实网络中的一个防火墙外网发布地址,供于外网访问;然后我们主要选择虚拟网络子网,使用10.10.10.0段

clip_p_w_picpath018

开始创建虚拟机--Computer01

clip_p_w_picpath020

待创建完成后,我们开始创建第二台Computer02虚拟机

clip_p_w_picpath022

我们选择 地址空间2----子网为10.10.11.0

clip_p_w_picpath024

确认后,也开始创建Computer02

clip_p_w_picpath026

接下来我们通过链接远程桌面查看分配的地址及网络互通测试

clip_p_w_picpath028

启动后,我们链接后通过ping来测试两个不同vlan的子网是否互通

clip_p_w_picpath030

我们在computer02上pingcomputer01的子网

clip_p_w_picpath032

我们介绍完网络互通后,我们接下来要进入我们今天的主题了,就是给windowsazure的vm添加多个网络,我们再次使用computer01来做演示,我们得知,computer01的默认内部地址为10.10.10.4

clip_p_w_picpath034

我们都知道windows azure的相关操作都是依赖于windows azure for powershell来做管理的,所以我们需要安装azure powershell;然后通过以下方法就可以下载windowsazure订阅

https://manage.windowsauzre.cn/publishsettings

clip_p_w_picpath036

然后下载并且安装windowsazure powershell,然后在windowsazure powershell下导入该订阅文件;访问www.windowsazure.cn ---> 文档和资源---> azure 命令行接口---->windows安装就会提示下载windowsazure powershell

clip_p_w_picpath038

我们同样可以查看上面的windows powershell的相关文档

http://www.windowsazure.cn/documentation/articles/install-configure-powershell/

具体方法可以浏览网页内部

下载后就是安装,根据提示安装完powershell即可

clip_p_w_picpath040

Import-AzurePublishSettingsFile 导入 .publishsettings 文件以供模块使用

clip_p_w_picpath042

因为我已经导入过了,所以再次导入会提示以下信息

clip_p_w_picpath044

如果在windowsazure powershell中导入多个订阅文件的话,我们需要选择默认的

我们首先通过get-azuresubscrpit 查看当前powershell下已导入的订阅文件

clip_p_w_picpath046

我们发现有两个,所以我们需要通过以下命令来设置默认的即可

Select-azuresubscript -subsciptionName "xxxxx" -default

clip_p_w_picpath048

然后我们可以查看当前订阅性的所有vm信息

get-azurevm

clip_p_w_picpath050

接下来我们需要通过powershell来创建一个多网卡的vm,目前windowsazure无法对已存在的vm进行修改,实现多网卡的vm,只能通过powershell来新建一个多网卡的vm,接下来我们进行powershell创建

在创建前,我们需要了解windows azure下我们可以创建多少个NIC呢?

大型 (A3) 和 A6:2 个

超大型 (A4) 和 A7:4 个

A9:2 个

D3:2 个

D4:4 个

D13:4 个

http://blogs.msdn.com/b/azchina/archive/2015/02/07/multiple-vm-nics-and-network-virtual-appliances-in-azure.aspx

clip_p_w_picpath052

我们需要通过以下powershell(windows系统自带的powershell,而不是windowsazure powershell)命令来过滤系统中的p_w_picpathname

$p_w_picpaths = Get-AzureVMImage
$count = $p_w_picpaths.Count
for($i=0;$i -lt $count;$i++){ $i.ToString() + " : " + $p_w_picpaths[$i].ImageName; }

clip_p_w_picpath054

因为我们要安装的windows2012r2 datacenter zh-cn,所以我们需要通过以上命令来选择自己需要安装的信息

clip_p_w_picpath056

1. 从 Azure VM 映像库中选择一个VM 映像:

$p_w_picpath = Get-AzureVMImage -ImageName"55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-Datacenter-201502.01-zh.cn-127GB.vhd"

clip_p_w_picpath058

2. 创建 Azure VM 配置和默认管理员登录:

先设置默认存储账户,需要查看订阅名称和存储账户名称

clip_p_w_picpath060

clip_p_w_picpath062

Set-AzureSubscription -SubscriptionName "xxxxx" -CurrentStorageAccountName "xxxx"

clip_p_w_picpath064

需要注意的是Instancesize指的是虚拟机的配置,比如A1、A2、D1配置等。

-instancesize:命名规则有:

A0:Extrasmall

A1:small

A2:medium

A3:large

A4:extralarge

A5:same

clip_p_w_picpath066

-Name指的是:VM的名称,既为hostname

-AvailailitySetName指的是在可用性集,这个选项为一个可选项目;可根据自己的环境定义;

$vm = New-AzureVMConfig -Name"MultiNicVM" -InstanceSize"ExtraLarge" 
-Image $p_w_picpath.ImageName–AvailabilitySetName "MyAVSet"

我不需要定义可用性集,所以使用以下命令:

$vm = New-AzureVMConfig -Name"MultiNicVM" -InstanceSize"ExtraLarge" -Image $p_w_picpath.ImageName

clip_p_w_picpath068   

 Add-AzureProvisioningConfig –VM $vm -Windows -AdminUserName "<YourAdminUID>" -Password"<YourAdminPassword>"

clip_p_w_picpath070

3. 指定默认 NIC 的子网和IP 地址。请注意,SubnetNames 参数必须是虚拟网络中某个子网的名称。本例中,我们使用 subnet 子网。

clip_p_w_picpath072

我们根据当前的网络配置进行修改定义;我们再此选择第二个地址空间及分配一个地址:

Set-AzureSubnet -SubnetNames "Subnet-3" -VM $vm


clip_p_w_picpath074


Set-AzureStaticVNetIP -IPAddress "10.10.11.50" -VM $vm

clip_p_w_picpath076

4. 为 VM 配置添加额外的 NIC。与第 3步类似,SubnetName 和StaticVNetIPAddress 必须与虚拟网络的子网定义相对应。接口名称对于 VM 必须是唯一的,但并不代表 VM 中 NIC 的名称。

Add-AzureNetworkInterfaceConfig -Name  "NIC1" -SubnetName  "Subnet-1" -StaticVNetIPAddress  "10.10.10.10" -VM $vm
Add-AzureNetworkInterfaceConfig -Name  "NIC2" -SubnetName  "Subnet-2" -StaticVNetIPAddress  "10.10.11.20" -VM $vm

clip_p_w_picpath078

clip_p_w_picpath080

5. 执行完上述步骤后,即已准备好创建 VM。下面您将需要在虚拟网络中创建一个包含以上所用子网名称和 IP 地址的 VM。

我的servicename及所谓的云服务名称为Iternal;

clip_p_w_picpath082

我的虚拟网络名称也为Internal

clip_p_w_picpath084 

New-AzureVM -ServiceName  "Iternal" –VNetName  "Iternal" –VM $vm

clip_p_w_picpath086

经过执行,我们得知,多网卡的虚拟机与单网卡虚拟机不能共存一个云服务下,所以我们需要单独新建一个云服务

clip_p_w_picpath088

新建完成后,我们再次执行上面的代码进行多网卡配置

clip_p_w_picpath090

设置一个默认的存储账户

Set-AzureSubscription -SubscriptionName "MSDN Ultimate" -CurrentStorageAccountName "iternaldata"

clip_p_w_picpath092

$vm = New-AzureVMConfig -Name"MultiNicVM" -InstanceSize"ExtraLarge" -Image $p_w_picpath.ImageName

clip_p_w_picpath094

Add-AzureProvisioningConfig –VM $vm -Windows -AdminUserName “gavin” –Password “Password2015”

clip_p_w_picpath096

Set-AzureSubnet -SubnetNames "Subnet-1" -VM $vm

clip_p_w_picpath098

Set-AzureStaticVNetIP -IPAddress "10.10.10.10" -VM $vm

clip_p_w_picpath100

Add-AzureNetworkInterfaceConfig -Name "NIC2" -SubnetName "Subnet-3" -StaticVNetIPAddress "10.10.11.20" -VM $vm

clip_p_w_picpath102

New-AzureVM -ServiceName "multi-iternal" –VNetName "iternal" –VM $vm

clip_p_w_picpath104

添加后,我们查看虚拟机的配置状态

clip_p_w_picpath106

等创建完成后,我们查看状态

clip_p_w_picpath108