文档

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

更新时间:

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

场景示例

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

image.png

使用限制

  • NLB双栈支持的地域,请参见NLB双栈支持的地域

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

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

  • 不支持已有的IPv4实例升级为双栈实例,仅支持新建双栈实例。

  • IPv4类型的NLB实例在创建监听时,无法添加开启了IPv6挂载功能的服务器组。

前提条件

开始配置前,请确保您已参照如下资源规划参考表进行了相关资源的创建。

资源规划参考表

规划项

说明

示例

网络型负载均衡NLB

地域

实例所属地域

华东2(上海)

实例网络类型

NLB支持私网与公网类型。私网类型实例面向VPC内部提供负载均衡服务,公网不可访问。公网类型实例使用弹性公网IP,将收取弹性公网IP实例费与流量费用

公网

VPC

实例所属网络

VPC-test

可用区

网络型负载均衡支持多可用区部署,若当前地域支持2个及以上可用区,为保障业务高可用,请至少选择2个或以上可用区

  • 上海 可用区E

  • 上海 可用区F

协议版本

NLB支持仅IPv4和双栈两种协议版本类型。双栈指同时支持IPv4与IPv6

双栈

公网计费方式

公网访问的计费方式

按流量计费

实例名称

实例名称

nlb-test

专有网络VPC

地域

实例所属地域

华东2(上海)

名称

实例名称

VPC-test

IPv4网段

CIDR格式的私网网段

172.16.0.0/16

IPv6网段

只能由系统默认分配

分配(默认)

交换机1

为实现多可用区容灾,配置时需要至少选择两个可用区的交换机

  • 名称:VPC交换机1

  • 可用区:上海 可用区E

  • IPv4网段:172.16.20.0/24

  • IPv6网段:2408:4002:1142:ec01::/64

交换机2

为实现多可用区容灾,配置时需要至少选择两个可用区的交换机

  • 名称:VPC交换机2

  • 可用区:上海 可用区F

  • IPv4网段:172.16.21.0/24

  • IPv6网段:2408:4002:1142:ec02::/64

云服务器ECS01

付费类型

方案测试使用时建议使用按量付费

按量付费

地域

实例所属地域

华东2(上海)

网络及可用区

ECS 实例所属网络及可用区

  • 网络类型:专有网络

  • VPC:VPC-test

  • 交换机:VPC交换机1

实例规格

本方案中使用的 ECS 实例规格

ecs.t5-lc2m1.nano

镜像

ECS 实例操作系统版本

CentOS 7.9 64位

安全组

安全组是一种虚拟防火墙,用于设置 ECS 实例的网络访问控制,1台 ECS 实例至少属于1个安全组

  • 新建安全组

  • 安全组名称:ECS1自定义安全组

登录账号及密码

ECS实例登录方式及账号密码

  • 登录凭证:自定义密码

  • 登录名:root

  • 登录密码/确认密码:用户自行填写,需要符合密码安全性规则

云服务器ECS02

付费类型

方案测试使用时建议使用按量付费

按量付费

地域

实例所属地域

华东2(上海)

网络及可用区

ECS 实例所属网络及可用区

  • 网络类型:专有网络

  • VPC:VPC-test

  • 交换机:VPC交换机2

实例

本方案中使用的 ECS 实例规格

ecs.t5-lc2m1.nano

镜像

ECS 实例操作系统版本

CentOS 7.9 64位

安全组

安全组是一种虚拟防火墙,用于设置 ECS 实例的网络访问控制,1台 ECS 实例至少属于1个安全组

  • 新建安全组

  • 安全组名称:ECS2自定义安全组

IPv6

IPv6服务端需要开启

勾选免费分配 IPv6 地址

登录账号及密码

ECS实例登录方式及账号密码

  • 登录凭证:自定义密码

  • 登录名:root

  • 登录密码/确认密码:用户自行填写,需要符合密码安全性规则

您可参考以下文档手动进行相关资源创建。

  • 新建IPv4和IPv6双栈VPC

  • 自定义购买ECS实例

    说明
    • ECS02作为IPv6服务端,创建时需要配置免费分配 IPv6 地址

    • ECS01与ECS02中需要部署应用服务,可参考如下部署命令。

      ECS01服务部署命令

      yum install -y nginx
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS01, ipv4 rs." > index.html
      systemctl start nginx.service
      

      ECS02服务部署命令

      yum install -y nginx
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS02 ipv6 rs." > index.html
      systemctl start nginx.service
      

步骤一:创建实例

  1. 登录网络型负载均衡NLB控制台
  2. 在顶部菜单栏,选择NLB实例所属的地域。

  3. 实例页面,单击创建网络型负载均衡

  4. 网络型负载均衡(按量付费)购买页面,完成以下配置。

    配置参考信息

    配置

    说明

    地域

    选择实例所属的地域。

    实例网络类型

    选择实例网络类型,系统会根据您的选择分配私网或公网服务地址。

    • 私网:提供私网IP,只能通过阿里云内部网络访问该负载均衡服务,无法从互联网访问。

    • 公网:提供公网IP,可以通过互联网访问负载均衡服务。公网NLB通过弹性公网IP(Elastic IP Address,简称EIP)提供公网能力,选择公网将会收取弹性公网IP实例费、带宽与流量费用。更多信息,请参见NLB计费规则

    本文选择公网

    VPC

    选择实例所属的VPC。

    可用区

    1. NLB支持多可用区部署,若当前地域支持2个及2个以上的可用区,为保障业务高可用,请至少选择2个可用区,且NLB不会额外收取可用区的费用。

    2. 分别在所选可用区内选择交换机,如果可用区下无交换机,请根据控制台提示创建交换机。

    3. 可选:实例网络类型选择公网时,需分别在所选可用区内选择EIP。

      • 如果可用区下无EIP,可保持默认选项自动分配公网IP:系统将帮您自动创建按量付费(按使用流量计费)的BGP多线默认安全防护EIP,并绑定至NLB实例上。

      • 选择已有的EIP:您可以指定已创建的EIP并绑定至新购的NLB实例上。

        重要
        • 仅可绑定暂未加入共享带宽的按量付费(按使用流量计费)的已购EIP。

        • 同一个NLB实例不同可用区分配的EIP类型需保持一致。

    协议版本

    选择实例的协议版本。

    • IPv4:表示NLB实例仅支持客户端使用IPv4地址访问。

    • 双栈:表示NLB实例支持客户端同时使用IPv4和IPv6地址访问。

    本文选择双栈

    加入共享带宽

    选择是否要加入共享带宽。如选中加入共享带宽,则需选择共享带宽包,如果没有共享带宽包可选择,可单击购买共享带宽包并完成购买,然后返回NLB购买页面单击刷新图标,即可选择共享带宽包。关于如何购买共享带宽,请参见创建共享带宽实例

    本文不勾选。

    说明

    该参数仅在实例网络类型公网时生效。

    公网计费方式

    公网计费方式默认选项为按流量计费:带宽峰值不作为业务承诺指标,仅作为参考值和带宽上限峰值。当出现资源争抢时,带宽峰值可能会受到限制。

    说明

    该参数仅在实例网络类型公网,且未选择加入共享带宽时有效。

    实例名称

    自定义实例名称。

    资源组

    选择所属的资源组。

    服务关联角色

    首次创建NLB实例时,需要单击创建服务关联角色关联服务角色。

  5. 单击立即购买,然后根据控制台提示完成实例购买。

  6. 返回实例页面,选择对应的地域即可看到新创建的实例。

步骤二:创建后端服务器组

  1. 登录网络型负载均衡NLB控制台
  2. 在顶部菜单栏,选择NLB实例所属的地域。

  3. 服务器组页面,单击创建服务器组

  4. 配置服务器组信息。关键配置信息可参考下表,其余配置项保持默认值即可。完成后单击创建

    参数

    说明

    服务器组类型

    服务器组挂载的后端服务器类型。本文选择服务器类型

    服务器组名称

    自定义填写服务器组名称。

    VPC

    服务器组所属VPC。

    选择资源组

    服务器组所属资源组。

    开启IPv6挂载

    开启后后端服务器才可以挂载IPv6服务。本文选择开启

  5. 单击服务器组实例右侧操作列的编辑后端服务器,然后单击添加后端服务器

  6. 选择服务器。选中ECS01与ECS02,注意将ECS02的IPv4地址替换为IPv6地址。完成后单击下一步

  7. 配置端口为ECS01与ECS02中部署的应用服务端口(例如本文示例端口为80),其余配置项保持默认值即可。完成后单击确定

步骤三:配置监听

  1. 登录网络型负载均衡NLB控制台
  2. 在顶部菜单栏,选择NLB实例所属的地域。

  3. 实例页面,单击实例右侧的创建监听

  4. 选择负载均衡协议为TCP,并配置监听端口(例如本文示例端口为80)。单击下一步

  5. 选择目标服务器组。单击下一步

  6. 确认配置信息无误后,单击提交

(可选)步骤四:设置域名解析

实际业务场景中,建议您使用您的自有域名,通过CNAME解析的方式将自有域名指向NLB实例域名。

  1. 在左侧导航栏,选择网络型负载均衡 NLB > 实例

  2. 实例页面,复制已创建的NLB实例的DNS名称。

  3. 执行以下步骤添加CNAME解析记录。

    1. 登录域名解析控制台

    2. 域名解析页面单击添加域名

    3. 添加域名对话框中输入您的主机域名,然后单击确认

      重要

      您的主机域名需已完成TXT记录验证。

    4. 在目标域名的操作列单击解析设置

    5. 解析设置页面,单击添加记录

    6. 添加记录面板,配置以下信息完成CNAME解析配置,然后单击确认

      配置

      说明

      记录类型

      在下拉列表中选择CNAME

      主机记录

      您的域名的前缀。本文输入@

      解析请求来源

      选择默认。

      记录值

      输入域名对应的CNAME地址,即您复制的NLB实例的DNS名称。

      TTL

      全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文使用默认值。

步骤五:验证结果

  1. 获取测试访问域名:

    1. 如果您设置了域名解析,使用了自有域名进行CNAME解析到NLB域名,则测试访问域名为您的自有域名。

    2. 如果您未使用自有域名,可登录网络型负载均衡NLB控制台,顶部选择实例所属地域,在目标NLB实例DNS名称列复制NLB实例的域名,作为测试访问域名。

  2. 测试NLB可用性:

    1. 以任意一台可以访问IPv6服务的Linux客户端为例。如果未安装telnet,以CentOS系统为例可以参考执行yum install -y telnet安装telnet。

    2. 多次执行telnet 域名 端口命令,收到下图回复报文Connected to nlb-...,则表示NLB可以将请求转发至后端服务器。

      Trying *.*.*.*...
      Connected to nlb-*********.******.nlb.aliyuncs.com.
      Escape character is '^]'
  3. 模拟故障:

    1. 在ECS01中执行systemctl stop nginx.service停用应用。

    2. 等待几分钟后,客户端再次执行telnet 域名 端口命令,仍然收到下图回复报文Connected to nlb-...

      Trying *.*.*.*...
      Connected to nlb-*********.******.nlb.aliyuncs.com.
      Escape character is '^]'
    3. 在ECS01中执行systemctl start nginx.service重新启动应用,在ECS02中执行systemctl stop nginx.service停用应用。

    4. 等待几分钟后,在客户端中再次执行telnet 域名 端口命令,仍然收到下图回复报文Connected to nlb-...

      Trying *.*.*.*...
      Connected to nlb-*********.******.nlb.aliyuncs.com.
      Escape character is '^]'
    5. 如上表明后端单台服务器故障不影响NLB可用性。

释放资源

  1. 清理ECS、安全组等资源:

    1. 删除ECS01实例及其安全组:

      1. 登录云服务器ECS实例控制台,顶部选择实例所属地域,单击ECS01实例右侧的image.png,弹出的窗口中选择释放,立即释放实例并确认。

      2. 登录云服务器ECS安全组控制台,顶部选择实例所属地域,勾选ECS01自定义安全组并单击删除,删除安全组。

    2. 参照上述步骤,删除ECS02实例及对应安全组资源。

  2. 清理NLB资源:

    1. 登录网络型负载均衡NLB控制台,顶部选择实例所属地域,单击实例右侧的image.png,弹出的窗口中选择释放并确认。

    2. 登录网络型负载均衡NLB控制台,顶部选择实例所属地域,在服务器组菜单单击服务器组右侧的image.png,弹出的窗口中选择删除并确认。

  3. 清理VPC资源:

    1. 登录专有网络VPC控制台,顶部选择实例所属地域。

    2. 单击实例右侧删除,删除时并且勾选强制删除,完成VPC与交换机资源的删除。

相关文档

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