应用型负载均衡ALB(Application Load Balancer)支持转发IPv6网络请求,本文指导您如何通过配置ALB的服务器组挂载IPv6功能,使其同时支持挂载IPv4和IPv6的云服务器ECS(Elastic Compute Service),同时为IPv6的ECS开通IPv6公网带宽,使IPv6网络的客户端请求通过ALB可以访问部署在后端的IPv4和IPv6服务。

场景示例

本文以下图场景为例。某公司希望ALB可以转发来自IPv6客户端的请求,以实现IPv6客户端正常访问VPC中的IPv4和IPv6服务。该公司需要创建具有IPv4和IPv6地址的ECS,并为具有IPv6地址的ECS开通IPv6公网带宽,同时需要在VPC中创建双栈ALB实例并创建具有IPv6挂载功能的服务器组。完成上述配置后,IPv6客户端的请求即可通过ALB访问部署在后端ECS上的IPv4和IPv6服务。

架构图

使用限制

  • 双栈功能默认不开放,如需使用,请登录配额中心控制台,在权益配额列表页面,输入配额ID为slb_user_visible_gray_label/support_ipv6,然后进行申请。更多信息,请参见管理ALB配额
  • 双栈支持的地域,请参见ALB实例概述
  • 使用双栈功能,需要开通VPC可用区中交换机的IPv6功能。
  • 双栈ALB实例支持将IPv4和IPv6的客户端流量转发至IPv4、IPv6的后端服务。
    • 双栈ALB实例将IPv6的客户端流量转发至IPv4的后端服务,后端服务支持服务器类型(ECS、ENI、ECI)、IP类型,不支持函数计算类型。
    • 双栈ALB实例将IPv6的客户端流量转发至IPv6的后端服务时,后端服务支持服务器类型(ECS、ENI、ECI),不支持IP类型、函数计算类型。
  • ALB双栈实例的监听不支持开启访问控制。
  • 不支持已有的IPv4实例升级为双栈实例,仅支持新建双栈实例。
  • IPv4类型的ALB实例在创建监听时,无法添加开启了IPv6挂载功能的服务器组。

前提条件

  • 您已在华东2(上海)地域创建了一个VPC,且该VPC已开通了IPv6功能。具体操作,请参见新建IPv4和IPv6双栈VPC
  • 您已在华东2(上海)地域的可用区E和可用区G创建了一个交换机,且该交换机已开通IPv6功能。具体操作,请参见新建IPv4/IPv6双栈交换机

配置步骤

配置流程

步骤一:创建并配置ECS实例

  1. 登录专有网络管理控制台
  2. 在左侧导航栏,单击交换机
  3. 选择交换机的地域,本文选择华东2(上海)
  4. 交换机页面,找到目标交换机,然后在操作列选择创建 > ECS实例
  5. 云服务器ECS购买页面的自定义购买页签下,创建2台ECS实例,并将IPv4 ECS修改实例名称为ECS01,将IPv6 ECS修改实例名称为ECS02。具体操作,请参见使用向导创建实例
    说明
    • 本文中的ECS01和ECS02均选择安装Alibaba Cloud Linux操作系统。
    • 创建具有IPv6地址的ECS实例时,需在IPv6处选中免费分配IPv6地址
  6. 远程登录ECS01和ECS02实例,并在ECS01和ECS02实例中部署不同的Nginx服务。具体操作,请参见ECS远程连接操作指南手动部署LNMP环境(Alibaba Cloud Linux 2)
  7. 配置ECS02实例的静态IPv6地址。
    说明 本文以手动配置ECS02的IPv6地址为例进行配置说明。关于配置IPv6地址的更多操作,请参见为Linux实例配置 IPv6 地址
    1. 远程登录VPC中的ECS02实例。
    2. 检查ECS02实例是否已开启IPv6服务。
      说明 Alibaba Cloud Linux 2镜像在aliyun_2_1903_64_20G_alibase_20190829.vhd及之前的版本未开启IPv6,从aliyun_2_1903_x64_20G_alibase_20200221.vhd版本开始默认开启IPv6服务。
      执行ip addr | grep inet6或者ifconfig | grep inet6命令:
      • 如果返回inet6相关内容,表示实例已成功开启IPv6服务。
      • 如果未返回inet6相关内容,表示实例未开启IPv6服务。
      经测试,本文创建的ECS02实例已开启IPv6服务。ipv6
    3. 手动配置ECS02实例的IPv6地址。
      1. 执行vi /etc/sysconfig/network-scripts/ifcfg-eth0命令打开网卡配置文件,eth0为网卡标识符,您需要修改成实际的标识符。在文件中根据实际信息添加以下配置:
        DHCPV6C=yes
        IPV6INIT=yes

        修改完成后按Esc键,并输入:wq后按下回车键,保存并退出。

      2. 重启实例。
        reboot

步骤二:开通IPv6公网带宽

  1. 登录IPv6网关管理控制台
  2. 在顶部菜单栏处,选择IPv6网关的地域。本文选择华东2(上海)
  3. IPv6网关页面,找到目标IPv6网关,然后在操作列单击管理
  4. 在IPv6网关的详情页面,单击IPv6公网带宽页签,找到ECS02对应的公网带宽,然后在操作列单击开通公网带宽,开通ECS02的公网带宽。
  5. IPv6公网带宽(后付费)页面,根据以下信息配置公网带宽,然后单击立即购买
    配置说明
    流量选择公网带宽的计费类型。公网带宽支持按固定带宽计费按使用流量计费两种计费类型。

    本文选择按使用流量计费

    带宽根据需要调整公网带宽的带宽峰值。本文选择默认值5 Mbps
    计费周期公网带宽的计费周期。本文计费周期默认显示Hour(按小时)

步骤三:配置安全组规则

ECS02实例开通公网带宽后,您还需要为ECS02实例单独配置IPv6安全组规则,使安全组入方向能够允许IPv6客户端发送请求。

  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择网络与安全 > 安全组
  3. 在顶部菜单栏处,选择目标安全组的地域。本文选择华东2(上海)
  4. 安全组页面,找到目标安全组,在操作列单击配置规则
  5. 单击安全组规则页面,然后在访问规则区域,单击入方向页签。
  6. 单击手动添加,在规则列表中根据以下信息配置IPv6安全组规则,然后在操作列单击保存
    参数描述
    授权策略设置是否允许安全组的授权策略。本文选择允许
    优先级设置安全组的优先级。优先级的数值越小,优先级越高。取值范围:1~100

    本文保持默认值1

    协议类型允许入方向放行的安全组的协议类型。本文选择全部ICMP(IPv6)
    端口范围允许入方向放行的安全组的端口范围。

    协议类型选择全部ICMP(IPv6)时,端口范围的目的端口只能设置为-1/-1且不能修改。

    授权对象输入授权的IPv6地址段。

    本文输入::/0,表示授权所有IPv6地址。

    说明 本文配置的授权对象仅为示例,您可以根据需要放行指定的IPv6网段。
    描述自定义描述信息。

步骤四:创建ALB实例

  1. 登录应用型负载均衡ALB控制台
  2. 实例页面,单击创建应用型负载均衡
  3. 在购买页面,完成以下配置,然后单击立即购买并根据控制台提示完成实例开通。
    参数描述
    地域选择实例所属的地域。本文选择华东2(上海)
    实例网络类型选择实例网络类型,系统会根据您的选择分配私网或公网服务地址。本文选择公网
    VPC选择实例所属的VPC。
    说明 请确保该VPC开启了IPv6功能。
    可用区
    1. 选择至少2个可用区。本文选择上海 可用区E上海 可用区G
    2. 分别在所选可用区内选择vSwitch。本文选择可用区E下的交换机和可用区G下的交换机。
    IP模式选择实例的IP地址模式。本文选择固定IP
    功能版本(实例费)选择实例的功能版本。本文选择标准版
    协议版本选择实例的IP协议版本。本文只支持选择双栈
    实例名称输入自定义实例名称。
    资源组选择云资源所属的资源组。
  4. 返回实例页面,找到目标ALB实例,单击实例ID。
  5. 实例详情页签的基本信息区域,找到网络类型,然后在IPv6:私网的右侧单击变更网络类型
  6. 变更网络类型对话框中单击确定变更
    变更成功后,您可以看到IPv6的网络类型变成了公网。

步骤五:创建服务器组

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏处,选择后端服务器组所属的地域。本文选择华东2(上海)
  3. 在左侧导航栏,选择应用型负载均衡ALB > 服务器组
  4. 服务器组页面,单击创建服务器组
  5. 创建服务器组对话框中,完成以下配置,然后单击创建
    此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于参数的更多信息,请参见创建服务器组
    参数描述
    服务器组类型选择一种服务器组类型。本文选择服务器类型
    服务器组名称输入自定义服务器组名称。
    VPC从VPC下拉列表中选择已创建的VPC,只有该VPC下的服务器可以加入到该服务器组。
    说明 确保您选择的VPC开启了IPv6功能,且与创建ALB实例时选择的VPC相同。
    选择后端协议选择一种后端协议。本文选择HTTP
    选择调度算法选择一种调度算法。本文选择加权轮询
    选择资源组选择归属的资源组。
    开启IPv6挂载选择是否开启IPv6挂载功能。本文只支持选择开启IPv6挂载功能。
    开启会话保持开启或关闭会话保持。本文保持默认值即不开启会话保持。
    配置健康检查开启或关闭健康检查。本文选择开启健康检查。
    高级配置开启健康检查后,您可以单击高级配置后面的修改展开更多配置。
  6. 服务器组页面,找到目标服务器组,然后单击目标服务器组ID。
  7. 单击后端服务器页签,然后单击添加后端服务器
  8. 添加后端服务器面板,选择已创建的ECS01和ECS02实例,在IP地址列选择ECS01实例的IPv4地址,选择ECS02实例的IPv6地址,然后单击下一步
  9. 配置端口和权重配置向导,设置ECS01和ECS02实例的端口和权重,然后单击确定
    本文ECS实例端口配置为80,权重为默认值100

步骤六:配置监听

  1. 登录应用型负载均衡ALB控制台
  2. 实例页面,找到目标实例,单击实例ID。
  3. 单击监听页签,然后单击创建监听
  4. 配置监听配置向导,完成以下配置,然后单击下一步
    此处仅列出和本文强相关的配置项,其他未列出的配置项使用默认值。关于配置监听的更多操作,请参见添加HTTP监听
    参数描述
    选择负载均衡协议选择监听的协议类型。本文选择HTTP
    监听端口用来接收请求并向后端服务器进行请求转发的监听端口。本文输入80
    监听名称输入自定义监听名称。
    高级配置本文保持默认,可单击修改进行设置。
  5. 选择服务器组配置向导,选择服务器类型服务器类型下的目标服务器组,查看后端服务器信息,然后单击下一步
  6. 配置审核配置向导,确认配置信息,然后单击提交
  7. 单击知道了返回监听页签,查看目标监听的健康检查状态列为正常时,表示后端服务器ECS01和ECS02实例可以正常处理ALB实例转发的请求。

步骤七:测试连通性

完成上述操作后,IPv6客户端的任意一台终端可以通过ALB访问VPC中部署的IPv4和IPv6服务。您可以通过以下操作测试IPv6客户端的终端与VPC中的ECS实例之间的连通性。
说明 测试连通性时,请确保您的客户端已支持IPv6功能,您可以在浏览器地址栏输入网址http://test-ipv6.com/测试您的客户端是否支持IPv6功能。
以任意一台可以访问IPv6客户端的终端为例,测试连通性。
  1. 测试IPv6客户端与VPC中ECS01的连通性。
    1. 打开终端的cmd窗口。
    2. 执行以下命令,测试IPv6客户端是否可以访问IPv4 ECS。
      curl -6 http://<ALB域名> -v
      收到如下所示的回复报文,则表示IPv6客户端可以访问IPv4 ECS。6-4
  2. 测试IPv6客户端与VPC中ECS02的连通性。
    1. 打开终端的cmd窗口。
    2. 执行以下命令,测试IPv6客户端是否可以访问IPv6 ECS。
      curl -6 http://<ALB域名> -v
      收到如下所示的回复报文,则表示IPv6客户端可以访问IPv6 ECS。6-6