普通模式下实现ECS绑定多EIP

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

如果您需要在同一台ECS实例上托管多个应用,每个应用对外均呈现一个独立的公网IP地址,您可以将多个EIP通过辅助弹性网卡以普通模式绑定到ECS实例,实现单个ECS实例同时绑定多个EIP

背景信息

  • 每张辅助弹性网卡支持分配多个辅助私网IP地址。

    具体可分配辅助私有IP地址的数量与辅助弹性网卡的状态和其绑定的ECS实例规格有关,更多信息,请参见分配辅助私网IP地址背景信息

  • 当以普通模式绑定时,每个辅助私网IP地址都可以绑定独立的弹性公网IP地址。

    关于普通模式的更多信息,请参见将EIP绑定至辅助弹性网卡

  • ECS实例需要通过公网IP才能与公网通信。在不使用辅助弹性网卡的情况下,每个ECS实例仅支持分配1个固定公网IP或绑定1个EIP

    通过为辅助弹性网卡绑定弹性公网IP地址,您可以实现单个ECS实例分配多公网IP地址。如果您的ECS实例托管多个应用,每个应用可以对外呈现一个独立的公网IP地址,从而提高ECS实例的利用率。

业务场景

本文以下图场景为例。某公司在阿里云创建了1个ECS实例用于部署网站,ECS实例绑定了1个EIP用于对外提供服务。

因公司业务拓展,需要ECS实例同时部署3个子网站,并且每个子网站需要使用独立的EIP对外提供服务。

您可以为辅助弹性网卡分配2个辅助私网IP,此时该辅助弹性网卡拥有1个主私网IP和2个辅助私网IP,然后将多个EIP与辅助弹性网卡的私网IP以普通模式一一绑定,实现单个ECS实例绑定多个EIP业务场景

准备工作

在开始配置前,请确保您已完成以下资源的创建:

准备资源

资源需满足的条件

相关文档

ECS实例

  • ECS实例规格支持绑定多张辅助弹性网卡,且支持为单张网卡分配多个私网IP。

    例如,一个规格为ecs.c6.large的ECS实例,最多支持2张弹性网卡(包括主网卡和辅助弹性网卡),每张网卡最多支持6个私有IP。其中:

    • 主网卡仅支持通过主私网IP绑定1个EIP。

    • 辅助弹性网卡支持通过私网IP绑定6个EIP。

    则该ECS实例总共可关联7个EIP。

  • ECS实例所属VPC未激活过IPv4网关。如果所属VPC激活过IPv4网关,您可以配置IPv4网关路由以允许VPC内实例连接公网。

辅助弹性网卡

  • 与要绑定的ECS实例属于同一个VPC。

  • 所属的交换机必须与要绑定的ECS实例所属的交换机处于同一可用区。

  • 所属安全组的规则允许辅助弹性网卡访问公网。

EIP

EIP的地域与要绑定的辅助弹性网卡的地域相同。

申请EIP

采用快速部署方式时,支持选择创建新实例和使用已有实例2种模式来部署。

  • 选择创建新实例模式时,您无需事先创建以上资源。

  • 选择使用已有实例模式时,您需要创建以上资源,且ECS实例的操作系统必须为CentOS 7.x。

操作步骤

手动部署

配置步骤

ECS绑定多个EIP 配置步骤.png

本文所有对ECS实例和辅助弹性网卡的操作,均以新版控制台为例,您可以在ECS控制台左侧导航栏下方进行切换。

警告

本文配置涉及重启网络服务、配置路由等,为避免业务中断等不可预知的错误,请在业务低峰期执行操作。

步骤一:将辅助弹性网卡绑定到ECS实例

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择网络与安全 > 弹性网卡

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 找到已创建的辅助弹性网卡,在操作列单击绑定实例

  5. 绑定实例对话框中,选择目标ECS实例后,单击确定

    刷新列表,当辅助弹性网卡的状态显示为已绑定时,表示辅助弹性网卡绑定成功。

说明

如果您不能成功将辅助弹性网卡绑定到ECS实例,可能有以下原因:

  • 您的ECS实例绑定的辅助弹性网卡数已达实例规格的支持上限,ECS实例规格支持绑定的弹性网卡数量,请参见实例规格族。如需提升实例规格,请参见升降配方式概述

  • 您的ECS实例规格需要在已停止状态下,才支持与辅助弹性网卡进行绑定。需要停止实例的ECS实例规格,请参见前提条件

步骤二:为辅助弹性网卡分配多个辅助私网IP

通过在一张辅助弹性网卡上分配多个辅助私网IP地址,可以实现ECS实例的高利用率和负载故障时的流量转移。

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择网络与安全 > 弹性网卡

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 弹性网卡页面,找到目标辅助弹性网卡,在操作列单击管理辅助私网IP

  5. 管理辅助私网IP对话框的辅助私网IPv4参数区域,单击增加,根据需要分配IP地址,然后单击确定

    本示例单击2次增加,为辅助弹性网卡分配2个辅助私网IP。

    说明

    您也可以手动输入辅助私网IP,取值在交换机地址段范围内即可。如果您不输入IP值,系统会从交换机地址段内随机分配IP。

    分配辅助私网IP CN.png

    您可以在辅助弹性网卡的IP地址列查看已分配的辅助私网IP地址。

(可选)步骤三:在ECS内部配置网卡

ECS实例绑定辅助弹性网卡后,部分镜像可能无法自动识别辅助弹性网卡的IP地址并添加路由,导致辅助弹性网卡无法正常使用。您需要在ECS实例内部配置辅助弹性网卡以识别IP地址。

查看ECS实例镜像是否支持自动配置绑定的辅助弹性网卡,以及如何在ECS实例内部配置辅助弹性网卡,请参见配置辅助弹性网卡

步骤四:为ECS实例配置辅助私网IP

辅助弹性网卡与ECS实例绑定后,您需要为ECS实例配置辅助私网IP。

本示例以操作系统为Alibaba Cloud Linux 2的ECS实例为例,介绍如何为ECS实例配置辅助私网IP。其他操作系统ECS实例的配置详情,请参见为实例配置辅助私网IP地址

  1. 远程连接ECS实例。

    关于连接方式的介绍,请参见连接方式概述

  2. 使用ifconfig命令查询子网掩码,并使用route -n命令查询默认网关。

    查询示例如下图所示。

    查询子网掩码和默认网关.png

    其中,netmask对应的255.255.**.**为IPv4子网掩码,Gateway对应的172.**.**.253为默认网关。

  3. 修改网络配置文件。

    1. 运行vi /etc/sysconfig/network-scripts/ifcfg-eth1:0命令,并添加相应的配置项。

      配置项示例如下所示:

      DEVICE=eth1:0   
      TYPE=Ethernet
      BOOTPROTO=static
      ONBOOT=yes
      IPADDR=<分配的辅助私网IPv4地址1>
      NETMASK=<IPv4子网掩码>
    2. 运行vi /etc/sysconfig/network-scripts/ifcfg-eth1:1命令,并添加相应的配置项。

      配置项示例如下所示:

      DEVICE=eth1:1   
      TYPE=Ethernet
      BOOTPROTO=static
      ONBOOT=yes
      IPADDR=<分配的辅助私网IPv4地址2>
      NETMASK=<IPv4子网掩码>
  4. 执行以下命令,重启网络服务,使配置生效。

    service network restart

  5. 运行ifconfig查看配置效果。

    配置2个辅助私网IP的效果示例如下图所示。查看配置辅助私网IP结果.png

步骤五:将EIP绑定到辅助私网IP

  1. 登录弹性公网IP管理控制台
  2. 弹性公网IP页面,找到目标EIP,在操作列单击绑定资源

  3. 绑定弹性公网IP至资源对话框,完成以下配置,然后单击确定

    • 实例类型:选择辅助弹性网卡

      重要

      此处需选择辅助弹性网卡类型。选择云服务器ECS实例类型时,EIP无法绑定到已分配的辅助私网IP上。

    • 所在资源组:选择辅助弹性网卡所属的资源组。

    • 绑定模式:选择普通模式

    • 选择要绑定的实例:选中要绑定的辅助私网IP。可在目标辅助弹性网卡的IP地址列查看对应辅助私网IP。

      本步骤选择已经创建的辅助弹性网卡的主私网IP。

  4. 重复上述步骤,将其余2个EIP分别绑定到辅助弹性网卡上的辅助私网IP,使多个EIP与辅助私网IP一一绑定。

步骤六:配置路由

本示例以操作系统为Alibaba Cloud Linux 2的ECS实例为例,介绍如何为ECS实例配置路由。其他操作系统的配置路由示例,请参见(可选)步骤四:配置路由

在ECS实例内部为辅助弹性网卡配置路由

  1. 远程连接ECS实例。

    关于连接方式的介绍,请参见连接方式概述

  2. 执行以下命令,查看路由信息。

    route -n

    查询到主网卡(eth0)和辅助弹性网卡(eth1)的路由信息如下。

    查看路由.png

  3. 执行以下命令,配置默认路由。

    ip -4 route add default via 172.16.**.253 dev eth1 metric 1001 && \
    ip -4 route add default via 172.16.**.253 dev eth1 table 1001 && \
    ip -4 rule add from 172.16.**.*57 lookup 1001 && \
    ip -4 rule add from 172.16.**.*77 lookup 1001 && \
    ip -4 rule add from 172.16.**.*78 lookup 1001
    说明

    上述命令为eth1添加默认路由,并创建了1张路由表和3条关联至该路由表的路由策略。其中,table 1001为路由表(和默认路由metric取值保持一致),172.16.**.253为网关地址,172.16.*.*57为eth1的主私网IP地址,172.16.**.*77172.16.**.*78为eth1的2个辅助私网IP。请将相关参数替换为实际内容。

  4. 执行以下命令,查看创建的路由表和策略路由。

    ip route list table 1001 && \
    ip rule list

    系统返回查询结果如下图,表示创建的路由表和策略路由成功。查看创建的路由表和策略路由.png

  5. 可选:如果现有的路由不满足您的需求,您可以自行配置路由表和规则。

    通过配置路由表和规则,可实现不同的路由策略,将特定的网络流量通过指定的网关进行转发,以便更加精确地控制和管理网络流量的转发路径。

配置开机时自动更新路由

为辅助弹性网卡配置路由后,需配置开机时自动更新路由,否则重启实例后该路由配置会失效。

  1. 执行以下命令,打开/etc/rc.local文件。

    vim /etc/rc.local
  2. i键进入编辑模式,添加如下内容,然后按Esc键退出编辑模式,输入:wq保存退出。

    ip -4 route add default via 172.16.**.253 dev eth1 metric 1001
    ip -4 route add default via 172.16.**.253 dev eth1 table 1001 
    ip -4 rule add from 172.16.**.*57 lookup 1001
    ip -4 rule add from 172.16.**.*77 lookup 1001
    ip -4 rule add from 172.16.**.*78 lookup 1001
  3. 执行以下命令,为/etc/rc.local文件添加执行权限。

    sudo chmod +x /etc/rc.local

步骤七:测试网络连通性

本示例以操作系统为Alibaba Cloud Linux 2的ECS实例为例,介绍如何测试ECS实例到目的网络的连通性。

  1. 登录ECS实例。

    关于连接方式的介绍,请参见连接方式概述

  2. 执行以下命令,验证辅助私网IP到目的网络的连通性。

    ping <目的网络> -I <辅助私网IP>

    经验证,多个辅助私网IP到目的网络的连通性均正常,即EIP绑定多个辅助私网IP生效。

    实现单ECS实例绑定多个EIP 测试结果.png

快速部署

快速部署基于阿里云资源编排 ROS(Resource Orchestration Service)实现,可以帮助您快速实现单个ECS实例同时绑定多个EIP

重要

目前,快速部署方式仅支持实现单个ECS实例配置3个EIP。如果您需要更灵活的配置方案,建议选择手动部署方式。

  1. 打开快速配置模板链接进入ROS控制台。

  2. 在顶部菜单栏处,选择EIP所属的地域。

  3. 配置模板参数配置向导页面,输入资源栈名称,选择使用已有ECS/Eip/Eni创建ECS/Eip/Eni,按照以下信息配置,然后单击创建

    • 选择使用已有ECS/Eip/Eni:您需要选择ECS实例并输入辅助弹性网卡ID、3个EIP实例的ID。

    • 选择创建ECS/Eip/Eni:您需要选择可用区、实例规格、系统盘类型,输入实例密码。

      重要

      选择创建ECS/Eip/Eni,系统会创建1个CentOS 7.x操作系统的按量付费ECS实例和3个按量付费EIP实例,关于ECSEIP的计费说明,请参见ECS计费概述EIP计费概述

    资源栈信息页签下的状态创建中变为创建成功时,说明已部署完成。

  4. 登录ECS实例。

    关于连接方式的介绍,请参见连接方式概述

  5. 执行以下命令,验证辅助私网IP到目的网络的连通性。

    ping <目的网络> -I <辅助私网IP>

    经验证,辅助私网IP到目的网络的连通性正常,即EIP绑定多个辅助私网IP生效。

    实现单ECS实例绑定多个EIP 测试结果.png

常见问题

EIP绑定辅助弹性网卡后收取EIP配置费吗?

弹性网卡绑定EIP,附加到ECS实例后,是否还需要额外配置?

  • 如果ECS实例上部署的是主动对外提供服务的业务,例如Web网站,无需在ECS实例上或VPC中配置路由,可以直接使用辅助弹性网卡绑定的EIP对外提供服务。

  • 如果ECS实例上部署的是主动访问公网的业务,需要在ECS实例上自定义默认路由或明细路由。默认路由从主网卡出,可以通过调整路由优先级的方式让报文从辅助弹性网卡出公网。您也可以配置明细路由,让报文以负载分担的形式从多张网卡分发或从某一网卡随机地分发出公网。

    部分系统中的配置路由操作示例,请参见配置路由

相关文档

  • 管理EIP配额:单个账号可申请的EIP数量为20个,如果您需要更多EIP,您可以提升EIP配额。

  • AssociateEipAddress:将EIP绑定到同地域的云产品实例上。