辅助私网IP

弹性网卡(包括主网卡和辅助弹性网卡)支持分配一个或多个辅助私网IP地址,以满足您在多应用、故障转移和负载均衡等业务场景下的多IP的需求。本文介绍如何分配并配置辅助私网IP地址,以及回收辅助私网IP地址。

辅助私网IP概述

当ECS实例弹性网卡(包括主网卡与辅助弹性网卡)的单一主私网IP无法满足您对多IP的需求时,您可以为ECS实例的网卡分配多个辅助私网IP,从而使单个ECS实例拥有多个私网IP。您可以参考下图来理解ECS实例网卡与私网IP的关系。

image

适用场景

辅助私网IP地址适用于以下场景:

  • 多应用场景:在ECS实例上部署了多个应用时,您可以为每个应用分配各自的辅助私网IP地址,每个应用对外均呈现一个独立的IP地址,实现在同一台ECS实例上提供多项服务,提升实例的利用率。

  • 故障转移场景:当实例发生故障时,您可以将辅助弹性网卡从故障实例解绑并绑定至备用实例,通过其辅助私网IP访问的请求流量也随之切换到备用实例,实现故障转移。

  • 负载均衡场景:通过为实例分配多个辅助私网IP地址,可以实现负载均衡机制,负载均衡器可以根据流量类型将请求分发到不同的私网IP地址,提高系统的可伸缩性和性能。

注意事项

  • 单张弹性网卡最多支持分配的私网IP地址数量与其状态有关。

    • 弹性网卡处于待绑定状态时,最多支持分配10个私网IP地址。

    • 弹性网卡处于已绑定状态时,最多支持分配的私网IP地址数量不能超过实例规格的支持上限。更多信息,请参见实例规格族实例规格指标明细中的单网卡私有IPv4地址数

  • 专有网络类型安全组可容纳的私网IP地址数量存在限制,请合理分配辅助私网IP地址。更多信息,请参见安全组使用限制

为弹性网卡添加辅助私网IP地址

步骤一:为弹性网卡分配辅助私网IP地址

您可以在控制台上目标弹性网卡(包括ECS实例的主网卡或辅助弹性网卡)的管理弹性网卡IP页面进行辅助私网IP的增加或删除。具体操作示例如下:

说明

如有需要您也可以通过API的方式为网卡分配辅助私网IP(或IPv6)地址,请参见AssignPrivateIpAddressesAssignIpv6Addresses

  1. 登录ECS管理控制台

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

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 弹性网卡页面,找到待操作的弹性网卡,然后在操作列中单击管理弹性网卡IP

  5. 管理弹性网卡IP对话框中,在辅助私网IPv4或者IPv6参数区域单击增加,并根据需要分配IP地址。

    • 不设置:系统会从该弹性网卡的IPv4私网网段和IPv6私网网段中随机分配IP地址。

    • 手动填写:手动输入辅助私网IP地址,确保取值在该弹性网卡的IPv4私网网段和IPv6私网网段中即可。

  6. 单击确定,完成辅助私网IP地址分配。

  7. 确认目标弹性网卡的辅助私网IP正确分配。

    您可以通过查看ECS实例的弹性网卡详情页确认以上信息,示例如下:

    image

步骤二(条件可选):绑定弹性网卡。

当您选择为辅助弹性网卡添加辅助私网IP时,需要确保辅助弹性网卡已经绑定至ECS实例并已经完成配置,具体操作,请参见绑定辅助弹性网卡配置辅助弹性网卡

本文示例为ECS实例主网卡分配辅助私网IP,所以无需进行此步骤操作。

步骤三:配置操作系统识别辅助私网IP地址

为实例分配辅助私网IP地址后,您还需要根据操作系统类型和IP地址类型来配置实例的辅助私网IP地址。配置的具体操作因操作系统和IP地址类型而异。

配置示例

说明
  • 本文以配置辅助私网IPv4地址为例说明,配置辅助私网IPv6地址的具体操作,请参见IPv6通信

  • 本示例中,网卡分配私网IPv4地址如下所示,您需要根据实际情况,修改下面命令或配置中的IP地址:

    网卡

    主私网IPv4地址

    辅助私网IPv4地址1

    辅助私网IPv4地址2

    主网卡

    192.168.1.201

    192.168.1.202

    192.168.1.203

操作前请确保对应的实例处于运行中(Running)状态。具体操作,请参见启动实例

本文提供了如下主流操作系统的配置步骤,请根据您的操作系统进行配置:

Linux操作系统配置示例
  1. 远程连接ECS实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  2. 查看当前网络配置信息和路由信息,确认配置需要的默认网关和子网掩码。

    查看主私网IPv4地址

    执行以下命令,查看网络配置信息:

    ip a

    通过返回信息,可以看到当前实例的网络配置信息:

    image

    通过以上信息可以看到目前网络配置信息如下:

    • eth0:已激活,且动态配置主私网IPv4地址192.168.1.201。

    查看子网掩码及网关

    执行以下命令,查看路由信息:

    route -n

    通过返回信息,可以看到:

    • 子网掩码(Genmask):255.255.255.0

    • 默认网关(Geteway):192.168.1.253

    image

    结合以上信息,可以看到当前网络配置信息如下所示:

    网卡

    状态

    默认网关

    子网掩码

    主私网IP地址

    辅助私网IPv4地址1

    辅助私网IPv4地址2

    eth0(主网卡)

    UP

    192.168.1.253

    255.255.255.0

    192.168.1.201(已自动配置)

    192.168.1.202(未识别需配置)

    192.168.1.203(未识别需配置)

  3. 根据您的实际情况,选择不同的方式配置辅助私网IPv4地址。

    使用nmcli con配置
    说明
    • NetworkManager 是 Linux 系统中一个用于管理网络连接和网络设置的守护进程,它提供了命令行工具nmcli,使得用户可以轻松地管理网络连接。

    • 适用于所有通过NetworkManager管理网络服务的操作系统,包括但不限于Fedora、CentOS、RHEL、Ubuntu/Debian以及基于这些发行版的系统。

    • 示例连接:网卡eth0对应的连接名称,您需要根据实际情况修改连接名称。

    1. 执行以下命令,新建文件禁用cloud-init的网络配置功能,避免重启后配置失效,更多信息参见cloud-init自动初始化网络配置

      sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

      添加如下配置项:

      network: {config: disabled}
    2. 执行以下命令,查看当前网络连接信息。

      nmcli con show

      不同Linux发行版网络连接的命名均不同,本文中示例如下:

      image

    3. 执行以下命令,配置eth0的辅助私网IPv4地址、默认网关、 IPv4 配置方法(手动或DHCP等)等信息。

      sudo nmcli con modify System\ eth0 ipv4.addresses 192.168.1.201/24,192.168.1.202/24,192.168.1.203/24
      sudo nmcli con modify System\ eth0 ipv4.gateway 192.168.1.253
      sudo nmcli con modify System\ eth0 ipv4.method manual
    4. 执行以下命令,激活修改后的网络连接。

      sudo nmcli con up System\ eth0

      如果配置正确,返回信息出现类似"Connection successfully activated"字样时表示配置成功。

    传统方式编辑网络配置文件
    重要
    • 不同Linux操作系统发行版及版本不同,网络配置文件不同。

    • 建议您在编辑网络配置文件之前,先对原文件进行备份。

    • 由于涉及网络配置文件的更改,建议您仔细确认操作的正确性,错误的配置可能导致实例无法连接。

    RHEL系列
    说明
    • 适用的操作系统:Alibaba Cloud Linux 2/3、CentOS 6/7/8、Red Hat 6/7/8/9、Anolis 7/8、Fedora 33/34/35。

    • 示例操作系统:Alibaba Cloud Linux 3.2。

    • 示例网卡:以网卡eth0为例演示操作,您需要根据实际情况修改网络接口标识。

    1. 执行以下命令,确认网卡的主配置文件是否存在。每个网络接口都会有一个对应的配置文件,用于标识具体的网络接口。

      说明
      • 部分操作系统的网卡主配置文件由cloud-init自动生成,无需自己创建,如Alibaba Cloud Linux 3.2。

      • 部分操作系统的网卡主配置文件需要您手动创建并配置网卡基本信息,如CentOS 8.5。

      ls /etc/sysconfig/network-scripts/ifcfg-eth0
      • 文件存在:已创建网卡的主配置文件,直接进行步骤b即可。

      • 文件不存在:创建文件并手动配置网卡的基本信息。

        sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

        配置网卡名称,设置获取IP为静态获取方式并且配置网卡的主私网IPv4地址、子网掩码及网关信息。

        本示例中,如果eth0文件不存在,则直接配置如下:

        # 网卡名称,例如:eth0
        DEVICE=eth0     
        TYPE=Ethernet
        BOOTPROTO=dhcp
        #系统启动时激活该网络接口
        ONBOOT=yes
    2. 执行以下命令,配置网卡eth0的第一个辅助私网IPv4地址。

      sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

      本示例中,配置eth0的第一个辅助私网IPv4地址:

      #网卡名称:网卡辅助私网IP地址顺序号
      DEVICE=eth0:0
      TYPE=Ethernet
      #静态IP
      BOOTPROTO=static 
      
      #手动配置IPv4地址和子网掩码
      IPADDR=192.168.1.202
      NETMASK=255.255.255.0

    配置网卡eth0的第二个辅助私网IPv4地址

    说明

    多个辅助私网IP地址操作类似,注意以下几点即可:

    • 注意文件名称中序号的修改,不要重复。

    • 注意配置文件中DEVICE命名的修改,不要重复且和文件命名中序号一致。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0:1

    本文中,配置eth0网卡的第二个辅助私网IPv4地址示例如下所示:

    #网卡名称:网卡辅助私网IP地址顺序号
    DEVICE=eth0:1
    TYPE=Ethernet
    BOOTPROTO=static 
    
    #手动配置IPv4地址和子网掩码
    IPADDR=192.168.1.203
    NETMASK=255.255.255.0
    Ubuntu 18/20
    1. 执行以下命令,禁用cloud-init的网络配置功能。

      重要

      网络配置文件(/etc/netplan/50-cloud-init.yaml)由cloud-init在实例启动时候自动生成,如果要编辑,需要先禁用cloud-init的网络配置功能。具体信息,请参见cloud-init自动初始化网络配置

      sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

      添加如下配置项:

      network: {config: disabled}
    2. 执行如下命令,编辑网络配置文件,配置网络接口配置信息。

      sudo vim /etc/netplan/50-cloud-init.yaml

      本文示例配置如下:

      network:
          version: 2
          ethernets:
              eth0: #网络接口名称
                  dhcp4: false #默认为dhcp自动配置,false需要手动配置IP
                  match:
                      macaddress: 00:16:3e:16:43:xx #您实际的网卡的mac地址
                  set-name: eth0
                  addresses:
                          - 192.168.1.201/24 #网卡主私网IP地址
                          - 192.168.1.202/24 #网卡辅助私网IP地址1
                          - 192.168.1.203/24 #网卡辅助私网IP地址2
                  gateway4: 192.168.1.253 #默认网关
    Ubuntu 22/24、Debian 12
    1. 执行以下命令,禁用cloud-init的网络配置功能。

      重要

      网络配置文件(/etc/netplan/50-cloud-init.yaml)由cloud-init在实例启动时候自动生成,如果要编辑,需要先禁用cloud-init的网络配置功能。具体信息,请参见cloud-init自动初始化网络配置

      sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

      添加如下配置项:

      network: {config: disabled}
    2. 执行如下命令,编辑网络配置文件,配置网络接口配置信息。

      sudo vim /etc/netplan/50-cloud-init.yaml

      本文示例配置如下:

      network:
          version: 2
          ethernets:
              eth0: #网络接口名称
                  dhcp4: false #默认为dhcp自动配置,false需要手动配置IP
                  match:
                      macaddress: 00:16:3e:16:43:xx #您实际的网卡的mac地址
                  set-name: eth0
                  addresses:
                          - 192.168.1.201/24 #网卡主私网IP地址
                          - 192.168.1.202/24 #网卡辅助私网IP地址1
                          - 192.168.1.203/24 #网卡辅助私网IP地址2
                  routes:
                    - to: default
                      via: 192.168.1.253 #默认网关
  4. 重启网络服务,使配置生效。

    说明

    如果您参考上述的nmcli con方式完成配置,无需重启网络服务,NetworkManager会监控配置文件的变化并应用新的配置。

    操作系统

    重启服务命令

    • Alibaba Cloud Linux 2

    • CentOS 7

    • Red Hat 7

    • Anolis 7

    • SUSE Linux 11/12/15

    • OpenSUSE 15/42

    sudo service network restart

    sudo systemctl restart network

    • CentOS 6

    • Red Hat 6

    sudo service network restart

    • Alibaba Cloud Linux 3

    • CentOS 8

    • Red Hat 8

    • Anolis 8

    • Fedora 33/34/35

    sudo systemctl restart NetworkManagersudo reboot

    • Ubuntu 18/20/22

    • Debian 12

    sudo netplan apply

    • Ubuntu 14/16

    • Debian 8/9/10/11

    sudo systemctl restart networkingsudo reboot

  5. 再次执行步骤2的操作验证配置是否成功。

    image

Windows操作系统配置示例

说明
  • 适用的操作系统:Windows。

  • 示例操作系统:Windows Server 2022。

  • 示例网卡:以主网卡以太网为例演示操作。如果您的操作对象为辅助网卡,请根据实际情况修改网卡标识符,如以太网2

  1. 远程连接Windows实例。

    具体操作,请参见使用Workbench工具以RDP协议登录Windows实例

  2. 查看当前的网络配置和路由信息,确认配置需要的默认网关和子网掩码。

    1. 打开命令提示符或Windows PowerShell工具。

    2. 执行以下命令,查看当前网卡及IP信息。

      ipconfig

      通过返回信息,可以看到目前网卡及IP识别信息:

      image

    3. 可以看到目前网络配置和路由信息如下:

      网卡

      网络掩码

      默认网关

      主私网IP地址

      待配置私网IPv4地址1

      待配置私网IPv4地址2

      以太网(主网卡)

      255.255.255.0

      192.168.1.253

      192.168.1.201(已自动配置)

      192.168.1.202(未识别需配置)

      192.168.1.203(未识别需配置)

  3. 打开网络和共享中心。

  4. 单击更改适配器设置

  5. 双击当前主网卡网络名称以太网,然后在以太网状态对话框中单击属性

    image

  6. 以太网属性对话框中,双击Internet 协议版本4(TCP/IPv4)

    image

  7. Internet 协议版本4(TCP/IPv4)属性对话框中,选择使用下面的IP地址,然后单击高级

    重要

    此处改变了自动获取IP的策略,完全为手动配置,因此下面的配置也需要配置网卡的主私网IP地址。否则会导致实例无法通过主私网IP远程连接。

    image

  8. 高级TCP/IP设置对话框中,设置IP地址。

    1. IP地址区域,单击添加,然后输入已分配的以太网的主私网IP地址和辅助私网IP地址和查询获取的子网掩码

      本示例中,输入以太网申请的两个辅助私网IP

    2. 默认网关区域,单击添加,然后输入查询获取的默认网关

      image

  9. 单击确定保存各对话框中的设置,完成辅助私网IPv4的配置。再次执行步骤2的操作验证配置是否成功。

    image

其他操作系统配置示例
Ubuntu 14/16、Debian 8/9/10/11
  1. 执行如下命令,编辑网络配置文件,配置网络接口信息。

    sudo vi /etc/network/interfaces
    说明
    • 从Debian10部分版本开始,/etc/network/interfaces文件通常只包含对/etc/network/interfaces.d/目录下文件的引用,而具体的网络接口配置则分散在interfaces.d目录下的不同文件中。

    • 您根据实际环境,选择对应的配置文件即可,配置项基本相同。

    配置项示例如下所示:

    auto lo
    iface lo inet loopback
     
    auto eth0
    iface eth0 inet dhcp
     
    auto eth0:0
    iface eth0:0 inet static
    address 192.168.1.202
    netmask 255.255.255.0
     
    auto eth0:1
    iface eth0:1 inet static
    address 192.168.1.203
    netmask 255.255.255.0
  2. 重启网络服务,使配置生效。

SLES系列
说明
  • 适用的操作系统:SUSE Linux 11/12/15、OpenSUSE 15。

  • 示例操作系统:SUSE Linux 15 SP5。

  • 示例网卡:以网卡eth0为例演示操作,您需要根据实际情况修改网络接口标识。

执行以下命令,打开eth0网卡的配置文件并配置eth0的辅助私网IPv4地址、子网掩码等。

sudo vi /etc/sysconfig/network/ifcfg-eth0

配置文件示例如下:

#禁用dhcp,改为静态获取
BOOTPROTO=static
STARTMODE=auto
USERCONTROL=no

#多个IP后面加序号后缀
IPADDR_1=192.168.1.201
NETMASK_1=255.255.255.0
LABEL_1=

IPADDR_2=192.168.1.202
NETMASK_2=255.255.255.0
LABEL_2=0

IPADDR_3=192.168.1.203
NETMASK_3=255.255.255.0
LABEL_3=1
说明

您可以通过执行sudo cat /etc/sysconfig/network/ifcfg.template查看模板配置文件中的解释。

执行以下命令,查看全局网络设置文件有无默认网关信息:

cat /etc/sysconfig/network/routes

如果没有,在文件中添加默认网关信息,示例如下:

default 192.168.1.253 - -

重启网络服务,使配置生效。

回收辅助私网IP地址

如果您的弹性网卡不再需要辅助私网IP地址,您可以回收弹性网卡上已分配的一个或多个辅助私网IP地址。您可以参照以下步骤回收辅助私网IP地址。

前提条件

回收辅助私网IP地址之前,请确认以下信息:

  • 弹性网卡已分配辅助私网IP地址。

  • 弹性网卡处于可用(Available)或者已绑定(InUse)状态。

  • 回收主网卡上分配的辅助私网IP地址时,主网卡绑定的实例必须处于运行中(Running)或者已停止(Stopped)状态。

操作步骤

说明

如有需要您也可以通过API的方式为弹性网卡回收一个或多个辅助私网IP(或IPv6)地址:UnassignPrivateIpAddressesUnassignIpv6Addresses

  1. 登录ECS管理控制台

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

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 弹性网卡列表页面,找到目标弹性网卡,在操作列,单击管理弹性网卡IP

  5. 管理弹性网卡IP对话框的辅助私网IPv4区域,找到要回收的一个或多个辅助私网IP地址,单击IP地址所在行右侧的image.png图标。

  6. 单击确定

    刷新列表,如果目标弹性网卡的IP地址列不再出现该IP地址,说明您已成功回收辅助私网IP地址。

扩展阅读

cloud-init自动初始化网络配置

cloud-init是一款开源初始化工具,能够为Linux操作系统提供初始化密码、设置主机名、执行自定义脚本等初始化配置能力。阿里云所有公共镜像已默认安装cloud-init,在ECS实例启动时,cloud-init会自动生成系统的网络配置信息。

  • 网络配置文件中关于cloud-init的说明

    您可以在对应的网络配置文件中,看到关于cloud-init自动生成的说明。以Alibaba Cloud Linux 3.2的网络配置文件/etc/sysconfig/network-scripts/ifcfg-eth0为例说明:

    image

  • 禁用cloud-init的网络配置功能

    • 什么时候需要禁用cloud-init的网络配置功能:以下情况下,您可能需要先禁用cloud-init的网络配置功能,否则在系统重启时候,cloud-init自动生成的配置可能会覆盖您自定义的网络配置。

      • 静态配置网络:通过修改cloud-init自动创建的网络配置文件手动配置网络

      • 通过其他网络管理服务(如NetworkManager)来管理网络

    • 如何禁用cloud-init的网络配置功能:创建/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg文件,并且添加配置network: {config: disabled}即可。

      重要

      关于cloud-init更详细的说明,可以登录Linux实例系统查看/etc/cloud/cloud.cfg.d/README中的信息。

配置IP地址的方式

操作系统中配置IP地址的方式,包括默认的DHCP和static(静态配置)。在配置辅助私网IP时候,您需要根据实际情况选择配置方式。

  • 静态配置:需要手动配置必要的网络参数,如子网掩码、默认网关、DNS服务器地址等。

  • DHCP动态获取:DHCP是一种网络协议,允许网络中的设备自动获取IP地址、子网掩码、默认网关、DNS服务器地址等配置信息。您也可以在保持DHCP动态获取的前提下,为Linux实例配置辅助私网IP地址。