Windows Azure 保留已存在的虚拟网络外网IP(云服务)
我们之前文章中有介绍过通过Azure Powershell来绑定vm的内部虚拟地址,现在我们可以通过powershell来绑定vm的外部ip地址了,因为近期世界互联更新了azure的部分功能,其中今天介绍的windows azure设置保留已存在的虚拟网络的外网IP(云服务地址),我们都知道在azure服务内部都有一个dhcp服务器来分发vm内部虚拟网络地址,同时还有分发云服务的外网地址;内部的虚拟地址保留我们在此不说,如果有需要可访问博客中的windows azure相关的文章中有介绍,那为什么要保留虚拟网络的外网ip地址呢,因为,如果要临时将虚拟机或者云服务暂时关闭,关闭后再次重启,云服务的ip地址会变,因为对于windows azure上的网络地址配置上,Azure内部有一个dhcp分发地址,不管是内部地址还是外部地址,如果不干预手动绑定的话,重启后地址都会变,这样就导致我们所应用的服务出现问题;以致我们需要更改很多域名解析来完成相应的服务运行。现在我们可以通过绑定外网IP就可以解决重新启动云服务造成的外网ip地址改变的问题;
Windows azure对于绑定虚拟网络外网ip的地址原理为:对已存在的虚拟网络的外网ip设置一个别名来标记网络地址的可用性,通过添加别名来定义外网ip的分配状态,以致达到保留状态, 好了不多说了,具体操作见下:
首先在管理门户中配置仅限云的虚拟网络:选择需要的区域,如下图:
下载及安装windows azurepowershell,我们都知道windows azure的相关操作都是依赖于windows azure for powershell来做管理的,所以我们需要安装azure powershell,首先是需要下载windows azure的用户订阅,通过以下方法就可以下载windowsazure订阅
https://manage.windowsauzre.cn/publishsettings
然后下载并且安装windowsazure powershell,然后在windowsazure powershell下导入该订阅文件;访问www.windowsazure.cn ---> 文档和资源---> azure 命令行接口---->windows安装就会提示下载windowsazure powershell
我们同样可以查看上面的windows powershell的相关文档
http://www.windowsazure.cn/documentation/articles/install-configure-powershell/
具体方法可以浏览网页内部
下载后就是安装,根据提示安装完powershell即可;我们可以通过
(get-module azure).version
查单当前使用的azure powershell版本
Import-AzurePublishSettingsFile 导入 .publishsettings
文件以供模块使用
因为我已经导入过了,所以再次导入会提示以下信息
如果在windowsazure powershell中导入多个订阅文件的话,我们需要选择默认的
我们首先通过get-azuresubscrpit 查看当前powershell下已导入的订阅文件
我们发现有两个,所以我们需要通过以下命令来设置默认的即可
Select-azuresubscript -subsciptionName "xxxxx" -default
然后我们可以
Get-azurevm 查看当前订阅性的所有vm信息
“ServiceName” 为云服务名字,”name“为虚机名字
我们也同样通过portal查看云服务的公网ip地址
我们发现mutli-iternal的云服务公网地址为:139.219.13.208,所以我们暂时将该云服务关闭30分钟过后查看是否会变化;
理论上是变化的,因为的他的地址地址是从dhcp分配的,所以会变,
关闭后,我们可以看见状态提示---已取消分配
在查看云服务的状态;状态也为已停止
经过几分钟的等待,我们将虚拟机启动后再次查看对应的公网ip:
我们通过结果发现,对应的云服务地址已变了;从139.219.13.208改变成了139.219.7.165
所以为了保证以上问题的出现,我们需要对此公网ip地址进行固定;
固定已存在与区域虚拟网络下的虚拟机公网IP:
我们可以通过
get-azuredeployment -serviceName iternal
来显示云服务internal的相关信息;
我们可以看见reservedipname是为空的;
“ServiceName” 为云服务名字, “ReservedIPName为此固定IP命名”(可以任意定义), “location 为此虚机所在虚拟网络所在的区域”。
New-AzureReservedIP -ServiceName "iternal" -ReservedIPName BLRVIP -Location "China North"
如果您的powershell版本是最新的,请麻烦您降级处理,具体方法为:
我们可以通过(get-module azure).version 命令查看当前安装的azure版本
卸载Azure powershell
下载0.9.3版本的powershell后安装,下载地址为:https://s3.amazonaws.com/github-cloud/releases/23891194/9a9703c6-0bad-11e5-988d-50028c32532d.msi?response-content-disposition=attachment%3B%20filename%3Dazure-powershell.0.9.3.msi&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1436507859&Signature=DPI9%2FDNvUvQjx0U7nfPIwhO3wjI%3D
如果无法下载使用下面的连接下载,选择0.9.3下载
https://github.com/Azure/azure-powershell/releases
我们更换azure powershell版本后可以执行成功;
注:reservedipname:xxxx的名称可以任意定义;
New-AzureReservedIP -ServiceName "iternal" -ReservedIPName BLRVIP -Location "China North"
然后我们通过以下命令来查看此订阅下的固定的公网ip
Get-azurereservedip -reservedipname BLRVIP
我们再通过
get-azuredeployment -serviceName iternal
来显示云服务internal的相关信息;
我们可以看见reservedipname是BLRVIP名称了
接下来我们验证公网IP会发生变化;
首先关闭虚拟机后,默认在管理界面中公网ip会自动释放
等30分钟后,我们再次启动虚拟机,观察公网IP未变化,公网IP固定成功
那怎么删除Reservedip:
由于Reservedip是收费的,所以不想使用,可以删除;
删除前,我们可以通过以下命令查看当前订阅下有哪些Reservedip
get-azureReservedip
然后删除命名为BLRVIP的Reservedip
Remove-AzureReservedip -ReservedIPName "BLRVIP"
需要注意的是:如果相关的云服务中又存在的虚拟机,需要先删除虚拟机才能删除Reservedip,否在会报错
我们删除虚拟机后,再次尝试删除。
我们删除后,再次通过get-azurereservedip 查看,就剩下RVIP了
查询此订阅下固定的公网IP:
Get-AzureReservedIP -ReservedIPName TestRIP
验证公网IP是否变化:
a. 关闭虚机,在管理界面中公网IP释放:
在管理界面中,开启虚机,观察公网IP未变化,公网IP固定成功:
本文出自 “高文龙” 博客,转载请与作者联系!