当单个 ECS 实例需要多个 EIP 承载不同的服务时,需要使用普通模式为 ECS 实例的弹性网卡绑定多 EIP。
主网卡和辅助弹性网卡均支持绑定多 EIP,可根据实际组网进行选择。本文以辅助弹性网卡为例。
工作原理
绑定多 EIP:为 ECS 实例绑定分配了多个私网 IP 的辅助弹性网卡,将多个 EIP 以普通模式与私网 IP 一一绑定。
配置策略路由,确保出入流量路径一致:
入向流量:当外部请求访问某个EIP时,系统会自动将流量转发到该 EIP 绑定的私网 IP。
出向流量:为 ECS 实例配置策略路由,确保 ECS 实例能从正确的 EIP 返回响应流量。策略路由根据数据包的源 IP(即私网 IP)来决定其下一跳和出口设备(辅助弹性网卡),确保多网卡环境下路由对称,避免路由冲突。
适用范围
ECS 的不同实例规格族支持绑定的弹性网卡数量、可分配辅助私有 IP 数量不同。
例如,
ecs.c6.large实例规格的 ECS 实例,最多支持绑定 2 张弹性网卡(包括主网卡和辅助弹性网卡),每张网卡最多支持 6 个私网 IP。其中,主网卡和辅助弹性网卡均支持通过主私网 IP 绑定 1 个 EIP,通过辅助私网 IP 绑定 5 个 EIP。普通模式下,EIP 以 NAT 模式与弹性网卡绑定,不支持 NAT ALG(NAT应用层网关)涉及的相关协议。
支持绑定主弹性网卡和辅助弹性网卡。
支持绑定的 EIP 数量取决于弹性网卡的私网 IP 数量,二者一一映射。
如果 ECS 实例所在 VPC 由 IPv4 网关集中控制公网访问,需确保已配置路由指向 IPv4 网关允许 ECS 实例访问公网。
操作步骤
步骤一:绑定多 EIP
为 ECS 实例绑定分配了多个私网 IP 的辅助弹性网卡:
已有辅助弹性网卡时,可直接与 ECS 实例绑定。
前往ECS 控制台 - 弹性网卡页面,在页面上方选择 ECS 实例所属地域。
单击创建弹性网卡。
其余参数保持默认。创建完成后,可单击目标弹性网卡操作列的管理弹性网卡 IP,增加/删除/修改私网 IP。
选择 ECS 实例所属的专有网络、交换机和安全组。
主私网 IP:可指定交换机中未使用的 IP。不指定时,系统将从交换机的空闲地址中为弹性网卡随机分配。创建完成后,不支持修改。
辅助私网 IPv4:选择自动分配,填入计划分配的辅助私网 IP 数量。
单击目标弹性网卡操作列的绑定实例,选择目标 ECS 实例。
配置操作系统识别辅助私网 IP:
本文以 Alibaba Cloud Linux 3.2 操作系统为例。更多方式,可参考配置操作系统识别辅助私网IP地址。
登录 ECS 实例,执行
ip a查看并确认网卡信息。网卡标识:eth0(主网卡)、eth1(辅助弹性网卡)。
网卡状态:
state UP代表网卡状态正常,即网卡已经在实例内部生效。如果网卡状态为state DOWN,需要配置Linux操作系统识别网卡。

使用
nmcli con配置辅助私网 IP。执行
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg新建文件,写入network: {config: disabled}配置项,禁用cloud-init自动初始化网络配置,避免重启后配置失效。执行
nmcli con show查看eth1的网络连接名。
执行以下命令,配置辅助弹性网卡的辅助私网 IPv4 地址、默认网关。
可执行
route -n查看默认网关。sudo nmcli con modify "<eth1 网络连接名>" ipv4.addresses <辅助私网 IPv4 地址 1>,<辅助私网 IPv4 地址 2> sudo nmcli con modify "<eth1 网络连接名>" ipv4.gateway <默认网关>
执行
sudo nmcli con up "<eth1 网络连接名>",激活修改后的网络连接。返回信息出现类似Connection successfully activated时,代表配置成功。再次执行ip a,可查看到辅助私网 IP。
创建多个 EIP 并绑定辅助弹性网卡:
前往EIP 购买页。
此处仅列出相关配置项,具体选型原则可参考EIP选型指引。
付费模式:按量付费适用于业务量不固定的场景,包年包月适用于长期稳定的业务。本文选择按量付费。
地域和可用区:与 ECS 实例所在地域保持一致。
线路类型:仅部分地域支持选择。
安全防护:仅按量付费模式下的BGP(多线)EIP支持选择。
地址池:已有IP地址池的情况下,可以选择从已有IP地址池中分配EIP。
购买数量:选择计划绑定的 EIP 数量。
将 EIP 与辅助弹性网卡的多个私网 IP 一一绑定:
前往弹性公网IP页面,在顶部菜单栏选择 EIP 所属地域。
单击目标 EIP 操作列的绑定资源,选择弹性网卡,并选择对应的辅助私网 IP。
步骤二:配置策略路由
为 ECS 实例配置策略路由,确保流量进出路径一致。
登录 ECS 实例,为辅助弹性网卡
eth1添加默认路由:创建路由表table 1001、私网 IP 的对应路由策略。ip -4 route add default via <默认网关> dev eth1 metric 1001 && \ ip -4 route add default via <默认网关> dev eth1 table 1001 && \ ip -4 rule add from <辅助弹性网卡的私网 IPv4 地址 1> lookup 1001 && \ ip -4 rule add from <辅助弹性网卡的私网 IPv4 地址 2> lookup 1001 && \ ip -4 rule add from <辅助弹性网卡的私网 IPv4 地址 3> lookup 1001执行
ip route list table 1001 && ip rule list,可查看创建的路由表和策略路由。
配置开机时自动更新路由,避免重启实例后配置失效。
执行
vim /etc/rc.local,将创建路由表和策略路由的相关命令写入文件。执行
sudo chmod +x /etc/rc.local,添加执行权限。
步骤三:结果验证
验证出站 IP
登录 ECS 实例,执行curl --interface <辅助弹性网卡的私网 IP> https://ifconfig.me,确认从不同私网 IP 发起访问的公网出口 IP 是对应绑定的EIP。

验证出入流量路径
登录其他可访问公网的测试 ECS,执行
ping <辅助弹性网卡绑定的 EIP>。同时登录本 ECS 实例,执行
tcpdump -i eth1 icmp,在eth1捕获 ICMP协议的数据包。
可查看到,数据包从eth1进入,依然从eth1回复,流量进出路径一致。

应用于生产环境
风险防范:本方案使用单点 ECS 实例,建议使用负载均衡确保业务高可用。但需注意,实例重启或网络配置变更可能导致业务中断。
监控与告警:为辅助弹性网卡的网络流量、CPU和内存使用率等关键指标设置监控告警,以便及时发现异常。
安全加固:为辅助弹性网卡配置最小权限的安全组规则,仅放行业务必需的端口和源IP地址。
计费说明
EIP 配置费(公网 IP 保有费):
按量付费EIP:当与辅助弹性网卡绑定时,即使没有公网流量,也会收取EIP配置费(公网IP保有费)。
包年包月EIP:不收取 EIP 配置费。
公网网络费:
按量付费EIP:按所选的计费方式(按固定带宽或按使用流量)收取费用。
包年包月EIP:按照带宽峰值计费。
其他资源计费:ECS实例等资源按其自身计费规则收费,辅助弹性网卡本身免费。