Azure Cloud Service的保留IP地址不起作用

时间:2014-08-11 18:21:11

标签: asp.net-mvc azure azure-cloud-services static-ip-address

我正在尝试为云服务分配一个保留的IP地址。我需要此功能来限制对数据库的IP访问(并且我不希望允许所有azure节点进行此访问),并且我还必须访问我需要具有静态IP的外部API。

到目前为止,我已经创建了一个云服务解决方案,并在解决方案中添加了MVC Web角色。使用Azure Powershell,我获得了一个IP地址(使用GetAzureReservedIP验证成功)并更新了配置文件ServiceConfiguration.cloud.cscfg。

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="TestApp" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2014-06.2.4">
  <Role name="MvcWebRole">
    <Instances count="1" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=XYZ;AccountKey=XYZ" />
    </ConfigurationSettings>
  </Role>
  <NetworkConfiguration>
    <AddressAssignments>
      <ReservedIPs>
        <ReservedIP name="MyReservedIP"/>
      </ReservedIPs>
    </AddressAssignments>
  </NetworkConfiguration>
</ServiceConfiguration>

(显然,我确保IP地址的名称与GetAzureReservedIP中显示的完全相同。)

使用此配置,我已将解决方案部署到新的云服务,但它没有收到预期的IP地址。 我使用的是Visual Studio 2012和Azure SDK 2.4。我通过选择Build - &gt;从Visual Studio部署到Azure。发布到Azure,我在其中创建新的云服务并选择&#34; Cloud&#34;服务配置。

修改 我可以看到IP地址不用于传出流量,因为无法访问数据库(仅允许访问一个IP地址),并且我对外部Web服务的请求被阻止。管理门户显示使用另一个IP地址。

3 个答案:

答案 0 :(得分:1)

根据我在AZure上的个人使用经验,如果您尝试使用vip在云服务上分配保留的IP,它将无法正常工作。您可以在不进行任何部署的情况下分配新的云服务或云服务(vip尚未分配)。

另外要注意基于亲和性组的云服务上的保留Ip存在限制,在这种情况下您可能遇到以下问题:

New-AzureVM : BadRequest : The deployment contains VirtualNetwork DemoVNET that belongs to an Affinity Group and ReservedIP that belongs to a region. This combination is not allowed.   

参考:http://azure.microsoft.com/blog/2014/05/14/reserved-ip-addresses/

答案 1 :(得分:0)

您是如何确保静态IP未分配给云服务的?希望您从Azure管理门户 - 云服务 - 仪表板中观察到云服务的VIP。保留的IP也不会分配给实例。它仅与云服务相关联。

答案 2 :(得分:0)

您需要使用powershell来保留IP。遗憾的是,您现在无法为现有的云服务分配IP。所以你必须创建一个新实例。

这将指导您如何保留IP

http://azure.microsoft.com/blog/2014/05/14/reserved-ip-addresses/

然后,您需要确保您的Azure配置文件(.cscfg)具有以下具有NetworkConfiguration下的ReservedIP名称

 <NetworkConfiguration>
    <AddressAssignments>
      <ReservedIPs>
        <ReservedIP name="Your-Reserved-IP-Name" />
      </ReservedIPs>
    </AddressAssignments>
  </NetworkConfiguration>