全部产品
Search
文档中心

负载均衡:配置IP版本亲和转发

更新时间:Sep 16, 2026

ALB双栈实例支持IP版本亲和模式,开启后可将IPv4请求转发至IPv4后端服务器、IPv6请求转发至IPv6后端服务器,实现按IP协议版本的流量调度,简化网络架构。

重要

IP版本亲和模式为白名单功能,如需使用,请联系商务经理申请。

方案架构

问题场景

在业务从 IPv4 向 IPv6 迁移的过程中,IPv4 与 IPv6 服务常常需要共存。当目标服务器组中同时包含 IPv4 和 IPv6 地址的后端服务器时,ALB 默认不区分客户端请求的 IP 协议版本,而是仅依据调度算法(如加权轮询或加权最小连接数)向后端转发流量。

这可能导致跨协议转发现象——例如,来自 IPv6 客户端的请求被转发到仅支持 IPv4 的后端服务器,或反之。此类协议不匹配会引发以下问题:

  • 后端应用仅监听特定协议版本的地址,收到跨协议转发的请求后无法正常处理,导致业务中断。

  • 部分业务需要根据客户端IP协议版本进行差异化处理(如按协议版本分流、IPv6优先路由等),混合转发无法满足此类需求。

解决方案

ALB服务器组支持IP版本亲和模式,开启后IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端,避免跨协议转发导致的业务异常。当某一协议的所有后端健康检查失败时,该协议的请求在同协议后端内尽力转发,不会跨协议转发。

image

适用范围

用户已注册自定义域名。本文计划将ALB实例部署于华东2(上海)地域,因此域名需要完成ICP备案。

操作步骤

在开始操作前,请确保已在华东2(上海)地域创建一个专有网络VPC1,分别在可用区E和可用区G创建交换机VSW1和VSW2,且交换机已开启IPv6。

1. 创建ECS实例并部署服务

  1. 参考下表配置,创建两台ECS实例。

    实例名称

    地域

    VPC

    交换机

    IP版本

    镜像

    ecs-ipv4

    华东2(上海)

    VPC1

    VSW1

    IPv4

    Alibaba Cloud Linux 3.2104 LTS 64位

    ecs-ipv6

    VSW2

    IPv6

    购买ECS实例时,在网络与安全组配置项下勾选免费分配 IPv6 地址。
  2. 远程连接ecs-ipv4和ecs-ipv6,执行以下命令,部署Nginx服务。

    ecs-ipv4

    sudo yum install -y nginx
    sudo systemctl start nginx
    echo "Hello from IPv4 backend" | sudo tee /usr/share/nginx/html/index.html

    ecs-ipv6

    sudo yum install -y nginx
    sudo systemctl start nginx
    echo "Hello from IPv6 backend" | sudo tee /usr/share/nginx/html/index.html
  3. 在两台ECS实例所属安全组添加入方向规则,放行请求流量。请确保规则具备足够高的优先级。

    实例名称

    授权策略

    协议

    访问来源

    访问目的(本实例)

    ecs-ipv4

    允许

    自定义TCP

    选择IPv4后,选择本VPC网段。

    选择端口后,选择HTTP(80)。

    ecs-ipv6

    选择IPv6后,选择本VPC网段。

    相关操作,可参考自定义购买实例、ECS远程连接操作指南、配置安全组规则。

2. 创建双栈ALB实例

  1. 登录ALB控制台,选择华东2(上海)地域,单击创建应用型负载均衡。

  2. 完成以下配置,其他选项保持默认,单击立即购买:

    • 实例网络类型:选择公网。

    • VPC:选择VPC1。

    • 可用区:选择可用区E和可用区G及对应交换机VSW1和VSW2,并自动分配公网IP。

    • 协议版本:选择双栈。

    • 功能版本(实例费):选择标准版。

      IP版本亲和模式仅支持标准版和WAF增强版ALB实例,基础版和扩展版暂不支持。
  3. 创建完成后,单击实例ID进入实例详情页。在基本信息区域找到网络类型,单击IPv6:私网右侧的变更网络类型。在弹出的窗口单击确定变更,并确认变更成功。

3. 创建双栈服务器组并开启亲和模式

  1. 在服务器组控制台,单击创建服务器组。

  2. 完成以下配置,单击创建:

    • 服务器组类型:选择服务器类型。

      IP版本亲和模式仅支持服务器类型和IP类型服务器组,其他类型暂不支持。
    • 服务器组名称:输入名称sgp-alb-dualstack。

    • VPC:选择VPC1。

    • 选择后端协议:选择HTTP。

    • 在协议配置区域,完成以下配置:

      • IP协议版本:选择IPv4/v6双栈。选择后支持同时添加IPv4和IPv6后端服务器。

      • IP版本亲和模式:选择亲和模式。开启后,IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端。

  3. 单击服务器组创建成功弹窗中的添加后端服务器。在IP地址列为ecs-ipv4选择IPv4地址,为ecs-ipv6选择IPv6地址。选中两台实例,单击下一步。

  4. 在配置端口和权重步骤中,将两台服务器的端口均设置为80,单击确定完成添加。

4. 创建监听

  1. 在ALB控制台,单击目标实例ID进入实例详情页。在监听页签单击创建监听。

  2. 在配置监听步骤,选择监听协议为HTTP,监听端口填写80,单击下一步。

    本文以HTTP监听为例演示亲和转发能力,生产环境中建议使用HTTPS监听。
  3. 在选择服务器组步骤,选择服务器组sgp-alb-dualstack,单击下一步。

  4. 在配置审核步骤确认配置,单击提交。

5. 设置域名解析

将自有域名通过CNAME解析指向ALB实例的DNS名称,客户端通过自有域名访问ALB。

本文以阿里云云解析DNS为例,对于非阿里云注册域名,需先将域名添加到云解析控制台。

  1. 在ALB控制台,复制目标实例的DNS 名称。

  2. 登录域名解析控制台,在目标域名的操作列单击解析设置。在解析设置页面单击添加记录。

  3. 参考以下信息添加CNAME记录,单击确定:

    • 记录类型:选择CNAME。

    • 主机记录:输入域名前缀如test。假设用户自有根域名为example.com,则访问ALB的域名为test.example.com。

    • 解析请求来源和TTL时间:保持默认。

    • 记录值:输入ALB实例的DNS名称。

  4. 在弹出的解析变更确认对话框确认解析信息,单击确定。

6. 验证亲和转发

用户通过自有域名访问具备IPv6公网能力的双栈ALB实例时,DNS服务器将根据客户端的查询类型返回A记录(IPv4地址)或AAAA记录(IPv6地址)。

测试IPv4请求

curl -4 http://test.example.com

多次请求,返回结果应均为Hello from IPv4 backend,表明IPv4请求被转发至IPv4后端ecs-ipv4。

测试IPv6请求

curl -6 http://test.example.com

多次请求,返回结果应均为Hello from IPv6 backend,表明IPv6请求被转发至IPv6后端ecs-ipv6。

验证亲和隔离

  1. 停止ecs-ipv4的Nginx服务:sudo systemctl stop nginx。

  2. 再次测试IPv4请求。请求将失败,不会被转发至IPv6后端ecs-ipv6。

  3. 恢复ecs-ipv4服务:sudo systemctl start nginx。IPv4请求恢复正常。

更多信息

计费说明

  • ALB实例:ALB支持按量付费(后付费)和资源包(预付费)两种付费方式,详情参考ALB计费规则。

  • ECS实例:详见ECS计费概述。若出于测试目的创建ECS,建议创建低规格的按量付费实例并及时释放。

  • 域名和DNS解析费用:除了需要支付域名供应商的域名费用外,在阿里云配置DNS解析需要支付公网权威解析费用。

  • 公网网络费用:需要为ALB实例绑定的公网IP和实例所在VPC的IPv6公网带宽支付费用。

ALB双栈支持的地域

区域

地域

中国

华东1(杭州)、华东2(上海)、华南1(深圳)、华南2(河源)、西南1(成都)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、中国香港、华南3(广州)

亚太

新加坡、马来西亚(吉隆坡)、日本(东京)、印度尼西亚(雅加达)、韩国(首尔)、菲律宾(马尼拉)、泰国(曼谷)

欧洲与美洲

英国(伦敦)、德国(法兰克福)、美国(弗吉尼亚)、美国(硅谷)、墨西哥

中东

沙特(利雅得)- 合作伙伴运营

应用于生产环境

  • 高可用部署:后端服务器应部署在多个可用区,IPv4和IPv6后端均需保证冗余,避免单点故障。

  • 健康检查配置:根据业务特点调整健康检查间隔、超时时间和阈值,确保故障服务器能被及时摘除。

常见问题

开启亲和模式后,IPv4请求会转发到IPv6后端吗?

不会。开启亲和模式后,IPv4请求仅转发至IPv4后端,IPv6请求仅转发至IPv6后端,不会跨协议转发。

如果服务器组内只有IPv4后端,IPv6请求会如何处理?

未开启亲和模式时,ALB支持将IPv6请求转换成IPv4并发给后端;开启亲和模式后,IPv6请求将无法正常转发。该场景下请确保ALB服务器组同时包含健康的IPv4和IPv6后端。

已创建的服务器组可以修改IP协议版本吗?

不支持。服务器组的IP协议版本(IPv4或IPv4/v6双栈)创建后不可修改,如需变更需删除服务器组后重新创建。

已创建的服务器组可以修改IP版本亲和模式吗?

可以。可在服务器组控制台单击目标双栈服务器组操作列的编辑基本信息进行修改。

仅创建时IP协议版本选择为IPv4/v6双栈的服务器组支持修改IP版本亲和模式。

双栈服务器组可以关联到IPv4类型的ALB实例吗?

不可以。双栈服务器组仅支持关联至双栈ALB实例的监听。