使用 Azure 门户将多个 IP 地址分配给虚拟机

在一个 Azure 虚拟机 (VM) 上可以附加一个或多个网络接口 (NIC)。 可为任何 NIC 分配一个或多个静态/动态的公共和专用 IP 地址。 将多个 IP 地址分配给 VM 可实现以下功能:

  • 在一台服务器上托管具有不同 IP 地址和 SSL 证书的多个网站或服务。
  • 用作网络虚拟设备,例如防火墙或负载均衡器。
  • 能够将任何 NIC 的任意专用 IP 地址添加到 Azure 负载均衡器后端池。 过去,只有主 NIC 的主 IP 地址才能添加到后端池。 若要详细了解如何对多个 IP 配置进行负载均衡,请阅读对多个 IP 配置进行负载均衡一文。

每个附加到 VM 的 NIC 都具有一个或多个与之关联的 IP 配置。 系统会为每个配置分配一个静态或动态专用 IP 地址。 每个配置还可拥有一个与之关联的公共 IP 地址资源。 系统会为公共 IP 地址资源分配一个动态或静态公共 IP 地址。 若要详细了解 Azure 中的 IP 地址,请阅读 Azure 中的 IP 地址一文。

分配给 NIC 的专用 IP 地址数目存在限制。 能够在 Azure 订阅中使用的公共 IP 地址数也存在限制。 有关详细信息,请参阅 Azure 限制一文。

本文介绍如何使用 Azure 门户通过 Azure Resource Manager 部署模型创建虚拟机 (VM)。 无法将多个 IP 地址分配给通过经典部署模型创建的资源。 若要详细了解 Azure 部署模型,请阅读 Understand deployment models(了解部署模型)一文。

方案

创建具有一个 NIC 的 VM,并连接到虚拟网络。 VM 需要三个不同的专用 IP 地址和两个公共 IP 地址。 IP 地址将分配到以下 IP 配置:

  • IPConfig-1:分配一个静态专用 IP 地址和一个静态公共 IP 地址。
  • IPConfig-2:分配一个静态专用 IP 地址和一个静态公共 IP 地址。
  • IPConfig-3:分配一个静态专用 IP 地址,不分配公共 IP 地址。

    多个 IP 地址

IP 配置在创建 NIC 时关联到 NIC,NIC 在创建 VM 时附加到 VM。 本方案使用的 IP 地址类型用于演示目的。 可分配需要的任何 IP 地址和分配类型。

Note

尽管本文中的步骤将所有 IP 配置都分配给一个 NIC,但也可将多个 IP 配置分配给多 NIC VM 中的任何 NIC。 若要了解如何创建具有多个 NIC 的 VM,请阅读创建具有多个 NIC 的 VM一文。

创建具有多个 IP 地址的 VM

若要创建具有多个 IP 地址或一个静态专用 IP 地址的 VM,则必须使用 PowerShell 或 Azure CLI 来创建。 若要了解如何操作,请单击本文顶部的 PowerShell 或 CLI 选项。 可以按照创建 Windows VM创建 Linux VM 文章中的步骤,使用门户创建具有单个动态专用 IP 地址和(可选)单个公共 IP 地址的 VM。 创建 VM 后,可以按照本文向 VM 添加 IP 地址部分中的以下步骤,可使用门户将 IP 地址类型从动态更改为静态并添加其他 IP 地址。

将 IP 地址添加到 VM

完成以下步骤即可将专用和公共 IP 地址添加到 NIC。 以下部分的示例假定用户的 VM 已完成本文 方案 中描述的三项 IP 配置,但这不是必需的。

核心步骤

  1. 根据需要浏览到 Azure 门户(网址为 https://portal.azure.cn)并登录。
  2. 在门户中单击“更多服务”> 在筛选框中键入“虚拟机”,然后单击“虚拟机”。
  3. 在“虚拟机”边栏选项卡中单击要向其添加 IP 地址的 VM。 在显示的虚拟机边栏选项卡中单击“网络接口”,然后选择要向其添加 IP 地址的网络接口。 在下图所示的示例中,已从名为“myVM”的 VM 中选定名为“myNIC”的 NIC:

    网络接口

  4. 在针对所选 NIC 显示的边栏选项卡中,单击“IP 配置”。

根据要添加的 IP 地址的类型完成以下某个部分的步骤。

添加专用 IP 地址

完成以下步骤,添加新的专用 IP 地址:

  1. 完成本文 核心步骤 部分的步骤。
  2. 单击 “添加”。 在显示的“添加 IP 配置”边栏选项卡中,创建名为“IPConfig-4”的 IP 配置,以“10.0.0.7”作为“静态”专用 IP 地址,然后单击“确定”。

    Note

    在添加静态 IP 地址时,必须在 NIC 连接到的子网中指定未使用的有效地址。 如果所选地址不可用,门户会显示 X 来表示该 IP 地址,用户需另选一个。

  3. 单击“确定”后,边栏选项卡将会关闭,用户会看到列出的新 IP 配置。 单击“确定”关闭“添加 IP 配置”边栏选项卡。

  4. 可以单击“添加”添加其他 IP 配置,也可以关闭所有打开的边栏选项卡,完成添加 IP 地址的操作。
  5. 将专用 IP 地址添加到 VM 操作系统,只需完成本文将 IP 地址添加到 VM 操作系统部分针对操作系统的步骤即可。

添加公共 IP 地址

将公共 IP 地址资源关联到新 IP 配置或现有 IP 配置即可添加公共 IP 地址。

Note

公共 IP 地址会产生少许费用。 有关 IP 地址定价的详细信息,请阅读 IP 地址定价页。 可在一个订阅中使用的公共 IP 地址数有限制。 有关限制的详细信息,请阅读 Azure limits(Azure 限制)一文。

创建公共 IP 地址资源

公共 IP 地址是针对公共 IP 地址资源的一种设置。 如果你的公共 IP 地址资源目前所关联到的 IP 配置不是你想要关联到的 IP 配置,可跳过以下步骤,根据需要完成后面某个部分的步骤。 如果没有可用的公共 IP 地址资源,可通过以下步骤创建一个:

  1. 根据需要浏览到 Azure 门户(网址为 https://portal.azure.cn)并登录。
  2. 在门户中,单击“新建” > “网络” > “公共 IP 地址”。
  3. 在显示的“创建公共 IP 地址”边栏选项卡中,输入一个“名称”,选择一个“IP 地址分配”类型、一个“订阅”、一个“资源组”和一个“位置”,然后单击“创建”,如下图所示:

    创建公共 IP 地址资源

  4. 完成下面某个部分的步骤,将公共 IP 地址资源关联到某个 IP 配置。

将公共 IP 地址资源关联到新 IP 配置

  1. 完成本文 核心步骤 部分的步骤。
  2. 单击 “添加”。 在显示的“添加 IP 配置”边栏选项卡中,创建名为“IPConfig-4”的 IP 配置。 启用“公共 IP 地址”,并从显示的“选择公共 IP 地址”边栏选项卡中选择一个现有的可用公共 IP 地址资源。

    在选择公共 IP 地址资源后单击“确定”,边栏选项卡将会关闭。 如果还没有公共 IP 地址,则可通过完成本文创建公共 IP 地址资源部分的步骤创建一个。

  3. 查看新 IP 配置。 即使没有向 IP 配置显式分配专用 IP 地址,也会自动分配一个,因为所有 IP 配置都必须有一个专用 IP 地址。

  4. 可以单击“添加”添加其他 IP 配置,也可以关闭所有打开的边栏选项卡,完成添加 IP 地址的操作。
  5. 将专用 IP 地址添加到 VM 操作系统,只需完成本文将 IP 地址添加到 VM 操作系统部分针对操作系统的步骤即可。 请勿向操作系统添加公共 IP 地址。

将公共 IP 地址资源关联到现有 IP 配置

  1. 完成本文核心步骤部分的步骤。
  2. 单击其中要添加公共 IP 地址资源的 IP 配置。
  3. 在出现的“IPConfig”边栏选项卡中,单击“IP 地址”。
  4. 在出现的“选择公共 IP 地址”边栏选项卡中,选择公共 IP 地址。
  5. 单击“保存”后,边栏选项卡会关闭。 如果还没有公共 IP 地址,则可通过完成本文创建公共 IP 地址资源部分的步骤创建一个。
  6. 查看新 IP 配置。
  7. 可以单击“添加”添加其他 IP 配置,也可以关闭所有打开的边栏选项卡,完成添加 IP 地址的操作。 请勿向操作系统添加公共 IP 地址。

将 IP 地址添加到 VM 操作系统

连接并登录所创建的具有多个专用 IP 地址的 VM。 必须手动添加所有添加到 VM 的专用 IP 地址(包括主地址)。 针对 VM 操作系统完成以下步骤:

Windows

  1. 在命令提示符下,键入 ipconfig /all。 只能看到主要专用 IP 地址(通过 DHCP)。
  2. 在命令提示符下键入 ncpa.cpl,打开“网络连接”窗口。
  3. 打开相应适配器的属性:本地区域连接
  4. 双击“Internet 协议版本 4 (IPv4)”。
  5. 单击“使用下面的 IP 地址”并输入以下值:

    • IP 地址:输入 Primary 专用 IP 地址
    • 子网掩码:根据子网设置此值。 例如,如果子网为 /24 子网,则子网掩码为 255.255.255.0。
    • 默认网关:子网中的第一个 IP 地址。 如果子网为 10.0.0.0/24,则网关 IP 地址为 10.0.0.1。
    • 单击“使用下面的 DNS 服务器地址”并输入以下值:
      • 首选 DNS 服务器:如果不使用自己的 DNS 服务器,请输入 168.63.129.16。 如果使用自己的 DNS 服务器,请输入服务器的 IP 地址。
    • 单击“高级”按钮,然后添加其他 IP 地址。 使用为主 IP 地址指定的相同子网,为 NIC 添加步骤 8 中列出的每个辅助专用 IP 地址。

      Warning

      如果没有正确地遵循上述步骤,则可能会失去到 VM 的连接。 在继续之前,请确保针对第 5 步输入的信息是准确的。

    • 单击“确定”关闭“TCP/IP 设置”,然后再次单击“确定”关闭适配器设置。 将重新建立 RDP 连接。

  6. 在命令提示符下,键入 ipconfig /all。 此时将显示添加的所有 IP 地址,DHCP 已关闭。

验证 (Windows)

若要确保你能够通过关联的公共 IP 从辅助 IP 配置连接到 Internet,请在使用上述步骤正确地添加它以后,执行以下命令:

ping -S 10.0.0.5 hotmail.com
Note

对于辅助 IP 配置,仅当该配置具有与之关联的公共 IP 地址的情况下,才能 ping 到 Internet。 对于主 IP 配置,不需公共 IP 地址也可 ping 到 Internet。

Linux (Ubuntu)

  1. 打开终端窗口。
  2. 请确保以 root 用户身份操作。 如果不是,请输入以下命令:

    sudo -i
    
  3. 更新网络接口(假设为“eth0”)的配置文件。

    • 保留 dhcp 的现有行项。 主 IP 地址会保留之前的配置。
    • 使用以下命令添加其他静态 IP 地址的配置:

      cd /etc/network/interfaces.d/
      ls
      

      应会看到一个 .cfg 文件。

  4. 打开 文件。 该文件的末尾应会显示以下命令行:

    auto eth0
    iface eth0 inet dhcp
    
  5. 在此文件包含的命令行后面添加以下命令行:

    iface eth0 inet static
    address <your private IP address here>
    netmask <your subnet mask>
    
  6. 使用以下命令保存该文件:

    :wq
    
  7. 使用以下命令重置网络接口:

    sudo ifdown eth0 && sudo ifup eth0
    
    Important

    如果使用远程连接,请在同一行中同时运行 ifdown 和 ifup。

  8. 使用以下命令验证 IP 地址是否已添加到网络接口:

    ip addr list eth0
    

    应会在列表中看到添加的 IP 地址。

Linux(Redhat、CentOS 和其他操作系统)

  1. 打开终端窗口。
  2. 请确保以 root 用户身份操作。 如果不是,请输入以下命令:

    sudo -i
    
  3. 输入密码,根据提示的说明操作。 切换为 root 用户后,使用以下命令导航到网络脚本文件夹:

    cd /etc/sysconfig/network-scripts
    
  4. 使用以下命令列出相关的 ifcfg 文件:

    ls ifcfg-*
    

    应会看到其中一个文件是 ifcfg-eth0

  5. 若要添加 IP 地址,请为其创建配置文件,如下所示。 请注意,必须为每个 IP 配置创建一个文件。

    touch ifcfg-eth0:0
    
  6. 使用以下命令打开 ifcfg-eth0:0 文件:

    vi ifcfg-eth0:0
    
  7. 在此示例中,请使用以下命令向文件 eth0:0 添加内容。 请务必根据 IP 地址更新信息。

    DEVICE=eth0:0
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.101.101
    NETMASK=255.255.255.0
    
  8. 使用以下命令保存该文件:

    :wq
    
  9. 运行以下命令重新启动网络服务,确保更改成功:

    /etc/init.d/network restart
    ifconfig
    

    应会在返回的列表中看到添加的 IP 地址 eth0:0

验证 (Linux)

若要确保你能够通过关联的公共 IP 从辅助 IP 配置连接到 Internet,请执行以下命令:

ping -I 10.0.0.5 hotmail.com
Note

对于辅助 IP 配置,仅当该配置具有与之关联的公共 IP 地址的情况下,才能 ping 到 Internet。 对于主 IP 配置,不需公共 IP 地址也可 ping 到 Internet。

对于 Linux VM,在尝试验证源自辅助 NIC 的出站连接时,可能需要添加适当的路由。 可通过多种方式执行此操作。 对于 Linux 分发版,请参阅相应的文档。 下面是实现此目的的一种方法:

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.0.0.5 lookup custom
ip route add default via 10.0.0.1 dev eth2 table custom
  • 确保执行以下替换:
    • 10.0.0.5 替换为有关联的公共 IP 地址的专用 IP 地址
    • 10.0.0.1 替换为默认网关
    • eth2 替换为辅助 NIC 的名称