为 Azure Database for MySQL - 灵活服务器使用虚拟网络集成实现专用网络访问

本文介绍适用于 Azure Database for MySQL 灵活服务器的专用连接选项。 详细了解 Azure Database for MySQL 灵活服务器的虚拟网络概念,以便在 Azure 中安全地创建服务器。

专用访问(虚拟网络集成)

Azure 虚拟网络是 Azure 中专用网络的基本构建基块。 虚拟网络与 Azure Database for MySQL 灵活服务器的集成带来了 Azure 在网络安全和隔离方面的优势。

Azure Database for MySQL 灵活服务器实例的虚拟网络集成使你能够将对服务器的访问锁定为仅限你的虚拟网络基础结构。 虚拟网络可以将你的所有应用程序和数据库资源包含在单个虚拟网络中,也可以跨越同一区域或不同区域中的不同虚拟网络。 各种虚拟网络之间的无缝连接可以通过对等互连建立,它使用 Microsoft 的低延迟、高带宽私有主干基础结构。 出于连接目的,两个虚拟网络会显示为一个。

Azure Database for MySQL 灵活服务器支持来自下方的客户端连接:

  • 同一 Azure 区域中的虚拟网络(本地对等互连虚拟网络)
  • 跨 Azure 区域的虚拟网络(全球对等互连虚拟网络)

使用子网可将虚拟网络划分为一个或多个子网络,并分配一部分虚拟网络的地址空间,然后可以将 Azure 资源部署到这些地址空间。 Azure Database for MySQL 灵活服务器需要委托子网。 委托子网是一个显式标识符,子网只能承载 Azure Database for MySQL 灵活服务器实例。 委托子网后,服务将获取直接权限来创建服务特定的资源,以便无缝管理 Azure Database for MySQL 灵活服务器实例。

注意

你可以为要托管 Azure Database for MySQL 灵活服务器的子网指定的最小 CIDR 范围是 /29,它提供 8 个 IP 地址。 但是,任何网络或子网中的第一个和最后一个地址都不能分配给任何单个主机。 Azure 保留五个 IP 地址供 Azure 网络内部使用,包括不能分配给主机的两个 IP 地址。 这为 /29 CIDR 范围留下了三个可用的 IP 地址。 对于 Azure Database for MySQL 灵活服务器,启用专用访问时,需要从委托子网为每个节点分配一个 IP 地址。 启用了 HA 的服务器需要两个 IP 地址,非 HA 服务器需要一个 IP 地址。 建议为每个 Azure Database for MySQL 灵活服务器实例保留至少两个 IP 地址,因为高可用性选项可以在以后启用。 Azure Database for MySQL 灵活服务器与 Azure 专用 DNS 区域集成,提供可靠、安全的 DNS 服务来管理和解析虚拟网络中的域名,无需添加自定义 DNS 解决方案。 通过创建虚拟网络链接,可以将专用 DNS 区域链接到一个或多个虚拟网络

灵活服务器 MySQL VNET 的屏幕截图。

在上图中,

  1. Azure Database for MySQL 灵活服务器实例注入到虚拟网络 VNet-1 的委托子网 -10.0.1.0/24。
  2. 部署在同一虚拟网络中不同子网上的应用程序可以直接访问 Azure Database for MySQL 灵活服务器实例。
  3. 部署在不同虚拟网络 VNet-2 上的应用程序不能直接访问 Azure Database for MySQL 灵活服务器实例。 你必须先执行专用 DNS 区域虚拟网络对等互连,然后才能访问实例。

虚拟网络概念

以下是在结合使用虚拟网络与 Azure Database for MySQL 灵活服务器实例时需要熟悉的一些概念。

  • 虚拟网络 -

    Azure 虚拟网络包含配置为供你使用的专用 IP 地址空间。 若要了解有关 Azure 虚拟网络的详细信息,请参阅 Azure 虚拟网络概述

    虚拟网络必须处于 Azure Database for MySQL 灵活服务器实例所在的 Azure 区域。

  • 委派子网 -

    一个虚拟网络包含多个子网(子网络)。 可以通过子网将虚拟网络分成较小的地址空间。 Azure 资源被部署到虚拟网络中的特定子网中。

    Azure Database for MySQL 灵活服务器实例必须位于委托为仅供 Azure Database for MySQL 灵活服务器使用的子网中。 此委派意味着只有 Azure Database for MySQL 灵活服务器实例才能使用该子网。 不能在委派子网中使用其他 Azure 资源类型。 通过将子网的委托属性指定为 Microsoft.DBforMySQL/flexibleServers 来委托子网。

  • 网络安全组 (NSG)

    通过网络安全组中的安全规则,可以筛选可流入和流出虚拟网络子网和网络接口的流量类型。 有关详细信息,请参阅网络安全组概述

  • 专用 DNS 区域集成

    使用 Azure 专用 DNS 区域集成,可以解析当前虚拟网络中或链接专用 DNS 区域的任何区域内对等互连虚拟网络中的专用 DNS。

  • 虚拟网络对等

    虚拟网络对等互连让你可以无缝连接 Azure 中的两个或更多虚拟网络。 出于连接目的,对等互连虚拟网络会显示为一个网络。 对等互连虚拟网络中虚拟机之间的流量使用 Microsoft 主干基础结构。 客户端应用程序与对等虚拟网络中的 Azure Database for MySQL 灵活服务器实例之间的流量仅通过 Microsoft 的专用网络路由,并且与该网络隔离。

使用专用 DNS 区域

  • 如果使用 Azure 门户或 Azure CLI 创建了具有虚拟网络的 Azure Database for MySQL 灵活服务器实例,则系统会使用提供的服务器名称在你的订阅中为每个服务器自动预配一个新的专用 DNS 区域,以 mysql.database.chinacloudapi.cn 结尾。 或者,如果你想要设置自己的专用 DNS 区域用于 Azure Database for MySQL 灵活服务器实例,请参阅专用 DNS 概述文档。

  • 如果使用 Azure API、Azure 资源管理器模板(ARM 模板)或 Terraform,请创建以 mysql.database.azure.com 结尾的专用 DNS 区域,并在为 Azure Database for MySQL 灵活服务器实例配置私密访问时使用这些区域。 有关详细信息,请参阅专用 DNS 区域概述

    重要

    专用 DNS 区域名称必须以 mysql.database.chinacloudapi.cn 结尾。 如果要使用 SSL 连接到 Azure Database for MySQL 灵活服务器实例,并选择使用证书使用者名称执行完整验证 (sslmode=VERIFY_IDENTITY),请在连接字符串中使用 <servername>.mysql.database.chinacloudapi.cn。

了解如何在 Azure 门户Azure CLI 中创建具有专用访问(虚拟网络集成)的 Azure Database for MySQL 灵活服务器实例。

与自定义 DNS 服务器集成

如果使用的是自定义 DNS 服务器,则必须使用 DNS 转发器来解析 Azure Database for MySQL 灵活服务器实例的 FQDN。 转发器 IP 地址应为 168.63.129.16。 自定义 DNS 服务器应位于虚拟网络内,或可通过虚拟网络的 DNS 服务器设置访问。 有关详细信息,请参阅使用 DNS 服务器的名称解析

重要

若要成功预配 Azure Database for MySQL 灵活服务器实例,即使使用的是自定义 DNS 服务器,也不得使用 NSG 阻止流向 AzurePlatformDNS 的 DNS 流量

专用 DNS 区域和虚拟网络对等互连

专用 DNS 区域设置和虚拟网络对等互连彼此独立。 有关如何创建和使用专用 DNS 区域的详细信息,请参阅使用专用 DNS 区域部分。

如果要从在另一个虚拟网络(位于相同或不同的区域)中预配的客户端连接到 Azure Database for MySQL 灵活服务器实例,必须将专用 DNS 区域链接到虚拟网络。 请参阅如何链接虚拟网络文档。

注意

只能链接以 mysql.database.chinacloudapi.cn 结尾的专用 DNS 区域名称。

使用 ExpressRoute 或 VPN 从本地服务器连接到虚拟网络中的 Azure Database for MySQL 灵活服务器实例

对于需要从本地网络访问虚拟网络中的 Azure Database for MySQL 灵活服务器实例的工作负载,你需要 ExpressRouteVPN 以及连接到本地的虚拟网络。 此设置准备就绪后,如果要从本地虚拟网络上运行的客户端应用程序(例如 MySQL Workbench)进行连接,则需要使用 DNS 转发器来解析 Azure Database for MySQL 灵活服务器的服务器名称。 此 DNS 转发器负责通过服务器级转发器将所有 DNS 查询解析为 Azure 提供的 DNS 服务 168.63.129.16

若要正确进行配置,需要以下资源:

  • 本地网络。
  • 预配了专用访问(虚拟网络集成)的 Azure Database for MySQL 灵活服务器实例。
  • 已连接到本地的虚拟网络。
  • 在 Azure 中部署的 DNS 转发器 168.63.129.16

然后,可以使用 Azure Database for MySQL 灵活服务器的服务器名称 (FQDN) 从对等互连虚拟网络或本地网络中的客户端应用程序连接到 Azure Database for MySQL 灵活服务器实例。

注意

建议你在连接到 Azure Database for MySQL 灵活服务器实例时使用连接字符串中的完全限定的域名 (FQDN) <servername>.mysql.database.chinacloudapi.cn。 服务器的 IP 地址不能保证保持静态。 使用 FQDN 有助于避免更改连接字符串。

不受支持的虚拟网络场景

  • 公共终结点(或公共 IP 或 DNS)- 部署到虚拟网络的 Azure Database for MySQL 灵活服务器实例不能有公共终结点。
  • 将 Azure Database for MySQL 灵活服务器实例部署到虚拟网络和子网后,不能将它移动到其他虚拟网络或子网。 不能将虚拟网络移动到其他资源组或订阅中。
  • 部署后,无法更改专用 DNS 集成配置。
  • 子网中存在资源后,不能增加子网的大小(地址空间)。