【问题标题】:Azure VM: Adding a Reserved IP address to an existing VMAzure VM:将保留 IP 地址添加到现有 VM
【发布时间】:2017-08-04 06:42:07
【问题描述】:

到目前为止,我在网上看到的是,无法将保留 IP 添加到现有 VM(除非我重新创建我试图避免的 VM)。但是,我注意到我的虚拟机和云服务的外部 IP 是相同的。

  1. Reserved IP Addresses 页面说明了如何“将保留 IP 用于云服务”。我在 Azure 管理门户中到处查看,但找不到服务配置架构的配置设置。

  2. 我正在使用 Azure 调度程序在晚上和周末关闭虚拟机。从以下内容我了解到,当 VM 在早上启动时,我需要在调度程序脚本中编写一些内容以重新分配保留 IP。我做对了吗?

    关闭虚拟机 - 以前,当一个虚拟机中的所有虚拟机实例 云服务被移至关闭状态(停止/解除分配), 公共 IP 将被释放并分配一个新的公共 IP 虚拟机实例之一已启动。然而,有了这个 释放,如果VM使用保留IP,则保留IP可以是 重新部署虚拟机时使用。

附: Stack Overflow 是询问此类与 Azure 有关的问题的最佳场所,还是我将来应该使用 Server Fault?我在这两个网站上都看到过 Azure 问题。

【问题讨论】:

    标签: azure azure-virtual-machine


    【解决方案1】:

    在 Build 2015 上,他们宣布现在可以实现并且非常简单。 只需打开 Azure powershell 并运行:

    New-AzureReservedIP -ReservedIPName "ipname" -Location "West US" -ServiceName "somevm"
    

    如果您运行它,它将保留一个名为“ipname”的 IP,并将其与已部署的实例“somevm.cloudapp.net”相关联

    【讨论】:

    • 谢谢。但是我相信这个保留的 IP 仅供内部使用。它不在服务级别。因此,如果我想从外部引用 VM,我不能使用相同的 IP。
    • @java_enthu 不确定你在说什么,但这肯定会设置世界上任何人都可以访问的 VIP
    • 我试过这个。我的情况有点不同。我已经在这里发布了/stackoverflow.com/questions/32678558/…
    【解决方案2】:

    为了将现有的保留 IP 分配给现有的 VM,您可以使用以下命令:

    Set-AzureReservedIPAssociation -ReservedIPName MyReservedIP -ServiceName TestService
    

    【讨论】:

      【解决方案3】:

      逐步创建保留 IP 并在 Azure VM 上使用它。你可以去这里

      Reserved IP Creation

      我在AWS上做了弹性IP自动调度,参考链接Elastic IP Automation on AWS script

      需要检查我如何编写脚本来自动为 Azure 保留 IP。如果您之前做过,请分享脚本,这将非常有用。谢谢。

      【讨论】:

        【解决方案4】:

        目前,我们不支持将保留 IP 关联到现有虚拟机的功能。 我们目前正在研究保留现有 VM 的 IP 的功能。

        参考:http://azure.microsoft.com/blog/2014/05/14/reserved-ip-addresses/ http://www.petri.com/how-to-reserve-public-virtual-ip-addresses-in-microsoft-azure.htm

        吉里什·帕拉瓦尔

        【讨论】:

        • 嗨,现在还是这样吗?
        【解决方案5】:

        对于新的虚拟机(带有资源管理器),您应该执行以下操作:

        创建新的静态 IP 地址:

        $ip = New-AzureRmPublicIpAddress -Name "<ip-name>"  -ResourceGroupName <group-name> -Location eastus -AllocationMethod Static
        

        获取有关 VM 网络接口的信息:

        Get-AzureRmVM -ResourceGroupName <group-name> -Name <vm-name> | Select -ExpandProperty NetworkProfile
        

        获取对应的网络接口并设置新的ip并更新网卡:

        $netInt = Get-AzureRmNetworkInterface -ResourceGroupName "group-name" -Name <nic-name>
        $netInt.IpConfigurations[0].PublicIpAddress = $ip
        Set-AzureRmNetworkInterface -NetworkInterface $netInt
        

        【讨论】:

          【解决方案6】:

          我阅读了之前的所有条目,并没有清楚地了解如何继续为我现有的 Azure 经典 VM 分配保留的 IP 地址,因此我打开了支持票证。我从 Azure Networking 的支持工程师“Sruthi Saranya K”那里得到了极好的明确指导。 Sruthi 说“在经典部署模型中,不可能将静态公共 IP 分配给 VM”,这是我在其他地方读到的,但她澄清说,您只需将 IP 地址分配给云服务而不是直接分配给 VM,然后VM 将自动接受更改。为了方便起见,我在此处概述了所有命令,从 Azure PowerShell 提示符开始。关键命令在此处的顶部响应中指定,但不是所有步骤。此外,该示例还包括指定服务,但它似乎不是该命令支持的参数,而是有第二个命令将 IP 与服务相关联。

          add-azureaccount(从 PowerShell 登录到 Azure)
          新 AzureReservedIP -ReservedIPName“ipname”-位置“美国东部”
          get-azurereservedip(只是为了查看保留的 IP 地址是什么)
          Set-AzureReservedIPAssociation -ReservedIPName "ipname" -ServiceName "你的云服务名称"

          此外,根据使用情况,您可能需要在 mxtoolbox.com 上查找 IP 地址,以确保它尚未被列入黑名单。我的保留 IP 用于网站,但该域的默认 @DNS 条目意味着我们的域通常会与该 IP 地址相关联,并且之前我们的邮件已被列入黑名单,因为我们的网络服务器 IP 地址被其他人玷污Azure 租户。如果您获得了列入黑名单的地址,您可以将其删除并获得一个新地址,这也是 Sruthi 的建议。以下是删除保留 IP 并在需要时删除云服务关联的命令:

          删除-azurereservedip
          删除-AzureReservedIPAssociation

          我衷心感谢 Sruthi 让事情变得如此简单,并防止不必要地重新部署我们公司的公共网络服务器。

          【讨论】:

            【解决方案7】:

            将公共 IP 添加到现有 VM

            1. 登录门户
            2. 找到您的 VM 所在的资源组 (RG)
            3. 确认您的 VM 有网络接口 - 如果没有,请创建一个(应该有一个)
            4. 通过从市场向您的 RG 添加一个公共 IP 地址(静态或动态,无关紧要)来创建一个公共 IP 地址(首先执行此操作,以便在您创建 NSG 时它正在创建)。
            5. 通过将市场中的 RG 添加到您的 RG 并将其与您的 VM 关联来创建一个网络服务组。
            6. 部署 NSG 后,返回 PIP 概览并单击刀片信息部分中的“关联”按钮。
            7. 选择您在步骤 3 中验证的 VM 的网络接口。 喝杯咖啡什么的,一分钟就可以了,否则你就完蛋了。

            【讨论】:

              【解决方案8】:
              New-AzureReservedIP -ReservedIPName "nameIP" -Location "East US" -ServiceName "azureA2vm"
              

              得到这个:

              New-AzureReservedIP : A parameter cannot be found that matches parameter name 'ServiceName'.
              At line:1 char:70
              + New-AzureReservedIP -ReservedIPName "nameIP" -Location "East US" -ServiceNam ...
              +                                                                      ~~~~~~~~~~~
                  + CategoryInfo          : InvalidArgument: (:) [New-AzureReservedIP], ParameterBindingException
                  + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.NewAzureReservedIPCmdlet
              

              检查 PowerShell 版本。更新到最新版本。

              【讨论】:

              • 请务必更新 Powershell。如果 PowerShell 已过时,这些命令将不起作用。更新 powershell 后,可以将保留的 IP 分配给现有的虚拟机。
              猜你喜欢
              • 2017-08-31
              • 2015-11-02
              • 1970-01-01
              • 1970-01-01
              • 2020-03-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多