统一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不一致,不利于统一管理业务。 NAT网关

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

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

步骤一:创建弹性网卡

  1. 登录云服务器ECS管理控制台
  2. 在左侧导航栏,选择网络与安全 > 弹性网卡
  3. 选择弹性网卡的地域。
    说明 弹性网卡的地域必须与ECS实例的地域相同。
  4. 弹性网卡页面,单击创建弹性网卡
  5. 创建弹性网卡对话框,根据以下信息配置弹性网卡,然后单击确定
    • 网卡名称:输入弹性网卡的名称。
    • 专有网络:选择ECS实例所在的专有网络。
    • 交换机:选择ECS实例所在可用区的交换机。
    • 主私网IP(可选):输入弹性网卡的主私网IPv4地址。此IPv4地址必须属于交换机的CIDR网段中的空闲地址。如果您没有指定,创建弹性网卡时将自动为您分配一个空闲的私网IPv4地址。本文不指定主私网IP。
    • 辅助私网IP(可选):单击相应选项进行设置。本文选择不设置
    • 安全组:选择当前专有网络的一个安全组。
    更多参数信息,请参见创建弹性网卡

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

  1. 登录云服务器ECS管理控制台
  2. 在左侧导航栏中,选择网络与安全 > 弹性网卡
  3. 选择弹性网卡的地域。
  4. 弹性网卡页面,找到目标弹性网卡,然后在操作列单击绑定实例
  5. 在弹出的对话框中,选择要绑定的ECS实例,然后单击确定

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

  1. 登录专有网络管理控制台
  2. 在左侧导航栏,选择弹性公网IP > 弹性公网IP
  3. 选择EIP的地域。
  4. 弹性公网IP页面,找到目标EIP,然后在操作列单击解除绑定
  5. 在弹出的对话框中,单击确定

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

  1. 登录专有网络管理控制台
  2. 在左侧导航栏,选择弹性公网IP > 弹性公网IP
  3. 选择EIP的地域。
  4. 弹性公网IP页面,找到目标EIP,然后在操作列单击绑定资源
  5. 绑定弹性公网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. 执行以下命令创建路由表。
      ip -4 route add default via 192.168.3.13 dev eth1 table 101
      说明 建议路由表名称和网卡的默认路由 metric取值保持一致,如本例中的 101
    2. 执行以下命令检查路由表是否创建成功。
      ip route list table 101
      查询结果如下所示:路由
  8. 配置策略路由。
    1. 执行以下命令创建策略路由。
      ip -4 rule add from 192.168.3.11 lookup 101
    2. 执行以下命令查看路由规则。
      ip rule list
      查询结果如下所示:策略路由

步骤六:测试网络连通性

完成以下操作,测试互联网是否可以通过弹性网卡绑定的EIP访问ECS实例。本文以本地Linux设备远程连接ECS实例为例。
说明 远程连接ECS实例,请确认ECS实例的安全组已放行SSH(22)端口。更多信息,请参见 添加安全组规则
  1. 登录本地Linux设备。
  2. 执行ssh root@公网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