Windows Azure 虚拟机的IP地址操作
Windows Azure上的一个虚拟机对应两个IP地址,VIP和DIP。
- VIP,公网IPv4地址,动态分配。虚拟机停止(deallocate,在管理控制台上关机或者使用PowerShell关机)后再开启,其VIP会发生变化。
- DIP,内网IPv4地址,在虚拟机所在的虚拟网络和子网中动态分配。虚拟机停止(deallocate,在管理控制台上关机或者使用PowerShell关机)后再开启,其DIP会发生变化。
简单来说,Windows Azure上虚拟机的内网和外网地址默认都是动态分配的。这样的设计从云平台本身的角度来看的确是实现了按需分配资源,有效的提高了资源利用率。但无形中也给部分客户带来一些困惑。
其实Windows Azure已经提供了固定DIP和VIP的方法,只不过要通过PowerShell来进行操作。
创建固定外网IP地址并绑定到指定的虚拟机(云服务),即:Reserved IP
创建Reserved IP,每个固定IP地址(Reserved IP)都要指定一个唯一的名称。
New-AzureReservedIP -ReservedIPName [固定IP地址名称] -Location "China North"
查看Reserved IP
Get-AzureReservedIP
将创建好的Reserved IP关联到指定的虚拟机(云服务)上。实质上,Reserved IP是针对Cloud Service的,如果一个Cloud Service中有多个虚拟机,那么这些虚拟机是共享同一个Reserved IP的。具体原理请参见前文:为什么是Cloud Service。
Set-AzureReservedIPAssociation -ReservedIPName [固定IP地址名称] -ServiceName [云服务名称]
为虚拟机设置固定内网IP地址(Static DIP)
首先通过Windows Azure管理控制台或者PowerShell查询到指定虚拟机默认分配到的内网地址并记录下来。然后使用PowerShell命令将这个内网地址设置为固定内网IP地址。
Get-AzureVM -ServiceName [云服务名称] -Name [虚拟机名称] | Set-AzureStaticVNetIP -IPAddress [内网IP地址] | Update-AzureVM