网络

本页面简要介绍了 Memorystore for Redis 的网络。

Memorystore 使用 VPC 对等互连将 VPC 网络连接到内部 Google 服务网络。Memorystore for Redis 提供不同的对等互连架构和网络功能,具体取决于您在创建实例时选择的连接模式

我们推出了选择连接模式的选项,以支持 Google Cloud 中的高级网络选项(如共享 VPC 架构和更好的 IP 管理),同时确保支持 Memorystore 的现有对等互连架构。

Memorystore for Redis 支持两种连接模式:DIRECT_PEERINGPRIVATE_SERVICE_ACCESS

无论连接模式如何,Memorystore for Redis 始终使用内部 IP 地址来预配 Redis 实例。

连接模式

Memorystore for Redis 提供两种支持不同功能的连接模式:

  • 直接对等互连
  • 专用服务访问通道

要查看现有实例的网络连接模式,请运行以下命令,并将 variables 替换为适当的值:

gcloud redis instances describe instance-id --region=region
  • connectMode 值显示 DIRECT_PEERINGPRIVATE_SERVICE_ACCESS

如需了解如何在实例创建期间选择连接模式,请参阅在服务项目中创建具有共享 VPC 网络的 Redis 实例创建具有集中式 IP 地址范围的 Redis 实例

直接对等互连

使用直接对等互连模式时,Memorystore 会在客户 VPC 网络与 Google 托管项目中的 VPC 网络之间创建 VPC 对等互连。对等互连在实例创建期间自动创建,无需用户执行其他步骤。其他 Google Cloud 服务不共享对等互连。Memorystore for Redis 在专用服务访问通道连接模式可用之前使用了直接对等互连连接模式。

默认情况下,系统会使用直接对等互连连接模式创建新实例。默认情况下,任何未指定连接模式的现有脚本都会使用直接对等互连模式。

如果您要使用直接对等互连连接模式创建实例,并且想要使用 --reserved-ip-range gcloud 标志指定 IP 地址范围,请参阅创建具有特定 IP 的 Redis 实例,以获取有关指定范围的说明。对于没有读取副本的实例,最小块大小必须为 /29。对于有读取副本的实例,最小块大小必须为 /28

专用服务访问

专用服务访问通道是在 VPC 网络和 Google 服务网络之间创建对等互连的另一种方法。

为 VPC 网络建立专用服务访问通道连接会在该 VPC 网络和 Google 服务网络之间创建对等互连。建立连接后,您可以使用专用服务访问通道连接模式创建实例

通过使用专用服务访问通道,您可以对 Redis 实例使用以下功能:

  • 使用共享 VPC 在服务项目中预配 Memorystore for Redis 实例。
  • 集中管理跨多个 Google 服务的 IP 地址范围。
  • 通过 VPN 隧道Cloud Interconnect 自外部来源连接到您 VPC 网络。

专用服务访问通道的另一个好处是,同一网络对等互连由多个 Google 服务共享,从而限制了 Google 服务创建的对等互连数量。

--reserved-ip-range gcloud 标志在使用专用访问通道连接创建实例时的目的与使用直接对等互联连接形式创建实例时的目的不同。使用专用服务访问通道模式创建实例时,如果为专用服务访问通道分配了多个 IP 地址范围,则可以使用 --reserved-ip-range gcloud 标志来选择创建 Redis 实例时使用的分配范围。如需了解如何执行此操作,请参阅创建具有特定 IP 地址范围的 Redis 实例

选择连接模式

下表概述了不同用例及应使用的连接模式。

情况 支持的连接模式
使用共享 VPC 网络预配 Redis 实例 仅专用服务访问通道
使用 VPN 从本地网络访问 Redis 实例 仅专用服务访问通道
对多个 Google 服务使用集中式 IP 范围管理 仅专用服务访问通道
使用专用 VPC 网络预配 Redis 实例 专用服务访问通道(推荐)或直接对等互连

切换现有实例的连接模式

您无法切换现有实例的连接模式。如需切换连接模式,必须使用新的连接模式重新创建实例。这会导致实例的 IP 地址发生更改。

例如,如果您在专用服务访问通道连接模式可用之前创建了现有实例,则该实例的连接模式属性将设置为直接对等互连。如果您使用专用服务访问通道连接模式重新创建实例,则实例的 IP 地址会更改。

此外,Memorystore for Redis 支持同一项目和同一网络中有使用专用服务访问通道的 Redis 实例以及使用直接对等互连的实例。

使用专用服务访问通道的本地访问

如果本地网络连接到 Memorystore for Redis 实例所连接的 VPC 网络,则您可以从本地网络中的客户端进行连接。如要允许来自本地网络的连接,请执行以下操作:

  1. 使用以下选项之一确保您的共享 VPC 网络连接到您的本地网络
  2. 确保管理 Cloud VPN 隧道和 Cloud Interconnect 连接 (VLAN) 的 Cloud Router 路由器上的 BGP 会话已收到来自本地网络的特定前缀(目的地)。默认路由(目的地 0.0.0.0/0)无法导入到 Memorystore for Redis VPC 网络中,因为该网络有自己的本地默认路由。即使将 Memorystore for Redis 对等互连配置为从 VPC 网络导入自定义路由,也始终使用目标的本地路由
  3. 识别由专用服务连接生成的对等互连。Memorystore for Redis 使用的对等互连名为 servicenetworking-googleapis-com
  4. 通过设置 --import-custom-routes--export-custom-routes 标志来更新对等互连连接以交换自定义路由
  5. 识别专用服务连接使用的分配范围
  6. 在管理 Cloud VPN 隧道或 Cloud Interconnect 连接 (VLAN) 的 BGP 会话的 Cloud Router 上,针对分配的范围 创建 Cloud Router 自定义通告路由

传达网络要求

通常情况下,贵单位的网络团队和/或网络管理员负责设置专用服务访问通道连接。这样一来,网络团队就可以确保用于其他 Google Cloud 资源的 IP 地址或范围不会重叠,从而避免连接问题。

我们建议您联系贵组织中的网络安全团队,为您设置专用服务连接,尤其是在设置过程中遇到错误时。与您的网络团队联系时,请将以下信息发送给他们:

The Memorystore for Redis instance cannot be created due to the following
error:

"Google private services access is not enabled. Enable privates service access
and try again."

Before an instance can be created, a private service access connection needs to
be established for network <project name: network>. Please refer to the
following Memorystore documentation links for more information on how to create
this connection:

* Networking.
* Establishing a private services access connection.
* Verifying a private services access connection.

启用读取副本实例的网络要求

要使用 Memorystore for Redis 的读取副本功能,实例的 CIDR IP 地址范围必须为 /28 或更大。更大的范围(例如 /27/26)是有效的。此功能不支持更小的范围(例如 /29)。

建立专用服务访问通道连接所需的权限

为了管理专用服务访问通道连接,用户应具有以下 IAM 角色。如果您没有所需的权限,则可能会遇到权限不足的错误。如需查看常见网络错误的列表,请参阅网络错误场景

界面权限

在界面中列出本地项目网络和宿主项目网络所需的权限:
  • compute.networks.list
    • 本地项目和宿主项目都需要。
在界面中检查专用服务访问通道连接所需的权限:
  • compute.networks.list
    • 本地项目和宿主项目都需要。
在界面中创建专用服务访问通道连接所需的权限:
  • serviceusage.services.enable
    • 启用 Service Networking API 时需要。
  • compute.addresses.create
  • compute.addresses.list
  • servicenetworking.services.addPeering

gcloud 权限

检查专用服务访问通道连接所需的 gcloud 权限
  • compute.networks.list
    • 本地项目和宿主项目都需要。
创建专用服务访问通道连接所需的 gcloud 权限
  • serviceusage.services.enable
    • 启用 Service Networking API 时需要。
  • compute.addresses.create
  • compute.addresses.list
  • servicenetworking.services.addPeering

支持的网络和客户端 IP 地址范围

Memorystore for Redis 支持 RFC 1918 专用 IP 地址和某些非 RFC 1918 专用 IP 地址。

  • 有效范围列出了 Memorystore for Redis 接受的范围。不过,Memorystore for Redis 不支持此处链接的有效范围表中列出的以非公开方式使用的公共 IP (PUPI) 地址。
  • 受限范围列出了无法用于创建 Memorystore for Redis 实例的 IP 地址范围。
  • 如果 Memorystore 实例使用专用服务访问连接模式,则来自 PUPI 范围的客户端无法连接到 Memorystore 实例。

Memorystore 还支持 VPC 网络,但旧版网络、本地访问和共享 VPC 网络除外。