文档

快速实现IPv6服务的负载均衡

更新时间:

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

场景示例

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

架构图

使用限制

  • 双栈支持的地域,请参见ALB实例概述

  • 使用双栈功能,需要开通VPC可用区中交换机的IPv6功能。

  • 双栈ALB实例支持将IPv4和IPv6的客户端流量转发至IPv4、IPv6的后端服务。

    • 双栈ALB实例将IPv6的客户端流量转发至IPv4的后端服务,后端服务支持服务器类型(ECS、ENI、ECI)、IP类型,不支持函数计算类型。

    • 双栈ALB实例将IPv6的客户端流量转发至IPv6的后端服务时,后端服务支持服务器类型(ECS、ENI、ECI),不支持IP类型、函数计算类型。

  • 不支持已有的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,同时ECS绑定的安全组均需要放行80端口。具体操作,请参见自定义购买实例

    说明
    • 本文中的ECS01和ECS02均选择安装Alibaba Cloud Linux操作系统。

    • 创建具有IPv6地址的ECS实例时,需在IPv6处选中免费分配IPv6地址

  6. 远程登录ECS01和ECS02实例,具体操作,请参见ECS远程连接操作指南

  7. 在ECS01中执行如下命令,部署Nginx服务。

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! this is ipv4 rs." > index.html
    
  8. 在ECS02中执行如下命令,部署Nginx服务。

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! this is ipv6 rs." > index.html
    
  9. 配置ECS02实例的静态IPv6地址。

    1. 远程登录VPC中的ECS02实例。

    2. 检查ECS02实例是否已开启IPv6服务。

      执行ip addr | grep inet6或者ifconfig | grep inet6命令:

      • 如果返回inet6相关内容,表示实例已成功开启IPv6服务。

      • 如果未返回inet6相关内容,表示实例未开启IPv6服务。

      下图表示ECS02实例已开启IPv6服务。ipv6

    3. (可选)如果ECS02未开启IPv6服务,可手动配置ECS02实例的IPv6地址。本文以手动配置ECS02的IPv6地址为例进行配置说明。关于配置IPv6地址的更多操作,请参见为Linux实例配置 IPv6 地址

      1. 执行vi /etc/sysconfig/network-scripts/ifcfg-eth0命令打开网卡配置文件,eth0为网卡标识符,您需要修改成实际的标识符。在文件中根据实际信息添加以下配置:

        DHCPV6C=yes
        IPV6INIT=yes

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

      2. 重启实例。

        reboot

步骤二:ECS02配置IPv6安全组规则

您需要为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实例后,默认提供私网IPv6地址。双栈ALB实例如需对外提供IPv6服务,请执行以下步骤将ALB实例的IPv6私网变更为公网。更多信息,请参见协议版本

    1. 返回实例页面,找到目标ALB实例,单击实例ID。

    2. 实例详情页签的基本信息区域,找到网络类型,然后在IPv6:私网的右侧单击变更网络类型

    3. 变更网络类型对话框中单击确定变更

      变更成功后,您可以看到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

  • 本页导读 (1)
文档反馈