文档

通过PrivateLink跨VPC私网访问NLB

更新时间:

如果您需要将一个VPC内部署的NLB共享给同账号下的另外一个VPC访问,您可以将NLB作为提供方VPC的服务资源,然后通过PrivateLink建立两个VPC之间的网络连接,来实现跨VPC私网访问NLB资源。

背景信息

VPC是您独自拥有的云上私有网络,不同VPC之间完全隔离。您可以通过私网连接建立VPC与阿里云服务之间安全稳定的私有连接,简化网络架构,避免通过公网访问服务带来的潜在安全风险。

通过私网连接实现私网访问,您需要创建终端节点服务和终端节点。

  • 终端节点服务

    终端节点服务可以与其他VPC的终端节点建立私网连接服务,由服务提供方创建和管理。

  • 终端节点

    终端节点可以与终端节点服务相关联,以建立通过VPC私网访问外部服务的网络连接。终端节点由服务使用方创建和管理。

相关主体

相关组件

服务提供方

创建和管理终端节点服务。

服务使用方

创建和管理终端节点。

NLB是阿里云面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力,单实例可以达到1亿并发连接,帮您轻松应对高并发业务。使用NLB作为终端节点服务的服务资源时,可以配置一个为多个可用区提供服务的NLB服务资源,不需要为每个可用区配置单独的NLB服务资源。更多信息,请参见什么是网络型负载均衡NLB

场景示例

本文以下图场景为例。某公司使用阿里云账号A在华东1(杭州)地域创建了VPC1和VPC2,在VPC1中创建了ECS01和ECS02实例,在VPC2中创建了ECS03和ECS04实例并部署了不同的Nginx服务。现因业务发展,VPC1的ECS实例需要通过私网访问VPC2中ECS部署的服务。

您需要在VPC2中创建NLB实例,该实例包含华东1(杭州)地域的可用区G和可用区K,然后创建后端服务器组RS1,将ECS03实例和ECS04实例添加到NLB的后端服务器组。创建终端节点服务,将NLB实例添加为服务资源。在VPC1中创建终端节点,创建成功后,终端节点与终端节点服务建立连接且状态正常时,VPC1的ECS实例即可私网访问VPC2中ECS部署的服务。

image

使用限制

  • NLB作为服务资源时,必须是私网类型的NLB实例。

  • 创建终端节点服务时,选择地域需要同时支持私网连接和NLB实例的地域。关于私网连接和NLB实例支持的地域,请参见私网连接支持的地域NLB支持的地域与可用区

  • 只有终端节点和终端节点服务是同可用区才可以建立连接,终端节点部署的可用区必须是终端节点服务资源部署的可用区的子集,因此建议终端节点服务资源部署选择该地域下的全部或者尽可能多的可用区,方便被不同终端节点调用服务。

  • PrivateLink不支持访问NLB的TCPSSL类型监听。

准备工作

  • 您已经在华东1(杭州)地域创建了VPC1和VPC2,并且在VPC1中创建了一个位于可用区G和可用区K的交换机,在VPC2中创建了一个位于可用区G和可用区K的交换机。具体操作,请参见创建专有网络和交换机

  • 您已经在VPC1中创建了位于可用区G的ECS01和位于可用区K的ECS02,用于发送请求。在VPC2中创建了位于可用区G的ECS03和位于可用区K的ECS04,用于接收和处理请求,且ECS03和ECS04部署了不同的Nginx服务。

    • 关于如何创建ECS实例,请参见自定义购买实例

    • 本文ECS03与ECS04部署测试应用示例如下:

      ECS03服务部署命令

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

      ECS04服务部署命令

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS04." > index.html
  • 您已经在VPC1创建了安全组。您可以根据自己的实际业务和安全要求配置安全组规则。具体操作,请参见创建安全组

    说明

    VPC2中使用的安全组是在创建ECS03和ECS04时,阿里云为您创建的默认安全组。

本文中的2个VPC网络规划如下表所示,在您规划网络时,选择的VPC1和VPC2的网段可以重叠且互不影响。

属性

VPC1

VPC2

网络实例所属的地域

华东1(杭州)

华东1(杭州)

网络实例的网段规划

  • VPC网段:10.0.0.0/8

  • 交换机1网段:10.0.23.0/24

  • 交换机2网段:10.0.24.0/24

  • VPC网段:192.168.0.0/16

  • 交换机3网段:192.168.2.0/24

  • 交换机4网段:192.168.4.0/24

网络实例交换机的可用区

  • 交换机1位于可用区G

  • 交换机2位于可用区K

  • 交换机3位于可用区G

  • 交换机4位于可用区K

服务器IP地址

  • 可用区G下的ECS01 IP:10.0.23.68

  • 可用区K下的ECS02 IP:10.0.24.227

  • 可用区G下的ECS03 IP:192.168.2.190

  • 可用区K下的ECS04 IP:192.168.4.20

配置流程

image

步骤一:创建私网类型的NLB实例

首先我们需要创建一个私网类型的NLB实例,作为服务提供方业务入口。

  1. 登录NLB控制台,选择华东1(杭州)地域,单击创建网络型负载均衡

  2. 网络型负载均衡(按量付费)购买页面,在VPC2下创建私网NLB实例,然后单击立即购买

    image

步骤二:创建NLB的后端服务器组并添加服务器

接着我们需要创建服务器组并添加后端服务器来接收NLB转发的客户端请求。

  1. 创建服务器组RS1,用于将客户端的请求路由到多个后端服务器。

    1. 登录NLB控制台,在服务器组中单击创建服务器组

    2. 创建服务器组对话框,根据以下信息配置相关参数,然后单击创建

      更多参数配置,请参见创建和管理服务器组

      image

  2. 将ECS03和ECS04添加为服务器组RS1的后端服务器,用于接收来自NLB转发的请求。

    1. 在服务器组详情页面,单击目标服务器组实例ID。

    2. 单击后端服务器 > 添加后端服务器,选择ECS03和ECS04为后端服务器。然后单击下一步。

      image

    3. 设置已添加的ECS03实例和ECS04实例的端口和权重,本文端口设置为80,权重保持默认值100,单击确定

      image

步骤三:配置监听

接下来需要为NLB实例配置监听,监听负责检查连接请求,然后根据调度算法将客户端请求分发至后端服务器,分担流量压力。

  1. 在目标NLB实例的操作列,单击创建监听

  2. 配置监听配置向导页面,选择TCP监听协议,监听端口为80,单击下一步

    image

  3. 选择服务器组配置向导页面,选择已创建的RS1服务器组,然后单击下一步

    image

  4. 配置审核配置向导,确认监听配置信息,然后单击提交

  5. 负载均衡业务配置向导对话框,单击知道了,然后返回实例管理页面。

    当监听的健康检查状态为正常时,表示后端服务器ECS03和ECS04可以正常处理NLB实例转发的请求

步骤四:创建终端节点服务

然后需要创建一个终端节点服务,用来建立私网连接。

  1. 登录终端节点服务控制台,选择华东1(杭州)地域,单击创建终端节点服务

  2. 创建终端节点服务页面,添加已创建的NLB为服务资源,其他参数保持默认,然后单击确定创建

    image

步骤五:创建终端节点

然后需要在VPC1下创建一个终端节点,用来关联终端节点服务。

  1. 登录终端节点控制台,选择华东1(杭州)地域,然后单击创建终端节点

  2. 创建终端节点页面,关联已创建的终端节点服务、VPC1、安全组、可用区与交换机,其他参数保持默认,然后单击确定创建

    image

步骤六:(可选)接受连接请求

终端节点发送连接请求后,终端节点服务需要接受终端节点的连接请求。接受后,VPC1才能通过终端节点访问终端节点服务。本文中创建终端节点服务时设置自动接受连接请求,所以忽略此步骤。

步骤七:测试结果

完成上述操作后,VPC1和VPC2之间已经可以实现私网通信,本文以下面内容为例,为您展示如何测试VPC1与VPC2之间的连通性。

说明
  • 本文中ECS实例安装了Alibaba Cloud Linux操作系统,如果您使用的是其他操作系统,如何测试VPC1和VPC2之间的连通性请参见您的操作系统手册。

  • 本文终端节点服务和终端节点均添加了2个可用区,支持高可用,您可通过生成的终端节点服务域名访问服务。

  1. 远程登录VPC1中的ECS01和ECS02实例。具体操作,请参见ECS远程连接操作指南

  2. 登录VPC1中的ECS实例之后,您有以下两种方式测试VPC之间的连通性。

    • 通过终端节点服务域名访问VPC2中部署的服务。该域名能在PrivateLink可用区之间做轮询,并进行健康检查提供高可用,当某一个可用区出现故障时,流量也能通过正常的可用区转发。

      1. 在终端节点详情页,查看生成的终端节点服务域名。

        image

      2. 执行curl命令,测试连通性。

        image

    • 指定可用区域名或IP访问VPC2中部署的服务。

      1. 在终端节点详情页,单击可用区与网卡页签,查看生成的可用区域名和IP地址。

        image

      2. 执行curl命令,测试连通性。

        image

相关文档