弹性网卡(Elastic Network Interfaces,简称ENI)是一种在专有网络VPC中为ECS实例提供网络接口和IP地址的虚拟网络接口。每台ECS实例可以附加一个或多个弹性网卡。弹性网卡支持多IP地址配置,并能在同一VPC、同一可用区内的不同ECS实例之间迁移,这使得网络配置更加灵活和可扩展,以满足不同业务场景下的网络需求。例如,实现多IP地址、多网卡、高可用网络方案等。
弹性网卡的类别
阿里云存在以下几种类型的网卡:
主网卡
VPC网络中的每个实例默认拥有的网卡,称为主网卡,每个实例只会有一个主网卡。
辅助弹性网卡
单主网卡情况下,实例只具备一个网络接口,所有网络流量也都通过这一个网络接口进出,适合业务流量较简单的场景。如果您的业务需要更精细的网络分类、隔离,解决单网卡的单点故障问题等,您可以为ECS实例创建并绑定同一VPC下、同一可用区内的辅助弹性网卡,以实现网卡的扩展。
辅助弹性网卡是用户可以单独创建并额外绑定到实例上的网卡,与主网卡相比,它们可以被独立创建、动态绑定与解绑。
具体操作,请参见创建并使用弹性网卡。
弹性网卡的功能特性
多IP地址支持:一张弹性网卡可以关联多个私有IP地址,使得单个ECS实例能够通过不同的IP地址对外提供服务或访问外部资源,增加了网络灵活性。详细信息,请参见辅助私网IP。
随实例释放功能:您可以在创建弹性网卡时或在弹性网卡创建后,通过开启、关闭随实例释放功能来允许弹性网卡在实例释放时释放或保留。此功能默认开启,即网卡随实例释放而释放,简化运维管理,避免资源残留。
随实例释放而保留的弹性网卡,保留了IP、关联安全组等配置,可以快速绑定到同一VPC、同一可用区内的其他实例上,也可以在创建新实例时直接复用,提升运维灵活性和业务连续性。
热插拔:辅助弹性网卡的热插拔功能提供了极大的灵活性和便利性,允许在ECS实例处于运行状态时动态地添加或移除辅助弹性网卡,而无需重启服务器或中断正在运行的服务。比如,您可以在不重启实例的情况下,将辅助网卡从一个实例解绑,然后挂载到同VPC下、同可用区的另一个实例。
说明主网卡无法解绑实例,不支持热插拔。
目前部分实例规格支持网卡热插拔,详细信息,请参见实例规格族。
对于不支持网卡热插拔的ECS实例规格:
不支持在创建实例时添加辅助弹性网卡,可以在创建实例后绑定。
绑定和解绑辅助弹性网卡时,实例必须处于已停止状态。
使用限制
弹性网卡是免费的,但单个阿里云账户可以创建的弹性网卡数量是有限制的。更多信息,请参见弹性网卡数量限制。
实例和绑定的弹性网卡,必须属于同一VPC、同一可用区。
实例绑定的多张弹性网卡,可以属于同一VPC、同一可用区下的不同子网(交换机)。
如果将来自同一子网的两个或多个网卡附加到一个实例,可能会遇到非对称路由等网络问题。您可以通过在一张弹性网卡(主网卡或辅助弹性网卡)上分配一个或多个辅助私网IP地址,实现专有网络VPC类型ECS实例的高利用率和负载故障时的流量转移。更多信息,请参见辅助私网IP。
每个实例可以绑定的网卡数量由实例规格决定,更多信息,请参见实例规格族中的弹性网卡。
实例附加多张网卡不会增加或加倍主机实例的网络带宽,详细信息,请参见网络带宽。
弹性网卡的重要属性
通过绑定弹性网卡,ECS实例能够获得私有IP地址、弹性公网IP等资源,从而实现与互联网或其他云资源之间的通信。以下是弹性网卡的几个重要属性:
专有网络VPC:弹性网卡只能绑定到同一个专有网络的实例上,弹性网卡创建后无法更改专有网络。
交换机:每个VPC都有其独立的IP地址范围。在一个专有网络VPC中,可以创建多个交换机来划分子网,一个专有网络内的子网默认私网互通。当弹性网卡指定交换机时,它将获得该子网内的一个或多个IP地址。弹性网卡和绑定的实例需要属于同一可用区,可以分属不同的交换机。
说明如果您希望为ECS实例绑定不在VPC网段范围内的弹性网卡,您需要为VPC附加网段并创建附加网段内、同ECS实例相同可用区下的交换机,然后创建该交换机下的弹性网卡并绑定到实例。详细信息,请参见VPC附加网段。
MAC地址:每个弹性网卡都有唯一的MAC地址,作为其唯一标识。
您可以通过控制台或API查看网卡的VPC、MAC地址等信息,详细信息,请参见查看或修改弹性网卡的属性。
分配一个或多个私网IP实现私网通信:每个弹性网卡会默认分配子网内的一个主私网IPv4地址。
如果您在多应用、故障转移和负载均衡等业务场景下有多IP的需求,您可以为弹性网卡分配一个或多个辅助私网IPv4地址。详细信息,请参见为弹性网卡添加辅助私网IP地址。
如果您需要进行IPv6公私网通信,您可以在开通了IPv6网段的VPC和交换机下,为实例的弹性网卡分配一个或多个IPv6地址。详细信息,请参见IPv6通信。
绑定固定公网IP或弹性公网IP实现公网通信:弹性网卡本身不具备公网通信能力,您可以通过以下方式实现公网通信:
您可以为实例(主网卡)分配固定公网IP,实现公网通信。详细信息,请参见固定公网IP。
您也可以为弹性网卡绑定弹性公网IP实现公网通信,弹性公网IP可以灵活绑定与解绑。通过将弹性公网IP绑定到弹性网卡的多个私网IP地址,您还可以实现ECS实例对外提供多个公网IP。详细信息,请参见将EIP绑定至弹性网卡。
安全组:弹性网卡与安全组关联,提供网络层面的安全控制。
当您将ECS实例关联到安全组时,实际上是将ECS实例的主网卡关联到安全组。详细信息,请参见为实例(主网卡)关联安全组。
在同一专有网络VPC下,ECS实例的辅助网卡可以关联与主网卡不同的安全组,详细信息,请参见为辅助网卡关联安全组。
路由表:在VPC内部以及与其他网络之间传输数据时,需要使用路由表来指导数据包的路径选择。对于弹性网卡来说,正确的路由配置是保证其能够正确发送和接收数据的关键。详细信息,请参见配置路由。
说明在多网卡环境中,辅助网卡默认路由的优先级通常小于主网卡默认路由的优先级,即优先会从主网卡发送数据,如果您希望指定辅助网卡对应私网IP的数据包从辅助网卡本身发送,您可以为辅助网卡配置策略路由,从而保证数据的源进源出。
弹性网卡的网络增强特性
弹性RDMA能力
弹性网卡支持增加弹性RDMA接口,即开启支持弹性RDMA的能力,开启后即为弹性RDMA网卡。通过在支持弹性RDMA的实例规格上,挂载开启了弹性RDMA能力的弹性网卡,安装弹性RDMA驱动,能够在ECS实例上实现低延迟和高吞吐量的网络通信。详细信息,请参见弹性RDMA网卡(ERI)。
网卡多队列
网卡多队列是指在网络接口上配置多个发送和接收队列,每个队列可以由不同的CPU核心进行处理,其主要目的是通过允许多个CPU核心同时处理网络数据包来提升网络I/O吞吐量和降低延迟。
详细信息,请参见网卡多队列。
物理网卡映射
为了支持更高的网络性能,部分实例规格支持物理网卡映射,即附加网卡到实例时通过指定物理网卡索引,将弹性网卡绑定到底层不同的通信信道,最大限度地利用带宽,提升实例的带宽能力。
详细信息,请参见物理网卡映射。
查看ECS实例的弹性网卡
您可以在控制台上、实例内部查看实例所绑定的弹性网卡的相关信息。
在控制台查看
登录ECS管理控制台。
在左侧导航栏,选择
。在页面左侧顶部,选择目标资源所在的资源组和地域。
点击目标实例ID,进入实例详情页面。
点击弹性网卡页签,查看实例的弹性网卡列表。
您可以在列表中看到弹性网卡的ID、名称、网卡类型、状态、IP地址等相关信息:
通过API查看
您可以通过调用DescribeInstances查询指定InstanceIds的目标实例的详细信息,返回的NetworkInterfaces为实例所绑定的弹性网卡集合,包括网卡类型Type、网卡ID NetworkInterfaceId、网卡的主私网IP地址PrimaryIpAddress等。
在实例内部查看
Linux实例
示例操作系统:Alibaba Cloud Linux 3.2。
远程连接Linux实例。
具体操作,请参见使用Workbench工具以SSH协议登录Linux实例。
执行如下命令,查看并确认实例的网卡信息。
ip a
通过返回信息,可以看到当前实例的网卡信息:
网卡标识:eth0、eth1,本示例中,实例共2张弹性网卡,一张主网卡eth0、一张辅助弹性网卡eth1。
网卡状态:state UP,表示网卡状态正常,即网卡已经在实例内部生效。
重要如果您看到下图所示的state DOWN,表示此时网卡没有成功加载,无法正常使用,您需要配置Linux操作系统识别网卡,保证网卡状态正常。
网卡主私网IP地址:网卡状态正常后,您可以看到每张弹性网卡的主私网IP地址。详细信息,请参见主私网IP。
如果您的网卡分配了辅助私网IP地址,但是操作系统内部没有识别,您可以参考配置操作系统识别辅助私网IP地址进行重新配置。
执行如下命令,查看网卡的路由信息。
route -n
可以看到,通常情况下,系统会为辅助弹性网卡eth1配置两条路由:
Destination为192.168.xx.xx的路由:指定了特定子网内的路由。该路由确保本机可以正确地识别并直接与子网内的其他主机进行通信,而无需经过额外的路由器。
Destination为0.0.0.0的路由:该路由用于处理发往外部网络或其他远程网络的数据包。当数据包的目的地不在本地子网内时,这些数据包将被发送到192.168.xx.xx这个网关地址进行下一步转发。
重要默认情况下,附加网卡默认路由的优先级通常小于eth0默认路由的优先级,即优先会从主网卡eth0发送数据。
如果您希望指定附加网卡eth1对应私网IP的数据包从eth1发送,您可以为辅助网卡配置策略路由,从而保证数据的源进源出。详细信息,请参见为网卡配置策略路由。
部分较早的操作系统,如Ubuntu16,可能不会自动配置辅助弹性网卡的默认路由,查看路由后如下所示,这种情况可能会导致网卡使用异常,建议您使用较新的操作系统发行版,或者您可以自行配置,具体操作,请参见为网卡配置默认路由。
Windows实例
示例操作系统:Windows Server 2022。
远程连接Windows实例。
具体操作,请参见使用Workbench工具以RDP协议登录Windows实例。
打开网络和共享中心。
单击更改适配器设置。
本示例中,实例绑定了两张弹性网卡(一张主网卡,一张辅助弹性网卡),您可以看到如下所示信息,表示网卡已经在实例内部生效,无需进行其他配置。
如果由于其他原因,辅助弹性网卡未正确识别,您可能看到如下信息,您可以参考Windows实例弹性网卡配置失效处理方法。
查看网卡状态及详细信息。
双击网卡名称,查看网卡状态。
以主网卡以太网为例:
点击详细信息,查看网卡属性信息。
您可以在弹出的对话框中,看到网卡的主私网IPv4地址、子网掩码、默认网关等信息:
打开命令提示符页面。
通过键盘快捷键Win+R打开运行对话框,输入命令cmd,单击确定。
执行如下命令,查看网卡的路由信息。
相关文档
您可以使用Terway网络插件管理K8s集群Pod的网络地址和通信。它支持基于Kubernetes标准的网络策略来定义容器间的访问策略,提供了基于弹性网卡的VPC模式和基于弹性网卡辅助IP的ENI多IP模式,您可以灵活选择来实现Kubernetes集群内部的网络互通。更多信息,请参见使用Terway网络插件。
弹性网卡可以与负载均衡器SLB配合使用,以实现流量的分配和管理。更多信息,请参见通过弹性网卡添加后端服务器。
部分云产品(例如容器服务ACK、NAT网关等)需要基于弹性网卡能力提供相应服务时,您可以将基于云产品创建的弹性网卡的生命周期管理权限授权给云产品系统,由云产品负责管理,从而防止您误操作网卡并保障云产品服务可用。详细信息,请参见托管弹性网卡。