You need to enable JavaScript to run this app.
导航
RabbitMQ 通过 CLB 支持公网白名单
最近更新时间:2024.06.20 11:31:17首次发布时间:2024.06.20 11:31:17

消息队列 RabbitMQ版产品目前暂未提供白名单功能,您可以借助负载均衡 CLB 产品来控制访问 RabbitMQ 实例的客户端 IP。本文为您介绍通过 CLB 实现 RabbitMQ 白名单的具体配置步骤。

背景信息

RabbitMQ 实例创建后,默认允许与实例在相同私有网络 VPC 环境内的所有设备访问实例;如果实例开启公网访问,则默认允许所有公网设备都能访问实例。由于 RabbitMQ 产品暂未提供白名单功能,当需要限制访问实例的客户端 IP 时,您可以借助负载均衡 CLB 产品来控制访问 RabbitMQ 实例的客户端 IP 地址。
在正式开始操作前,建议您先了解负载均衡 CLB 产品的以下几个概念:

  • 访问控制策略组:访问控制策略组是由多个 IP 条目组成的集合,用于集中管理 IP。策略组本身不对访问控制方式做限制,交由与之关联的监听器完成。
  • 后端服务器组:后端服务器组是接收并处理请求的实例组,CLB 实例会根据监听器的配置将客户端请求分发到后端服务器上。
  • 监听器:监听器提供转发请求的能力,通过匹配请求的协议和端口,根据调度算法将请求流量分发给后端服务器组。

准备工作

  • 已提前创建 RabbitMQ 实例。
  • 如果需要为 RabbitMQ 实例开启公网访问,请参见开启公网访问

步骤一:获取 RabbitMQ 实例网卡 IP

借助负载均衡 CLB 产品来控制访问 RabbitMQ 实例的客户端 IP 地址,您需要在 CLB 实例的后端服务器组中配置 RabbitMQ 实例对应的网卡 IP 地址。当 CLB 实例接收到客户端请求,会根据监听器的配置将其分发到后端服务器上。

  1. 登录消息队列 RabbitMQ版控制台,在页面顶部选择目标项目和地域。
  2. 实例列表中,单击目标实例,进入实例详情页面。
  3. 实例信息页签的基本信息区域,复制 RabbitMQ 实例 ID,然后单击实例的私有网络。
    图片
  4. 在私有网络控制台的左侧导航栏选择网卡,然后输入 RabbitMQ 实例 ID 进行筛选,再获取网卡 IP 地址。
    图片

步骤二:创建 CLB 实例

  1. 登录负载均衡 CLB 控制台,在页面顶部选择目标项目和地域。

  2. 在左侧导航栏选择实例管理,然后单击创建负载均衡

  3. 创建负载均衡页面,配置 CLB 实例相关参数。

    参数

    说明

    基本信息

    计费类型

    CLB 实例支持按量计费和包年包月两种计费类型。

    • 按量计费:即后付费模式,按照使用时长以小时为单位收费,可以随时创建或删除实例。
    • 包年包月:即预付费模式,按照购买时长收费。

    地域

    选择 CLB 实例所属的地域。

    说明

    CLB 实例需要和 RabbitMQ 实例在相同地域。

    可用区

    选择 CLB 实例所属的可用区。
    支持主备可用区。

    • 正常情况下,默认启用主可用区,备可用区不承载流量。
    • 主可用区故障时,系统自动切换到备可用区继续提供负载均衡服务。

    名称

    设置 CLB 实例的名称。

    描述

    设置 CLB 实例的描述语句。

    网络配置

    IP版本

    CLB 实例支持的 IP 版本。

    网络类型

    选择 CLB 实例的网络类型。

    • 公网:创建公网负载均衡,即创建 CLB 实例时同时创建公网 IP 并与该 CLB 实例绑定。
    • 私网:创建私网负载均衡,即创建 CLB 实例时不同时创建公网 IP,如需访问公网,可在创建 CLB 实例时配置参数“公网访问”,或者 CLB 实例创建成功后为其绑定公网 IP。

    私有网络

    选择 CLB 实例所属的私有网络。

    子网

    选择 CLB 实例所属的子网。

    IPv4地址

    选择 CLB 实例 IPv4 地址的分配方式。

    • 选择“手动分配IP”时,请手动输入子网范围内的 IPv4 地址。
    • 选择“手动分配IP”时,不支持批量创建 CLB 实例。

    公网访问

    您可以勾选“绑定已有公网IP”并选择已有的公网 IP 为该 CLB 实例提供公网访问能力。

    实例规格

    规格

    根据业务需要,选择合适的 CLB 实例规格。

  4. 阅读并勾选相关协议,然后单击提交订单

步骤三:配置访问控制策略组

访问控制策略组是由多个 IP 条目组成的集合,用于集中管理 IP。您可以将需要允许访问 RabbitMQ 实例的客户端 IP 地址或 CIDR 地址范围填入到策略组。

  1. 登录负载均衡 CLB 控制台,然后在页面顶部选择目标项目和地域。
  2. 在左侧导航栏选择访问控制,然后单击创建访问控制策略组
  3. 在弹出的对话框中,设置策略组名称和项目,设置允许访问 RabbitMQ 实例的客户端 IP 地址或 CIDR 地址范围,然后单击确定

    说明

    在测试场景中,如果您使用的是家用路由器或办公室网络,您的设备可能位于私有网络中,私有网络中的设备通过 NAT 技术与公网进行通信。
    此时您通过在命令行中执行ipconfigifconfig命令查询的本地 IP 是私网地址,不能直接配置到访问控制策略组中,您可以通过whatismyipaddress.com查询您的公网 IP 出口代理地址,然后将 IP 地址或 CIDR 地址范围填入到策略组中。
    需要注意的是:动态主机配置协议 DHCP 会将该地址分发给其他租户,请在测试结束后及时移除 IP 地址或 CIDR 地址范围。

    图片

步骤四:配置后端服务器组

后端服务器组是接收并处理请求的实例组,CLB 实例会根据监听器的配置将客户端请求分发到后端服务器上。您可以将获取到的 RabbitMQ 实例访问端口、网卡 IP 地址填入到后端服务器组。

  1. 登录负载均衡 CLB 控制台,然后在页面顶部选择目标项目和地域。
  2. 在左侧导航栏选择实例管理,单击 CLB 实例名称,进入实例详情页面。
  3. 后端服务器组页签,单击创建后端服务器组,然后设置服务器组名称,选择 IP类型,再单击确定
    图片
  4. 在服务器组中,单击添加服务器
    图片
  5. 添加IP地址页面,输入RabbitMQ 实例网卡 IP 地址、访问端口,以及自定义设置权重,然后单击确定

    说明

    • RabbitMQ 实例网卡 IP 地址已提前获取。
    • RabbitMQ 实例的 AMQP 接入点公网地址端口为5671,私网地址端口为5672
    • 权重越大,转发的请求越多。0 表示不接受请求,100 表示转发的请求最多。
    图片

步骤五:配置监听器

监听器提供转发请求的能力,通过匹配请求的协议和端口,根据调度算法将请求流量分发给后端服务器组。在监听器中,您需要关联访问控制策略组和后端服务器组。

  1. 登录负载均衡 CLB 控制台,然后在页面顶部选择目标项目和地域。

  2. 在左侧导航栏选择实例管理,单击 CLB 实例名称,进入实例详情页面。

  3. 监听器页签,单击添加监听器

  4. 配置协议,关联访问控制策略组,然后单击下一步
    图片

    参数

    说明

    监听器名称

    自定义设置监听器的名称。如不填写,则默认为“协议-端口” ,例如“TCP-5671”。

    负载均衡协议

    选择 CLB 实例监听的协议类型,本文使用 TCP

    监听端口

    输入监听的端口。需要监听 RabbitMQ 实例的 AMQP 接入点公网地址端口为5671

    说明

    待添加的监听器端口不能与同一 CLB 实例其他监听器端口相同。

    调度算法

    指定监听器转发请求遵循的规则,本文使用加权轮询(WRR),权重值越高的后端服务器,被轮询到的次数(概率)越高。

    访问控制

    监听器是否对访问请求设置黑白名单控制。本文选择启用访问控制,并选择白名单控制方式。

    策略组名称

    从下拉列表中选择已创建的访问控制策略组。

  5. 关联已有的后端服务器组,然后一直单击下一步,直至监听器添加完成。
    图片

  6. 返回监听器页面,查看状态。
    图片

结果验证

经过上述配置后,可以使用 CLB 实例 IP 地址和监听器端口访问 RabbitMQ 实例,在 CLB 实例基本信息中获取 CLB 实例 IP 地址。
效果:在访问控制策略组中的客户端 IP 可继续访问 RabbitMQ 实例,其他的客户端则无法继续访问 RabbitMQ 实例。
图片