为已绑定EIP的ECS实例统一公网出口IP

通过统一ECS实例的公网出口IP,有利于您更高效的管理互联网业务。本文为您介绍如何为已绑定EIP的ECS实例统一公网出口IP。

前提条件

绑定了EIP的ECS实例所在的VPC已经配置了SNAT功能。更多信息,请参见创建和管理SNAT条目

背景信息

NAT网关提供SNAT功能,为VPC内无公网IP的ECS实例提供访问互联网的代理服务。如果VPC内某些ECS实例已经绑定了EIP,这些ECS实例会优先通过绑定的EIP访问互联网,而VPC内的其他ECS实例通过NAT网关的SNAT功能访问互联网,造成VPC内ECS实例的公网出口IP不一致,不利于统一管理业务。

image

您可以通过为ECS实例绑定弹性网卡来解决ECS实例公网出口IP不统一的问题。

如下图,您可以为绑定了EIP的ECS实例单独分配一块弹性网卡,并将EIP绑定到弹性网卡,这样来自互联网的访问流量会经过弹性网卡到达ECS实例,当ECS实例需要访问互联网时会通过NAT网关进行转发。

image

步骤一:创建弹性网卡

  1. 登录云服务器ECS管理控制台

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

  3. 在顶部状态栏处,选择弹性网卡的地域。

    说明

    弹性网卡的地域必须与ECS实例的地域相同。

  4. 弹性网卡页面,单击创建弹性网卡

  5. 创建弹性网卡页面,根据以下信息配置弹性网卡,然后单击创建网卡

    以下为您列举强相关参数,更多信息,请参见创建辅助弹性网卡

    配置

    说明

    弹性网卡名称

    输入弹性网卡的名称。

    专有网络

    选择ECS实例所在的专有网络。

    交换机

    选择ECS实例所在可用区的交换机。

    安全组

    选择当前专有网络的一个安全组。

    主私网IP(可选)

    输入弹性网卡的主私网IPv4地址。此IPv4地址必须属于交换机的CIDR网段中的空闲地址。如果您没有指定,创建弹性网卡时将自动为您分配一个空闲的私网IPv4地址。本文不指定主私网IP。

    辅助私网IPv4(可选)

    单击相应选项进行设置。本文选择不设置。

步骤二:将弹性网卡绑定到ECS实例

  1. 登录云服务器ECS管理控制台

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

  3. 在顶部状态栏处,选择弹性网卡的地域。

  4. 弹性网卡页面,找到目标弹性网卡,然后在操作列单击绑定实例

  5. 在弹出的对话框中,选择要绑定的ECS实例,然后单击确定

步骤三:将EIP与ECS实例解绑

  1. 登录弹性公网IP管理控制台

  2. 在顶部状态栏处,选择EIP的地域。

  3. 弹性公网IP页面,找到目标EIP,然后在操作列单击解绑资源

  4. 在弹出的对话框中,单击确定

步骤四:将EIP绑定到弹性网卡

  1. 登录弹性公网IP管理控制台

  2. 选择EIP的地域。

  3. 弹性公网IP页面,找到目标EIP,然后在操作列单击绑定资源

  4. 绑定弹性公网IP至资源对话框,根据以下信息绑定EIP至弹性网卡,然后单击确定

    配置

    说明

    实例类型

    选择辅助弹性网卡。

    所在资源组(可选)

    选择该EIP所属的资源组。本文选择默认资源组。

    绑定模式(可选)

    选择EIP绑定模式。 本文选择普通模式

    选择要绑定的实例

    选择要绑定的辅助弹性网卡。

步骤五:配置弹性网卡路由

  1. 登录ECS管理控制台

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

  3. 查看ECS实例的弹性网卡信息。

  4. 远程登录ECS实例,更多信息,请参见ECS连接方式概述

  5. 执行以下命令查看弹性网卡信息。

    ip a

    ip a

    经过查看,得到ECS实例弹性网卡的信息如下:

    eth0为主网卡,对应的私网地址是192.168.3.10。

    eth1为辅助弹性网卡,对应的私网地址是192.168.3.11,公网地址是118.190.XX.XX。

  6. 按您的需要规划路由表里每块弹性网卡的默认路由metric值。

    执行以下命令,查看Gatewaymetric值。

    route -n

    metric

    说明

    本文以一块辅助弹性网卡为例,查看到辅助弹性网卡的metric值大于主网卡的metric值,路由优先级低于主网卡,不需要执行重新规划网卡的metric值,保持默认配置即可。如有多块辅助弹性网卡,请根据实际情况配置,具体操作,请参见配置辅助弹性网卡

  7. 创建路由表并配置策略路由。

    1. 如果需要为ECS实例的弹性网卡配置单次策略路由,请执行以下操作。

      说明

      ECS实例重启后,配置的弹性网卡路由会失效。

      1. 执行以下命令创建路由表。

        ip -4 route add default via 192.168.3.13 dev eth1 table 101
        说明

        建议路由表名称和网卡的默认路由metric取值保持一致,如本例中的101

      2. 执行以下命令检查路由表是否创建成功。

        ip route list table 101

        查询结果如下所示:路由

      3. 执行以下命令创建策略路由。

        ip -4 rule add from 192.168.3.11 lookup 101
      4. 执行以下命令查看路由规则。

        ip rule list

        查询结果如下所示:策略路由

    2. 如果需要为ECS实例的弹性网卡配置多次路由,请执行以下操作。

      说明

      ECS实例重启后,配置的弹性网卡路由不会失效。

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

        vi /etc/rc.local
      2. 在配置文件末尾,按i进入编辑模式。

      3. 在配置文件末尾,添加以下信息。

        ip -4 route add default via 192.168.3.13 dev eth1 table 101
        ip -4 rule add from 192.168.3.11 lookup 101
        说明

        本文以一块辅助弹性网卡为例,查看到辅助弹性网卡的metric值大于主网卡的metric值,路由优先级低于主网卡,不需要重新规划网卡的metric值,保持默认配置即可。如有多块辅助弹性网卡,请将规划metric值的命令也添加到配置文件中。关于规划metric值的具体命令,请参见配置辅助弹性网卡

      4. 按下Esc键,输入:wq并回车以保存并关闭文件。

      5. 执行以下命令修改/etc/rc.d/rc.local配置文件的可执行权限。

        chmod +x /etc/rc.d/rc.local
        说明

        由于/etc/rc.local配置文件是/etc/rc.d/rc.local配置文件的软链接,因此修改配置文件的权限时需要修改/etc/rc.d/rc.local配置文件的权限。执行ls -l /etc/rc.local命令可以查看到/etc/rc.local配置文件是/etc/rc.d/rc.local配置文件的软链接。

步骤六:测试网络连通性

完成以下操作,测试互联网是否可以通过弹性网卡绑定的EIP访问ECS实例。本文以本地Linux设备远程连接ECS实例为例。

说明

远程连接ECS实例,请确认ECS实例的安全组已放行SSH(22)端口。更多信息,请参见添加安全组规则

  1. 登录本地Linux设备。

  2. 执行ssh <your username>@公网IP命令,然后输入ECS实例的登录密码,查看是否可以远程连接到实例。若界面上出现以下回显信息,表示您已经成功连接到实例。

    Welcome to Alibaba Cloud Elastic Compute Service!

    实例1

完成以下操作,测试ECS实例是否可以通过NAT网关的SNAT功能主动访问互联网。本操作以在ECS实例上查看公网出口IP为例。

  1. 登录ECS实例。

  2. 执行curl https://myip.ipip.net查看公网出口IP。若公网出口IP与NAT网关SNAT条目中的IP一致,即ECS实例优先通过NAT网关的SNAT功能主动访问互联网。实例2