通过统一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不一致,不利于统一管理业务。
您可以通过为ECS实例绑定弹性网卡来解决ECS实例公网出口IP不统一的问题。
如下图,您可以为绑定了EIP的ECS实例单独分配一块弹性网卡,并将EIP绑定到弹性网卡,这样来自互联网的访问流量会经过弹性网卡到达ECS实例,当ECS实例需要访问互联网时会通过NAT网关进行转发。
步骤一:创建弹性网卡
登录云服务器ECS管理控制台。
在左侧导航栏,选择
。在顶部状态栏处,选择弹性网卡的地域。
说明弹性网卡的地域必须与ECS实例的地域相同。
在弹性网卡页面,单击创建弹性网卡。
在创建弹性网卡页面,根据以下信息配置弹性网卡,然后单击创建网卡。
以下为您列举强相关参数,更多信息,请参见创建辅助弹性网卡。
配置
说明
弹性网卡名称
输入弹性网卡的名称。
专有网络
选择ECS实例所在的专有网络。
交换机
选择ECS实例所在可用区的交换机。
安全组
选择当前专有网络的一个安全组。
主私网IP(可选)
输入弹性网卡的主私网IPv4地址。此IPv4地址必须属于交换机的CIDR网段中的空闲地址。如果您没有指定,创建弹性网卡时将自动为您分配一个空闲的私网IPv4地址。本文不指定主私网IP。
辅助私网IPv4(可选)
单击相应选项进行设置。本文选择不设置。
步骤二:将弹性网卡绑定到ECS实例
登录云服务器ECS管理控制台。
在左侧导航栏中,选择
。在顶部状态栏处,选择弹性网卡的地域。
在弹性网卡页面,找到目标弹性网卡,然后在操作列单击绑定实例。
在弹出的对话框中,选择要绑定的ECS实例,然后单击确定。
步骤三:将EIP与ECS实例解绑
登录弹性公网IP管理控制台。
在顶部状态栏处,选择EIP的地域。
在弹性公网IP页面,找到目标EIP,然后在操作列单击解绑资源。
在弹出的对话框中,单击确定。
步骤四:将EIP绑定到弹性网卡
登录弹性公网IP管理控制台。
选择EIP的地域。
在弹性公网IP页面,找到目标EIP,然后在操作列单击绑定资源。
在绑定弹性公网IP至资源对话框,根据以下信息绑定EIP至弹性网卡,然后单击确定。
配置
说明
实例类型
选择辅助弹性网卡。
所在资源组(可选)
选择该EIP所属的资源组。本文选择默认资源组。
绑定模式(可选)
选择EIP绑定模式。 本文选择普通模式。
选择要绑定的实例
选择要绑定的辅助弹性网卡。
步骤五:配置弹性网卡路由
登录ECS管理控制台。
在左侧导航栏,选择
。查看ECS实例的弹性网卡信息。
远程登录ECS实例,更多信息,请参见ECS连接方式概述。
执行以下命令查看弹性网卡信息。
ip a
经过查看,得到ECS实例弹性网卡的信息如下:
eth0为主网卡,对应的私网地址是192.168.3.10。
eth1为辅助弹性网卡,对应的私网地址是192.168.3.11,公网地址是118.190.XX.XX。
按您的需要规划路由表里每块弹性网卡的默认路由metric值。
执行以下命令,查看Gateway和metric值。
route -n
说明本文以一块辅助弹性网卡为例,查看到辅助弹性网卡的metric值大于主网卡的metric值,路由优先级低于主网卡,不需要执行重新规划网卡的metric值,保持默认配置即可。如有多块辅助弹性网卡,请根据实际情况配置,具体操作,请参见配置辅助弹性网卡。
创建路由表并配置策略路由。
如果需要为ECS实例的弹性网卡配置单次策略路由,请执行以下操作。
说明ECS实例重启后,配置的弹性网卡路由会失效。
执行以下命令创建路由表。
ip -4 route add default via 192.168.3.13 dev eth1 table 101
说明建议路由表名称和网卡的默认路由metric取值保持一致,如本例中的101。
执行以下命令检查路由表是否创建成功。
ip route list table 101
查询结果如下所示:
执行以下命令创建策略路由。
ip -4 rule add from 192.168.3.11 lookup 101
执行以下命令查看路由规则。
ip rule list
查询结果如下所示:
如果需要为ECS实例的弹性网卡配置多次路由,请执行以下操作。
说明ECS实例重启后,配置的弹性网卡路由不会失效。
执行以下命令打开/etc/rc.local配置文件。
vi /etc/rc.local
在配置文件末尾,按i进入编辑模式。
在配置文件末尾,添加以下信息。
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值的具体命令,请参见配置辅助弹性网卡。
按下Esc键,输入
:wq
并回车以保存并关闭文件。执行以下命令修改/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)端口。更多信息,请参见添加安全组规则。
登录本地Linux设备。
执行
ssh <your username>@公网IP
命令,然后输入ECS实例的登录密码,查看是否可以远程连接到实例。若界面上出现以下回显信息,表示您已经成功连接到实例。Welcome to Alibaba Cloud Elastic Compute Service!
完成以下操作,测试ECS实例是否可以通过NAT网关的SNAT功能主动访问互联网。本操作以在ECS实例上查看公网出口IP为例。
登录ECS实例。
执行
curl https://myip.ipip.net
查看公网出口IP。若公网出口IP与NAT网关SNAT条目中的IP一致,即ECS实例优先通过NAT网关的SNAT功能主动访问互联网。